diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index 87e8a97c..6cf84cfe 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -311,13 +311,11 @@ springdoc: packages-to-scan: org.dromara.ai - group: 31.投标管理模块 packages-to-scan: org.dromara.bidding - - group: 33.机械模块 - packages-to-scan: org.dromara.mechanical.jxgl - group: 32.设备模块 packages-to-scan: org.dromara.device - group: 33.摄像头模块 packages-to-scan: org.dromara.other - - group: 34.机械安全模块 + - group: 34.机械模块 packages-to-scan: org.dromara.mechanical # knife4j的增强配置,不需要增强可以不配 knife4j: diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglVo.java index 73f1729b..932d1e35 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglVo.java @@ -61,8 +61,7 @@ public class JxAqjcglVo implements Serializable { /** * 检查类型 */ - @ExcelProperty(value = "检查类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "jx_jclx") + @ExcelProperty(value = "检查类型") private String inspectionType; /** @@ -101,8 +100,7 @@ public class JxAqjcglVo implements Serializable { /** * 参与人(多个用逗号分隔) */ - @ExcelProperty(value = "参与人", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "多=个用逗号分隔") + @ExcelProperty(value = "参与人") private String participants; /** @@ -138,21 +136,19 @@ public class JxAqjcglVo implements Serializable { /** * 设备类型 */ - @ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class) + @ExcelProperty(value = "设备类型") private String equipmentType; /** * 检查结果 */ - @ExcelProperty(value = "检查结果", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "jx_jcjg") + @ExcelProperty(value = "检查结果") private String inspectionResult; /** * 风险等级 */ - @ExcelProperty(value = "风险等级", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "jx_fxdj") + @ExcelProperty(value = "风险等级") private String riskGrade; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java index 0d6ee2b3..cf87c30f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.mechanical.jxgl.service.impl; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -11,8 +12,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.mechanical.jxgl.domain.JxWhjl; import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; import org.dromara.mechanical.jxgl.service.IJxGzwxService; +import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo; import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; @@ -22,9 +26,7 @@ import org.dromara.mechanical.jxgl.service.IJxGzwxJlService; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 机械故障维修记录Service业务层处理 @@ -39,6 +41,7 @@ public class JxGzwxJlServiceImpl extends ServiceImpl i private final JxGzwxJlMapper baseMapper; private final IJxGzwxService jxGzwxService; + private final ISysOssService sysOssService; /** * 查询机械故障维修记录 @@ -154,6 +157,21 @@ public class JxGzwxJlServiceImpl extends ServiceImpl i if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxGzwxJlVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/bo/JxSgxxjlbBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/bo/JxSgxxjlbBo.java index 7ae0a82b..1994501d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/bo/JxSgxxjlbBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/bo/JxSgxxjlbBo.java @@ -55,7 +55,6 @@ public class JxSgxxjlbBo extends BaseEntity { /** * 设备台账id */ - @NotBlank(message = "设备台账id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long equipmentId; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxjlbVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxjlbVo.java index 6b921e61..c7599806 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxjlbVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxjlbVo.java @@ -40,29 +40,25 @@ public class JxSgxxjlbVo implements Serializable { /** * 事故编号(如SGJL-20230620-001) */ - @ExcelProperty(value = "事故编号", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "如=SGJL-20230620-001") + @ExcelProperty(value = "事故编号") private String accidentCode; /** * 事故等级(下拉选择) */ - @ExcelProperty(value = "事故等级", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "下=拉选择") + @ExcelProperty(value = "事故等级") private String accidentLevel; /** * 事故类型(下拉选择) */ - @ExcelProperty(value = "事故类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "下=拉选择") + @ExcelProperty(value = "事故类型") private String accidentType; /** * 设备名称(下拉选择) */ - @ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "下=拉选择") + @ExcelProperty(value = "设备名称") private String equipmentName; /** @@ -86,22 +82,19 @@ public class JxSgxxjlbVo implements Serializable { /** * 事故描述(详细经过) */ - @ExcelProperty(value = "事故描述", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "详=细经过") + @ExcelProperty(value = "事故描述") private String accidentDescription; /** * 直接损失金额(元) */ - @ExcelProperty(value = "直接损失金额", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "元=") + @ExcelProperty(value = "直接损失金额") private BigDecimal directLoss; /** * 间接损失金额(元) */ - @ExcelProperty(value = "间接损失金额", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "元=") + @ExcelProperty(value = "间接损失金额") private BigDecimal indirectLoss; /** @@ -113,8 +106,7 @@ public class JxSgxxjlbVo implements Serializable { /** * 人员伤亡情况(如有) */ - @ExcelProperty(value = "人员伤亡情况", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "如=有") + @ExcelProperty(value = "人员伤亡情况") private String casualtySituation; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/impl/JxSgxxjlbServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/impl/JxSgxxjlbServiceImpl.java index b3dee07e..c953c985 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/impl/JxSgxxjlbServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/impl/JxSgxxjlbServiceImpl.java @@ -11,7 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.utils.BatchNumberGenerator; import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead; +import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo; import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; @@ -20,9 +22,7 @@ import org.dromara.mechanical.jxsgjl.mapper.JxSgxxjlbMapper; import org.dromara.mechanical.jxsgjl.service.IJxSgxxjlbService; import java.time.LocalDate; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 机械事故信息记录Service业务层处理 @@ -36,6 +36,9 @@ public class JxSgxxjlbServiceImpl extends ServiceImpl deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxSgxxjlbVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxYhzgbhServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxYhzgbhServiceImpl.java index 1a3315fe..d9e4c3bc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxYhzgbhServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxYhzgbhServiceImpl.java @@ -16,6 +16,7 @@ import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; import org.dromara.mechanical.jxaqgl.domain.MonthDateRange; import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService; import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; import org.dromara.mechanical.jxzgbh.domain.JxFcxx; import org.dromara.mechanical.jxzgbh.domain.JxZgxx; import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; @@ -23,6 +24,7 @@ import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; import org.dromara.mechanical.jxzgbh.domain.vo.*; import org.dromara.mechanical.jxzgbh.service.IJxFcxxService; import org.dromara.mechanical.jxzgbh.service.IJxZgxxService; +import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo; import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; @@ -31,10 +33,7 @@ import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 机械隐患整改与闭环Service业务层处理 @@ -56,6 +55,9 @@ public class JxYhzgbhServiceImpl extends ServiceImpl i private final IJxAqjcglService jxAqjcglService; + private final ISysOssService sysOssService; + + /** * 查询机械隐患整改与闭环 * @@ -185,6 +187,21 @@ public class JxYhzgbhServiceImpl extends ServiceImpl i if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxYhzgbhVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseDangerArchiveController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseDangerArchiveController.java index 7491cea9..6571c294 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseDangerArchiveController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseDangerArchiveController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -45,6 +46,16 @@ public class HseDangerArchiveController extends BaseController { return hseDangerArchiveService.queryPageList(bo, pageQuery); } + + /** + * 查询技术交底和过程监控文件 + * @param id 危大工程id + */ + @GetMapping("/getJsjdYGcjk/{id}") + public R list(@PathVariable Long id) { + return R.ok(hseDangerArchiveService.getJsjdYGcjk(id)); + } + /** * 导出危大工程档案列表 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/HseJsjdYuJkjcVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/HseJsjdYuJkjcVo.java new file mode 100644 index 00000000..20e917e2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/HseJsjdYuJkjcVo.java @@ -0,0 +1,18 @@ +package org.dromara.safety.domain.vo; + + +import lombok.Data; + +@Data +public class HseJsjdYuJkjcVo { + /** + * 技术交底文件 + */ + private String jsjdFile; + + + /** + * 过程监控文件 + */ + private String gcjkFile; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/enums/AqEnums.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/enums/AqEnums.java new file mode 100644 index 00000000..ded7a6ca --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/enums/AqEnums.java @@ -0,0 +1,28 @@ +package org.dromara.safety.enums; + +public enum AqEnums { + + AQJDZT_S("是否交底", "1"), + AQJDZT_F("是否交底", "2"), + AQWXJX_S("是否存在危险迹象", "1"), + AQWXJX_F("是否存在危险迹象", "2"); + + + + private final String TypeName; + + private final String TypeValue; + + + public String getTypeName() { + return TypeName; + } + public String getTypeValue() { + return TypeValue; + } + + AqEnums(String TypeName, String TypeValue) { + this.TypeName = TypeName; + this.TypeValue = TypeValue; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/controller/HseGcjkController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/controller/HseGcjkController.java new file mode 100644 index 00000000..b5eeef0f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/controller/HseGcjkController.java @@ -0,0 +1,133 @@ +package org.dromara.safety.gcjkjl.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo; +import org.dromara.safety.jsjd.domain.bo.HseJsjdBo; +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.safety.jsjd.service.IHseJsjdService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo; +import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo; +import org.dromara.safety.gcjkjl.service.IHseGcjkService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 安全-过程监控记录 + * + * @author Lion Li + * @date 2025-12-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/gcjkjl/gcjk") +public class HseGcjkController extends BaseController { + + private final IHseGcjkService hseGcjkService; + + private final IHseJsjdService hseJsjdService; + + + + /** + * 查询安全技术交底列表 + */ + @SaCheckPermission("gcjkjl:gcjk:list") + @GetMapping("/getlist") + public TableDataInfo list(HseJsjdBo bo, PageQuery pageQuery) { + return hseJsjdService.queryPageList(bo, pageQuery); + } + + /** + * 查询安全-过程监控记录列表 + */ + @SaCheckPermission("gcjkjl:gcjk:list") + @GetMapping("/list") + public TableDataInfo list(HseGcjkBo bo, PageQuery pageQuery) { + return hseGcjkService.queryPageList(bo, pageQuery); + } + + + /** + * 查询安全-过程监控记录头部数据 + */ + @SaCheckPermission("gcjkjl:gcjk:list") + @GetMapping("/listHead") + public R list(HseGcjkBo bo) { + return R.ok(hseGcjkService.listHead(bo)); + } + + + /** + * 导出安全-过程监控记录列表 + */ + @SaCheckPermission("gcjkjl:gcjk:export") + @Log(title = "安全-过程监控记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HseGcjkBo bo, HttpServletResponse response) { + List list = hseGcjkService.queryList(bo); + ExcelUtil.exportExcel(list, "安全-过程监控记录", HseGcjkVo.class, response); + } + + /** + * 获取安全-过程监控记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("gcjkjl:gcjk:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(hseGcjkService.queryById(id)); + } + + /** + * 新增安全-过程监控记录 + */ + @SaCheckPermission("gcjkjl:gcjk:add") + @Log(title = "安全-过程监控记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody HseGcjkBo bo) { + return toAjax(hseGcjkService.insertByBo(bo)); + } + + /** + * 修改安全-过程监控记录 + */ + @SaCheckPermission("gcjkjl:gcjk:edit") + @Log(title = "安全-过程监控记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody HseGcjkBo bo) { + return toAjax(hseGcjkService.updateByBo(bo)); + } + + /** + * 删除安全-过程监控记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("gcjkjl:gcjk:remove") + @Log(title = "安全-过程监控记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(hseGcjkService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/HseGcjk.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/HseGcjk.java new file mode 100644 index 00000000..52a92195 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/HseGcjk.java @@ -0,0 +1,196 @@ +package org.dromara.safety.gcjkjl.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 安全-过程监控记录对象 hse_gcjk + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hse_gcjk") +public class HseGcjk extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 监控编号 + */ + private String monitorNo; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 危大工程ID + */ + private Long masterId; + + /** + * 危大工程名称 + */ + private String deName; + + /** + * 监控内容 + */ + private String monitorContent; + + /** + * 监控频次 + */ + private String monitorFrequency; + + /** + * 监控责任人姓名 + */ + private String monitorResponsiblePerson; + + /** + * 过程记录日期 + */ + private LocalDate recordDate; + + /** + * 是否存在危险迹象(1:是,0:否) + */ + private String hasHazardSign; + + /** + * 施工状态描述 + */ + private String constructionStatus; + + /** + * 关键工序完成情况 + */ + private String keyProcessProgress; + + /** + * 是否旁站(1:是,0:否) + */ + private String isOnSiteSupervision; + + + + /** + * 整改期限 + */ + private LocalDate abarbeitungQx; + + /** + * 整改人 + */ + private String abarbeitungRen; + + /** + * 整改要求 + */ + private String abarbeitungYq; + + + /** + * 旁站记录内容 + */ + private String supervisionJl; + + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionJs; + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionKs; + + /** + * 问题描述 + */ + private String problemDescription; + + + /** + * 旁站文件 + */ + private String supervisionFile; + + + /** + * 旁站人 + */ + private String supervisionRen; + + /** + * 旁站单位 + */ + private String supervisionDw; + + + + + + + + + + + + + + + + + + + + + + + /** + * 验收意见 + */ + private String inspectionOpinion; + + /** + * 验收人姓名 + */ + private String inspector; + + /** + * 验收时间 + */ + private LocalDateTime inspectionTime; + + /** + * 审核标志 + */ + private String auditStatus; + + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/bo/HseGcjkBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/bo/HseGcjkBo.java new file mode 100644 index 00000000..359f7b91 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/bo/HseGcjkBo.java @@ -0,0 +1,189 @@ +package org.dromara.safety.gcjkjl.domain.bo; + +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 安全-过程监控记录业务对象 hse_gcjk + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = HseGcjk.class, reverseConvertGenerate = false) +public class HseGcjkBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 监控编号 + */ + @NotBlank(message = "监控编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monitorNo; + + /** + * 危大工程ID + */ + @NotNull(message = "危大工程ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 项目ID + */ + @NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 危大工程名称 + */ + private String deName; + + /** + * 监控内容 + */ + @NotBlank(message = "监控内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monitorContent; + + /** + * 监控频次 + */ + @NotBlank(message = "监控频次不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monitorFrequency; + + /** + * 监控责任人姓名 + */ + @NotBlank(message = "监控责任人姓名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String monitorResponsiblePerson; + + /** + * 过程记录日期 + */ + @NotNull(message = "过程记录日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate recordDate; + + /** + * 是否存在危险迹象(1:是,0:否) + */ + @NotNull(message = "是否存在危险迹象(1:是,0:否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String hasHazardSign; + + /** + * 施工状态描述 + */ + @NotBlank(message = "施工状态描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String constructionStatus; + + /** + * 关键工序完成情况 + */ + private String keyProcessProgress; + + /** + * 是否旁站(1:是,0:否) + */ + @NotNull(message = "是否旁站(1:是,0:否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isOnSiteSupervision; + + /** + * 验收意见 + */ + private String inspectionOpinion; + + /** + * 验收人姓名 + */ + private String inspector; + + /** + * 验收时间 + */ + private LocalDateTime inspectionTime; + + /** + * 审核标志 + */ + private String auditStatus; + + + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + + + /** + * 整改期限 + */ + private LocalDate abarbeitungQx; + + /** + * 整改人 + */ + private String abarbeitungRen; + + /** + * 整改要求 + */ + private String abarbeitungYq; + + + /** + * 旁站记录内容 + */ + private String supervisionJl; + + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionJs; + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionKs; + + /** + * 问题描述 + */ + private String problemDescription; + + + /** + * 旁站文件 + */ + private String supervisionFile; + + + /** + * 旁站人 + */ + private String supervisionRen; + + /** + * 旁站单位 + */ + private String supervisionDw; + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/HseGcjkVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/HseGcjkVo.java new file mode 100644 index 00000000..0ad32f98 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/HseGcjkVo.java @@ -0,0 +1,209 @@ +package org.dromara.safety.gcjkjl.domain.vo; + +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + + +/** + * 安全-过程监控记录视图对象 hse_gcjk + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = HseGcjk.class) +public class HseGcjkVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 监控编号 + */ + @ExcelProperty(value = "监控编号") + private String monitorNo; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 危大工程ID + */ + @ExcelProperty(value = "危大工程ID") + private Long masterId; + + /** + * 危大工程名称 + */ + @ExcelProperty(value = "危大工程名称") + private String deName; + + /** + * 监控内容 + */ + @ExcelProperty(value = "监控内容") + private String monitorContent; + + /** + * 监控频次 + */ + @ExcelProperty(value = "监控频次") + private String monitorFrequency; + + /** + * 监控责任人姓名 + */ + @ExcelProperty(value = "监控责任人姓名") + private String monitorResponsiblePerson; + + /** + * 过程记录日期 + */ + @ExcelProperty(value = "过程记录日期") + private LocalDate recordDate; + + /** + * 是否存在危险迹象(1:是,0:否) + */ + @ExcelProperty(value = "是否存在危险迹象", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=:是,0:否") + private String hasHazardSign; + + /** + * 施工状态描述 + */ + @ExcelProperty(value = "施工状态描述") + private String constructionStatus; + + /** + * 关键工序完成情况 + */ + @ExcelProperty(value = "关键工序完成情况") + private String keyProcessProgress; + + /** + * 是否旁站(1:是,0:否) + */ + @ExcelProperty(value = "是否旁站", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=:是,0:否") + private String isOnSiteSupervision; + + /** + * 验收意见 + */ + @ExcelProperty(value = "验收意见") + private String inspectionOpinion; + + /** + * 验收人姓名 + */ + @ExcelProperty(value = "验收人姓名") + private String inspector; + + /** + * 验收时间 + */ + @ExcelProperty(value = "验收时间") + private LocalDateTime inspectionTime; + + /** + * 审核标志 + */ + @ExcelProperty(value = "审核标志") + private String auditStatus; + + + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + + + + /** + * 整改期限 + */ + private LocalDate abarbeitungQx; + + /** + * 整改人 + */ + private String abarbeitungRen; + + /** + * 整改要求 + */ + private String abarbeitungYq; + + + /** + * 旁站记录内容 + */ + private String supervisionJl; + + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionJs; + + /** + * 旁站结束时间 + */ + private LocalDateTime supervisionKs; + + /** + * 问题描述 + */ + private String problemDescription; + + + /** + * 旁站文件 + */ + private String supervisionFile; + + + /** + * 旁站人 + */ + private String supervisionRen; + + /** + * 旁站单位 + */ + private String supervisionDw; + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/JkjcHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/JkjcHeadVo.java new file mode 100644 index 00000000..70b0910b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/domain/vo/JkjcHeadVo.java @@ -0,0 +1,23 @@ +package org.dromara.safety.gcjkjl.domain.vo; + + +import lombok.Data; + +@Data +public class JkjcHeadVo { + + /** + * 监控总数 + */ + private Long zs = 0L; + + /** + *存在危险迹象 + */ + private Long czwxjx = 0L; + + /** + * 不存在危险迹象 + */ + private Long bczwxjx = 0L; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/mapper/HseGcjkMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/mapper/HseGcjkMapper.java new file mode 100644 index 00000000..55b08e0a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/mapper/HseGcjkMapper.java @@ -0,0 +1,15 @@ +package org.dromara.safety.gcjkjl.mapper; + +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 安全-过程监控记录Mapper接口 + * + * @author Lion Li + * @date 2025-12-06 + */ +public interface HseGcjkMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/IHseGcjkService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/IHseGcjkService.java new file mode 100644 index 00000000..0a8e5c9a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/IHseGcjkService.java @@ -0,0 +1,74 @@ +package org.dromara.safety.gcjkjl.service; + +import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo; +import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo; +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo; + +import java.util.Collection; +import java.util.List; + +/** + * 安全-过程监控记录Service接口 + * + * @author Lion Li + * @date 2025-12-06 + */ +public interface IHseGcjkService extends IService{ + + /** + * 查询安全-过程监控记录 + * + * @param id 主键 + * @return 安全-过程监控记录 + */ + HseGcjkVo queryById(Long id); + + /** + * 分页查询安全-过程监控记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 安全-过程监控记录分页列表 + */ + TableDataInfo queryPageList(HseGcjkBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的安全-过程监控记录列表 + * + * @param bo 查询条件 + * @return 安全-过程监控记录列表 + */ + List queryList(HseGcjkBo bo); + + /** + * 新增安全-过程监控记录 + * + * @param bo 安全-过程监控记录 + * @return 是否新增成功 + */ + Boolean insertByBo(HseGcjkBo bo); + + /** + * 修改安全-过程监控记录 + * + * @param bo 安全-过程监控记录 + * @return 是否修改成功 + */ + Boolean updateByBo(HseGcjkBo bo); + + /** + * 校验并批量删除安全-过程监控记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JkjcHeadVo listHead(HseGcjkBo bo); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/impl/HseGcjkServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/impl/HseGcjkServiceImpl.java new file mode 100644 index 00000000..a54dd46e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/gcjkjl/service/impl/HseGcjkServiceImpl.java @@ -0,0 +1,187 @@ +package org.dromara.safety.gcjkjl.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.safety.enums.AqEnums; +import org.dromara.safety.gcjkjl.domain.vo.JkjcHeadVo; +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.system.service.ISysOssService; +import org.springframework.stereotype.Service; +import org.dromara.safety.gcjkjl.domain.bo.HseGcjkBo; +import org.dromara.safety.gcjkjl.domain.vo.HseGcjkVo; +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import org.dromara.safety.gcjkjl.mapper.HseGcjkMapper; +import org.dromara.safety.gcjkjl.service.IHseGcjkService; + +import java.util.*; + +/** + * 安全-过程监控记录Service业务层处理 + * + * @author Lion Li + * @date 2025-12-06 + */ +@RequiredArgsConstructor +@Service +public class HseGcjkServiceImpl extends ServiceImpl implements IHseGcjkService { + + private final HseGcjkMapper baseMapper; + + private final ISysOssService sysOssService; + + + /** + * 查询安全-过程监控记录 + * + * @param id 主键 + * @return 安全-过程监控记录 + */ + @Override + public HseGcjkVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询安全-过程监控记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 安全-过程监控记录分页列表 + */ + @Override + public TableDataInfo queryPageList(HseGcjkBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的安全-过程监控记录列表 + * + * @param bo 查询条件 + * @return 安全-过程监控记录列表 + */ + @Override + public List queryList(HseGcjkBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(HseGcjkBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(HseGcjk::getId); + lqw.eq(StringUtils.isNotBlank(bo.getMonitorNo()), HseGcjk::getMonitorNo, bo.getMonitorNo()); + lqw.eq(bo.getMasterId() != null, HseGcjk::getMasterId, bo.getMasterId()); + lqw.like(StringUtils.isNotBlank(bo.getDeName()), HseGcjk::getDeName, bo.getDeName()); + lqw.eq(StringUtils.isNotBlank(bo.getMonitorContent()), HseGcjk::getMonitorContent, bo.getMonitorContent()); + lqw.eq(StringUtils.isNotBlank(bo.getMonitorFrequency()), HseGcjk::getMonitorFrequency, bo.getMonitorFrequency()); + lqw.eq(StringUtils.isNotBlank(bo.getMonitorResponsiblePerson()), HseGcjk::getMonitorResponsiblePerson, bo.getMonitorResponsiblePerson()); + lqw.eq(bo.getRecordDate() != null, HseGcjk::getRecordDate, bo.getRecordDate()); + lqw.eq(bo.getHasHazardSign() != null, HseGcjk::getHasHazardSign, bo.getHasHazardSign()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionStatus()), HseGcjk::getConstructionStatus, bo.getConstructionStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getKeyProcessProgress()), HseGcjk::getKeyProcessProgress, bo.getKeyProcessProgress()); + lqw.eq(bo.getIsOnSiteSupervision() != null, HseGcjk::getIsOnSiteSupervision, bo.getIsOnSiteSupervision()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectionOpinion()), HseGcjk::getInspectionOpinion, bo.getInspectionOpinion()); + lqw.eq(StringUtils.isNotBlank(bo.getInspector()), HseGcjk::getInspector, bo.getInspector()); + lqw.eq(bo.getInspectionTime() != null, HseGcjk::getInspectionTime, bo.getInspectionTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), HseGcjk::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), HseGcjk::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增安全-过程监控记录 + * + * @param bo 安全-过程监控记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(HseGcjkBo bo) { + HseGcjk add = MapstructUtils.convert(bo, HseGcjk.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("ANGCJC-"); + add.setMonitorNo(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改安全-过程监控记录 + * + * @param bo 安全-过程监控记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(HseGcjkBo bo) { + HseGcjk update = MapstructUtils.convert(bo, HseGcjk.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(HseGcjk entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除安全-过程监控记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + HseGcjkVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JkjcHeadVo listHead(HseGcjkBo bo) { + JkjcHeadVo jkjcHeadVo = new JkjcHeadVo(); + if (bo.getProjectId() == null) throw new RuntimeException("项目不能为空"); + List hseGcjks = baseMapper.selectList(new LambdaQueryWrapper().eq(HseGcjk::getProjectId, bo.getProjectId())); + if (hseGcjks != null && hseGcjks.size() > 0) { + jkjcHeadVo.setZs(Long.valueOf(hseGcjks.size())); + jkjcHeadVo.setBczwxjx(hseGcjks.stream().filter(hseGcjk -> hseGcjk.getHasHazardSign().equals(AqEnums.AQWXJX_F.getTypeValue())).count()); + jkjcHeadVo.setCzwxjx(hseGcjks.stream().filter(hseGcjk -> hseGcjk.getHasHazardSign().equals(AqEnums.AQWXJX_S.getTypeValue())).count()); + + } + + + + return jkjcHeadVo; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/controller/HseJsjdController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/controller/HseJsjdController.java new file mode 100644 index 00000000..012020ef --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/controller/HseJsjdController.java @@ -0,0 +1,131 @@ +package org.dromara.safety.jsjd.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.safety.domain.bo.HseSpecialPlanBo; +import org.dromara.safety.domain.vo.HseSpecialPlanVo; +import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo; +import org.dromara.safety.service.IHseSpecialPlanService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.safety.jsjd.domain.bo.HseJsjdBo; +import org.dromara.safety.jsjd.service.IHseJsjdService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 安全技术交底 + * + * @author Lion Li + * @date 2025-12-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jsjd/jsjd") +public class HseJsjdController extends BaseController { + + private final IHseJsjdService hseJsjdService; + + + private final IHseSpecialPlanService hseSpecialPlanService; + + /** + * 查询危大工程专项施工方案列表 + */ + @SaCheckPermission("jsjd:jsjd:list") + @GetMapping("/getlist") + public TableDataInfo list(HseSpecialPlanBo bo, PageQuery pageQuery) { + return hseSpecialPlanService.queryPageList(bo, pageQuery); + } + + /** + * 查询安全技术交底列表 + */ + @SaCheckPermission("jsjd:jsjd:list") + @GetMapping("/list") + public TableDataInfo list(HseJsjdBo bo, PageQuery pageQuery) { + return hseJsjdService.queryPageList(bo, pageQuery); + } + + + /** + * 查询安全技术交底头部数据 + */ + @SaCheckPermission("jsjd:jsjd:list") + @GetMapping("/listHead") + public R list(HseJsjdBo bo) { + return R.ok(hseJsjdService.listHead(bo)); + } + + /** + * 导出安全技术交底列表 + */ + @SaCheckPermission("jsjd:jsjd:export") + @Log(title = "安全技术交底", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HseJsjdBo bo, HttpServletResponse response) { + List list = hseJsjdService.queryList(bo); + ExcelUtil.exportExcel(list, "安全技术交底", HseJsjdVo.class, response); + } + + /** + * 获取安全技术交底详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jsjd:jsjd:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(hseJsjdService.queryById(id)); + } + + /** + * 新增安全技术交底 + */ + @SaCheckPermission("jsjd:jsjd:add") + @Log(title = "安全技术交底", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody HseJsjdBo bo) { + return toAjax(hseJsjdService.insertByBo(bo)); + } + + /** + * 修改安全技术交底 + */ + @SaCheckPermission("jsjd:jsjd:edit") + @Log(title = "安全技术交底", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody HseJsjdBo bo) { + return toAjax(hseJsjdService.updateByBo(bo)); + } + + /** + * 删除安全技术交底 + * + * @param ids 主键串 + */ + @SaCheckPermission("jsjd:jsjd:remove") + @Log(title = "安全技术交底", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(hseJsjdService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/HseJsjd.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/HseJsjd.java new file mode 100644 index 00000000..89ad2d21 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/HseJsjd.java @@ -0,0 +1,108 @@ +package org.dromara.safety.jsjd.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 安全技术交底对象 hse_jsjd + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("hse_jsjd") +public class HseJsjd extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 交底编号 + */ + private String disclosureNo; + + /** + * 危大工程ID + */ + private Long masterId; + + /** + * 危大工程名称 + */ + private String deName; + + /** + * 项目id + */ + private Long projectId; + + /** + * 交底方式 + */ + private String disclosureMethod; + + /** + * 交底日期 + */ + private LocalDate disclosureDate; + + /** + * 交底地点 + */ + private String disclosurePlace; + + /** + * 交底人 + */ + private String disclosurePerson; + + /** + * 交底对象(多个) + */ + private String disclosureObjects; + + /** + * 关键风险提示 + */ + private String keyRiskTips; + + /** + * 安全注意事项 + */ + private String safetyNotes; + + /** + * 交底状态 + */ + private String presentationState; + + /** + * 审核标志 + */ + private String auditStatus; + + /** + * 应急措施说明 + */ + private String outburstExplain; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/bo/HseJsjdBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/bo/HseJsjdBo.java new file mode 100644 index 00000000..d7155be2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/bo/HseJsjdBo.java @@ -0,0 +1,120 @@ +package org.dromara.safety.jsjd.domain.bo; + +import org.dromara.safety.jsjd.domain.HseJsjd; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.time.LocalDate; + +/** + * 安全技术交底业务对象 hse_jsjd + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = HseJsjd.class, reverseConvertGenerate = false) +public class HseJsjdBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 交底编号 + */ + private String disclosureNo; + + /** + * 危大工程ID + */ + @NotNull(message = "专项方案管理ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 危大工程名称 + */ + private String deName; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 交底方式 + */ + @NotBlank(message = "交底方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private String disclosureMethod; + + /** + * 交底日期 + */ + @NotNull(message = "交底日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate disclosureDate; + + /** + * 交底地点 + */ + @NotBlank(message = "交底地点不能为空", groups = { AddGroup.class, EditGroup.class }) + private String disclosurePlace; + + /** + * 交底人 + */ + @NotNull(message = "交底人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String disclosurePerson; + + /** + * 交底对象(多个) + */ + @NotBlank(message = "交底对象(多个)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String disclosureObjects; + + /** + * 关键风险提示 + */ + @NotBlank(message = "关键风险提示不能为空", groups = { AddGroup.class, EditGroup.class }) + private String keyRiskTips; + + /** + * 安全注意事项 + */ + @NotBlank(message = "安全注意事项不能为空", groups = { AddGroup.class, EditGroup.class }) + private String safetyNotes; + + /** + * 交底状态 + */ + @NotBlank(message = "交底状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String presentationState; + + /** + * 审核标志 + */ + private String auditStatus; + + /** + * 应急措施说明 + */ + @NotBlank(message = "应急措施说明不能为空", groups = { AddGroup.class, EditGroup.class }) + private String outburstExplain; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/HseJsjdVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/HseJsjdVo.java new file mode 100644 index 00000000..122764af --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/HseJsjdVo.java @@ -0,0 +1,135 @@ +package org.dromara.safety.jsjd.domain.vo; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.safety.jsjd.domain.HseJsjd; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 安全技术交底视图对象 hse_jsjd + * + * @author Lion Li + * @date 2025-12-06 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = HseJsjd.class) +public class HseJsjdVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 交底编号 + */ + @ExcelProperty(value = "交底编号") + private String disclosureNo; + + /** + * 危大工程ID + */ + @ExcelProperty(value = "专项方案管理ID") + private Long masterId; + + /** + * 危大工程名称 + */ + private String deName; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 交底方式 + */ + @ExcelProperty(value = "交底方式") + private String disclosureMethod; + + /** + * 交底日期 + */ + @ExcelProperty(value = "交底日期") + private LocalDate disclosureDate; + + /** + * 交底地点 + */ + @ExcelProperty(value = "交底地点") + private String disclosurePlace; + + /** + * 交底人 + */ + @ExcelProperty(value = "交底人") + private String disclosurePerson; + + + + /** + * 交底对象(多个) + */ + @ExcelProperty(value = "交底对象(多个)") + private String disclosureObjects; + + /** + * 关键风险提示 + */ + @ExcelProperty(value = "关键风险提示") + private String keyRiskTips; + + /** + * 安全注意事项 + */ + @ExcelProperty(value = "安全注意事项") + private String safetyNotes; + + /** + * 交底状态 + */ + @ExcelProperty(value = "交底状态") + private String presentationState; + + /** + * 审核标志 + */ + @ExcelProperty(value = "审核标志") + private String auditStatus; + + /** + * 应急措施说明 + */ + @ExcelProperty(value = "应急措施说明") + private String outburstExplain; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/JsjgHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/JsjgHeadVo.java new file mode 100644 index 00000000..a506887b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/domain/vo/JsjgHeadVo.java @@ -0,0 +1,33 @@ +package org.dromara.safety.jsjd.domain.vo; + + +import lombok.Data; + +@Data +public class JsjgHeadVo { + + /** + * 危大工程总数 + */ + private Long wczs = 0L; + + /** + * 技术交底 总数 + */ + private Long jdzs = 0L; + + /** + * 技术交底 已完成 + */ + private Long jdywc = 0L; + + /** + * 技术交底 未完成 + */ + private Long jdwwc = 0L; + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/mapper/HseJsjdMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/mapper/HseJsjdMapper.java new file mode 100644 index 00000000..437fe986 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/mapper/HseJsjdMapper.java @@ -0,0 +1,15 @@ +package org.dromara.safety.jsjd.mapper; + +import org.dromara.safety.jsjd.domain.HseJsjd; +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 安全技术交底Mapper接口 + * + * @author Lion Li + * @date 2025-12-06 + */ +public interface HseJsjdMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/IHseJsjdService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/IHseJsjdService.java new file mode 100644 index 00000000..57c87e1e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/IHseJsjdService.java @@ -0,0 +1,74 @@ +package org.dromara.safety.jsjd.service; + +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.safety.jsjd.domain.bo.HseJsjdBo; +import org.dromara.safety.jsjd.domain.HseJsjd; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo; + +import java.util.Collection; +import java.util.List; + +/** + * 安全技术交底Service接口 + * + * @author Lion Li + * @date 2025-12-06 + */ +public interface IHseJsjdService extends IService{ + + /** + * 查询安全技术交底 + * + * @param id 主键 + * @return 安全技术交底 + */ + HseJsjdVo queryById(Long id); + + /** + * 分页查询安全技术交底列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 安全技术交底分页列表 + */ + TableDataInfo queryPageList(HseJsjdBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的安全技术交底列表 + * + * @param bo 查询条件 + * @return 安全技术交底列表 + */ + List queryList(HseJsjdBo bo); + + /** + * 新增安全技术交底 + * + * @param bo 安全技术交底 + * @return 是否新增成功 + */ + Boolean insertByBo(HseJsjdBo bo); + + /** + * 修改安全技术交底 + * + * @param bo 安全技术交底 + * @return 是否修改成功 + */ + Boolean updateByBo(HseJsjdBo bo); + + /** + * 校验并批量删除安全技术交底信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JsjgHeadVo listHead(HseJsjdBo bo); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/impl/HseJsjdServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/impl/HseJsjdServiceImpl.java new file mode 100644 index 00000000..dd5982d0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/jsjd/service/impl/HseJsjdServiceImpl.java @@ -0,0 +1,189 @@ +package org.dromara.safety.jsjd.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; +import org.dromara.safety.domain.HseSpecialPlan; +import org.dromara.safety.enums.AqEnums; +import org.dromara.safety.jsjd.domain.vo.JsjgHeadVo; +import org.dromara.safety.service.IHseSpecialPlanService; +import org.dromara.system.service.ISysOssService; +import org.springframework.stereotype.Service; +import org.dromara.safety.jsjd.domain.bo.HseJsjdBo; +import org.dromara.safety.jsjd.domain.vo.HseJsjdVo; +import org.dromara.safety.jsjd.domain.HseJsjd; +import org.dromara.safety.jsjd.mapper.HseJsjdMapper; +import org.dromara.safety.jsjd.service.IHseJsjdService; + +import java.util.*; + +/** + * 安全技术交底Service业务层处理 + * + * @author Lion Li + * @date 2025-12-06 + */ +@RequiredArgsConstructor +@Service +public class HseJsjdServiceImpl extends ServiceImpl implements IHseJsjdService { + + private final HseJsjdMapper baseMapper; + + private final ISysOssService sysOssService; + + private final IHseSpecialPlanService hseSpecialPlanService; + + + /** + * 查询安全技术交底 + * + * @param id 主键 + * @return 安全技术交底 + */ + @Override + public HseJsjdVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询安全技术交底列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 安全技术交底分页列表 + */ + @Override + public TableDataInfo queryPageList(HseJsjdBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的安全技术交底列表 + * + * @param bo 查询条件 + * @return 安全技术交底列表 + */ + @Override + public List queryList(HseJsjdBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(HseJsjdBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(HseJsjd::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDisclosureNo()), HseJsjd::getDisclosureNo, bo.getDisclosureNo()); + lqw.eq(bo.getMasterId() != null, HseJsjd::getMasterId, bo.getMasterId()); + lqw.eq(bo.getDeName() != null, HseJsjd::getDeName, bo.getDeName()); + lqw.eq(bo.getProjectId() != null, HseJsjd::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getDisclosureMethod()), HseJsjd::getDisclosureMethod, bo.getDisclosureMethod()); + lqw.eq(bo.getDisclosureDate() != null, HseJsjd::getDisclosureDate, bo.getDisclosureDate()); + lqw.eq(StringUtils.isNotBlank(bo.getDisclosurePlace()), HseJsjd::getDisclosurePlace, bo.getDisclosurePlace()); + lqw.eq(bo.getDisclosurePerson() != null, HseJsjd::getDisclosurePerson, bo.getDisclosurePerson()); + lqw.eq(StringUtils.isNotBlank(bo.getDisclosureObjects()), HseJsjd::getDisclosureObjects, bo.getDisclosureObjects()); + lqw.eq(StringUtils.isNotBlank(bo.getKeyRiskTips()), HseJsjd::getKeyRiskTips, bo.getKeyRiskTips()); + lqw.eq(StringUtils.isNotBlank(bo.getSafetyNotes()), HseJsjd::getSafetyNotes, bo.getSafetyNotes()); + lqw.eq(StringUtils.isNotBlank(bo.getPresentationState()), HseJsjd::getPresentationState, bo.getPresentationState()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), HseJsjd::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getOutburstExplain()), HseJsjd::getOutburstExplain, bo.getOutburstExplain()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), HseJsjd::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增安全技术交底 + * + * @param bo 安全技术交底 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(HseJsjdBo bo) { + HseJsjd add = MapstructUtils.convert(bo, HseJsjd.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("AQJSJD-"); + HseJsjdVo hseJsjdVo = baseMapper.selectVoOne(new LambdaQueryWrapper().eq(HseJsjd::getMasterId, bo.getMasterId())); + if (hseJsjdVo != null) throw new RuntimeException("该专项方案已被添加 "); + add.setDisclosureNo(banBen); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改安全技术交底 + * + * @param bo 安全技术交底 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(HseJsjdBo bo) { + HseJsjd update = MapstructUtils.convert(bo, HseJsjd.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(HseJsjd entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除安全技术交底信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + HseJsjdVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JsjgHeadVo listHead(HseJsjdBo bo) { + JsjgHeadVo jsjgHeadVo = new JsjgHeadVo(); + if (bo.getProjectId() == null) throw new RuntimeException("项目不能为空"); + Long l = hseSpecialPlanService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(HseSpecialPlan::getProjectId, bo.getProjectId())); + List hseJsjds = baseMapper.selectList(new LambdaQueryWrapper().eq(HseJsjd::getProjectId, bo.getProjectId())); + jsjgHeadVo.setWczs(l); + jsjgHeadVo.setJdzs(Long.valueOf(hseJsjds.size())); + jsjgHeadVo.setJdwwc(hseJsjds.stream().filter(hseJsjd -> hseJsjd.getPresentationState().equals(AqEnums.AQJDZT_F.getTypeValue())).count()); + jsjgHeadVo.setJdywc(hseJsjds.stream().filter(hseJsjd -> hseJsjd.getPresentationState().equals(AqEnums.AQJDZT_S.getTypeValue())).count()); + + return jsjgHeadVo; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseDangerArchiveService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseDangerArchiveService.java index 891bc1f1..01a06c03 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseDangerArchiveService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseDangerArchiveService.java @@ -7,6 +7,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; + import java.util.Collection; import java.util.List; @@ -67,4 +69,6 @@ public interface IHseDangerArchiveService extends IService{ * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + HseJsjdYuJkjcVo getJsjdYGcjk(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseDangerArchiveServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseDangerArchiveServiceImpl.java index 7be66158..cb7e5e91 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseDangerArchiveServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseDangerArchiveServiceImpl.java @@ -9,6 +9,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.safety.domain.vo.HseJsjdYuJkjcVo; +import org.dromara.safety.gcjkjl.domain.HseGcjk; +import org.dromara.safety.gcjkjl.service.IHseGcjkService; +import org.dromara.safety.jsjd.domain.HseJsjd; +import org.dromara.safety.jsjd.service.IHseJsjdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.dromara.safety.domain.bo.HseDangerArchiveBo; import org.dromara.safety.domain.vo.HseDangerArchiveVo; @@ -32,6 +39,14 @@ public class HseDangerArchiveServiceImpl extends ServiceImpl 0; } + + @Override + public HseJsjdYuJkjcVo getJsjdYGcjk(Long id) { + HseJsjdYuJkjcVo hseJsjdYuJkjcVo = new HseJsjdYuJkjcVo(); + if (id == null) throw new RuntimeException("危大工程不能为空"); + HseGcjk hseGcjk = hseGcjkService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(HseGcjk::getMasterId, id)); + if (hseGcjk != null){ + hseJsjdYuJkjcVo.setJsjdFile(hseGcjk.getFileId()); + } + + List hseJsjds = hseJsjdService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(HseJsjd::getMasterId, id)); + if (hseJsjds != null && hseJsjds.size() != 0){ + StringBuffer stringBuffer = new StringBuffer(); + hseJsjds.forEach(hseJsjd -> { + stringBuffer.append(hseJsjd.getFileId()).append(","); + }); + hseJsjdYuJkjcVo.setGcjkFile(stringBuffer.toString()); + } + + return hseJsjdYuJkjcVo; + } }