This commit is contained in:
zt
2025-12-08 10:43:09 +08:00
parent 6819eb5f80
commit 6f4eb21deb
8 changed files with 152 additions and 1 deletions

View File

@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.safety.domain.vo.HseDangerArchiveCountVo;
import org.dromara.safety.domain.vo.HseSpecialPlanCountVo;
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -113,4 +115,14 @@ public class HseDangerArchiveController extends BaseController {
@PathVariable Long[] ids) { @PathVariable Long[] ids) {
return toAjax(hseDangerArchiveService.deleteWithValidByIds(List.of(ids), true)); return toAjax(hseDangerArchiveService.deleteWithValidByIds(List.of(ids), true));
} }
/**
* 统计
*/
@GetMapping("/count/{projectId}")
public R<HseDangerArchiveCountVo> count(@PathVariable Long projectId) {
return R.ok(hseDangerArchiveService.count(projectId));
}
} }

View File

@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.safety.domain.vo.HseSpecialPlanCountVo; import org.dromara.safety.domain.vo.HseSpecialPlanCountVo;
import org.dromara.safety.domain.vo.HseSpecialPlanFileVo;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -112,4 +113,13 @@ public class HseSpecialPlanController extends BaseController {
public R<HseSpecialPlanCountVo> count(@PathVariable Long projectId) { public R<HseSpecialPlanCountVo> count(@PathVariable Long projectId) {
return R.ok(hseSpecialPlanService.count(projectId)); return R.ok(hseSpecialPlanService.count(projectId));
} }
/**
* 获取档案
*/
@GetMapping("/getFile/{deId}")
public R<HseSpecialPlanFileVo> getFile(@PathVariable Long deId) {
return R.ok(hseSpecialPlanService.getFile(deId));
}
} }

View File

@ -0,0 +1,43 @@
package org.dromara.safety.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.safety.domain.HseDangerArchive;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 危大工程档案视图对象 hse_danger_archive
*
* @author Lion Li
* @date 2025-12-06
*/
@Data
public class HseDangerArchiveCountVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 总工程数
*/
private Integer total;
/**
* 重大风险数
*/
private Long majorRisk;
/**
* 归档数
*/
private Integer archive;
}

View File

@ -0,0 +1,30 @@
package org.dromara.safety.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 危大工程专项施工方案视图对象 hse_special_plan
*
* @author Lion Li
* @date 2025-12-06
*/
@Data
public class HseSpecialPlanFileVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 专家结论附件路径
*/
private String expertFile;
}

View File

@ -1,5 +1,6 @@
package org.dromara.safety.service; package org.dromara.safety.service;
import org.dromara.safety.domain.vo.HseDangerArchiveCountVo;
import org.dromara.safety.domain.vo.HseDangerArchiveVo; import org.dromara.safety.domain.vo.HseDangerArchiveVo;
import org.dromara.safety.domain.bo.HseDangerArchiveBo; import org.dromara.safety.domain.bo.HseDangerArchiveBo;
import org.dromara.safety.domain.HseDangerArchive; import org.dromara.safety.domain.HseDangerArchive;
@ -9,6 +10,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -70,5 +73,11 @@ public interface IHseDangerArchiveService extends IService<HseDangerArchive>{
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 统计
*/
HseDangerArchiveCountVo count( Long projectId);
HseJsjdYuJkjcVo getJsjdYGcjk(Long id); HseJsjdYuJkjcVo getJsjdYGcjk(Long id);
} }

View File

@ -1,6 +1,7 @@
package org.dromara.safety.service; package org.dromara.safety.service;
import org.dromara.safety.domain.vo.HseSpecialPlanCountVo; import org.dromara.safety.domain.vo.HseSpecialPlanCountVo;
import org.dromara.safety.domain.vo.HseSpecialPlanFileVo;
import org.dromara.safety.domain.vo.HseSpecialPlanVo; import org.dromara.safety.domain.vo.HseSpecialPlanVo;
import org.dromara.safety.domain.bo.HseSpecialPlanBo; import org.dromara.safety.domain.bo.HseSpecialPlanBo;
import org.dromara.safety.domain.HseSpecialPlan; import org.dromara.safety.domain.HseSpecialPlan;
@ -75,4 +76,10 @@ public interface IHseSpecialPlanService extends IService<HseSpecialPlan>{
* 统计 * 统计
*/ */
HseSpecialPlanCountVo count(Long projectId); HseSpecialPlanCountVo count(Long projectId);
/**
* 获取档案
*/
HseSpecialPlanFileVo getFile(Long deId);
} }

View File

@ -1,6 +1,9 @@
package org.dromara.safety.service.impl; package org.dromara.safety.service.impl;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -9,6 +12,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.safety.domain.HseDangerousEngineering;
import org.dromara.safety.domain.vo.HseDangerArchiveCountVo;
import org.dromara.safety.service.IHseDangerousEngineeringService;
import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo;
import org.dromara.safety.gcjkjl.domain.HseGcjk; import org.dromara.safety.gcjkjl.domain.HseGcjk;
import org.dromara.safety.gcjkjl.service.IHseGcjkService; import org.dromara.safety.gcjkjl.service.IHseGcjkService;
@ -39,6 +45,8 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
private final HseDangerArchiveMapper baseMapper; private final HseDangerArchiveMapper baseMapper;
private final IHseDangerousEngineeringService hseDangerousEngineeringService;
@Autowired @Autowired
@Lazy @Lazy
private IHseGcjkService hseGcjkService; private IHseGcjkService hseGcjkService;
@ -120,6 +128,9 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
public Boolean insertByBo(HseDangerArchiveBo bo) { public Boolean insertByBo(HseDangerArchiveBo bo) {
HseDangerArchive add = MapstructUtils.convert(bo, HseDangerArchive.class); HseDangerArchive add = MapstructUtils.convert(bo, HseDangerArchive.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
Snowflake snowflake = IdUtil.getSnowflake(1, 1);
long id = snowflake.nextId();
add.setArchiveNo("DA-"+id);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setId(add.getId()); bo.setId(add.getId());
@ -144,7 +155,12 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(HseDangerArchive entity){ private void validEntityBeforeSave(HseDangerArchive entity){
//TODO 做一些数据校验,如唯一约束 boolean exists = lambdaQuery().eq(HseDangerArchive::getDeId, entity.getDeId())
.ne(entity.getId() != null, HseDangerArchive::getId, entity.getId())
.exists();
if (exists) {
throw new ServiceException("该工程已归档");
}
} }
/** /**
@ -162,6 +178,19 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl<HseDangerArchiveMap
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
@Override
public HseDangerArchiveCountVo count(Long projectId) {
HseDangerArchiveCountVo hseDangerArchiveCountVo = new HseDangerArchiveCountVo();
List<HseDangerousEngineering> list = hseDangerousEngineeringService.lambdaQuery()
.eq(HseDangerousEngineering::getProjectId, projectId)
.list();
hseDangerArchiveCountVo.setTotal(list.size());
hseDangerArchiveCountVo.setMajorRisk(list.stream().filter(item -> "4".equals(item.getRiskLevel())).count());
List<HseDangerArchive> list1 = lambdaQuery().eq(HseDangerArchive::getProjectId, projectId).list();
hseDangerArchiveCountVo.setArchive(list1.size());
return hseDangerArchiveCountVo;
}
@Override @Override
public HseJsjdYuJkjcVo getJsjdYGcjk(Long id) { public HseJsjdYuJkjcVo getJsjdYGcjk(Long id) {
HseJsjdYuJkjcVo hseJsjdYuJkjcVo = new HseJsjdYuJkjcVo(); HseJsjdYuJkjcVo hseJsjdYuJkjcVo = new HseJsjdYuJkjcVo();

View File

@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.safety.domain.vo.HseSpecialPlanCountVo; import org.dromara.safety.domain.vo.HseSpecialPlanCountVo;
import org.dromara.safety.domain.vo.HseSpecialPlanFileVo;
import org.dromara.safety.service.IHseDangerousEngineeringService; import org.dromara.safety.service.IHseDangerousEngineeringService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.safety.domain.bo.HseSpecialPlanBo; import org.dromara.safety.domain.bo.HseSpecialPlanBo;
@ -182,4 +183,14 @@ public class HseSpecialPlanServiceImpl extends ServiceImpl<HseSpecialPlanMapper,
vo.setNeedSupervisionNum(list.stream().filter(item -> item.getNeedSupervision() == 1).count()); vo.setNeedSupervisionNum(list.stream().filter(item -> item.getNeedSupervision() == 1).count());
return vo; return vo;
} }
@Override
public HseSpecialPlanFileVo getFile(Long deId) {
HseSpecialPlan one = lambdaQuery().eq(HseSpecialPlan::getDeId, deId).last("limit 1").one();
HseSpecialPlanFileVo hseSpecialPlanFileVo = new HseSpecialPlanFileVo();
if(one != null) {
hseSpecialPlanFileVo.setExpertFile(one.getExpertFile());
}
return hseSpecialPlanFileVo;
}
} }