diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index 6876167c..84e30e7e 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -312,7 +312,7 @@ springdoc: - group: 33.摄像头模块 packages-to-scan: org.dromara.other - group: 34.机械安全模块 - packages-to-scan: org.dromara.mechanical.jxaqgl + packages-to-scan: org.dromara.mechanical # knife4j的增强配置,不需要增强可以不配 knife4j: enable: true diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/controller/JxAqjcglController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/controller/JxAqjcglController.java new file mode 100644 index 00000000..3a601c65 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/controller/JxAqjcglController.java @@ -0,0 +1,149 @@ +package org.dromara.mechanical.jxaqgl.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.device.domain.bo.DeviceInfoBo; +import org.dromara.device.domain.vo.DeviceInfoVo; +import org.dromara.device.service.IDeviceInfoService; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo; +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.mechanical.jxaqgl.domain.vo.JxAqjcglVo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械安全检查记录 + * + * @author Lion Li + * @date 2025-12-03 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxaqgl/aqjcgl") +public class JxAqjcglController extends BaseController { + + private final IJxAqjcglService jxAqjcglService; + + + private final IDeviceInfoService deviceInfoService; + + + + + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("jxaqgl:aqjcgl:list") + @GetMapping("/getlist") + public TableDataInfo list(DeviceInfoBo bo, PageQuery pageQuery) { + return deviceInfoService.queryPageList(bo, pageQuery); + } + + + + /** + * 查询近30天机械安全检查记录头部数据 + */ + @SaCheckPermission("jxaqgl:aqjcgl:list") + @GetMapping("/listHead") + public R listHead(JxAqjcglBo bo, PageQuery pageQuery) { + return R.ok(jxAqjcglService.listHead(bo, pageQuery)); + } + + + /** + * 查询近6月机械安全检查结果趋势 + */ + @SaCheckPermission("jxaqgl:aqjcgl:list") + @GetMapping("/listHeadJgqs") + public List listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) { + return jxAqjcglService.listHeadJgqs(bo, pageQuery); + } + + + + + /** + * 查询机械安全检查记录列表 + */ + @SaCheckPermission("jxaqgl:aqjcgl:list") + @GetMapping("/list") + public TableDataInfo list(JxAqjcglBo bo, PageQuery pageQuery) { + return jxAqjcglService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械安全检查记录列表 + */ + @SaCheckPermission("jxaqgl:aqjcgl:export") + @Log(title = "机械安全检查记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxAqjcglBo bo, HttpServletResponse response) { + List list = jxAqjcglService.queryList(bo); + ExcelUtil.exportExcel(list, "机械安全检查记录", JxAqjcglVo.class, response); + } + + /** + * 获取机械安全检查记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxaqgl:aqjcgl:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxAqjcglService.queryById(id)); + } + + /** + * 新增机械安全检查记录 + */ + @SaCheckPermission("jxaqgl:aqjcgl:add") + @Log(title = "机械安全检查记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxAqjcglBo bo) { + return toAjax(jxAqjcglService.insertByBo(bo)); + } + + /** + * 修改机械安全检查记录 + */ + @SaCheckPermission("jxaqgl:aqjcgl:edit") + @Log(title = "机械安全检查记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxAqjcglBo bo) { + return toAjax(jxAqjcglService.updateByBo(bo)); + } + + /** + * 删除机械安全检查记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxaqgl:aqjcgl:remove") + @Log(title = "机械安全检查记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxAqjcglService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcgl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcgl.java new file mode 100644 index 00000000..4fd181d4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcgl.java @@ -0,0 +1,125 @@ +package org.dromara.mechanical.jxaqgl.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; + +/** + * 机械安全检查记录对象 jx_aqjcgl + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_aqjcgl") +public class JxAqjcgl extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 检查单编号 + */ + private String inspectionOrderNo; + + /** + * 检查日期 + */ + private LocalDate inspectionDate; + + /** + * 检查类型 + */ + private String inspectionType; + + /** + * 检查人 + */ + private Long inspector; + + /** + * 参与人(多个用逗号分隔) + */ + private String participants; + + /** + * 所属项目(如田东) + */ + private Long projectStation; + + /** + * 所属项目名称(如田东) + */ + private String projectName; + + /** + * 机械设备id + */ + private String equipmentId; + + /** + * 机械设备名称 + */ + private String equipmentName; + + /** + * 不通过原因 + */ + private String notPassCause; + /** + * 机械设备编号 + */ + private String equipmentCode; + + /** + * 设备类型(下拉选择项) + */ + private String equipmentType; + + /** + * 检查结果 + */ + private String inspectionResult; + + /** + * 风险等级 + */ + private String riskGrade; + + /** + * 整改责任人 + */ + private Long abarbeitung; + + /** + * 整改日期 + */ + private LocalDate abarbeitungDate; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + /** + * 文件id (多个文件逗号分隔) + */ + private String pdfId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglJcnr.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglJcnr.java new file mode 100644 index 00000000..f8ad6f4e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglJcnr.java @@ -0,0 +1,46 @@ +package org.dromara.mechanical.jxaqgl.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 机械安全检查记录——检查内容对象 jx_aqjcgl_jcnr + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_aqjcgl_jcnr") +public class JxAqjcglJcnr extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 主表ID + */ + private Long masterId; + + /** + * 检查内容value + */ + private String examineValue; + + /** + * 检查内容数据 + */ + private String examineContent; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglWtxq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglWtxq.java new file mode 100644 index 00000000..f89a98c7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/JxAqjcglWtxq.java @@ -0,0 +1,41 @@ +package org.dromara.mechanical.jxaqgl.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 机械安全检查记录——问题详情对象 jx_aqjcgl_wtxq + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_aqjcgl_wtxq") +public class JxAqjcglWtxq extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 主表ID + */ + private Long masterId; + + /** + * 问题详情 + */ + private String issueParticulars; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/MonthDateRange.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/MonthDateRange.java new file mode 100644 index 00000000..2340a1bf --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/MonthDateRange.java @@ -0,0 +1,24 @@ +package org.dromara.mechanical.jxaqgl.domain; + + +import lombok.Data; + +import java.time.LocalDate; + +@Data +public class MonthDateRange { + + private LocalDate startDate; // 当月1号 + private LocalDate endDate; // 当月最后一天 + private String yearMonth; // 年月标识 + + + + + // 构造方法 + public MonthDateRange(LocalDate startDate, LocalDate endDate, String yearMonth) { + this.startDate = startDate; + this.endDate = endDate; + this.yearMonth = yearMonth; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglBo.java new file mode 100644 index 00000000..a3d4d15a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglBo.java @@ -0,0 +1,148 @@ +package org.dromara.mechanical.jxaqgl.domain.bo; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +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.util.List; + +/** + * 机械安全检查记录业务对象 jx_aqjcgl + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxAqjcgl.class, reverseConvertGenerate = false) +public class JxAqjcglBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 检查单编号 + */ + private String inspectionOrderNo; + + /** + * 检查日期 + */ + @NotNull(message = "检查日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate inspectionDate; + + /** + * 检查类型 + */ + @NotBlank(message = "检查类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inspectionType; + + /** + * 检查人 + */ + @NotNull(message = "检查人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inspector; + + /** + * 参与人(多个用逗号分隔) + */ + private String participants; + + /** + * 所属项目(如田东) + */ + @NotNull(message = "所属项目(如田东)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectStation; + + /** + * 所属项目名称(如田东) + */ + @NotNull(message = "所属项目名称(如田东)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 机械设备id + */ + @NotBlank(message = "机械设备id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentId; + + /** + * 机械设备名称 + */ + @NotBlank(message = "机械设备名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 机械设备编号 + */ +// @NotBlank(message = "机械设备编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentCode; + + /** + * 设备类型(下拉选择项) + */ + @NotBlank(message = "设备类型(下拉选择项)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentType; + + /** + * 检查结果 + */ + @NotBlank(message = "检查结果不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inspectionResult; + + /** + * 不通过原因 + */ + private String notPassCause; + + /** + * 风险等级 + */ + private String riskGrade; + + /** + * 整改责任人 + */ + private Long abarbeitung; + + /** + * 整改日期 + */ + private LocalDate abarbeitungDate; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * 文件id (多个文件逗号分隔) + */ + private String pdfId; + + + /** + * 检查内容 + */ + private List jcnrList; + /** + * 问题详情 + */ + private List wtxqBoList; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglJcnrBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglJcnrBo.java new file mode 100644 index 00000000..8f712e40 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglJcnrBo.java @@ -0,0 +1,47 @@ +package org.dromara.mechanical.jxaqgl.domain.bo; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +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.*; + +/** + * 机械安全检查记录——检查内容业务对象 jx_aqjcgl_jcnr + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxAqjcglJcnr.class, reverseConvertGenerate = false) +public class JxAqjcglJcnrBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 主表ID + */ + @NotNull(message = "主表ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 检查内容key + */ + @NotBlank(message = "检查内容value不能为空", groups = { AddGroup.class, EditGroup.class }) + private String examineValue; + /** + * 检查内容数据 + */ + @NotBlank(message = "检查内容数据不能为空", groups = { AddGroup.class, EditGroup.class }) + private String examineContent; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglWtxqBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglWtxqBo.java new file mode 100644 index 00000000..f9f8641b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/bo/JxAqjcglWtxqBo.java @@ -0,0 +1,42 @@ +package org.dromara.mechanical.jxaqgl.domain.bo; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +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.*; + +/** + * 机械安全检查记录——问题详情业务对象 jx_aqjcgl_wtxq + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxAqjcglWtxq.class, reverseConvertGenerate = false) +public class JxAqjcglWtxqBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 主表ID + */ + @NotNull(message = "主表ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 问题详情 + */ + @NotBlank(message = "问题详情不能为空", groups = { AddGroup.class, EditGroup.class }) + private String issueParticulars; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAnqjcgHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAnqjcgHeadVo.java new file mode 100644 index 00000000..df75a781 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAnqjcgHeadVo.java @@ -0,0 +1,69 @@ +package org.dromara.mechanical.jxaqgl.domain.vo; + + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class JxAnqjcgHeadVo implements Serializable { + + /** + * 月份 + */ + private String month = ""; + + /** + * 总数 + */ + private Long zs = 0L; + + /** + * 未通过 + */ + private Long wtg = 0L; + + /** + * 通过 + */ + private Long tg = 0L; + + + /** + * 待检测 + */ + private Long djc = 0L; + + + /** + * 整改完成率 + */ +// private String wcl = "0%"; + + /** + * 日常巡检 + */ + private Long rcxj = 0L; + + /** + * 周检 + */ + private Long zj = 0L; + + /** + * 月检 + */ + private Long yj = 0L; + + /** + * 专项检查 + */ + private Long zxjc = 0L; + /** + * 复检 + */ + private Long fj = 0L; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglJcnrVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglJcnrVo.java new file mode 100644 index 00000000..3490a512 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglJcnrVo.java @@ -0,0 +1,55 @@ +package org.dromara.mechanical.jxaqgl.domain.vo; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +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.util.Date; + + + +/** + * 机械安全检查记录——检查内容视图对象 jx_aqjcgl_jcnr + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxAqjcglJcnr.class) +public class JxAqjcglJcnrVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 主表ID + */ + @ExcelProperty(value = "主表ID") + private Long masterId; + + /** + * 检查内容key + */ + @ExcelProperty(value = "检查内容value") + private String examineValue; + /** + * 检查内容数据 + */ + @ExcelProperty(value = "检查内容数据") + private String examineContent; + + +} 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 new file mode 100644 index 00000000..224e2f0d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglVo.java @@ -0,0 +1,206 @@ +package org.dromara.mechanical.jxaqgl.domain.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +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 org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + + +/** + * 机械安全检查记录视图对象 jx_aqjcgl + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxAqjcgl.class) +public class JxAqjcglVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 检查单编号 + */ + @ExcelProperty(value = "检查单编号") + private String inspectionOrderNo; + + /** + * 检查日期 + */ + @ExcelProperty(value = "检查日期") + private LocalDate inspectionDate; + + /** + * 检查类型 + */ + @ExcelProperty(value = "检查类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_jclx") + private String inspectionType; + + /** + * 检查人 + */ + @ExcelProperty(value = "检查人") + private Long inspector; + + /** + * 检查人 + */ + @ExcelProperty(value = "检查人") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspector") + private String inspectorName; + + /** + * 参与人(多个用逗号分隔) + */ + @ExcelProperty(value = "参与人", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个用逗号分隔") + private String participants; + + /** + * 所属项目(如田东) + */ + @ExcelProperty(value = "所属项目(如田东)") + private Long projectStation; + + /** + * 所属项目名称(如田东) + */ + @ExcelProperty(value = "所属项目名称(如田东)") + private String projectName; + + /** + * 机械设备id + */ + @ExcelProperty(value = "机械设备id") + private String equipmentId; + + /** + * 机械设备名称 + */ + @ExcelProperty(value = "机械设备名称") + private String equipmentName; + + /** + * 机械设备编号 + */ + @ExcelProperty(value = "机械设备编号") + private String equipmentCode; + + /** + * 设备类型 + */ + @ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class) + private String equipmentType; + + /** + * 检查结果 + */ + @ExcelProperty(value = "检查结果", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_jcjg") + private String inspectionResult; + + /** + * 风险等级 + */ + @ExcelProperty(value = "风险等级", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_fxdj") + private String riskGrade; + + /** + * 整改责任人 + */ + @ExcelProperty(value = "整改责任人") + private Long abarbeitung; + + + /** + * 整改责任人 + */ + @ExcelProperty(value = "整改责任人") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "abarbeitung") + private String abarbeitungName; + + + /** + * 整改日期 + */ + @ExcelProperty(value = "整改日期") + private LocalDate abarbeitungDate; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + /** + * 文件id (多个文件逗号分隔) + */ + private String pdfId; + + /** + * 不通过原因 + */ + private String notPassCause; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建者 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + @TableField(fill = FieldFill.INSERT) + private Long createByname; + + /** + * 检查内容 + */ + private List jcnrList; + /** + * 问题详情 + */ + private List wtxqBoList; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglWtxqVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglWtxqVo.java new file mode 100644 index 00000000..ccd7acc9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/domain/vo/JxAqjcglWtxqVo.java @@ -0,0 +1,50 @@ +package org.dromara.mechanical.jxaqgl.domain.vo; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +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.util.Date; + + + +/** + * 机械安全检查记录——问题详情视图对象 jx_aqjcgl_wtxq + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxAqjcglWtxq.class) +public class JxAqjcglWtxqVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 主表ID + */ + @ExcelProperty(value = "主表ID") + private Long masterId; + + /** + * 问题详情 + */ + @ExcelProperty(value = "问题详情") + private String issueParticulars; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglJcnrMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglJcnrMapper.java new file mode 100644 index 00000000..89ec5c0b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglJcnrMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxaqgl.mapper; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械安全检查记录——检查内容Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxAqjcglJcnrMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglMapper.java new file mode 100644 index 00000000..5987f759 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxaqgl.mapper; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械安全检查记录Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxAqjcglMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglWtxqMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglWtxqMapper.java new file mode 100644 index 00000000..f3eb44c1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/mapper/JxAqjcglWtxqMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxaqgl.mapper; + +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械安全检查记录——问题详情Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxAqjcglWtxqMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglJcnrService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglJcnrService.java new file mode 100644 index 00000000..e2fb79c9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglJcnrService.java @@ -0,0 +1,70 @@ +package org.dromara.mechanical.jxaqgl.service; + +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械安全检查记录——检查内容Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxAqjcglJcnrService extends IService{ + + /** + * 查询机械安全检查记录——检查内容 + * + * @param id 主键 + * @return 机械安全检查记录——检查内容 + */ + JxAqjcglJcnrVo queryById(Long id); + + /** + * 分页查询机械安全检查记录——检查内容列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录——检查内容分页列表 + */ + TableDataInfo queryPageList(JxAqjcglJcnrBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械安全检查记录——检查内容列表 + * + * @param bo 查询条件 + * @return 机械安全检查记录——检查内容列表 + */ + List queryList(JxAqjcglJcnrBo bo); + + /** + * 新增机械安全检查记录——检查内容 + * + * @param bo 机械安全检查记录——检查内容 + * @return 是否新增成功 + */ + Boolean insertByBo(JxAqjcglJcnrBo bo); + + /** + * 修改机械安全检查记录——检查内容 + * + * @param bo 机械安全检查记录——检查内容 + * @return 是否修改成功 + */ + Boolean updateByBo(JxAqjcglJcnrBo bo); + + /** + * 校验并批量删除机械安全检查记录——检查内容信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglService.java new file mode 100644 index 00000000..b376500d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglService.java @@ -0,0 +1,76 @@ +package org.dromara.mechanical.jxaqgl.service; + +import org.dromara.common.core.domain.R; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械安全检查记录Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxAqjcglService extends IService{ + + /** + * 查询机械安全检查记录 + * + * @param id 主键 + * @return 机械安全检查记录 + */ + JxAqjcglVo queryById(Long id); + + /** + * 分页查询机械安全检查记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录分页列表 + */ + TableDataInfo queryPageList(JxAqjcglBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械安全检查记录列表 + * + * @param bo 查询条件 + * @return 机械安全检查记录列表 + */ + List queryList(JxAqjcglBo bo); + + /** + * 新增机械安全检查记录 + * + * @param bo 机械安全检查记录 + * @return 是否新增成功 + */ + Boolean insertByBo(JxAqjcglBo bo); + + /** + * 修改机械安全检查记录 + * + * @param bo 机械安全检查记录 + * @return 是否修改成功 + */ + Boolean updateByBo(JxAqjcglBo bo); + + /** + * 校验并批量删除机械安全检查记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery); + + List listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglWtxqService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglWtxqService.java new file mode 100644 index 00000000..eaccc5bc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/IJxAqjcglWtxqService.java @@ -0,0 +1,70 @@ +package org.dromara.mechanical.jxaqgl.service; + +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械安全检查记录——问题详情Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxAqjcglWtxqService extends IService{ + + /** + * 查询机械安全检查记录——问题详情 + * + * @param id 主键 + * @return 机械安全检查记录——问题详情 + */ + JxAqjcglWtxqVo queryById(Long id); + + /** + * 分页查询机械安全检查记录——问题详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录——问题详情分页列表 + */ + TableDataInfo queryPageList(JxAqjcglWtxqBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械安全检查记录——问题详情列表 + * + * @param bo 查询条件 + * @return 机械安全检查记录——问题详情列表 + */ + List queryList(JxAqjcglWtxqBo bo); + + /** + * 新增机械安全检查记录——问题详情 + * + * @param bo 机械安全检查记录——问题详情 + * @return 是否新增成功 + */ + Boolean insertByBo(JxAqjcglWtxqBo bo); + + /** + * 修改机械安全检查记录——问题详情 + * + * @param bo 机械安全检查记录——问题详情 + * @return 是否修改成功 + */ + Boolean updateByBo(JxAqjcglWtxqBo bo); + + /** + * 校验并批量删除机械安全检查记录——问题详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglJcnrServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglJcnrServiceImpl.java new file mode 100644 index 00000000..0841cd3d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglJcnrServiceImpl.java @@ -0,0 +1,132 @@ +package org.dromara.mechanical.jxaqgl.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.springframework.stereotype.Service; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr; +import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglJcnrMapper; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglJcnrService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械安全检查记录——检查内容Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxAqjcglJcnrServiceImpl extends ServiceImpl implements IJxAqjcglJcnrService { + + private final JxAqjcglJcnrMapper baseMapper; + + /** + * 查询机械安全检查记录——检查内容 + * + * @param id 主键 + * @return 机械安全检查记录——检查内容 + */ + @Override + public JxAqjcglJcnrVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械安全检查记录——检查内容列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录——检查内容分页列表 + */ + @Override + public TableDataInfo queryPageList(JxAqjcglJcnrBo 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(JxAqjcglJcnrBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxAqjcglJcnrBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxAqjcglJcnr::getId); + lqw.eq(bo.getMasterId() != null, JxAqjcglJcnr::getMasterId, bo.getMasterId()); + lqw.eq(StringUtils.isNotBlank(bo.getExamineContent()), JxAqjcglJcnr::getExamineContent, bo.getExamineContent()); + return lqw; + } + + /** + * 新增机械安全检查记录——检查内容 + * + * @param bo 机械安全检查记录——检查内容 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxAqjcglJcnrBo bo) { + JxAqjcglJcnr add = MapstructUtils.convert(bo, JxAqjcglJcnr.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械安全检查记录——检查内容 + * + * @param bo 机械安全检查记录——检查内容 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxAqjcglJcnrBo bo) { + JxAqjcglJcnr update = MapstructUtils.convert(bo, JxAqjcglJcnr.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxAqjcglJcnr entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械安全检查记录——检查内容信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglServiceImpl.java new file mode 100644 index 00000000..f25727ca --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglServiceImpl.java @@ -0,0 +1,324 @@ +package org.dromara.mechanical.jxaqgl.service.impl; + +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; +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.jxaqgl.domain.JxAqjcglJcnr; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxaqgl.domain.MonthDateRange; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglJcnrService; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo; +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService; +import org.dromara.mechanical.jxzgbh.service.IJxZgxxService; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl; +import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglMapper; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.util.*; + +/** + * 机械安全检查记录Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxAqjcglServiceImpl extends ServiceImpl implements IJxAqjcglService { + + private final JxAqjcglMapper baseMapper; + + private final IJxAqjcglJcnrService jxAqjcglJcnrService; + + private final IJxAqjcglWtxqService jxAqjcglWtxqService; + + private final IJxYhzgbhService jxYhzgbhService; + + private final SysOssServiceImpl sysOssService; + + + /** + * 查询机械安全检查记录 + * + * @param id 主键 + * @return 机械安全检查记录 + */ + @Override + public JxAqjcglVo queryById(Long id){ + JxAqjcglVo jxAqjcglVo = baseMapper.selectVoById(id); + saveValue(jxAqjcglVo); + return jxAqjcglVo; + } + + private void saveValue(JxAqjcglVo jxAqjcglVo) { + if (jxAqjcglVo != null) { + List jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxAqjcglWtxq::getMasterId, jxAqjcglVo.getId())); + List jxAqjcglJcnrs = jxAqjcglJcnrService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxAqjcglJcnr::getMasterId, jxAqjcglVo.getId())); + jxAqjcglVo.setWtxqBoList(jxAqjcglWtxqs); + jxAqjcglVo.setJcnrList(jxAqjcglJcnrs); + } + } + + /** + * 分页查询机械安全检查记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录分页列表 + */ + @Override + public TableDataInfo queryPageList(JxAqjcglBo 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(JxAqjcglBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxAqjcglBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxAqjcgl::getId); + lqw.eq(StringUtils.isNotBlank(bo.getInspectionOrderNo()), JxAqjcgl::getInspectionOrderNo, bo.getInspectionOrderNo()); + lqw.eq(bo.getInspectionDate() != null, JxAqjcgl::getInspectionDate, bo.getInspectionDate()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectionType()), JxAqjcgl::getInspectionType, bo.getInspectionType()); + lqw.eq(bo.getInspector() != null, JxAqjcgl::getInspector, bo.getInspector()); + lqw.eq(StringUtils.isNotBlank(bo.getParticipants()), JxAqjcgl::getParticipants, bo.getParticipants()); + lqw.eq(bo.getProjectStation() != null, JxAqjcgl::getProjectStation, bo.getProjectStation()); + lqw.like(bo.getProjectName() != null, JxAqjcgl::getProjectName, bo.getProjectName()); + lqw.eq(StringUtils.isNotBlank(bo.getEquipmentId()), JxAqjcgl::getEquipmentId, bo.getEquipmentId()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxAqjcgl::getEquipmentName, bo.getEquipmentName()); + lqw.eq(StringUtils.isNotBlank(bo.getEquipmentCode()), JxAqjcgl::getEquipmentCode, bo.getEquipmentCode()); + lqw.eq(StringUtils.isNotBlank(bo.getEquipmentType()), JxAqjcgl::getEquipmentType, bo.getEquipmentType()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectionResult()), JxAqjcgl::getInspectionResult, bo.getInspectionResult()); + lqw.eq(StringUtils.isNotBlank(bo.getRiskGrade()), JxAqjcgl::getRiskGrade, bo.getRiskGrade()); + lqw.eq(bo.getAbarbeitung() != null, JxAqjcgl::getAbarbeitung, bo.getAbarbeitung()); + lqw.eq(bo.getAbarbeitungDate() != null, JxAqjcgl::getAbarbeitungDate, bo.getAbarbeitungDate()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), JxAqjcgl::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxAqjcgl::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械安全检查记录 + * + * @param bo 机械安全检查记录 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(JxAqjcglBo bo) { + JxAqjcgl add = MapstructUtils.convert(bo, JxAqjcgl.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("JXAQJCJL-"); + add.setInspectionOrderNo(banBen); + + boolean flag = baseMapper.insert(add) > 0; +// 问题情况添加 + List wtxqBoList = bo.getWtxqBoList(); + if (wtxqBoList != null && wtxqBoList.size() > 0) { + wtxqBoList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(add.getId())); + jxAqjcglWtxqService.saveBatch(MapstructUtils.convert(wtxqBoList, JxAqjcglWtxq.class)); + } + +// 检查内容添加 + List jcnrList = bo.getJcnrList(); + if (jcnrList != null && jcnrList.size() > 0) { + jcnrList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(add.getId())); + jxAqjcglJcnrService.saveBatch(MapstructUtils.convert(jcnrList, JxAqjcglJcnr.class)); + } + + return flag; + } + + /** + * 修改机械安全检查记录 + * + * @param bo 机械安全检查记录 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(JxAqjcglBo bo) { + JxAqjcgl update = MapstructUtils.convert(bo, JxAqjcgl.class); + validEntityBeforeSave(update); + if ("2".equals(bo.getInspectionResult())){ + JxYhzgbh jxYhzgbh = jxYhzgbhService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(JxYhzgbh::getMasterId, update.getId())); + if (jxYhzgbh != null) throw new ServiceException("该数据已存在整改数据"); +// 不通过转为整改数据 + JxYhzgbhBo jxYhzgbhBo = new JxYhzgbhBo(); + String banBen = BatchNumberGenerator.generateBatchNumber("JXZGBH-"); + jxYhzgbhBo.setInspectionOrderNo(banBen); + jxYhzgbhBo.setMasterId(bo.getId()); + jxYhzgbhBo.setInspectionJcdNo(bo.getInspectionOrderNo()); + jxYhzgbhBo.setInspector(bo.getInspector()); + jxYhzgbhBo.setRiskGrade(bo.getRiskGrade()); + jxYhzgbhBo.setYhly("1"); + jxYhzgbhBo.setReviewState("2"); + jxYhzgbhBo.setAbarbeitungState("1"); + jxYhzgbhBo.setEquipmentName(bo.getEquipmentName()); + jxYhzgbhBo.setDiscoverDate(bo.getInspectionDate()); + jxYhzgbhBo.setDiscoverId(bo.getCreateBy()); + jxYhzgbhService.insertByBo(jxYhzgbhBo); + + } + // 问题情况添加 + List wtxqBoList = bo.getWtxqBoList(); + jxAqjcglWtxqService.getBaseMapper().delete(new LambdaQueryWrapper().eq(JxAqjcglWtxq::getMasterId, update.getId())); + if (wtxqBoList != null && wtxqBoList.size() > 0) { + wtxqBoList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(update.getId())); + jxAqjcglWtxqService.saveBatch(MapstructUtils.convert(wtxqBoList, JxAqjcglWtxq.class)); + } + +// 检查内容添加 + List jcnrList = bo.getJcnrList(); + jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper().eq(JxAqjcglJcnr::getMasterId, update.getId())); + if (jcnrList != null && jcnrList.size() > 0) { + jcnrList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(update.getId())); + jxAqjcglJcnrService.saveBatch(MapstructUtils.convert(jcnrList, JxAqjcglJcnr.class)); + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxAqjcgl entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械安全检查记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + + for (Long id : ids) { + JxAqjcglVo 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 (vo.getPdfId()!= null && !vo.getPdfId().isEmpty()){ + List list = Arrays.stream(vo.getPdfId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + jxAqjcglWtxqService.getBaseMapper().delete(new LambdaQueryWrapper().in(JxAqjcglWtxq::getMasterId, ids)); + jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper().in(JxAqjcglJcnr::getMasterId, ids)); + + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery) { + JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo(); + List jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper().le(JxAqjcgl::getCreateTime, LocalDate.now().plusDays(1)).ge(JxAqjcgl::getCreateTime, LocalDate.now().minusDays(29))); + if (jxAqjcgls != null && jxAqjcgls.size() > 0) { + jxAnqjcgHeadVo.setZs(Long.valueOf(jxAqjcgls.size())); + jxAnqjcgHeadVo.setTg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("1")).count()); + jxAnqjcgHeadVo.setWtg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("2")).count()); + jxAnqjcgHeadVo.setDjc(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("3")).count()); + + jxAnqjcgHeadVo.setRcxj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("1")).count()); + jxAnqjcgHeadVo.setZj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("2")).count()); + jxAnqjcgHeadVo.setYj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("3")).count()); + jxAnqjcgHeadVo.setZxjc(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("4")).count()); + jxAnqjcgHeadVo.setFj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("5")).count()); + } + return jxAnqjcgHeadVo; + } + + @Override + public List listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) { + List monthRanges = getLast6MonthsRange(); + ArrayList jxAnqjcgHeadVos = new ArrayList<>(); + + for (MonthDateRange range : monthRanges) { + JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo(); + List jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper().le(JxAqjcgl::getCreateTime, range.getEndDate()).ge(JxAqjcgl::getCreateTime, range.getStartDate())); + jxAnqjcgHeadVo.setMonth(range.getYearMonth()); + if (jxAqjcgls != null && jxAqjcgls.size() > 0) { + jxAnqjcgHeadVo.setZs(Long.valueOf(jxAqjcgls.size())); + jxAnqjcgHeadVo.setWtg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("2")).count()); + } + jxAnqjcgHeadVos.add(jxAnqjcgHeadVo); + } + + return jxAnqjcgHeadVos; + } + + + /** + * 获取近6个月的每月完整日期范围 + * @return 包含6个 MonthDateRange 对象的列表(按「当前月→最早月」排序) + */ + public static List getLast6MonthsRange() { + List monthRangeList = new ArrayList<>(); + LocalDate today = LocalDate.now(); + + // 循环6次:当前月(i=0)、前1月(i=1)...前5月(i=5) + for (int i = 0; i < 6; i++) { + // 1. 获取目标月的1号(核心:先减月份,再设为当月1号,避免日期异常) + LocalDate monthFirstDay = today.minusMonths(i).withDayOfMonth(1); + + // 2. 获取目标月的最后一天(下个月1号 - 1天) + LocalDate monthLastDay = monthFirstDay.plusMonths(1).minusDays(1); + + // 3. 生成年月标识(如 "2024-05") + String yearMonth = monthFirstDay.toString().substring(0, 7); // 截取 yyyy-MM 部分 + + // 4. 封装到对象并添加到列表 + monthRangeList.add(new MonthDateRange(monthFirstDay, monthLastDay, yearMonth)); + } + + return monthRangeList; + } +} + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglWtxqServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglWtxqServiceImpl.java new file mode 100644 index 00000000..526b0046 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxaqgl/service/impl/JxAqjcglWtxqServiceImpl.java @@ -0,0 +1,132 @@ +package org.dromara.mechanical.jxaqgl.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.springframework.stereotype.Service; +import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo; +import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglWtxqMapper; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械安全检查记录——问题详情Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxAqjcglWtxqServiceImpl extends ServiceImpl implements IJxAqjcglWtxqService { + + private final JxAqjcglWtxqMapper baseMapper; + + /** + * 查询机械安全检查记录——问题详情 + * + * @param id 主键 + * @return 机械安全检查记录——问题详情 + */ + @Override + public JxAqjcglWtxqVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械安全检查记录——问题详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械安全检查记录——问题详情分页列表 + */ + @Override + public TableDataInfo queryPageList(JxAqjcglWtxqBo 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(JxAqjcglWtxqBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxAqjcglWtxqBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxAqjcglWtxq::getId); + lqw.eq(bo.getMasterId() != null, JxAqjcglWtxq::getMasterId, bo.getMasterId()); + lqw.eq(StringUtils.isNotBlank(bo.getIssueParticulars()), JxAqjcglWtxq::getIssueParticulars, bo.getIssueParticulars()); + return lqw; + } + + /** + * 新增机械安全检查记录——问题详情 + * + * @param bo 机械安全检查记录——问题详情 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxAqjcglWtxqBo bo) { + JxAqjcglWtxq add = MapstructUtils.convert(bo, JxAqjcglWtxq.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械安全检查记录——问题详情 + * + * @param bo 机械安全检查记录——问题详情 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxAqjcglWtxqBo bo) { + JxAqjcglWtxq update = MapstructUtils.convert(bo, JxAqjcglWtxq.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxAqjcglWtxq entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械安全检查记录——问题详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/controller/JxSgxxjlbController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/controller/JxSgxxjlbController.java new file mode 100644 index 00000000..7bbcf848 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/controller/JxSgxxjlbController.java @@ -0,0 +1,137 @@ +package org.dromara.mechanical.jxsgjl.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.device.domain.bo.DeviceInfoBo; +import org.dromara.device.domain.vo.DeviceInfoVo; +import org.dromara.device.service.IDeviceInfoService; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead; +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.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; +import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo; +import org.dromara.mechanical.jxsgjl.service.IJxSgxxjlbService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械事故信息记录 + * + * @author Lion Li + * @date 2025-12-04 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxsgjl/sgxxjlb") +public class JxSgxxjlbController extends BaseController { + + private final IJxSgxxjlbService jxSgxxjlbService; + + + + private final IDeviceInfoService deviceInfoService; + + + + + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:list") + @GetMapping("/getlist") + public TableDataInfo list(DeviceInfoBo bo, PageQuery pageQuery) { + return deviceInfoService.queryPageList(bo, pageQuery); + } + + + /** + * 查询机械事故信息记录列表 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:list") + @GetMapping("/list") + public TableDataInfo list(JxSgxxjlbBo bo, PageQuery pageQuery) { + return jxSgxxjlbService.queryPageList(bo, pageQuery); + } + + /** + * 查询机械事故记录头部数据 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:list") + @GetMapping("/getHeadData") + public R getHeadData() { + return R.ok(jxSgxxjlbService.getHeadData()); + } + + + /** + * 导出机械事故信息记录列表 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:export") + @Log(title = "机械事故信息记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxSgxxjlbBo bo, HttpServletResponse response) { + List list = jxSgxxjlbService.queryList(bo); + ExcelUtil.exportExcel(list, "机械事故信息记录", JxSgxxjlbVo.class, response); + } + + /** + * 获取机械事故信息记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxSgxxjlbService.queryById(id)); + } + + /** + * 新增机械事故信息记录 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:add") + @Log(title = "机械事故信息记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxSgxxjlbBo bo) { + return toAjax(jxSgxxjlbService.insertByBo(bo)); + } + + /** + * 修改机械事故信息记录 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:edit") + @Log(title = "机械事故信息记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxSgxxjlbBo bo) { + return toAjax(jxSgxxjlbService.updateByBo(bo)); + } + + /** + * 删除机械事故信息记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxsgjl:sgxxjlb:remove") + @Log(title = "机械事故信息记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxSgxxjlbService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/JxSgxxjlb.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/JxSgxxjlb.java new file mode 100644 index 00000000..6b7c3ad4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/JxSgxxjlb.java @@ -0,0 +1,139 @@ +package org.dromara.mechanical.jxsgjl.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 机械事故信息记录对象 jx_sgxxjlb + * + * @author Lion Li + * @date 2025-12-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_sgxxjlb") +public class JxSgxxjlb extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id") + private Long id; + + /** + * 事故编号(如SGJL-20230620-001) + */ + private String accidentCode; + + /** + * 事故等级(下拉选择) + */ + private String accidentLevel; + + /** + * 事故类型(下拉选择) + */ + private String accidentType; + + /** + * 设备名称(下拉选择) + */ + private String equipmentName; + + /** + * 设备台账id + */ + private String equipmentId; + + /** + * 发生时间 + */ + private LocalDateTime occurrenceTime; + + /** + * 发生地点 + */ + private String occurrencePlace; + + /** + * 事故描述(详细经过) + */ + private String accidentDescription; + + /** + * 直接损失金额(元) + */ + private BigDecimal directLoss; + + /** + * 间接损失金额(元) + */ + private BigDecimal indirectLoss; + + /** + * 事故原因分析 + */ + private String accidentCause; + + /** + * 人员伤亡情况(如有) + */ + private String casualtySituation; + + /** + * 应急处理措施 + */ + private String emergencyMeasures; + + /** + * 整改预防措施 + */ + private String rectificationMeasures; + + /** + * 责任人 + */ + private Long responsiblePerson; + + /** + * 处理结果 + */ + private String handleResult; + + /** + * 记录人 + */ + private Long recorder; + + /** + * 记录日期 + */ + private LocalDate recordDate; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 照片文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + +} 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 new file mode 100644 index 00000000..210554d4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/bo/JxSgxxjlbBo.java @@ -0,0 +1,151 @@ +package org.dromara.mechanical.jxsgjl.domain.bo; + +import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb; +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.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 机械事故信息记录业务对象 jx_sgxxjlb + * + * @author Lion Li + * @date 2025-12-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxSgxxjlb.class, reverseConvertGenerate = false) +public class JxSgxxjlbBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 事故编号(如SGJL-20230620-001) + */ + private String accidentCode; + + /** + * 事故等级(下拉选择) + */ + @NotBlank(message = "事故等级(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String accidentLevel; + + /** + * 事故类型(下拉选择) + */ + @NotBlank(message = "事故类型(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String accidentType; + + /** + * 设备名称(下拉选择) + */ + @NotBlank(message = "设备名称(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 设备台账id + */ + @NotBlank(message = "设备台账id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentId; + + /** + * 发生时间 + */ + @NotNull(message = "发生时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDateTime occurrenceTime; + + /** + * 发生地点 + */ + @NotBlank(message = "发生地点不能为空", groups = { AddGroup.class, EditGroup.class }) + private String occurrencePlace; + + /** + * 事故描述(详细经过) + */ + @NotBlank(message = "事故描述(详细经过)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String accidentDescription; + + /** + * 直接损失金额(元) + */ + @NotNull(message = "直接损失金额(元)不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal directLoss; + + /** + * 间接损失金额(元) + */ + private BigDecimal indirectLoss; + + /** + * 事故原因分析 + */ + @NotBlank(message = "事故原因分析不能为空", groups = { AddGroup.class, EditGroup.class }) + private String accidentCause; + + /** + * 人员伤亡情况(如有) + */ + private String casualtySituation; + + /** + * 应急处理措施 + */ + @NotBlank(message = "应急处理措施不能为空", groups = { AddGroup.class, EditGroup.class }) + private String emergencyMeasures; + + /** + * 整改预防措施 + */ + @NotBlank(message = "整改预防措施不能为空", groups = { AddGroup.class, EditGroup.class }) + private String rectificationMeasures; + + /** + * 责任人 + */ + private Long responsiblePerson; + + /** + * 处理结果 + */ + private String handleResult; + + /** + * 记录人 + */ + @NotNull(message = "记录人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long recorder; + + /** + * 记录日期 + */ + @NotNull(message = "记录日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate recordDate; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 照片文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxHead.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxHead.java new file mode 100644 index 00000000..525d1c03 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxHead.java @@ -0,0 +1,25 @@ +package org.dromara.mechanical.jxsgjl.domain.vo; + + +import lombok.Data; + +@Data +public class JxSgxxHead { + /** + * 总数 + */ + private Long zs = 0L; + /** + * 一般事故 + */ + private Long ybsg = 0L; + /** + * 重大事故 + */ + private Long zdsg = 0L; + /** + * 严重事故 + */ + private Long yzsg = 0L; + +} 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 new file mode 100644 index 00000000..0bb02563 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/domain/vo/JxSgxxjlbVo.java @@ -0,0 +1,177 @@ +package org.dromara.mechanical.jxsgjl.domain.vo; + +import java.math.BigDecimal; +import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb; +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; + + + +/** + * 机械事故信息记录视图对象 jx_sgxxjlb + * + * @author Lion Li + * @date 2025-12-04 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxSgxxjlb.class) +public class JxSgxxjlbVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long id; + + /** + * 事故编号(如SGJL-20230620-001) + */ + @ExcelProperty(value = "事故编号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=SGJL-20230620-001") + private String accidentCode; + + /** + * 事故等级(下拉选择) + */ + @ExcelProperty(value = "事故等级", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "下=拉选择") + private String accidentLevel; + + /** + * 事故类型(下拉选择) + */ + @ExcelProperty(value = "事故类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "下=拉选择") + private String accidentType; + + /** + * 设备名称(下拉选择) + */ + @ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "下=拉选择") + private String equipmentName; + + /** + * 设备台账id + */ + @ExcelProperty(value = "设备台账id") + private String equipmentId; + + /** + * 发生时间 + */ + @ExcelProperty(value = "发生时间") + private LocalDateTime occurrenceTime; + + /** + * 发生地点 + */ + @ExcelProperty(value = "发生地点") + private String occurrencePlace; + + /** + * 事故描述(详细经过) + */ + @ExcelProperty(value = "事故描述", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "详=细经过") + private String accidentDescription; + + /** + * 直接损失金额(元) + */ + @ExcelProperty(value = "直接损失金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "元=") + private BigDecimal directLoss; + + /** + * 间接损失金额(元) + */ + @ExcelProperty(value = "间接损失金额", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "元=") + private BigDecimal indirectLoss; + + /** + * 事故原因分析 + */ + @ExcelProperty(value = "事故原因分析") + private String accidentCause; + + /** + * 人员伤亡情况(如有) + */ + @ExcelProperty(value = "人员伤亡情况", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "如=有") + private String casualtySituation; + + /** + * 应急处理措施 + */ + @ExcelProperty(value = "应急处理措施") + private String emergencyMeasures; + + /** + * 整改预防措施 + */ + @ExcelProperty(value = "整改预防措施") + private String rectificationMeasures; + + /** + * 责任人 + */ + @ExcelProperty(value = "责任人") + private Long responsiblePerson; + + /** + * 处理结果 + */ + @ExcelProperty(value = "处理结果") + private String handleResult; + + /** + * 记录人 + */ + @ExcelProperty(value = "记录人") + private Long recorder; + + /** + * 记录日期 + */ + @ExcelProperty(value = "记录日期") + private LocalDate recordDate; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 照片文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "照片文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String pdfId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/mapper/JxSgxxjlbMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/mapper/JxSgxxjlbMapper.java new file mode 100644 index 00000000..547d2c14 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/mapper/JxSgxxjlbMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxsgjl.mapper; + +import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械事故信息记录Mapper接口 + * + * @author Lion Li + * @date 2025-12-04 + */ +public interface JxSgxxjlbMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/IJxSgxxjlbService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/IJxSgxxjlbService.java new file mode 100644 index 00000000..ff477a06 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/IJxSgxxjlbService.java @@ -0,0 +1,73 @@ +package org.dromara.mechanical.jxsgjl.service; + +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; +import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo; +import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械事故信息记录Service接口 + * + * @author Lion Li + * @date 2025-12-04 + */ +public interface IJxSgxxjlbService extends IService{ + + /** + * 查询机械事故信息记录 + * + * @param id 主键 + * @return 机械事故信息记录 + */ + JxSgxxjlbVo queryById(Long id); + + /** + * 分页查询机械事故信息记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械事故信息记录分页列表 + */ + TableDataInfo queryPageList(JxSgxxjlbBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械事故信息记录列表 + * + * @param bo 查询条件 + * @return 机械事故信息记录列表 + */ + List queryList(JxSgxxjlbBo bo); + + /** + * 新增机械事故信息记录 + * + * @param bo 机械事故信息记录 + * @return 是否新增成功 + */ + Boolean insertByBo(JxSgxxjlbBo bo); + + /** + * 修改机械事故信息记录 + * + * @param bo 机械事故信息记录 + * @return 是否修改成功 + */ + Boolean updateByBo(JxSgxxjlbBo bo); + + /** + * 校验并批量删除机械事故信息记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxSgxxHead getHeadData(); +} 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 new file mode 100644 index 00000000..f2a13d8e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxsgjl/service/impl/JxSgxxjlbServiceImpl.java @@ -0,0 +1,175 @@ +package org.dromara.mechanical.jxsgjl.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.jxaqgl.domain.JxAqjcgl; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo; +import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo; +import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb; +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; + +/** + * 机械事故信息记录Service业务层处理 + * + * @author Lion Li + * @date 2025-12-04 + */ +@RequiredArgsConstructor +@Service +public class JxSgxxjlbServiceImpl extends ServiceImpl implements IJxSgxxjlbService { + + private final JxSgxxjlbMapper baseMapper; + + /** + * 查询机械事故信息记录 + * + * @param id 主键 + * @return 机械事故信息记录 + */ + @Override + public JxSgxxjlbVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械事故信息记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械事故信息记录分页列表 + */ + @Override + public TableDataInfo queryPageList(JxSgxxjlbBo 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(JxSgxxjlbBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxSgxxjlbBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxSgxxjlb::getId); + lqw.eq(StringUtils.isNotBlank(bo.getAccidentCode()), JxSgxxjlb::getAccidentCode, bo.getAccidentCode()); + lqw.eq(StringUtils.isNotBlank(bo.getAccidentLevel()), JxSgxxjlb::getAccidentLevel, bo.getAccidentLevel()); + lqw.eq(StringUtils.isNotBlank(bo.getAccidentType()), JxSgxxjlb::getAccidentType, bo.getAccidentType()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxSgxxjlb::getEquipmentName, bo.getEquipmentName()); + lqw.eq(StringUtils.isNotBlank(bo.getEquipmentId()), JxSgxxjlb::getEquipmentId, bo.getEquipmentId()); + lqw.eq(bo.getOccurrenceTime() != null, JxSgxxjlb::getOccurrenceTime, bo.getOccurrenceTime()); + lqw.eq(StringUtils.isNotBlank(bo.getOccurrencePlace()), JxSgxxjlb::getOccurrencePlace, bo.getOccurrencePlace()); + lqw.eq(StringUtils.isNotBlank(bo.getAccidentDescription()), JxSgxxjlb::getAccidentDescription, bo.getAccidentDescription()); + lqw.eq(bo.getDirectLoss() != null, JxSgxxjlb::getDirectLoss, bo.getDirectLoss()); + lqw.eq(bo.getIndirectLoss() != null, JxSgxxjlb::getIndirectLoss, bo.getIndirectLoss()); + lqw.eq(StringUtils.isNotBlank(bo.getAccidentCause()), JxSgxxjlb::getAccidentCause, bo.getAccidentCause()); + lqw.eq(StringUtils.isNotBlank(bo.getCasualtySituation()), JxSgxxjlb::getCasualtySituation, bo.getCasualtySituation()); + lqw.eq(StringUtils.isNotBlank(bo.getEmergencyMeasures()), JxSgxxjlb::getEmergencyMeasures, bo.getEmergencyMeasures()); + lqw.eq(StringUtils.isNotBlank(bo.getRectificationMeasures()), JxSgxxjlb::getRectificationMeasures, bo.getRectificationMeasures()); + lqw.eq(bo.getResponsiblePerson() != null, JxSgxxjlb::getResponsiblePerson, bo.getResponsiblePerson()); + lqw.eq(StringUtils.isNotBlank(bo.getHandleResult()), JxSgxxjlb::getHandleResult, bo.getHandleResult()); + lqw.eq(bo.getRecorder() != null, JxSgxxjlb::getRecorder, bo.getRecorder()); + lqw.eq(bo.getRecordDate() != null, JxSgxxjlb::getRecordDate, bo.getRecordDate()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), JxSgxxjlb::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxSgxxjlb::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getPdfId()), JxSgxxjlb::getPdfId, bo.getPdfId()); + return lqw; + } + + /** + * 新增机械事故信息记录 + * + * @param bo 机械事故信息记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxSgxxjlbBo bo) { + JxSgxxjlb add = MapstructUtils.convert(bo, JxSgxxjlb.class); + validEntityBeforeSave(add); + String banBen = BatchNumberGenerator.generateBatchNumber("JXAQSGJL-"); + add.setAccidentCode(banBen); + + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械事故信息记录 + * + * @param bo 机械事故信息记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxSgxxjlbBo bo) { + JxSgxxjlb update = MapstructUtils.convert(bo, JxSgxxjlb.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxSgxxjlb entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械事故信息记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxSgxxHead getHeadData() { + JxSgxxHead jxSgxxHead = new JxSgxxHead(); + List jxSgxxjlbs = this.getBaseMapper().selectList(new LambdaQueryWrapper().le(JxSgxxjlb::getCreateTime, LocalDate.now().plusDays(1)).ge(JxSgxxjlb::getCreateTime, LocalDate.now().minusDays(29))); + if (jxSgxxjlbs != null && jxSgxxjlbs.size() > 0) { + long ybsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("1")).count(); + long yzsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("2")).count(); + long zdsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("3")).count(); + jxSgxxHead.setZs(Long.valueOf(jxSgxxjlbs.size())); + jxSgxxHead.setYbsg(ybsg); + jxSgxxHead.setYzsg(yzsg); + jxSgxxHead.setZdsg(zdsg); + } + return jxSgxxHead; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/controller/JxYhzgbhController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/controller/JxYhzgbhController.java new file mode 100644 index 00000000..e792465c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/controller/JxYhzgbhController.java @@ -0,0 +1,153 @@ +package org.dromara.mechanical.jxzgbh.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.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxHeadVo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxOrFcxxVo; +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.mechanical.jxzgbh.domain.vo.JxYhzgbhVo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo; +import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械隐患整改与闭环 + * + * @author Lion Li + * @date 2025-12-03 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxzgbh/yhzgbh") +public class JxYhzgbhController extends BaseController { + + private final IJxYhzgbhService jxYhzgbhService; + + + /** + * 头部数据返回 + */ + @SaCheckPermission("jxzgbh:yhzgbh:list") + @GetMapping("/getListHead") + public R getListHead(JxYhzgbhBo bo, PageQuery pageQuery) { + return R.ok(jxYhzgbhService.getListHead(bo, pageQuery)); + } + + /** + * 整改接口 + */ + @SaCheckPermission("jxzgbh:yhzgbh:edit") + @PutMapping("/zgPutBo") + public R zgPutBo(@RequestBody JxZgxxBo bo) { + return toAjax(jxYhzgbhService.zgPutBo(bo)); + } + + + + /** + * 复查,整改接口详情查询 1整改 2 复查 + */ + + @SaCheckPermission("jxzgbh:yhzgbh:edit") + @PutMapping("/zgxxorfcxx/{type}/{id}") + public R zgxxorfcxx(@PathVariable String type, @PathVariable Long id) { + return R.ok(jxYhzgbhService.zgxxorfcxx(type,id)); + } + + + + /** + *复查 + */ + + @SaCheckPermission("jxzgbh:yhzgbh:edit") + @PutMapping("/fcPutBo") + public R fcPutBo(@RequestBody JxFcxxBo bo) { + return toAjax(jxYhzgbhService.fcPutBo(bo)); + } + + /** + * 查询机械隐患整改与闭环列表 + */ + @SaCheckPermission("jxzgbh:yhzgbh:list") + @GetMapping("/list") + public TableDataInfo list(JxYhzgbhBo bo, PageQuery pageQuery) { + return jxYhzgbhService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械隐患整改与闭环列表 + */ + @SaCheckPermission("jxzgbh:yhzgbh:export") + @Log(title = "机械隐患整改与闭环", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxYhzgbhBo bo, HttpServletResponse response) { + List list = jxYhzgbhService.queryList(bo); + ExcelUtil.exportExcel(list, "机械隐患整改与闭环", JxYhzgbhVo.class, response); + } + + /** + * 获取机械隐患整改与闭环详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxzgbh:yhzgbh:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxYhzgbhService.queryById(id)); + } + + /** + * 新增机械隐患整改与闭环 + */ + @SaCheckPermission("jxzgbh:yhzgbh:add") + @Log(title = "机械隐患整改与闭环", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxYhzgbhBo bo) { + return toAjax(jxYhzgbhService.insertByBo(bo)); + } + + /** + * 修改机械隐患整改与闭环 + */ + @SaCheckPermission("jxzgbh:yhzgbh:edit") + @Log(title = "机械隐患整改与闭环", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxYhzgbhBo bo) { + return toAjax(jxYhzgbhService.updateByBo(bo)); + } + + /** + * 删除机械隐患整改与闭环 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxzgbh:yhzgbh:remove") + @Log(title = "机械隐患整改与闭环", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxYhzgbhService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxFcxx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxFcxx.java new file mode 100644 index 00000000..609aa660 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxFcxx.java @@ -0,0 +1,79 @@ +package org.dromara.mechanical.jxzgbh.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; + +/** + * 机械隐患复查信息对象 jx_fcxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_fcxx") +public class JxFcxx extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 机械隐患ID + */ + private Long masterId; + + /** + * 复查人 + */ + private Long review; + + /** + * 复查日期 + */ + private LocalDate reviewDate; + + /** + * 复查意见 + */ + private String reviewOpinion; + + /** + * 最终闭环状态 + */ + private String reviewState; + + /** + * 不通过原因 + */ + private String notPassCause; + + /** + * 复查意见详情 + */ + private String reviewOpinionParticulars; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + private Integer sort; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxYhzgbh.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxYhzgbh.java new file mode 100644 index 00000000..2be740ca --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxYhzgbh.java @@ -0,0 +1,100 @@ +package org.dromara.mechanical.jxzgbh.domain; + +import com.alibaba.excel.annotation.ExcelProperty; +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; + +/** + * 机械隐患整改与闭环对象 jx_yhzgbh + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_yhzgbh") +public class JxYhzgbh extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 隐患编号 + */ + private String inspectionOrderNo; + + /** + * 检查单编号 + */ + private String inspectionJcdNo; + + /** + * 检查人 + */ + private Long inspector; + + + + /** + * 最终闭环状态 + */ + private String reviewState; + + /** + * 整改状态 + */ + private String abarbeitungState; + + /** + * 机械安全检查记录表ID + */ + private Long masterId; + + /** + * 隐患等级 + */ + private String riskGrade; + + /** + * 隐患来源 + */ + private String yhly; + + /** + * 对应设备 + */ + private String equipmentName; + + /** + * 发现时间 + */ + private LocalDate discoverDate; + + /** + * 发现人 + */ + private Long discoverId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxZgxx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxZgxx.java new file mode 100644 index 00000000..ef000fa9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/JxZgxx.java @@ -0,0 +1,82 @@ +package org.dromara.mechanical.jxzgbh.domain; + +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +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; + +/** + * 机械隐患整改信息对象 jx_zgxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_zgxx") +public class JxZgxx extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 机械隐患ID + */ + private Long masterId; + + /** + * 整改责任人 + */ + private Long abarbeitung; + + /** + * 整改开始日期 + */ + private LocalDate abarbeitungKsdate; + + /** + * 整改结束日期 + */ + private LocalDate abarbeitungJsdate; + +// /** +// * 整改期限 +// */ +// private LocalDate abarbeitungDeadline; + + /** + * 整改措施 + */ + private String abarbeitungMeasure; + + /** + * 整改完成情况 + */ + private String abarbeitungAccomplish; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + private Integer sort; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxFcxxBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxFcxxBo.java new file mode 100644 index 00000000..444b16c5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxFcxxBo.java @@ -0,0 +1,85 @@ +package org.dromara.mechanical.jxzgbh.domain.bo; + +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +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; + +/** + * 机械隐患复查信息业务对象 jx_fcxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxFcxx.class, reverseConvertGenerate = false) +public class JxFcxxBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 机械隐患ID + */ + @NotNull(message = "机械隐患ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 复查人 + */ + @NotNull(message = "复查人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long review; + + /** + * 复查日期 + */ + @NotNull(message = "复查日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate reviewDate; + + /** + * 复查意见 + */ + @NotBlank(message = "复查意见不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reviewOpinion; + + /** + * 最终闭环状态 + */ + @NotBlank(message = "最终闭环状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reviewState; + + /** + * 不通过原因 + */ + private String notPassCause; + + /** + * 复查意见详情 + */ + @NotBlank(message = "复查意见详情不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reviewOpinionParticulars; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + private Integer sort; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxYhzgbhBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxYhzgbhBo.java new file mode 100644 index 00000000..d2527cde --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxYhzgbhBo.java @@ -0,0 +1,103 @@ +package org.dromara.mechanical.jxzgbh.domain.bo; + +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +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; + +/** + * 机械隐患整改与闭环业务对象 jx_yhzgbh + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxYhzgbh.class, reverseConvertGenerate = false) +public class JxYhzgbhBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 隐患编号 + */ + private String inspectionOrderNo; + + /** + * 检查单编号 + */ + private String inspectionJcdNo; + + /** + * 检查人 + */ + private Long inspector; + + /** + * 机械安全检查记录表ID + */ + @NotNull(message = "机械安全检查记录表ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 隐患等级 + */ + @NotBlank(message = "隐患等级不能为空", groups = { AddGroup.class, EditGroup.class }) + private String riskGrade; + + /** + * 最终闭环状态 + */ + private String reviewState; + + /** + * 整改状态 + */ + private String abarbeitungState; + + /** + * 隐患来源 + */ + @NotBlank(message = "隐患来源不能为空", groups = { AddGroup.class, EditGroup.class }) + private String yhly; + + /** + * 对应设备 + */ + @NotBlank(message = "对应设备不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 发现时间 + */ + @NotNull(message = "发现时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate discoverDate; + + /** + * 发现人 + */ + @NotNull(message = "发现人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long discoverId; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxZgxxBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxZgxxBo.java new file mode 100644 index 00000000..07ce0959 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/bo/JxZgxxBo.java @@ -0,0 +1,86 @@ +package org.dromara.mechanical.jxzgbh.domain.bo; + +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +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; + +/** + * 机械隐患整改信息业务对象 jx_zgxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxZgxx.class, reverseConvertGenerate = false) +public class JxZgxxBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 机械隐患ID + */ + @NotNull(message = "机械隐患ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long masterId; + + /** + * 整改责任人 + */ + @NotNull(message = "整改责任人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long abarbeitung; + + /** + * 整改开始日期 + */ + @NotNull(message = "整改开始日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate abarbeitungKsdate; + + /** + * 整改结束日期 + */ + @NotNull(message = "整改结束日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate abarbeitungJsdate; + +// /** +// * 整改期限 +// */ +// @NotNull(message = "整改期限不能为空", groups = { AddGroup.class, EditGroup.class }) +// private LocalDate abarbeitungDeadline; + + /** + * 整改措施 + */ + @NotBlank(message = "整改措施不能为空", groups = { AddGroup.class, EditGroup.class }) + private String abarbeitungMeasure; + + /** + * 整改完成情况 + */ + @NotBlank(message = "整改完成情况不能为空", groups = { AddGroup.class, EditGroup.class }) + private String abarbeitungAccomplish; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + private String pdfId; + + private Integer sort; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxFcxxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxFcxxVo.java new file mode 100644 index 00000000..033cd789 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxFcxxVo.java @@ -0,0 +1,97 @@ +package org.dromara.mechanical.jxzgbh.domain.vo; + +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +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; + + + +/** + * 机械隐患复查信息视图对象 jx_fcxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxFcxx.class) +public class JxFcxxVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 机械隐患ID + */ + @ExcelProperty(value = "机械隐患ID") + private Long masterId; + + /** + * 复查人 + */ + @ExcelProperty(value = "复查人") + private Long review; + + /** + * 复查日期 + */ + @ExcelProperty(value = "复查日期") + private LocalDate reviewDate; + + /** + * 复查意见 + */ + @ExcelProperty(value = "复查意见") + private String reviewOpinion; + + /** + * 最终闭环状态 + */ + @ExcelProperty(value = "最终闭环状态") + private String reviewState; + + /** + * 不通过原因 + */ + @ExcelProperty(value = "不通过原因") + private String notPassCause; + + /** + * 复查意见详情 + */ + @ExcelProperty(value = "复查意见详情") + private String reviewOpinionParticulars; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + /** + * pdf文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String pdfId; + + private Integer sort; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxYhzgbhVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxYhzgbhVo.java new file mode 100644 index 00000000..bc5c5fbb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxYhzgbhVo.java @@ -0,0 +1,151 @@ +package org.dromara.mechanical.jxzgbh.domain.vo; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +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 org.dromara.mechanical.jxzgbh.domain.JxZgxx; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + + +/** + * 机械隐患整改与闭环视图对象 jx_yhzgbh + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxYhzgbh.class) +public class JxYhzgbhVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 隐患编号 + */ + @ExcelProperty(value = "隐患编号") + private String inspectionOrderNo; + /** + * 检查单编号 + */ + @ExcelProperty(value = "检查单编号") + private String inspectionJcdNo; + + /** + * 检查人 + */ + @ExcelProperty(value = "检查人") + private Long inspector; + + /** + * 检查人 + */ + @ExcelProperty(value = "检查人") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspector") + private String inspectorName; + + + /** + * 机械安全检查记录表ID + */ + @ExcelProperty(value = "机械安全检查记录表ID") + private Long masterId; + + /** + * 隐患等级 + */ + @ExcelProperty(value = "隐患等级") + private String riskGrade; + + /** + * 隐患来源 + */ + @ExcelProperty(value = "隐患来源") + private String yhly; + + /** + * 对应设备 + */ + @ExcelProperty(value = "对应设备") + private String equipmentName; + + /** + * 最终闭环状态 + */ + private String reviewState; + + /** + * 整改状态 + */ + private String abarbeitungState; + + /** + * 发现时间 + */ + @ExcelProperty(value = "发现时间") + private LocalDate discoverDate; + + /** + * 发现人 + */ + @ExcelProperty(value = "发现人") + private Long discoverId; + + /** + * 发现人 + */ + @ExcelProperty(value = "发现人") + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "discoverId") + private String discoverName; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + + /** + * 整改信息 + */ + private List zgxxList; + /** + * 复查信息 + */ + private List fcxxList; + + + /** + * 问题详情 + */ + private List wtxqList; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxHeadVo.java new file mode 100644 index 00000000..c5229018 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxHeadVo.java @@ -0,0 +1,24 @@ +package org.dromara.mechanical.jxzgbh.domain.vo; + + +import lombok.Data; + +@Data +public class JxZgxxHeadVo { + /** + * 总数 + */ + private Long zs = 0L; + + /** + * 已整改 + */ + private Long yzg = 0L; + + /** + * 未整改 + */ + private Long wzg = 0L; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxOrFcxxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxOrFcxxVo.java new file mode 100644 index 00000000..babdb6ed --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxOrFcxxVo.java @@ -0,0 +1,29 @@ +package org.dromara.mechanical.jxzgbh.domain.vo; + + +import lombok.Data; +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; + +@Data +public class JxZgxxOrFcxxVo { + + /** + * 隐患整改与闭环 + */ + private JxYhzgbhVo yhzgbhVo; + + + /** + * 复查数据 + */ + private JxFcxx fcxxVo; + + /** + * 整改数据 + */ + private JxZgxx zgxxVo; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxVo.java new file mode 100644 index 00000000..b11ad6e1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/domain/vo/JxZgxxVo.java @@ -0,0 +1,98 @@ +package org.dromara.mechanical.jxzgbh.domain.vo; + +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +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; + + + +/** + * 机械隐患整改信息视图对象 jx_zgxx + * + * @author Lion Li + * @date 2025-12-03 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxZgxx.class) +public class JxZgxxVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 机械隐患ID + */ + @ExcelProperty(value = "机械隐患ID") + private Long masterId; + + /** + * 整改责任人 + */ + @ExcelProperty(value = "整改责任人") + private Long abarbeitung; + + /** + * 整改开始日期 + */ + @ExcelProperty(value = "整改开始日期") + private LocalDate abarbeitungKsdate; + + /** + * 整改结束日期 + */ + @ExcelProperty(value = "整改结束日期") + private LocalDate abarbeitungJsdate; + +// /** +// * 整改期限 +// */ +// @ExcelProperty(value = "整改期限") +// private LocalDate abarbeitungDeadline; + + /** + * 整改措施 + */ + @ExcelProperty(value = "整改措施") + private String abarbeitungMeasure; + + /** + * 整改完成情况 + */ + @ExcelProperty(value = "整改完成情况") + private String abarbeitungAccomplish; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + + /** + * pdf文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String pdfId; + + private Integer sort; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxFcxxMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxFcxxMapper.java new file mode 100644 index 00000000..60e7d723 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxFcxxMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxzgbh.mapper; + +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.domain.vo.JxFcxxVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械隐患复查信息Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxFcxxMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxYhzgbhMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxYhzgbhMapper.java new file mode 100644 index 00000000..d272693a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxYhzgbhMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxzgbh.mapper; + +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +import org.dromara.mechanical.jxzgbh.domain.vo.JxYhzgbhVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械隐患整改与闭环Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxYhzgbhMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxZgxxMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxZgxxMapper.java new file mode 100644 index 00000000..21b80769 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/mapper/JxZgxxMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxzgbh.mapper; + +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械隐患整改信息Mapper接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface JxZgxxMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxFcxxService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxFcxxService.java new file mode 100644 index 00000000..34e1aa86 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxFcxxService.java @@ -0,0 +1,70 @@ +package org.dromara.mechanical.jxzgbh.service; + +import org.dromara.mechanical.jxzgbh.domain.vo.JxFcxxVo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械隐患复查信息Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxFcxxService extends IService{ + + /** + * 查询机械隐患复查信息 + * + * @param id 主键 + * @return 机械隐患复查信息 + */ + JxFcxxVo queryById(Long id); + + /** + * 分页查询机械隐患复查信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患复查信息分页列表 + */ + TableDataInfo queryPageList(JxFcxxBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械隐患复查信息列表 + * + * @param bo 查询条件 + * @return 机械隐患复查信息列表 + */ + List queryList(JxFcxxBo bo); + + /** + * 新增机械隐患复查信息 + * + * @param bo 机械隐患复查信息 + * @return 是否新增成功 + */ + Boolean insertByBo(JxFcxxBo bo); + + /** + * 修改机械隐患复查信息 + * + * @param bo 机械隐患复查信息 + * @return 是否修改成功 + */ + Boolean updateByBo(JxFcxxBo bo); + + /** + * 校验并批量删除机械隐患复查信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxYhzgbhService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxYhzgbhService.java new file mode 100644 index 00000000..209027ad --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxYhzgbhService.java @@ -0,0 +1,84 @@ +package org.dromara.mechanical.jxzgbh.service; + +import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxYhzgbhVo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo; +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +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.mechanical.jxzgbh.domain.vo.JxZgxxHeadVo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxOrFcxxVo; + +import java.util.Collection; +import java.util.List; + +/** + * 机械隐患整改与闭环Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxYhzgbhService extends IService{ + + /** + * 查询机械隐患整改与闭环 + * + * @param id 主键 + * @return 机械隐患整改与闭环 + */ + JxYhzgbhVo queryById(Long id); + + /** + * 分页查询机械隐患整改与闭环列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患整改与闭环分页列表 + */ + TableDataInfo queryPageList(JxYhzgbhBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械隐患整改与闭环列表 + * + * @param bo 查询条件 + * @return 机械隐患整改与闭环列表 + */ + List queryList(JxYhzgbhBo bo); + + /** + * 新增机械隐患整改与闭环 + * + * @param bo 机械隐患整改与闭环 + * @return 是否新增成功 + */ + Boolean insertByBo(JxYhzgbhBo bo); + + /** + * 修改机械隐患整改与闭环 + * + * @param bo 机械隐患整改与闭环 + * @return 是否修改成功 + */ + Boolean updateByBo(JxYhzgbhBo bo); + + /** + * 校验并批量删除机械隐患整改与闭环信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + JxZgxxHeadVo getListHead(JxYhzgbhBo bo, PageQuery pageQuery); + + Boolean zgPutBo(JxZgxxBo bo); + + Boolean fcPutBo(JxFcxxBo bo); + + JxZgxxOrFcxxVo zgxxorfcxx(String type, Long id); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxZgxxService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxZgxxService.java new file mode 100644 index 00000000..a523fd70 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/IJxZgxxService.java @@ -0,0 +1,70 @@ +package org.dromara.mechanical.jxzgbh.service; + +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxVo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械隐患整改信息Service接口 + * + * @author Lion Li + * @date 2025-12-03 + */ +public interface IJxZgxxService extends IService{ + + /** + * 查询机械隐患整改信息 + * + * @param id 主键 + * @return 机械隐患整改信息 + */ + JxZgxxVo queryById(Long id); + + /** + * 分页查询机械隐患整改信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患整改信息分页列表 + */ + TableDataInfo queryPageList(JxZgxxBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械隐患整改信息列表 + * + * @param bo 查询条件 + * @return 机械隐患整改信息列表 + */ + List queryList(JxZgxxBo bo); + + /** + * 新增机械隐患整改信息 + * + * @param bo 机械隐患整改信息 + * @return 是否新增成功 + */ + Boolean insertByBo(JxZgxxBo bo); + + /** + * 修改机械隐患整改信息 + * + * @param bo 机械隐患整改信息 + * @return 是否修改成功 + */ + Boolean updateByBo(JxZgxxBo bo); + + /** + * 校验并批量删除机械隐患整改信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxFcxxServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxFcxxServiceImpl.java new file mode 100644 index 00000000..b677a5e3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxFcxxServiceImpl.java @@ -0,0 +1,138 @@ +package org.dromara.mechanical.jxzgbh.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.springframework.stereotype.Service; +import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxFcxxVo; +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.mapper.JxFcxxMapper; +import org.dromara.mechanical.jxzgbh.service.IJxFcxxService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械隐患复查信息Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxFcxxServiceImpl extends ServiceImpl implements IJxFcxxService { + + private final JxFcxxMapper baseMapper; + + /** + * 查询机械隐患复查信息 + * + * @param id 主键 + * @return 机械隐患复查信息 + */ + @Override + public JxFcxxVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械隐患复查信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患复查信息分页列表 + */ + @Override + public TableDataInfo queryPageList(JxFcxxBo 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(JxFcxxBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxFcxxBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxFcxx::getId); + lqw.eq(bo.getMasterId() != null, JxFcxx::getMasterId, bo.getMasterId()); + lqw.eq(bo.getReview() != null, JxFcxx::getReview, bo.getReview()); + lqw.eq(bo.getReviewDate() != null, JxFcxx::getReviewDate, bo.getReviewDate()); + lqw.eq(StringUtils.isNotBlank(bo.getReviewOpinion()), JxFcxx::getReviewOpinion, bo.getReviewOpinion()); + lqw.eq(StringUtils.isNotBlank(bo.getReviewState()), JxFcxx::getReviewState, bo.getReviewState()); + lqw.eq(StringUtils.isNotBlank(bo.getNotPassCause()), JxFcxx::getNotPassCause, bo.getNotPassCause()); + lqw.eq(StringUtils.isNotBlank(bo.getReviewOpinionParticulars()), JxFcxx::getReviewOpinionParticulars, bo.getReviewOpinionParticulars()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxFcxx::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械隐患复查信息 + * + * @param bo 机械隐患复查信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxFcxxBo bo) { + JxFcxx add = MapstructUtils.convert(bo, JxFcxx.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械隐患复查信息 + * + * @param bo 机械隐患复查信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxFcxxBo bo) { + JxFcxx update = MapstructUtils.convert(bo, JxFcxx.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxFcxx entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械隐患复查信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + 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 new file mode 100644 index 00000000..a329d537 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxYhzgbhServiceImpl.java @@ -0,0 +1,250 @@ +package org.dromara.mechanical.jxzgbh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +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.mechanical.jxaqgl.domain.JxAqjcgl; +import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq; +import org.dromara.mechanical.jxaqgl.domain.MonthDateRange; +import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService; +import org.dromara.mechanical.jxzgbh.domain.JxFcxx; +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxHeadVo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxOrFcxxVo; +import org.dromara.mechanical.jxzgbh.service.IJxFcxxService; +import org.dromara.mechanical.jxzgbh.service.IJxZgxxService; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxYhzgbhVo; +import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh; +import org.dromara.mechanical.jxzgbh.mapper.JxYhzgbhMapper; +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; + +/** + * 机械隐患整改与闭环Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxYhzgbhServiceImpl extends ServiceImpl implements IJxYhzgbhService { + + private final JxYhzgbhMapper baseMapper; + + private final IJxZgxxService jxZgxxService; + + private final IJxFcxxService jxFcxxService; + + private final IJxAqjcglWtxqService jxAqjcglWtxqService; + + /** + * 查询机械隐患整改与闭环 + * + * @param id 主键 + * @return 机械隐患整改与闭环 + */ + @Override + public JxYhzgbhVo queryById(Long id){ + JxYhzgbhVo jxYhzgbhVo = baseMapper.selectVoById(id); + saveValue(jxYhzgbhVo); + return jxYhzgbhVo; + } + + private void saveValue(JxYhzgbhVo jxYhzgbhVo) { + if (jxYhzgbhVo != null){ + // 回填整改数据 + List jxZgxxes = jxZgxxService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxZgxx::getMasterId, jxYhzgbhVo.getId())); + if (jxZgxxes != null){ + jxYhzgbhVo.setZgxxList(jxZgxxes); + } + // 回填复查数据 + List jxFcxxes = jxFcxxService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxFcxx::getMasterId, jxYhzgbhVo.getId())); + if (jxFcxxes != null){ + jxYhzgbhVo.setFcxxList(jxFcxxes); + } +// 问题详情 + List jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxAqjcglWtxq::getMasterId, jxYhzgbhVo.getId())); + if (jxAqjcglWtxqs != null){ + jxYhzgbhVo.setWtxqList(jxAqjcglWtxqs); + } + } + + } + + /** + * 分页查询机械隐患整改与闭环列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患整改与闭环分页列表 + */ + @Override + public TableDataInfo queryPageList(JxYhzgbhBo 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(JxYhzgbhBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxYhzgbhBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxYhzgbh::getId); + lqw.eq(StringUtils.isNotBlank(bo.getInspectionOrderNo()), JxYhzgbh::getInspectionOrderNo, bo.getInspectionOrderNo()); + lqw.eq(bo.getMasterId() != null, JxYhzgbh::getMasterId, bo.getMasterId()); + lqw.eq(StringUtils.isNotBlank(bo.getRiskGrade()), JxYhzgbh::getRiskGrade, bo.getRiskGrade()); + lqw.eq(StringUtils.isNotBlank(bo.getYhly()), JxYhzgbh::getYhly, bo.getYhly()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxYhzgbh::getEquipmentName, bo.getEquipmentName()); + lqw.eq(bo.getDiscoverDate() != null, JxYhzgbh::getDiscoverDate, bo.getDiscoverDate()); + lqw.eq(bo.getDiscoverId() != null, JxYhzgbh::getDiscoverId, bo.getDiscoverId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), JxYhzgbh::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxYhzgbh::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械隐患整改与闭环 + * + * @param bo 机械隐患整改与闭环 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxYhzgbhBo bo) { + JxYhzgbh add = MapstructUtils.convert(bo, JxYhzgbh.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械隐患整改与闭环 + * + * @param bo 机械隐患整改与闭环 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxYhzgbhBo bo) { + JxYhzgbh update = MapstructUtils.convert(bo, JxYhzgbh.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxYhzgbh entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械隐患整改与闭环信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxZgxxHeadVo getListHead(JxYhzgbhBo bo, PageQuery pageQuery) { + JxZgxxHeadVo jxZgxxHeadVo = new JxZgxxHeadVo(); + List jxYhzgbhs = this.getBaseMapper().selectList(new LambdaQueryWrapper().le(JxYhzgbh::getCreateTime, LocalDate.now().plusDays(1)).ge(JxYhzgbh::getCreateTime, LocalDate.now().minusDays(29))); + if ( jxYhzgbhs != null && jxYhzgbhs.size() > 0) { + jxZgxxHeadVo.setZs(Long.valueOf(jxYhzgbhs.size())); + jxZgxxHeadVo.setYzg(jxYhzgbhs.stream().filter(jxYhzgbh -> jxYhzgbh.getAbarbeitungState().equals("2")).count()); + jxZgxxHeadVo.setWzg(jxYhzgbhs.stream().filter(jxYhzgbh -> jxYhzgbh.getAbarbeitungState().equals("1")).count()); + } + return jxZgxxHeadVo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean zgPutBo(JxZgxxBo bo) { + Long l = jxZgxxService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(JxZgxx::getMasterId, bo.getMasterId())); + bo.setSort(Integer.parseInt(l+"") + 1); +// 将状态修改为已整改 + this.getBaseMapper().update(new LambdaUpdateWrapper().eq(JxYhzgbh::getId, bo.getMasterId()).set(JxYhzgbh::getAbarbeitungState,"2")); + return jxZgxxService.insertByBo(bo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean fcPutBo(JxFcxxBo bo) { + if (bo.getReviewOpinion().equals("2")) { + this.getBaseMapper().update(new LambdaUpdateWrapper().eq(JxYhzgbh::getId, bo.getMasterId()).set(JxYhzgbh::getAbarbeitungState,"1")); + } + Long l = jxFcxxService.getBaseMapper().selectCount(new LambdaQueryWrapper().eq(JxFcxx::getMasterId, bo.getMasterId())); + bo.setSort(Integer.parseInt(l+"") + 1); +// 修改闭环状态 + this.getBaseMapper().update(new LambdaUpdateWrapper().eq(JxYhzgbh::getId, bo.getMasterId()).set(JxYhzgbh::getReviewState,bo.getReviewState())); + return jxFcxxService.insertByBo(bo); + } + + @Override + public JxZgxxOrFcxxVo zgxxorfcxx(String type, Long id) { + JxZgxxOrFcxxVo jxZgxxOrFcxxVo = new JxZgxxOrFcxxVo(); + JxYhzgbhVo jxYhzgbhVo = this.queryById(id); + if (jxYhzgbhVo != null) { + jxZgxxOrFcxxVo.setYhzgbhVo(jxYhzgbhVo); + List jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxAqjcglWtxq::getMasterId, id)); + if (jxAqjcglWtxqs != null) { + jxZgxxOrFcxxVo.getYhzgbhVo().setWtxqList(jxAqjcglWtxqs); + } + } +// 回填整改信息 + if ("2".equals(type)) { + List jxZgxxes = jxZgxxService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxZgxx::getMasterId, id).orderByDesc(JxZgxx::getSort)); + if (jxZgxxes != null && jxZgxxes.size() > 0) { + jxZgxxOrFcxxVo.setZgxxVo(jxZgxxes.get(0)); + } + } + // 回填复查信息 + if ("1".equals(type)) { + List jxFcxxes = jxFcxxService.getBaseMapper().selectList(new LambdaQueryWrapper().eq(JxFcxx::getMasterId, id).orderByDesc(JxFcxx::getSort)); + if (jxFcxxes != null && jxFcxxes.size() > 0) { + jxZgxxOrFcxxVo.setFcxxVo(jxFcxxes.get(0)); + } + } + return jxZgxxOrFcxxVo; + } + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxZgxxServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxZgxxServiceImpl.java new file mode 100644 index 00000000..823ced63 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxzgbh/service/impl/JxZgxxServiceImpl.java @@ -0,0 +1,138 @@ +package org.dromara.mechanical.jxzgbh.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.springframework.stereotype.Service; +import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo; +import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxVo; +import org.dromara.mechanical.jxzgbh.domain.JxZgxx; +import org.dromara.mechanical.jxzgbh.mapper.JxZgxxMapper; +import org.dromara.mechanical.jxzgbh.service.IJxZgxxService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械隐患整改信息Service业务层处理 + * + * @author Lion Li + * @date 2025-12-03 + */ +@RequiredArgsConstructor +@Service +public class JxZgxxServiceImpl extends ServiceImpl implements IJxZgxxService { + + private final JxZgxxMapper baseMapper; + + /** + * 查询机械隐患整改信息 + * + * @param id 主键 + * @return 机械隐患整改信息 + */ + @Override + public JxZgxxVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械隐患整改信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械隐患整改信息分页列表 + */ + @Override + public TableDataInfo queryPageList(JxZgxxBo 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(JxZgxxBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxZgxxBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxZgxx::getId); + lqw.eq(bo.getMasterId() != null, JxZgxx::getMasterId, bo.getMasterId()); + lqw.eq(bo.getAbarbeitung() != null, JxZgxx::getAbarbeitung, bo.getAbarbeitung()); + lqw.eq(bo.getAbarbeitungKsdate() != null, JxZgxx::getAbarbeitungKsdate, bo.getAbarbeitungKsdate()); + lqw.eq(bo.getAbarbeitungJsdate() != null, JxZgxx::getAbarbeitungJsdate, bo.getAbarbeitungJsdate()); + lqw.eq(bo.getAbarbeitungDeadline() != null, JxZgxx::getAbarbeitungDeadline, bo.getAbarbeitungDeadline()); + lqw.eq(StringUtils.isNotBlank(bo.getAbarbeitungMeasure()), JxZgxx::getAbarbeitungMeasure, bo.getAbarbeitungMeasure()); + lqw.eq(StringUtils.isNotBlank(bo.getAbarbeitungAccomplish()), JxZgxx::getAbarbeitungAccomplish, bo.getAbarbeitungAccomplish()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxZgxx::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械隐患整改信息 + * + * @param bo 机械隐患整改信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxZgxxBo bo) { + JxZgxx add = MapstructUtils.convert(bo, JxZgxx.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械隐患整改信息 + * + * @param bo 机械隐患整改信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxZgxxBo bo) { + JxZgxx update = MapstructUtils.convert(bo, JxZgxx.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxZgxx entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械隐患整改信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +}