机械安全模块

This commit is contained in:
lg
2025-12-04 15:10:41 +08:00
parent 188172692b
commit 8b60d13c0a
51 changed files with 4626 additions and 1 deletions

View File

@ -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

View File

@ -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<DeviceInfoVo> list(DeviceInfoBo bo, PageQuery pageQuery) {
return deviceInfoService.queryPageList(bo, pageQuery);
}
/**
* 查询近30天机械安全检查记录头部数据
*/
@SaCheckPermission("jxaqgl:aqjcgl:list")
@GetMapping("/listHead")
public R<JxAnqjcgHeadVo> listHead(JxAqjcglBo bo, PageQuery pageQuery) {
return R.ok(jxAqjcglService.listHead(bo, pageQuery));
}
/**
* 查询近6月机械安全检查结果趋势
*/
@SaCheckPermission("jxaqgl:aqjcgl:list")
@GetMapping("/listHeadJgqs")
public List<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) {
return jxAqjcglService.listHeadJgqs(bo, pageQuery);
}
/**
* 查询机械安全检查记录列表
*/
@SaCheckPermission("jxaqgl:aqjcgl:list")
@GetMapping("/list")
public TableDataInfo<JxAqjcglVo> 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<JxAqjcglVo> list = jxAqjcglService.queryList(bo);
ExcelUtil.exportExcel(list, "机械安全检查记录", JxAqjcglVo.class, response);
}
/**
* 获取机械安全检查记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("jxaqgl:aqjcgl:query")
@GetMapping("/{id}")
public R<JxAqjcglVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(jxAqjcglService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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<JxAqjcglJcnrBo> jcnrList;
/**
* 问题详情
*/
private List<JxAqjcglWtxqBo> wtxqBoList;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<JxAqjcglJcnr> jcnrList;
/**
* 问题详情
*/
private List<JxAqjcglWtxq> wtxqBoList;
}

View File

@ -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;
}

View File

@ -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<JxAqjcglJcnr, JxAqjcglJcnrVo> {
}

View File

@ -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<JxAqjcgl, JxAqjcglVo> {
}

View File

@ -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<JxAqjcglWtxq, JxAqjcglWtxqVo> {
}

View File

@ -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<JxAqjcglJcnr>{
/**
* 查询机械安全检查记录——检查内容
*
* @param id 主键
* @return 机械安全检查记录——检查内容
*/
JxAqjcglJcnrVo queryById(Long id);
/**
* 分页查询机械安全检查记录——检查内容列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械安全检查记录——检查内容分页列表
*/
TableDataInfo<JxAqjcglJcnrVo> queryPageList(JxAqjcglJcnrBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械安全检查记录——检查内容列表
*
* @param bo 查询条件
* @return 机械安全检查记录——检查内容列表
*/
List<JxAqjcglJcnrVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<JxAqjcgl>{
/**
* 查询机械安全检查记录
*
* @param id 主键
* @return 机械安全检查记录
*/
JxAqjcglVo queryById(Long id);
/**
* 分页查询机械安全检查记录列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械安全检查记录分页列表
*/
TableDataInfo<JxAqjcglVo> queryPageList(JxAqjcglBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械安全检查记录列表
*
* @param bo 查询条件
* @return 机械安全检查记录列表
*/
List<JxAqjcglVo> 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<Long> ids, Boolean isValid);
JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery);
List<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery);
}

View File

@ -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<JxAqjcglWtxq>{
/**
* 查询机械安全检查记录——问题详情
*
* @param id 主键
* @return 机械安全检查记录——问题详情
*/
JxAqjcglWtxqVo queryById(Long id);
/**
* 分页查询机械安全检查记录——问题详情列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械安全检查记录——问题详情分页列表
*/
TableDataInfo<JxAqjcglWtxqVo> queryPageList(JxAqjcglWtxqBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械安全检查记录——问题详情列表
*
* @param bo 查询条件
* @return 机械安全检查记录——问题详情列表
*/
List<JxAqjcglWtxqVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<JxAqjcglJcnrMapper, JxAqjcglJcnr> 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<JxAqjcglJcnrVo> queryPageList(JxAqjcglJcnrBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxAqjcglJcnr> lqw = buildQueryWrapper(bo);
Page<JxAqjcglJcnrVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械安全检查记录——检查内容列表
*
* @param bo 查询条件
* @return 机械安全检查记录——检查内容列表
*/
@Override
public List<JxAqjcglJcnrVo> queryList(JxAqjcglJcnrBo bo) {
LambdaQueryWrapper<JxAqjcglJcnr> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxAqjcglJcnr> buildQueryWrapper(JxAqjcglJcnrBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxAqjcglJcnr> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<JxAqjcglMapper, JxAqjcgl> 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<JxAqjcglWtxq> jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglWtxq>().eq(JxAqjcglWtxq::getMasterId, jxAqjcglVo.getId()));
List<JxAqjcglJcnr> jxAqjcglJcnrs = jxAqjcglJcnrService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglJcnr>().eq(JxAqjcglJcnr::getMasterId, jxAqjcglVo.getId()));
jxAqjcglVo.setWtxqBoList(jxAqjcglWtxqs);
jxAqjcglVo.setJcnrList(jxAqjcglJcnrs);
}
}
/**
* 分页查询机械安全检查记录列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械安全检查记录分页列表
*/
@Override
public TableDataInfo<JxAqjcglVo> queryPageList(JxAqjcglBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxAqjcgl> lqw = buildQueryWrapper(bo);
Page<JxAqjcglVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械安全检查记录列表
*
* @param bo 查询条件
* @return 机械安全检查记录列表
*/
@Override
public List<JxAqjcglVo> queryList(JxAqjcglBo bo) {
LambdaQueryWrapper<JxAqjcgl> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxAqjcgl> buildQueryWrapper(JxAqjcglBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxAqjcgl> 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<JxAqjcglWtxqBo> 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<JxAqjcglJcnrBo> 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<JxYhzgbh>().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<JxAqjcglWtxqBo> wtxqBoList = bo.getWtxqBoList();
jxAqjcglWtxqService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglWtxq>().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<JxAqjcglJcnrBo> jcnrList = bo.getJcnrList();
jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglJcnr>().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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
List<Long> deleteIds = new ArrayList<>();
for (Long id : ids) {
JxAqjcglVo vo = baseMapper.selectVoById(id);
if (vo != null){
//删除附件
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
deleteIds.addAll(list);
}
if (vo.getPdfId()!= null && !vo.getPdfId().isEmpty()){
List<Long> 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<JxAqjcglWtxq>().in(JxAqjcglWtxq::getMasterId, ids));
jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglJcnr>().in(JxAqjcglJcnr::getMasterId, ids));
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery) {
JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo();
List<JxAqjcgl> jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcgl>().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<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) {
List<MonthDateRange> monthRanges = getLast6MonthsRange();
ArrayList<JxAnqjcgHeadVo> jxAnqjcgHeadVos = new ArrayList<>();
for (MonthDateRange range : monthRanges) {
JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo();
List<JxAqjcgl> jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcgl>().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<MonthDateRange> getLast6MonthsRange() {
List<MonthDateRange> 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;
}
}

View File

@ -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<JxAqjcglWtxqMapper, JxAqjcglWtxq> 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<JxAqjcglWtxqVo> queryPageList(JxAqjcglWtxqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxAqjcglWtxq> lqw = buildQueryWrapper(bo);
Page<JxAqjcglWtxqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械安全检查记录——问题详情列表
*
* @param bo 查询条件
* @return 机械安全检查记录——问题详情列表
*/
@Override
public List<JxAqjcglWtxqVo> queryList(JxAqjcglWtxqBo bo) {
LambdaQueryWrapper<JxAqjcglWtxq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxAqjcglWtxq> buildQueryWrapper(JxAqjcglWtxqBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxAqjcglWtxq> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<DeviceInfoVo> list(DeviceInfoBo bo, PageQuery pageQuery) {
return deviceInfoService.queryPageList(bo, pageQuery);
}
/**
* 查询机械事故信息记录列表
*/
@SaCheckPermission("jxsgjl:sgxxjlb:list")
@GetMapping("/list")
public TableDataInfo<JxSgxxjlbVo> list(JxSgxxjlbBo bo, PageQuery pageQuery) {
return jxSgxxjlbService.queryPageList(bo, pageQuery);
}
/**
* 查询机械事故记录头部数据
*/
@SaCheckPermission("jxsgjl:sgxxjlb:list")
@GetMapping("/getHeadData")
public R<JxSgxxHead> 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<JxSgxxjlbVo> list = jxSgxxjlbService.queryList(bo);
ExcelUtil.exportExcel(list, "机械事故信息记录", JxSgxxjlbVo.class, response);
}
/**
* 获取机械事故信息记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("jxsgjl:sgxxjlb:query")
@GetMapping("/{id}")
public R<JxSgxxjlbVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(jxSgxxjlbService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<JxSgxxjlb, JxSgxxjlbVo> {
}

View File

@ -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<JxSgxxjlb>{
/**
* 查询机械事故信息记录
*
* @param id 主键
* @return 机械事故信息记录
*/
JxSgxxjlbVo queryById(Long id);
/**
* 分页查询机械事故信息记录列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械事故信息记录分页列表
*/
TableDataInfo<JxSgxxjlbVo> queryPageList(JxSgxxjlbBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械事故信息记录列表
*
* @param bo 查询条件
* @return 机械事故信息记录列表
*/
List<JxSgxxjlbVo> 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<Long> ids, Boolean isValid);
JxSgxxHead getHeadData();
}

View File

@ -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<JxSgxxjlbMapper, JxSgxxjlb> 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<JxSgxxjlbVo> queryPageList(JxSgxxjlbBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxSgxxjlb> lqw = buildQueryWrapper(bo);
Page<JxSgxxjlbVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械事故信息记录列表
*
* @param bo 查询条件
* @return 机械事故信息记录列表
*/
@Override
public List<JxSgxxjlbVo> queryList(JxSgxxjlbBo bo) {
LambdaQueryWrapper<JxSgxxjlb> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxSgxxjlb> buildQueryWrapper(JxSgxxjlbBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxSgxxjlb> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public JxSgxxHead getHeadData() {
JxSgxxHead jxSgxxHead = new JxSgxxHead();
List<JxSgxxjlb> jxSgxxjlbs = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxSgxxjlb>().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;
}
}

View File

@ -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<JxZgxxHeadVo> getListHead(JxYhzgbhBo bo, PageQuery pageQuery) {
return R.ok(jxYhzgbhService.getListHead(bo, pageQuery));
}
/**
* 整改接口
*/
@SaCheckPermission("jxzgbh:yhzgbh:edit")
@PutMapping("/zgPutBo")
public R<Void> zgPutBo(@RequestBody JxZgxxBo bo) {
return toAjax(jxYhzgbhService.zgPutBo(bo));
}
/**
* 复查,整改接口详情查询 1整改 2 复查
*/
@SaCheckPermission("jxzgbh:yhzgbh:edit")
@PutMapping("/zgxxorfcxx/{type}/{id}")
public R<JxZgxxOrFcxxVo> zgxxorfcxx(@PathVariable String type, @PathVariable Long id) {
return R.ok(jxYhzgbhService.zgxxorfcxx(type,id));
}
/**
*复查
*/
@SaCheckPermission("jxzgbh:yhzgbh:edit")
@PutMapping("/fcPutBo")
public R<Void> fcPutBo(@RequestBody JxFcxxBo bo) {
return toAjax(jxYhzgbhService.fcPutBo(bo));
}
/**
* 查询机械隐患整改与闭环列表
*/
@SaCheckPermission("jxzgbh:yhzgbh:list")
@GetMapping("/list")
public TableDataInfo<JxYhzgbhVo> 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<JxYhzgbhVo> list = jxYhzgbhService.queryList(bo);
ExcelUtil.exportExcel(list, "机械隐患整改与闭环", JxYhzgbhVo.class, response);
}
/**
* 获取机械隐患整改与闭环详细信息
*
* @param id 主键
*/
@SaCheckPermission("jxzgbh:yhzgbh:query")
@GetMapping("/{id}")
public R<JxYhzgbhVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(jxYhzgbhService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<JxZgxx> zgxxList;
/**
* 复查信息
*/
private List<JxFcxx> fcxxList;
/**
* 问题详情
*/
private List<JxAqjcglWtxq> wtxqList;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<JxFcxx, JxFcxxVo> {
}

View File

@ -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<JxYhzgbh, JxYhzgbhVo> {
}

View File

@ -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<JxZgxx, JxZgxxVo> {
}

View File

@ -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<JxFcxx>{
/**
* 查询机械隐患复查信息
*
* @param id 主键
* @return 机械隐患复查信息
*/
JxFcxxVo queryById(Long id);
/**
* 分页查询机械隐患复查信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械隐患复查信息分页列表
*/
TableDataInfo<JxFcxxVo> queryPageList(JxFcxxBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械隐患复查信息列表
*
* @param bo 查询条件
* @return 机械隐患复查信息列表
*/
List<JxFcxxVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<JxYhzgbh>{
/**
* 查询机械隐患整改与闭环
*
* @param id 主键
* @return 机械隐患整改与闭环
*/
JxYhzgbhVo queryById(Long id);
/**
* 分页查询机械隐患整改与闭环列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械隐患整改与闭环分页列表
*/
TableDataInfo<JxYhzgbhVo> queryPageList(JxYhzgbhBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械隐患整改与闭环列表
*
* @param bo 查询条件
* @return 机械隐患整改与闭环列表
*/
List<JxYhzgbhVo> 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<Long> ids, Boolean isValid);
JxZgxxHeadVo getListHead(JxYhzgbhBo bo, PageQuery pageQuery);
Boolean zgPutBo(JxZgxxBo bo);
Boolean fcPutBo(JxFcxxBo bo);
JxZgxxOrFcxxVo zgxxorfcxx(String type, Long id);
}

View File

@ -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<JxZgxx>{
/**
* 查询机械隐患整改信息
*
* @param id 主键
* @return 机械隐患整改信息
*/
JxZgxxVo queryById(Long id);
/**
* 分页查询机械隐患整改信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械隐患整改信息分页列表
*/
TableDataInfo<JxZgxxVo> queryPageList(JxZgxxBo bo, PageQuery pageQuery);
/**
* 查询符合条件的机械隐患整改信息列表
*
* @param bo 查询条件
* @return 机械隐患整改信息列表
*/
List<JxZgxxVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<JxFcxxMapper, JxFcxx> 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<JxFcxxVo> queryPageList(JxFcxxBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxFcxx> lqw = buildQueryWrapper(bo);
Page<JxFcxxVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械隐患复查信息列表
*
* @param bo 查询条件
* @return 机械隐患复查信息列表
*/
@Override
public List<JxFcxxVo> queryList(JxFcxxBo bo) {
LambdaQueryWrapper<JxFcxx> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxFcxx> buildQueryWrapper(JxFcxxBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxFcxx> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<JxYhzgbhMapper, JxYhzgbh> 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<JxZgxx> jxZgxxes = jxZgxxService.getBaseMapper().selectList(new LambdaQueryWrapper<JxZgxx>().eq(JxZgxx::getMasterId, jxYhzgbhVo.getId()));
if (jxZgxxes != null){
jxYhzgbhVo.setZgxxList(jxZgxxes);
}
// 回填复查数据
List<JxFcxx> jxFcxxes = jxFcxxService.getBaseMapper().selectList(new LambdaQueryWrapper<JxFcxx>().eq(JxFcxx::getMasterId, jxYhzgbhVo.getId()));
if (jxFcxxes != null){
jxYhzgbhVo.setFcxxList(jxFcxxes);
}
// 问题详情
List<JxAqjcglWtxq> jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglWtxq>().eq(JxAqjcglWtxq::getMasterId, jxYhzgbhVo.getId()));
if (jxAqjcglWtxqs != null){
jxYhzgbhVo.setWtxqList(jxAqjcglWtxqs);
}
}
}
/**
* 分页查询机械隐患整改与闭环列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 机械隐患整改与闭环分页列表
*/
@Override
public TableDataInfo<JxYhzgbhVo> queryPageList(JxYhzgbhBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxYhzgbh> lqw = buildQueryWrapper(bo);
Page<JxYhzgbhVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械隐患整改与闭环列表
*
* @param bo 查询条件
* @return 机械隐患整改与闭环列表
*/
@Override
public List<JxYhzgbhVo> queryList(JxYhzgbhBo bo) {
LambdaQueryWrapper<JxYhzgbh> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxYhzgbh> buildQueryWrapper(JxYhzgbhBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxYhzgbh> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public JxZgxxHeadVo getListHead(JxYhzgbhBo bo, PageQuery pageQuery) {
JxZgxxHeadVo jxZgxxHeadVo = new JxZgxxHeadVo();
List<JxYhzgbh> jxYhzgbhs = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxYhzgbh>().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<JxZgxx>().eq(JxZgxx::getMasterId, bo.getMasterId()));
bo.setSort(Integer.parseInt(l+"") + 1);
// 将状态修改为已整改
this.getBaseMapper().update(new LambdaUpdateWrapper<JxYhzgbh>().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<JxYhzgbh>().eq(JxYhzgbh::getId, bo.getMasterId()).set(JxYhzgbh::getAbarbeitungState,"1"));
}
Long l = jxFcxxService.getBaseMapper().selectCount(new LambdaQueryWrapper<JxFcxx>().eq(JxFcxx::getMasterId, bo.getMasterId()));
bo.setSort(Integer.parseInt(l+"") + 1);
// 修改闭环状态
this.getBaseMapper().update(new LambdaUpdateWrapper<JxYhzgbh>().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<JxAqjcglWtxq> jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglWtxq>().eq(JxAqjcglWtxq::getMasterId, id));
if (jxAqjcglWtxqs != null) {
jxZgxxOrFcxxVo.getYhzgbhVo().setWtxqList(jxAqjcglWtxqs);
}
}
// 回填整改信息
if ("2".equals(type)) {
List<JxZgxx> jxZgxxes = jxZgxxService.getBaseMapper().selectList(new LambdaQueryWrapper<JxZgxx>().eq(JxZgxx::getMasterId, id).orderByDesc(JxZgxx::getSort));
if (jxZgxxes != null && jxZgxxes.size() > 0) {
jxZgxxOrFcxxVo.setZgxxVo(jxZgxxes.get(0));
}
}
// 回填复查信息
if ("1".equals(type)) {
List<JxFcxx> jxFcxxes = jxFcxxService.getBaseMapper().selectList(new LambdaQueryWrapper<JxFcxx>().eq(JxFcxx::getMasterId, id).orderByDesc(JxFcxx::getSort));
if (jxFcxxes != null && jxFcxxes.size() > 0) {
jxZgxxOrFcxxVo.setFcxxVo(jxFcxxes.get(0));
}
}
return jxZgxxOrFcxxVo;
}
}

View File

@ -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<JxZgxxMapper, JxZgxx> 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<JxZgxxVo> queryPageList(JxZgxxBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<JxZgxx> lqw = buildQueryWrapper(bo);
Page<JxZgxxVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的机械隐患整改信息列表
*
* @param bo 查询条件
* @return 机械隐患整改信息列表
*/
@Override
public List<JxZgxxVo> queryList(JxZgxxBo bo) {
LambdaQueryWrapper<JxZgxx> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<JxZgxx> buildQueryWrapper(JxZgxxBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<JxZgxx> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}