lyh
10 小时以前 9a9697c55fa66821cf74165ac2ae820182dae94d
设备维修对应接口
已添加32个文件
已修改18个文件
4309 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EamRepairOrderRepairStatusEnum.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamRepairOrderDto.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportAccidentsRegisterDto.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportProductHazardsDto.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportRepairDto.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairPerson.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportAccidentsRegister.java 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportProductHazards.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java 198 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportThreeNoSpare.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamRepairPersonMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportAccidentsRegisterMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportProductHazardsMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportThreeNoSpareMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairPersonMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportAccidentsRegisterMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportProductHazardsMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportThreeNoSpareMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportAccidentsRegisterQuery.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportProductHazardsQuery.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportRepairRequest.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamRepairPersonService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportAccidentsRegisterService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportProductHazardsService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportThreeNoSpareService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 412 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairPersonServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportAccidentsRegisterServiceImpl.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportProductHazardsServiceImpl.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportThreeNoSpareServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairPersonController.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportAccidentsRegisterController.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportProductHazardsController.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportThreeNoSpareController.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -139,8 +139,6 @@
                    if (ReportRepairEnum.COMPLETE.name().equals(order.getRepairStatus())) {
                        log.setEquipmentId(order.getEquipmentId());
                        log.setBusinessId(order.getId());
                        log.setOperator(order.getRepairer());
                        log.setDescription(order.getRepairDescription());
                        log.setCreateTime(order.getActualEndTime());
                    }
                }
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EamRepairOrderRepairStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package org.jeecg.modules.eam.constant;
public enum EamRepairOrderRepairStatusEnum {
    PENDING_REPAIR,
    UNDER_MAINTENANCE,
    PENDING_CONFIRMATION,
    REPAIR_COMPLETED;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java
@@ -8,5 +8,7 @@
    WAIT_REPAIR_DIRECTOR,
    WAIT_TECHNICAL_DIRECTOR,
    START,
    ABOLISH;
    ABOLISH, //已作废
    REJECTED //已驳回
    ;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java
@@ -7,6 +7,7 @@
    WAIT_INSPECTOR_CONFIRM, // æ£€æŸ¥äººç¡®è®¤
    COMPLETE,  //已完成
    ABOLISH, //已作废
    REJECTED //已驳回
    ;
    public static SecondMaintenanceStatusEnum getInstance(String code) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamRepairOrderDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.aspect.annotation.DictList;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_repair_order对象", description = "维修工单")
public class EamRepairOrderDto {
    /**主键*/
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**更新人*/
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**删除标记*/
    private Integer delFlag;
    /**工单编号*/
    private String repairCode;
    /**报修ID*/
    private String reportId;
    /**设备ID*/
    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_name")
    private String equipmentId;
    /** ç»´ä¿®çŠ¶æ€*/
    @Dict(dicCode = "repair_status")
    private String repairStatus ;
    /** ç»´ä¿®å¼€å§‹æ—¶é—´ */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date actualStartTime ;
    /** ç»´ä¿®ç»“束时间 */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date actualEndTime ;
    /** ç»´ä¿®ç¡®è®¤ */
    private String repairConfirm ;
    /** ç»´ä¿®ç¡®è®¤æ„è§ */
    private String repairConfirmComment ;
    /** ç»´ä¿®ç¡®è®¤æ—¶é—´ */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date repairConfirmTime ;
    /** æ•…障原因 */
    private String faultReason ;
    /** æ•…障分析 */
    private String faultAnalysis ;
    /** æŽ’故过程 */
    private String faultProcess ;
    /** é¢„防措施 */
    private String faultPrevent ;
    /** æ“ä½œå·¥ */
    @ApiModelProperty(name = "操作工",notes = "")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String confirmer;
    /** æ“ä½œå·¥ç¡®è®¤ç»“æžœ*/
    @ApiModelProperty(name = "操作工确认结果",notes = "")
    private String confirmResult;
    /** æ“ä½œå·¥ç¡®è®¤æ—¶é—´ */
    @ApiModelProperty(name = "操作工确认时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    /** æ“ä½œå·¥ç¡®è®¤æ„è§ */
    @ApiModelProperty(name = "操作工确认意见",notes = "")
    private String confirmComment;
    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    /**设备编码*/
    private String equipmentCode;
    /**设备型号*/
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
    /**故障维修人员列表*/
    @DictList
    private List<EamRepairPerson> eamRepairPersonList;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportAccidentsRegisterDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,270 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_accidents_register")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EamReportAccidentsRegisterDto  {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private String delFlag;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**是否有设备操作证 æ˜¯å¦*/
    @Excel(name = "是否有设备操作证 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "是否有设备操作证 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String operationCertificate;
    /**是否断电重启*/
    @Excel(name = "是否断电重启", width = 15)
    @ApiModelProperty(value = "是否断电重启")
    @Dict(dicCode = "yn")
    private String powerOffRestart;
    /**是否为批次首件*/
    @Excel(name = "是否为批次首件", width = 15)
    @ApiModelProperty(value = "是否为批次首件")
    @Dict(dicCode = "yn")
    private String batchFirstPiece;
    /**变动因素 æ˜¯å¦*/
    @Excel(name = "变动因素 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "变动因素 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String variableFactors;
    /**变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€*/
    @Excel(name = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€", width = 15)
    @ApiModelProperty(value = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹")
    @Dict(dicCode = "variable_factors_value")
    private String variableFactorsValue;
    /**执行程序*/
    @Excel(name = "执行程序", width = 15)
    @ApiModelProperty(value = "执行程序")
    private String executeNc;
    /**事故现象*/
    @Excel(name = "事故现象", width = 15)
    @ApiModelProperty(value = "事故现象")
    private String accidentPhenomenon;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String measure;
    /**造成结果*/
    @Excel(name = "造成结果", width = 15)
    @ApiModelProperty(value = "造成结果")
    private String causingResults;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**区长*/
    @Excel(name = "区长", width = 15)
    @ApiModelProperty(value = "区长")
    private String district;
    /**区长确认*/
    @Excel(name = "区长确认", width = 15)
    @ApiModelProperty(value = "区长确认")
    private String districtConfirm;
    /**区长确认时间*/
    @Excel(name = "区长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "区长确认时间")
    private Date districtTime;
    /**中心主任*/
    @Excel(name = "中心主任", width = 15)
    @ApiModelProperty(value = "中心主任")
    private String centerDirector;
    /**中心主任确认*/
    @Excel(name = "中心主任确认", width = 15)
    @ApiModelProperty(value = "中心主任确认")
    private String centerDirectorConfirm;
    /**中心主任确认时间*/
    @Excel(name = "中心主任确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "中心主任确认时间")
    private Date centerDirectorTime;
    /**维修开始时间*/
    @Excel(name = "维修开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修开始时间")
    private Date reportStartTime;
    /**设备状态*/
    @Excel(name = "设备状态", width = 15)
    @ApiModelProperty(value = "设备状态")
    private String equipmentStatus;
    /**原因分析*/
    @Excel(name = "原因分析", width = 15)
    @ApiModelProperty(value = "原因分析")
    private String causeAnalysis;
    /**检查结果*/
    @Excel(name = "检查结果", width = 15)
    @ApiModelProperty(value = "检查结果")
    private String inspectionResults;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String takeSteps;
    /**建议采取措施*/
    @Excel(name = "建议采取措施", width = 15)
    @ApiModelProperty(value = "建议采取措施")
    private String suggestionTakeSteps;
    /**建议采取措施时间*/
    @Excel(name = "建议采取措施时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "建议采取措施时间")
    private Date suggestionTakeStepsTime;
    /**维修确认*/
    @Excel(name = "维修确认", width = 15)
    @ApiModelProperty(value = "维修确认")
    private String repairConfirm;
    /**维修确认意见*/
    @Excel(name = "维修确认意见", width = 15)
    @ApiModelProperty(value = "维修确认意见")
    private String repairConfirmComment;
    /**维修确认时间*/
    @Excel(name = "维修确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修确认时间")
    private Date repairConfirmTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairGroupLeader;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairGroupLeaderComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairGroupLeaderTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairDistrict;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairDistrictComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairDistrictTime;
    /**原因分析核对同意、不同意*/
    @Excel(name = "原因分析核对同意、不同意", width = 15)
    @ApiModelProperty(value = "原因分析核对同意、不同意")
    private String checkAgree;
    /**不同意原因分析*/
    @Excel(name = "不同意原因分析", width = 15)
    @ApiModelProperty(value = "不同意原因分析")
    private String disagreeReason;
    /**整改措施*/
    @Excel(name = "整改措施", width = 15)
    @ApiModelProperty(value = "整改措施")
    private String rectificationMeasures;
    /**事故结论*/
    @Excel(name = "事故结论", width = 15)
    @ApiModelProperty(value = "事故结论")
    private String accidentConclusion;
    /**技术负责人*/
    @Excel(name = "技术负责人", width = 15)
    @ApiModelProperty(value = "技术负责人")
    private String technicalDirector;
    /**技术负责人确认时间*/
    @Excel(name = "技术负责人确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术负责人确认时间")
    private Date technicalDirectorTime;
    /**技术主管室级领导*/
    @Excel(name = "技术主管室级领导", width = 15)
    @ApiModelProperty(value = "技术主管室级领导")
    private String technicalDirectorLeader;
    /**技术主管室级领导确认时间*/
    @Excel(name = "技术主管室级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术主管室级领导确认时间")
    private Date technicalDirectorLeaderTime;
    /**主管部级领导*/
    @Excel(name = "主管部级领导", width = 15)
    @ApiModelProperty(value = "主管部级领导")
    private String technicalDirectorPart;
    /**主管部级领导确认时间*/
    @Excel(name = "主管部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管部级领导确认时间")
    private Date technicalDirectorPartTime;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportProductHazardsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_product_hazards")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EamReportProductHazardsDto {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**产品损失情况*/
    @Excel(name = "产品损失情况", width = 15)
    @ApiModelProperty(value = "产品损失情况")
    private String productLoss;
    /**产品损失质量影响分析*/
    @Excel(name = "产品损失质量影响分析", width = 15)
    @ApiModelProperty(value = "产品损失质量影响分析")
    private String qualityAnalysis;
    /**主管工艺*/
    @Excel(name = "主管工艺", width = 15)
    @ApiModelProperty(value = "主管工艺")
    private String technologist;
    /**主管工艺确认时间*/
    @Excel(name = "主管工艺确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管工艺确认时间")
    private Date technologistTime;
    /**主管工艺确认意见*/
    @Excel(name = "主管工艺确认意见", width = 15)
    @ApiModelProperty(value = "主管工艺确认意见")
    private String technologistComment;
    /**部级领导*/
    @Excel(name = "部级领导", width = 15)
    @ApiModelProperty(value = "部级领导")
    private String deputyDepartment;
    /**部级领导确认时间*/
    @Excel(name = "部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "部级领导确认时间")
    private Date deputyDepartmentTime;
    /**部级领导确认意见*/
    @Excel(name = "部级领导确认意见", width = 15)
    @ApiModelProperty(value = "部级领导确认意见")
    private String deputyDepartmentComment;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportRepairDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: æ•…障报修Dto
 * @Author: jeecg-boot
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_repair对象", description="故障报修")
public class EamReportRepairDto {
    /**主键*/
    private String id;
    /**创建人*/
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**删除标记*/
    @TableLogic
    private Integer delFlag;
    /**设备ID*/
    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_name")
    private String equipmentId;
    /** æŠ¥ä¿®çŠ¶æ€*/
    @Dict(dicCode = "repair_status")
    private String reportStatus;
    /**是否加工 åŠ å·¥ã€æœªåŠ å·¥*/
    @Dict(dicCode = "is_processed")
    private String isProcessed;
    /**故障开始时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date faultStartTime;
    /**是否停机*/
    @Dict(dicCode = "yn")
    private String breakdownFlag;
    /**故障现象*/
    private String faultDescription;
    /**批次号*/
    private String batchNumber;
    /**加工零件号*/
    private String processingPart;
    /**件数*/
    private String quantity;
    /**设备事故 æ˜¯å¦*/
    @Dict(dicCode = "yn")
    private String isAccidentsRegister;
    /**废品件号*/
    private String scrapPartNumber;
    /**废品件数*/
    private String scrapPartQuantity;
    /**废品价值*/
    private String scrapPartValue;
    /**备注*/
    private String remark;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
    /**是否有设备操作证 æ˜¯å¦*/
    @Dict(dicCode = "yn")
    private String operationCertificate;
    /**是否断电重启*/
    @Dict(dicCode = "yn")
    private String powerOffRestart;
    /**是否为批次首件*/
    @Dict(dicCode = "yn")
    private String batchFirstPiece;
    /**变动因素 æ˜¯å¦*/
    @Dict(dicCode = "yn")
    private String variableFactors;
    /**变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€*/
    @Dict(dicCode = "variable_factors_value")
    private String variableFactorsValue;
    /**执行程序*/
    private String executeNc;
    /**事故现象*/
    private String accidentPhenomenon;
    /**采取措施*/
    private String measure;
    /**造成结果*/
    private String causingResults;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
@@ -1,7 +1,10 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,6 +13,7 @@
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@@ -27,7 +31,26 @@
public class EamRepairOrder extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = -2336763554235629574L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**
     * åˆ é™¤æ ‡è®°
     */
@@ -40,144 +63,61 @@
    @Excel(name = "工单编号", width = 15)
    @ApiModelProperty(value = "工单编号")
    private String repairCode;
    /**
     * æŠ¥ä¿®ID
     */
    /** æŠ¥ä¿®ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**
     * è®¾å¤‡ID
     */
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
//    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_name")
    private String equipmentId;
    /**
     * ç»´ä¿®çŠ¶æ€
     */
    @Excel(name = "维修状态", width = 15)
    @ApiModelProperty(value = "维修状态")
    @Dict(dicCode = "report_repair_status")
    /** ç»´ä¿®çŠ¶æ€*/
    @ApiModelProperty(name = "维修状态",notes = "待维修、维修中、待确认、维修完成")
    @Dict(dicCode = "repair_status")
    private String repairStatus;
    /**
     * ç»´ä¿®å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value = "维修开始时间")
    /** ç»´ä¿®å¼€å§‹æ—¶é—´ */
    @ApiModelProperty(name = "维修开始时间",notes = "")
    private Date actualStartTime;
    /**
     * ç»´ä¿®ç»“束时间
     */
    @ApiModelProperty(value = "维修结束时间")
    /** ç»´ä¿®ç»“束时间 */
    @ApiModelProperty(name = "维修结束时间",notes = "")
    private Date actualEndTime;
    /**
     * ç»´ä¿®ç¡®è®¤ç»“æžœ
     */
    @ApiModelProperty(value = "维修确认结果")
    @Dict(dicCode = "yn")
    /** ç»´ä¿®ç¡®è®¤ */
    @ApiModelProperty(name = "维修确认",notes = "")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairConfirm;
    /**
     * ç»´ä¿®ç¡®è®¤æ„è§
     */
    @ApiModelProperty(value = "维修确认意见")
    /** ç»´ä¿®ç¡®è®¤æ„è§ */
    @ApiModelProperty(name = "维修确认意见",notes = "")
    private String repairConfirmComment;
    /**
     * ç»´ä¿®ç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "维修确认时间")
    /** ç»´ä¿®ç¡®è®¤æ—¶é—´ */
    @ApiModelProperty(name = "维修确认时间",notes = "")
    private Date repairConfirmTime;
    /**
     * æ•…障原因
     */
    @Excel(name = "故障原因", width = 15)
    @ApiModelProperty(value = "故障原因")
    /** æ•…障原因 */
    @ApiModelProperty(name = "故障原因",notes = "")
    private String faultReason;
    /**
     * ç»´ä¿®ç»“果描述
     */
    @Excel(name = "维修结果描述", width = 15)
    @ApiModelProperty(value = "维修结果描述")
    private String repairDescription;
    /**
     * ç»´ä¿®è´Ÿè´£äºº
     */
    @Excel(name = "维修负责人", width = 15)
    @ApiModelProperty(value = "维修负责人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairer;
    /**
     * ç¡®è®¤é¢†å¯¼
     */
    @ApiModelProperty(value = "确认领导")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String leaderUser;
    /**
     * é¢†å¯¼ç¡®è®¤ç»“æžœ
     */
    @ApiModelProperty(value = "领导确认结果")
    @Dict(dicCode = "yn")
    private String leaderConfirm;
    /**
     * ç¡®è®¤æ„è§
     */
    @ApiModelProperty(value = "确认意见")
    private String leaderConfirmComment;
    /**
     * ç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "确认时间")
    private Date leaderConfirmTime;
    /**
     * æœºåŠ¨åŠžç»´ä¿®äºº
     */
    @ApiModelProperty(value = "机动办维修人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String externalRepairer;
    /**
     * æœºåŠ¨åŠžç¡®è®¤ç»“æžœ
     */
    @ApiModelProperty(value = "机动办确认结果")
    @Dict(dicCode = "yn")
    private String externalConfirm;
    /**
     * æœºåŠ¨åŠžç¡®è®¤æ„è§
     */
    @ApiModelProperty(value = "机动办确认意见")
    private String externalConfirmComment;
    /**
     * æœºåŠ¨åŠžç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "机动办确认时间")
    private Date externalConfirmTime;
    /**
     * å§”外负责人
     */
    @Excel(name = "委外负责人", width = 15)
    @ApiModelProperty(value = "委外负责人")
    private String outsourcedUser;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @Excel(name = "照片文件ids;id以逗号分隔", width = 15)
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    /**
     * æ“ä½œå·¥ç¡®è®¤
     */
    @ApiModelProperty(value = "操作工确认")
    /** æ•…障分析 */
    @ApiModelProperty(name = "故障分析",notes = "")
    private String faultAnalysis;
    /** æŽ’故过程 */
    @ApiModelProperty(name = "排故过程",notes = "")
    private String faultProcess;
    /** é¢„防措施 */
    @ApiModelProperty(name = "预防措施",notes = "")
    private String faultPrevent;
    /** æ“ä½œå·¥ */
    @ApiModelProperty(name = "操作工",notes = "")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String confirmer;
    /**
     * æ“ä½œå·¥ç¡®è®¤æ„è§
     */
    @ApiModelProperty(value = "操作工确认意见")
    /** æ“ä½œå·¥ç¡®è®¤ç»“æžœ*/
    @ApiModelProperty(name = "操作工确认结果",notes = "")
    private String confirmResult;
    /** æ“ä½œå·¥ç¡®è®¤æ„è§ */
    @ApiModelProperty(name = "操作工确认意见",notes = "")
    private String confirmComment;
    /**
     * æ“ä½œå·¥ç¡®è®¤æ—¶é—´
     */
    /** æ“ä½œå·¥ç¡®è®¤æ—¶é—´*/
    @ApiModelProperty(value = "操作工确认时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    @TableField(exist = false)
@@ -189,6 +129,12 @@
    @TableField(exist = false)
    @ApiModelProperty(value = "设备编码")
    private String equipmentCode;
    /**
     * è®¾å¤‡åž‹å·
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairPerson.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: æ•…障维修人员
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_repair_person")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_repair_person对象", description="故障维修人员")
public class EamRepairPerson implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    /**维修工单Id*/
    @Excel(name = "维修工单Id", width = 15)
    @ApiModelProperty(value = "维修工单Id")
    private String repairId;
    /**维修人*/
    @Excel(name = "维修人", width = 15)
    @ApiModelProperty(value = "维修人")
    private String repairUser;
    /**是否是主维修人*/
    @Excel(name = "是否是主维修人", width = 15)
    @ApiModelProperty(value = "是否是主维修人")
    @Dict(dicCode = "yn")
    private String repairPrimary;
    /**维修时长*/
    @Excel(name = "维修时长", width = 15)
    @ApiModelProperty(value = "维修时长")
    private String repairDuration;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportAccidentsRegister.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,274 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_accidents_register")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_accidents_register对象", description="设备事故登记表")
public class EamReportAccidentsRegister implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private String delFlag;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**是否有设备操作证 æ˜¯å¦*/
    @Excel(name = "是否有设备操作证 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "是否有设备操作证 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String operationCertificate;
    /**是否断电重启*/
    @Excel(name = "是否断电重启", width = 15)
    @ApiModelProperty(value = "是否断电重启")
    @Dict(dicCode = "yn")
    private String powerOffRestart;
    /**是否为批次首件*/
    @Excel(name = "是否为批次首件", width = 15)
    @ApiModelProperty(value = "是否为批次首件")
    @Dict(dicCode = "yn")
    private String batchFirstPiece;
    /**变动因素 æ˜¯å¦*/
    @Excel(name = "变动因素 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "变动因素 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String variableFactors;
    /**变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€*/
    @Excel(name = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€", width = 15)
    @ApiModelProperty(value = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹")
    @Dict(dicCode = "variable_factors_value")
    private String variableFactorsValue;
    /**执行程序*/
    @Excel(name = "执行程序", width = 15)
    @ApiModelProperty(value = "执行程序")
    private String executeNc;
    /**事故现象*/
    @Excel(name = "事故现象", width = 15)
    @ApiModelProperty(value = "事故现象")
    private String accidentPhenomenon;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String measure;
    /**造成结果*/
    @Excel(name = "造成结果", width = 15)
    @ApiModelProperty(value = "造成结果")
    private String causingResults;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**区长*/
    @Excel(name = "区长", width = 15)
    @ApiModelProperty(value = "区长")
    private String district;
    /**区长确认*/
    @Excel(name = "区长确认", width = 15)
    @ApiModelProperty(value = "区长确认")
    private String districtConfirm;
    /**区长确认时间*/
    @Excel(name = "区长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "区长确认时间")
    private Date districtTime;
    /**中心主任*/
    @Excel(name = "中心主任", width = 15)
    @ApiModelProperty(value = "中心主任")
    private String centerDirector;
    /**中心主任确认*/
    @Excel(name = "中心主任确认", width = 15)
    @ApiModelProperty(value = "中心主任确认")
    private String centerDirectorConfirm;
    /**中心主任确认时间*/
    @Excel(name = "中心主任确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "中心主任确认时间")
    private Date centerDirectorTime;
    /**维修开始时间*/
    @Excel(name = "维修开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修开始时间")
    private Date reportStartTime;
    /**设备状态*/
    @Excel(name = "设备状态", width = 15)
    @ApiModelProperty(value = "设备状态")
    private String equipmentStatus;
    /**原因分析*/
    @Excel(name = "原因分析", width = 15)
    @ApiModelProperty(value = "原因分析")
    private String causeAnalysis;
    /**检查结果*/
    @Excel(name = "检查结果", width = 15)
    @ApiModelProperty(value = "检查结果")
    private String inspectionResults;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String takeSteps;
    /**建议采取措施*/
    @Excel(name = "建议采取措施", width = 15)
    @ApiModelProperty(value = "建议采取措施")
    private String suggestionTakeSteps;
    /**建议采取措施时间*/
    @Excel(name = "建议采取措施时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "建议采取措施时间")
    private Date suggestionTakeStepsTime;
    /**维修确认*/
    @Excel(name = "维修确认", width = 15)
    @ApiModelProperty(value = "维修确认")
    private String repairConfirm;
    /**维修确认意见*/
    @Excel(name = "维修确认意见", width = 15)
    @ApiModelProperty(value = "维修确认意见")
    private String repairConfirmComment;
    /**维修确认时间*/
    @Excel(name = "维修确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修确认时间")
    private Date repairConfirmTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairGroupLeader;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairGroupLeaderComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairGroupLeaderTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairDistrict;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairDistrictComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairDistrictTime;
    /**原因分析核对同意、不同意*/
    @Excel(name = "原因分析核对同意、不同意", width = 15)
    @ApiModelProperty(value = "原因分析核对同意、不同意")
    private String checkAgree;
    /**不同意原因分析*/
    @Excel(name = "不同意原因分析", width = 15)
    @ApiModelProperty(value = "不同意原因分析")
    private String disagreeReason;
    /**整改措施*/
    @Excel(name = "整改措施", width = 15)
    @ApiModelProperty(value = "整改措施")
    private String rectificationMeasures;
    /**事故结论*/
    @Excel(name = "事故结论", width = 15)
    @ApiModelProperty(value = "事故结论")
    private String accidentConclusion;
    /**技术负责人*/
    @Excel(name = "技术负责人", width = 15)
    @ApiModelProperty(value = "技术负责人")
    private String technicalDirector;
    /**技术负责人确认时间*/
    @Excel(name = "技术负责人确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术负责人确认时间")
    private Date technicalDirectorTime;
    /**技术主管室级领导*/
    @Excel(name = "技术主管室级领导", width = 15)
    @ApiModelProperty(value = "技术主管室级领导")
    private String technicalDirectorLeader;
    /**技术主管室级领导确认时间*/
    @Excel(name = "技术主管室级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术主管室级领导确认时间")
    private Date technicalDirectorLeaderTime;
    /**主管部级领导*/
    @Excel(name = "主管部级领导", width = 15)
    @ApiModelProperty(value = "主管部级领导")
    private String technicalDirectorPart;
    /**主管部级领导确认时间*/
    @Excel(name = "主管部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管部级领导确认时间")
    private Date technicalDirectorPartTime;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportProductHazards.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_product_hazards")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_product_hazards对象", description="产品安全隐患确认")
public class EamReportProductHazards implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**产品损失情况*/
    @Excel(name = "产品损失情况", width = 15)
    @ApiModelProperty(value = "产品损失情况")
    private String productLoss;
    /**产品损失质量影响分析*/
    @Excel(name = "产品损失质量影响分析", width = 15)
    @ApiModelProperty(value = "产品损失质量影响分析")
    private String qualityAnalysis;
    /**主管工艺*/
    @Excel(name = "主管工艺", width = 15)
    @ApiModelProperty(value = "主管工艺")
    private String technologist;
    /**主管工艺确认时间*/
    @Excel(name = "主管工艺确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管工艺确认时间")
    private Date technologistTime;
    /**主管工艺确认意见*/
    @Excel(name = "主管工艺确认意见", width = 15)
    @ApiModelProperty(value = "主管工艺确认意见")
    private String technologistComment;
    /**部级领导*/
    @Excel(name = "部级领导", width = 15)
    @ApiModelProperty(value = "部级领导")
    private String deputyDepartment;
    /**部级领导确认时间*/
    @Excel(name = "部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "部级领导确认时间")
    private Date deputyDepartmentTime;
    /**部级领导确认意见*/
    @Excel(name = "部级领导确认意见", width = 15)
    @ApiModelProperty(value = "部级领导确认意见")
    private String deputyDepartmentComment;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
@@ -1,114 +1,118 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: æ•…障报修
 * @Author: Lius
 * @Date: 2025-04-01
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_repair")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_report_repair对象", description = "故障报修")
public class EamReportRepair extends JeecgEntity implements Serializable {
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_repair对象", description="故障报修")
public class EamReportRepair implements Serializable {
    private static final long serialVersionUID = 1L;
    private static final long serialVersionUID = 3966250456529614720L;
    /**
     * è®¾å¤‡ID
     */
    @Excel(name = "设备ID", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
    @ApiModelProperty(value = "设备ID")
//    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
    private String equipmentId;
    /**
     * è®¾å¤‡åç§°
     */
    @Excel(name = "设备名称", width = 15)
    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    /**
     * åˆ é™¤æ ‡è®°
     */
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @Dict(dicCode = "del_flag")
    @TableLogic
    private Integer delFlag;
    /**
     * æ•…障开始时间
     */
    @ApiModelProperty(value = "故障开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "故障开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /**
     * æ˜¯å¦åœæœº
     */
    @Excel(name = "是否停机", width = 15, dicCode = "breakdown_flag")
    @ApiModelProperty(value = "是否停机")
    @Dict(dicCode = "breakdown_flag")
    private String breakdownFlag;
    /**
     * æ•…障简称
     */
    @Excel(name = "故障简称", width = 15)
    @ApiModelProperty(value = "故障简称")
    private String faultName;
    /**
     * æ•…障分类
     */
    @Excel(name = "故障分类", width = 15, dicCode = "fault_reason_category")
    @ApiModelProperty(value = "故障分类")
    @Dict(dicCode = "fault_reason_category")
    private String faultType;
    /**
     * æ•…障描述
     */
    @Excel(name = "故障描述", width = 15)
    @ApiModelProperty(value = "故障描述")
    private String faultDescription;
    /**
     * æŠ¥ä¿®çŠ¶æ€
     */
    @Excel(name = "报修状态", width = 15, dicCode = "report_repair_status")
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    @Excel(name = "设备ID", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_name")
    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_name")
    private String equipmentId;
    /** æŠ¥ä¿®çŠ¶æ€*/
    @ApiModelProperty(value = "报修状态")
    @Dict(dicCode = "report_repair_status")
    @Dict(dicCode = "repair_status")
    private String reportStatus;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @Excel(name = "照片", width = 15, type = 2)
    @ApiModelProperty(value = "照片")
    private String imageFiles;
    /**照片*/
    @ApiModelProperty(value = "照片")
    @TableField(exist = false)
    private List<FileUploadResult> imageFilesResult;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 15)
    /**是否加工 åŠ å·¥ã€æœªåŠ å·¥*/
    @Excel(name = "是否加工 åŠ å·¥ã€æœªåŠ å·¥", width = 15)
    @ApiModelProperty(value = "是否加工 åŠ å·¥ã€æœªåŠ å·¥")
    @Dict(dicCode = "is_processed")
    private String isProcessed;
    /**故障开始时间*/
    @Excel(name = "故障开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "故障开始时间")
    private Date faultStartTime;
    /**是否停机*/
    @Excel(name = "是否停机", width = 15)
    @ApiModelProperty(value = "是否停机")
    @Dict(dicCode = "yn")
    private String breakdownFlag;
    /**故障现象*/
    @Excel(name = "故障现象", width = 15)
    @ApiModelProperty(value = "故障现象")
    private String faultDescription;
    /**批次号*/
    @Excel(name = "批次号", width = 15)
    @ApiModelProperty(value = "批次号")
    private String batchNumber;
    /**加工零件号*/
    @Excel(name = "加工零件号", width = 15)
    @ApiModelProperty(value = "加工零件号")
    private String processingPart;
    /**件数*/
    @Excel(name = "件数", width = 15)
    @ApiModelProperty(value = "件数")
    private String quantity;
    /**设备事故 æ˜¯å¦*/
    @Excel(name = "设备事故 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "设备事故 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String isAccidentsRegister;
    /**废品件号*/
    @Excel(name = "废品件号", width = 15)
    @ApiModelProperty(value = "废品件号")
    private String scrapPartNumber;
    /**废品件数*/
    @Excel(name = "废品件数", width = 15)
    @ApiModelProperty(value = "废品件数")
    private String scrapPartQuantity;
    /**废品价值*/
    @Excel(name = "废品价值", width = 15)
    @ApiModelProperty(value = "废品价值")
    private String scrapPartValue;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
@@ -116,6 +120,10 @@
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportThreeNoSpare.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: â€œä¸‰ä¸æ”¾è¿‡çš„原则”分析表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_three_no_spare")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_three_no_spare对象", description="“三不放过的原则”分析表")
public class EamReportThreeNoSpare implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private String delFlag;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**原因分析*/
    @Excel(name = "原因分析", width = 15)
    @ApiModelProperty(value = "原因分析")
    private String causeAnalysis;
    /**培训教育是 å¦*/
    @Excel(name = "培训教育是 å¦", width = 15)
    @ApiModelProperty(value = "培训教育是 å¦")
    private String isTrainingEducation;
    /**培训形式*/
    @Excel(name = "培训形式", width = 15)
    @ApiModelProperty(value = "培训形式")
    private String trainingFormat;
    /**培训内容*/
    @Excel(name = "培训内容", width = 15)
    @ApiModelProperty(value = "培训内容")
    private String trainingContent;
    /**培训人*/
    @Excel(name = "培训人", width = 15)
    @ApiModelProperty(value = "培训人")
    private String trainingUser;
    /**培训时间*/
    @Excel(name = "培训时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "培训时间")
    private Date trainingUserTime;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamRepairPersonMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: æ•…障维修人员
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface EamRepairPersonMapper extends BaseMapper<EamRepairPerson> {
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportAccidentsRegisterMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface EamReportAccidentsRegisterMapper extends BaseMapper<EamReportAccidentsRegister> {
    IPage<EamReportAccidentsRegisterQuery>  queryPageList(IPage<EamReportAccidentsRegisterQuery> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportAccidentsRegisterQuery> eamReportAccidentsRegisterQuery);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportProductHazardsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.request.EamReportProductHazardsQuery;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface EamReportProductHazardsMapper extends BaseMapper<EamReportProductHazards> {
    IPage<EamReportProductHazardsQuery> queryPageList(Page<EamReportProductHazardsQuery> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportProductHazardsQuery> eamReportProductHazardsQuery);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.dto.EamReportRepairDto;
import org.jeecg.modules.eam.entity.EamReportRepair;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
@@ -34,5 +35,5 @@
     * @param queryWrapper
     * @return
     */
    IPage<EamReportRepair> queryPageList(Page<EamReportRepair> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportRepair> queryWrapper);
    IPage<EamReportRepairDto> queryPageList(Page<EamReportRepairDto> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportRepairDto> queryWrapper);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportThreeNoSpareMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamReportThreeNoSpare;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: â€œä¸‰ä¸æ”¾è¿‡çš„原则”分析表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface EamReportThreeNoSpareMapper extends BaseMapper<EamReportThreeNoSpare> {
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
@@ -46,10 +46,10 @@
        ORDER BY t1.create_time DESC
    </select>
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamRepairOrder">
        select wmo.*, e.equipment_code, e.equipment_name, e.installation_position
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model, e.installation_position
        from eam_repair_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        ${ew.customSqlSegment}
    </select>
</mapper>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairPersonMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamRepairPersonMapper">
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportAccidentsRegisterMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamReportAccidentsRegisterMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery">
        SELECT
            aar.*,
            e.equipment_code,
            e.equipment_name,
            e.equipment_model,
            e.installation_position
        FROM eam_report_accidents_register aar
                 LEFT JOIN eam_report_repair wmo
                           ON aar.report_id = wmo.id
                               AND wmo.del_flag = 0
                 INNER JOIN eam_equipment e
                            ON wmo.equipment_id = e.id
                                AND e.del_flag = 0
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportProductHazardsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamReportProductHazardsMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.request.EamReportProductHazardsQuery">
        select erph.*, e.equipment_code, e.equipment_name,e.equipment_model, e.installation_position
        from eam_report_product_hazards erph
                 inner join eam_equipment e
                            on erph.equipment_id = e.id
                                and e.del_flag=0
                 left join eam_report_repair arr
                           on erph.report_id = arr.id
                               and arr.del_flag=0
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
@@ -48,11 +48,17 @@
        </where>
        ORDER BY t1.create_time DESC
    </select>
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamReportRepair">
        select wmo.*, e.equipment_code, e.equipment_name, e.installation_position
    <select id="queryPageList" resultType="org.jeecg.modules.eam.dto.EamReportRepairDto">
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model, e.installation_position,
              aar.operation_certificate, power_off_restart, batch_first_piece, variable_factors,
              variable_factors_value, execute_nc, accident_phenomenon, measure, causing_results
        from eam_report_repair wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        and e.del_flag=0
        left join eam_report_accidents_register aar
        on wmo.id = aar.report_id
        and aar.del_flag=0
        ${ew.customSqlSegment}
    </select>
</mapper>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportThreeNoSpareMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamReportThreeNoSpareMapper">
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
@@ -8,6 +8,7 @@
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@@ -30,47 +31,16 @@
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**
     * æ•…障原因
     */
    @ApiModelProperty(value = "故障原因")
    private String faultReason;
    /**
     * ç»´ä¿®ç»“果描述
     */
    @ApiModelProperty(value = "维修结果描述")
    private String repairDescription;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    /**维修图片*/
    @ApiModelProperty(value = "维修图片集合")
    private List<FileUploadResult> imageFilesResult;
    /**
     * ç»´ä¿®äººç¡®è®¤
     */
    private String repairConfirm;
    private String repairConfirmComment;
    /**
     * é¢†å¯¼ç¡®è®¤
     */
    private String leaderConfirm;
    private String leaderConfirmComment;
    /**
     * æœºåŠ¨åŠžç¡®è®¤
     */
    private String externalConfirm;
    private String externalConfirmComment;
    /**
     * æ“ä½œå·¥ç¡®è®¤æ„è§
     */
    /** æ“ä½œå·¥ */
    @ApiModelProperty(name = "操作工",notes = "")
    private String confirmer;
    /** æ“ä½œå·¥ç¡®è®¤ç»“æžœ*/
    @ApiModelProperty(name = "操作工确认结果",notes = "")
    private String confirmResult;
    /** æ“ä½œå·¥ç¡®è®¤æ—¶é—´ */
    @ApiModelProperty(name = "操作工确认时间",notes = "")
    private Date confirmTime;
    /** æ“ä½œå·¥ç¡®è®¤æ„è§ */
    @ApiModelProperty(name = "操作工确认意见",notes = "")
    private String confirmComment;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportAccidentsRegisterQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,267 @@
package org.jeecg.modules.eam.request;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EamReportAccidentsRegisterQuery {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private String delFlag;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**是否有设备操作证 æ˜¯å¦*/
    @Excel(name = "是否有设备操作证 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "是否有设备操作证 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String operationCertificate;
    /**是否断电重启*/
    @Excel(name = "是否断电重启", width = 15)
    @ApiModelProperty(value = "是否断电重启")
    @Dict(dicCode = "yn")
    private String powerOffRestart;
    /**是否为批次首件*/
    @Excel(name = "是否为批次首件", width = 15)
    @ApiModelProperty(value = "是否为批次首件")
    @Dict(dicCode = "yn")
    private String batchFirstPiece;
    /**变动因素 æ˜¯å¦*/
    @Excel(name = "变动因素 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "变动因素 æ˜¯å¦")
    @Dict(dicCode = "yn")
    private String variableFactors;
    /**变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€*/
    @Excel(name = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€", width = 15)
    @ApiModelProperty(value = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹")
    @Dict(dicCode = "variable_factors_value")
    private String variableFactorsValue;
    /**执行程序*/
    @Excel(name = "执行程序", width = 15)
    @ApiModelProperty(value = "执行程序")
    private String executeNc;
    /**事故现象*/
    @Excel(name = "事故现象", width = 15)
    @ApiModelProperty(value = "事故现象")
    private String accidentPhenomenon;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String measure;
    /**造成结果*/
    @Excel(name = "造成结果", width = 15)
    @ApiModelProperty(value = "造成结果")
    private String causingResults;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**区长*/
    @Excel(name = "区长", width = 15)
    @ApiModelProperty(value = "区长")
    private String district;
    /**区长确认*/
    @Excel(name = "区长确认", width = 15)
    @ApiModelProperty(value = "区长确认")
    private String districtConfirm;
    /**区长确认时间*/
    @Excel(name = "区长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "区长确认时间")
    private Date districtTime;
    /**中心主任*/
    @Excel(name = "中心主任", width = 15)
    @ApiModelProperty(value = "中心主任")
    private String centerDirector;
    /**中心主任确认*/
    @Excel(name = "中心主任确认", width = 15)
    @ApiModelProperty(value = "中心主任确认")
    private String centerDirectorConfirm;
    /**中心主任确认时间*/
    @Excel(name = "中心主任确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "中心主任确认时间")
    private Date centerDirectorTime;
    /**维修开始时间*/
    @Excel(name = "维修开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修开始时间")
    private Date reportStartTime;
    /**设备状态*/
    @Excel(name = "设备状态", width = 15)
    @ApiModelProperty(value = "设备状态")
    private String equipmentStatus;
    /**原因分析*/
    @Excel(name = "原因分析", width = 15)
    @ApiModelProperty(value = "原因分析")
    private String causeAnalysis;
    /**检查结果*/
    @Excel(name = "检查结果", width = 15)
    @ApiModelProperty(value = "检查结果")
    private String inspectionResults;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String takeSteps;
    /**建议采取措施*/
    @Excel(name = "建议采取措施", width = 15)
    @ApiModelProperty(value = "建议采取措施")
    private String suggestionTakeSteps;
    /**建议采取措施时间*/
    @Excel(name = "建议采取措施时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "建议采取措施时间")
    private Date suggestionTakeStepsTime;
    /**维修确认*/
    @Excel(name = "维修确认", width = 15)
    @ApiModelProperty(value = "维修确认")
    private String repairConfirm;
    /**维修确认意见*/
    @Excel(name = "维修确认意见", width = 15)
    @ApiModelProperty(value = "维修确认意见")
    private String repairConfirmComment;
    /**维修确认时间*/
    @Excel(name = "维修确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修确认时间")
    private Date repairConfirmTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairGroupLeader;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairGroupLeaderComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairGroupLeaderTime;
    /**维修组长确认*/
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    private String repairDistrict;
    /**维修组长意见*/
    @Excel(name = "维修组长意见", width = 15)
    @ApiModelProperty(value = "维修组长意见")
    private String repairDistrictComment;
    /**维修组长确认时间*/
    @Excel(name = "维修组长确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "维修组长确认时间")
    private Date repairDistrictTime;
    /**原因分析核对同意、不同意*/
    @Excel(name = "原因分析核对同意、不同意", width = 15)
    @ApiModelProperty(value = "原因分析核对同意、不同意")
    private String checkAgree;
    /**不同意原因分析*/
    @Excel(name = "不同意原因分析", width = 15)
    @ApiModelProperty(value = "不同意原因分析")
    private String disagreeReason;
    /**整改措施*/
    @Excel(name = "整改措施", width = 15)
    @ApiModelProperty(value = "整改措施")
    private String rectificationMeasures;
    /**事故结论*/
    @Excel(name = "事故结论", width = 15)
    @ApiModelProperty(value = "事故结论")
    private String accidentConclusion;
    /**技术负责人*/
    @Excel(name = "技术负责人", width = 15)
    @ApiModelProperty(value = "技术负责人")
    private String technicalDirector;
    /**技术负责人确认时间*/
    @Excel(name = "技术负责人确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术负责人确认时间")
    private Date technicalDirectorTime;
    /**技术主管室级领导*/
    @Excel(name = "技术主管室级领导", width = 15)
    @ApiModelProperty(value = "技术主管室级领导")
    private String technicalDirectorLeader;
    /**技术主管室级领导确认时间*/
    @Excel(name = "技术主管室级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "技术主管室级领导确认时间")
    private Date technicalDirectorLeaderTime;
    /**主管部级领导*/
    @Excel(name = "主管部级领导", width = 15)
    @ApiModelProperty(value = "主管部级领导")
    private String technicalDirectorPart;
    /**主管部级领导确认时间*/
    @Excel(name = "主管部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管部级领导确认时间")
    private Date technicalDirectorPartTime;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
    private String column;
    private String order;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportProductHazardsQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
package org.jeecg.modules.eam.request;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Data
@TableName("eam_report_product_hazards")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_report_product_hazards对象", description="产品安全隐患确认")
public class EamReportProductHazardsQuery implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**报修ID*/
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "操作工确认时间")
    private Date confirmTime;
    /**产品损失情况*/
    @Excel(name = "产品损失情况", width = 15)
    @ApiModelProperty(value = "产品损失情况")
    private String productLoss;
    /**产品损失质量影响分析*/
    @Excel(name = "产品损失质量影响分析", width = 15)
    @ApiModelProperty(value = "产品损失质量影响分析")
    private String qualityAnalysis;
    /**主管工艺*/
    @Excel(name = "主管工艺", width = 15)
    @ApiModelProperty(value = "主管工艺")
    private String technologist;
    /**主管工艺确认时间*/
    @Excel(name = "主管工艺确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "主管工艺确认时间")
    private Date technologistTime;
    /**主管工艺确认意见*/
    @Excel(name = "主管工艺确认意见", width = 15)
    @ApiModelProperty(value = "主管工艺确认意见")
    private String technologistComment;
    /**部级领导*/
    @Excel(name = "部级领导", width = 15)
    @ApiModelProperty(value = "部级领导")
    private String deputyDepartment;
    /**部级领导确认时间*/
    @Excel(name = "部级领导确认时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "部级领导确认时间")
    private Date deputyDepartmentTime;
    /**部级领导确认意见*/
    @Excel(name = "部级领导确认意见", width = 15)
    @ApiModelProperty(value = "部级领导确认意见")
    private String deputyDepartmentComment;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
    private String column;
    private String order;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportRepairRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * @Author: lyh
 * @CreateTime: 2025-04-21
 * @Description:
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class EamReportRepairRequest {
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**是否加工 åŠ å·¥ã€æœªåŠ å·¥*/
    @Excel(name = "是否加工 åŠ å·¥ã€æœªåŠ å·¥", width = 15)
    @ApiModelProperty(value = "是否加工 åŠ å·¥ã€æœªåŠ å·¥")
    @Dict(dicCode = "is_processed")
    private String isProcessed;
    /**故障开始时间*/
    @Excel(name = "故障开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "故障开始时间")
    private Date faultStartTime;
    /**是否停机*/
    @Excel(name = "是否停机", width = 15)
    @ApiModelProperty(value = "是否停机")
    @Dict(dicCode = "yn")
    private String breakdownFlag;
    /**故障现象*/
    @Excel(name = "故障现象", width = 15)
    @ApiModelProperty(value = "故障现象")
    private String faultDescription;
    /**批次号*/
    @Excel(name = "批次号", width = 15)
    @ApiModelProperty(value = "批次号")
    private String batchNumber;
    /**加工零件号*/
    @Excel(name = "加工零件号", width = 15)
    @ApiModelProperty(value = "加工零件号")
    private String processingPart;
    /**件数*/
    @Excel(name = "件数", width = 15)
    @ApiModelProperty(value = "件数")
    private String quantity;
    /**设备事故 æ˜¯å¦*/
    @Excel(name = "设备事故 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "设备事故 æ˜¯å¦")
    private String isAccidentsRegister;
    /**废品件号*/
    @Excel(name = "废品件号", width = 15)
    @ApiModelProperty(value = "废品件号")
    private String scrapPartNumber;
    /**废品件数*/
    @Excel(name = "废品件数", width = 15)
    @ApiModelProperty(value = "废品件数")
    private String scrapPartQuantity;
    /**废品价值*/
    @Excel(name = "废品价值", width = 15)
    @ApiModelProperty(value = "废品价值")
    private String scrapPartValue;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**是否有设备操作证 æ˜¯å¦*/
    @Excel(name = "是否有设备操作证 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "是否有设备操作证 æ˜¯å¦")
    private String operationCertificate;
    /**是否断电重启*/
    @Excel(name = "是否断电重启", width = 15)
    @ApiModelProperty(value = "是否断电重启")
    private String powerOffRestart;
    /**是否为批次首件*/
    @Excel(name = "是否为批次首件", width = 15)
    @ApiModelProperty(value = "是否为批次首件")
    private String batchFirstPiece;
    /**变动因素 æ˜¯å¦*/
    @Excel(name = "变动因素 æ˜¯å¦", width = 15)
    @ApiModelProperty(value = "变动因素 æ˜¯å¦")
    private String variableFactors;
    /**变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€*/
    @Excel(name = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€", width = 15)
    @ApiModelProperty(value = "变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€")
    private String variableFactorsValue;
    /**执行程序*/
    @Excel(name = "执行程序", width = 15)
    @ApiModelProperty(value = "执行程序")
    private String executeNc;
    /**事故现象*/
    @Excel(name = "事故现象", width = 15)
    @ApiModelProperty(value = "事故现象")
    private String accidentPhenomenon;
    /**采取措施*/
    @Excel(name = "采取措施", width = 15)
    @ApiModelProperty(value = "采取措施")
    private String measure;
    /**造成结果*/
    @Excel(name = "造成结果", width = 15)
    @ApiModelProperty(value = "造成结果")
    private String causingResults;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -2,12 +2,16 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import liquibase.pro.packaged.S;
import org.jeecg.modules.eam.dto.EamRepairOrderDto;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import java.util.List;
/**
 * @Description: ç»´ä¿®å·¥å•
@@ -25,10 +29,22 @@
    IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery eamRepairOrderQuery);
    /**
     * é¢†å–工单,启动维修流程
     * @param eamRepairOrder
     * å¡«æŠ¥è¯¦æƒ…
     * @param id
     */
    void saveRepairOrder(EamRepairOrder eamRepairOrder);
    List<EamRepairOrderDto> queryByReportId(String id);
    /**
     * å¡«æŠ¥ç»´ä¿®å·¥å•
     * @param eamRepairOrderDto
     */
    boolean report(EamRepairOrderDto eamRepairOrderDto);
    /**
     * é¢†å–工单,启动维修流程
     * @param id
     */
    void saveRepairOrder(String id);
    /**
     * æµç¨‹æ“ä½œ
@@ -38,10 +54,4 @@
    EamRepairOrder perform(EamRepairOrderRequest request);
    EamRepairOrderResponse findById(String id);
    /**
     * æŒ‡æ´¾
     * @param eamReportRepairQuery
     */
    void assign(EamReportRepairQuery eamReportRepairQuery);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamRepairPersonService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: æ•…障维修人员
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface IEamRepairPersonService extends IService<EamRepairPerson> {
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportAccidentsRegisterService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface IEamReportAccidentsRegisterService extends IService<EamReportAccidentsRegister> {
    /**
     * åˆ†é¡µåˆ—表
     * @param page
     * @param eamReportAccidentsRegisterQuery
     * @return
     */
    IPage<EamReportAccidentsRegisterQuery> pageList(Page<EamReportAccidentsRegisterQuery> page, EamReportAccidentsRegisterQuery eamReportAccidentsRegisterQuery);
    /**
     * å¡«æŠ¥æ•°æ®
     * @param eamReportAccidentsRegisterDto
     * @return
     */
    boolean report(EamReportAccidentsRegisterDto eamReportAccidentsRegisterDto);
    /**
     * æ“ä½œå·¥æäº¤-发起流程
     * @param id
     * @return
     */
    Result<?> submit(String id);
    /**
     * åˆ é™¤
     * @param id
     * @return
     */
    boolean cancelled(String id);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportProductHazardsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
import org.jeecg.modules.eam.request.EamReportProductHazardsQuery;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface IEamReportProductHazardsService extends IService<EamReportProductHazards> {
    /**
     * åˆ†é¡µåˆ—表
     * @param page
     * @param eamReportProductHazardsQuery
     * @return
     */
    IPage<EamReportProductHazardsQuery> pageList(Page<EamReportProductHazardsQuery> page, EamReportProductHazardsQuery eamReportProductHazardsQuery);
    /**
     * æ“ä½œå·¥å¡«æŠ¥
     * @param eamReportProductHazardsDto
     * @return
     */
    boolean report(EamReportProductHazardsDto eamReportProductHazardsDto);
    /**
     * æ“ä½œå·¥æäº¤-发起流程
     * @param id
     * @return
     */
    Result<?> submit(String id);
    /**
     * åˆ é™¤
     * @param id
     * @return
     */
    boolean cancelled(String id);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.dto.EamReportRepairDto;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.request.EamReportRepairRequest;
import java.util.List;
@@ -21,7 +23,7 @@
     * @param eamReportRepairQuery
     * @return
     */
    IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery eamReportRepairQuery);
    IPage<EamReportRepairDto> pageList(Page<EamReportRepairDto> page, EamReportRepairQuery eamReportRepairQuery);
    /**
     * ä»Žå‘¨ä¿ä¸­ç”ŸæˆæŠ¥ä¿®
@@ -40,17 +42,17 @@
    /**
     * æ•…障保修
     * @param eamReportRepair
     * @param eamReportRepairRequest
     * @return
     */
    EamReportRepair add(EamReportRepair eamReportRepair);
    EamReportRepair add(EamReportRepairRequest eamReportRepairRequest);
    /**
     * ç¼–辑
     * @param eamReportRepair
     * @param eamReportRepairDto
     * @return
     */
    boolean edit(EamReportRepair eamReportRepair);
    boolean edit(EamReportRepairDto eamReportRepairDto);
    /**
     * ä»ŽäºŒä¿ä¸­ç”ŸæˆæŠ¥ä¿®
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportThreeNoSpareService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.EamReportThreeNoSpare;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: â€œä¸‰ä¸æ”¾è¿‡çš„原则”分析表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
public interface IEamReportThreeNoSpareService extends IService<EamReportThreeNoSpare> {
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -1,18 +1,15 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
@@ -21,18 +18,17 @@
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.dto.EamRepairOrderDto;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.mapper.EamRepairOrderMapper;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.util.DateUtils;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
@@ -40,6 +36,10 @@
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
@@ -66,9 +66,6 @@
    private FlowCommonService flowCommonService;
    @Resource
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Resource
    private IEamReportRepairService eamReportRepairService;
    @Resource
@@ -92,6 +89,15 @@
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IEamRepairPersonService iEamRepairPersonService;
    /**
     * åˆ†é¡µåˆ—表
     *
@@ -108,13 +114,21 @@
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return page;
            }
        }
        //查询条件过滤
        if (query != null) {
@@ -130,15 +144,9 @@
            if (StringUtils.isNotBlank(query.getRepairStatus())) {
                queryWrapper.eq("wmo.repair_status", query.getRepairStatus());
            }
            if (StringUtils.isNotBlank(query.getRepairer())) {
                queryWrapper.like("wmo.repairer", query.getRepairer());
            }
            if (StringUtils.isNotBlank(query.getRepairCode())) {
                queryWrapper.like("wmo.repair_code", query.getRepairCode());
            }
//            if(query.getStartTime() != null && query.getEndTime() != null) {
//                queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime());
//            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
                String column = query.getColumn();
@@ -160,91 +168,105 @@
        return baseMapper.queryPageList(page, queryWrapper);
    }
    /**
     * å¡«æŠ¥è¯¦æƒ…
     * @param id
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveRepairOrder(EamRepairOrder eamRepairOrder) {
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
        eamRepairOrder.setRepairCode(codeSeq);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        if(eamReportRepair == null){
            throw new JeecgBootException("故障报修不存在,请刷新重试!");
    public List<EamRepairOrderDto> queryByReportId(String id){
        List<EamRepairOrder> eamRepairOrders=this.list(
                new QueryWrapper<EamRepairOrder>().eq("id",id));
        List<EamRepairOrderDto> eamRepairOrderDtoList=new ArrayList<>();
        if (CollectionUtils.isEmpty(eamRepairOrders)) {
            return null;
        }else {
            eamRepairOrders.forEach(eamRepairOrder->{
                EamRepairOrderDto eamRepairOrderDto=new EamRepairOrderDto();
                BeanUtils.copyProperties(eamRepairOrder,eamRepairOrderDto);
                List<EamRepairPerson> eamRepairPersonList=iEamRepairPersonService.list(
                        new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrder.getId()));
                eamRepairOrderDto.setEamRepairPersonList(eamRepairPersonList);
                eamRepairOrderDtoList.add(eamRepairOrderDto);
            });
        }
        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
        eamRepairOrder.setActualStartTime(DateUtils.getNow());
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        eamRepairOrder.setRepairer(user.getUsername());
        super.save(eamRepairOrder);
        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
        // å¯åŠ¨ç»´ä¿®æµç¨‹
        flowCommonService.initActBusiness("工单号:" + codeSeq + ", è®¾å¤‡ç¼–号:" + eamEquipment.getEquipmentCode() + ";安装位置: " + eamEquipment.getInstallationPosition(),
                eamRepairOrder.getId(),
                "IEamRepairOrderService",
                "eam_repair",
                null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamRepairOrder.getId());
        variables.put("organization", "维修工单启动流程");
        variables.put("comment", "维修工单启动流程");
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(user.getUsername());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables);
        if (!result.isSuccess()) {
            super.removeById(eamRepairOrder);
        } else {
            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
            eamReportRepairService.updateById(eamReportRepair);
            //更新设备维修状态
            eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
        }
        return eamRepairOrderDtoList;
    }
    /**
     * æŒ‡æ´¾
     * @param eamReportRepairQuery
     * å¡«æŠ¥ç»´ä¿®å·¥å•
     * @param eamRepairOrderDto
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void assign(EamReportRepairQuery eamReportRepairQuery) {
        EamRepairOrder eamRepairOrder = new EamRepairOrder();
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
        eamRepairOrder.setRepairCode(codeSeq);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId());
        if(eamReportRepair == null){
            throw new JeecgBootException("故障报修不存在,请刷新重试!");
    public boolean report(EamRepairOrderDto eamRepairOrderDto){
        EamRepairOrder eamRepairOrder=this.getById(eamRepairOrderDto.getId());
        if (eamRepairOrder==null){
            return false;
        }
        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
        eamRepairOrder.setActualStartTime(DateUtils.getNow());
        eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
        super.save(eamRepairOrder);
        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
        BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder);
        eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        this.updateById(eamRepairOrder);
        EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair==null){
            return false;
        }
        eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        eamReportRepairService.updateById(eamReportRepair);
        iEamRepairPersonService.remove(new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrderDto.getId()));
        if(CollectionUtils.isNotEmpty(eamRepairOrderDto.getEamRepairPersonList())) {
            List<EamRepairPerson> persons = eamRepairOrderDto.getEamRepairPersonList().stream()
                    .map(person -> new EamRepairPerson()
                            .setRepairId(eamRepairOrder.getId())
                            .setDelFlag(CommonConstant.DEL_FLAG_0))
                    .collect(Collectors.toList());
            iEamRepairPersonService.saveBatch(persons);
        }
        return true;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveRepairOrder(String id) {
        EamRepairOrder eamRepairOrder = this.getById(id);
        List<EamRepairPerson> eamRepairPersonList=iEamRepairPersonService.list(
                new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrder.getId()));
        if (CollectionUtils.isEmpty(eamRepairPersonList)) {
            throw new RuntimeException("维修人员不能为空");
        }
        if (StrUtil.isEmpty(eamRepairOrder.getRepairCode())) {}
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        EamEquipment eamEquipment = eamEquipmentService.getById(eamRepairOrder.getEquipmentId());
        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
        // å¯åŠ¨ç»´ä¿®æµç¨‹
        flowCommonService.initActBusiness("工单号:" + codeSeq + ", è®¾å¤‡ç¼–号:" + eamEquipment.getEquipmentCode() + ";安装位置: " + eamEquipment.getInstallationPosition(),
        flowCommonService.initActBusiness("工单号:" + eamRepairOrder.getRepairCode() + ", è®¾å¤‡ç¼–号:" + eamEquipment.getEquipmentCode()+"发起维修流程",
                eamRepairOrder.getId(),
                "IEamRepairOrderService",
                "eam_repair",
                "repair_work_order",
                null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamRepairOrder.getId());
        variables.put("organization", "维修工单启动流程");
        variables.put("comment", "维修工单启动流程");
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(eamReportRepairQuery.getRepairer());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables);
        if (CollectionUtils.isEmpty(userSelectorList)) {
            throw new JeecgBootException("设备未存在操作员,无法进入下级审批!");
        }else {
            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
            variables.put("NextAssignee", usernameList);
        }
        Result result = flowDefinitionService.startProcessInstanceByKey("repair_work_order", variables);
        if (!result.isSuccess()) {
            super.removeById(eamRepairOrder);
        } else {
            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
            eamRepairOrder.setRepairConfirm(user.getUsername());
            eamRepairOrder.setRepairConfirmTime(new Date());
            eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.PENDING_CONFIRMATION.name());
            this.updateById(eamRepairOrder);
            EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
            eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
            eamReportRepairService.updateById(eamReportRepair);
            //更新设备维修状态
            eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
            eamEquipmentExtendService.updateEquipmentRepairStatus(eamRepairOrder.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
        }
    }
@@ -261,10 +283,6 @@
        EamRepairOrder order = this.baseMapper.selectById(request.getId());
        if (order == null) {
            throw new JeecgBootException("维修工单不存在,请刷新重试!");
        }
        EamReportRepair eamReportRepair = eamReportRepairService.getById(order.getReportId());
        if (eamReportRepair == null) {
            throw new JeecgBootException("故障报修不存在,请刷新重试!");
        }
        // èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -289,214 +307,34 @@
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,请检查!");
        }
        ReportRepairEnum status = ReportRepairEnum.getInstance(order.getRepairStatus());
        if (status == null) {
            throw new JeecgBootException("工单状态不合法,请检查!");
        }
        //流程变量
        Map<String, Object> values = new HashMap<>();
        List<UserSelector> userSelectors;
        List<String> userApprovalList;
        switch (status) {
            case WAIT_INTERNAL_CONFIRM:
                order.setRepairConfirm(request.getRepairConfirm());
                order.setRepairConfirmComment(request.getRepairConfirmComment());
                order.setRepairConfirmTime(new Date());
                values.put("dataId", order.getId());
                values.put("repairConfirm", request.getRepairConfirm());
                if(StringUtils.isNotBlank(request.getRepairConfirmComment())){
                    values.put("organization", request.getRepairConfirmComment());
                    values.put("comment", request.getRepairConfirmComment());
                    request.setComment(request.getRepairConfirmComment());
                }else {
                    values.put("organization", "维修工单维修人确认完成");
                    values.put("comment", "维修工单维修人确认完成");
                    request.setComment("维修工单维修人确认完成");
                }
                if(CommonConstant.STATUS_1.equals(request.getRepairConfirm())) {
                    //可内部维修  ç»´ä¿®äººè¿›è¡Œç»´ä¿®
                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
                }else {
                    //提交机动办维修,车间管理员确认
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0003);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给班组长,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    order.setRepairStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
                }
                break;
            case UNDER_INTERNAL_REPAIR:
                // å†…部维修
                values.put("dataId", order.getId());
                values.put("organization", "维修工单维修完成待操作工确认");
                values.put("comment", "维修工单维修完成待操作工确认");
                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
                request.setComment("维修工单维修完成待操作工确认");
                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                order.setFaultReason(request.getFaultReason());
                order.setRepairDescription(request.getRepairDescription());
                order.setActualEndTime(new Date());
                // å¤„理附件
                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
                        order.setImageFiles(referenceFile);
                    } catch (JsonProcessingException e) {
                        log.error("JSON转换失败:" + e.getMessage(), e);
                    }
                }
                //更新设备维修状态
                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
                break;
            case WAIT_LEADER_CONFIRM:
                order.setLeaderConfirm(request.getLeaderConfirm());
                order.setLeaderConfirmComment(request.getLeaderConfirmComment());
                order.setLeaderUser(user.getUsername());
                order.setLeaderConfirmTime(new Date());
                values.put("dataId", order.getId());
                values.put("leaderConfirm", request.getLeaderConfirm());
                if(StringUtils.isNotBlank(request.getLeaderConfirmComment())){
                    values.put("organization", request.getLeaderConfirmComment());
                    values.put("comment", request.getLeaderConfirmComment());
                    request.setComment(request.getLeaderConfirmComment());
                }else {
                    values.put("organization", "维修工单领导确认完成");
                    values.put("comment", "维修工单领导确认完成");
                    request.setComment("维修工单领导确认完成");
                }
                if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) {
                    //通过 æäº¤æœºåŠ¨åŠžç»´ä¿®
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给公司管理员,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    order.setRepairStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
                }else {
                    //驳回 å¯å†…部维修  ç»´ä¿®äººè¿›è¡Œç»´ä¿®
                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
                }
                break;
            case WAIT_EXTERNAL_CONFIRM:
                order.setExternalConfirm(request.getExternalConfirm());
                order.setExternalConfirmComment(request.getExternalConfirmComment());
                order.setExternalRepairer(user.getUsername());
                order.setExternalConfirmTime(new Date());
                values.put("dataId", order.getId());
                values.put("externalConfirm", request.getExternalConfirm());
                if(StringUtils.isNotBlank(request.getExternalConfirmComment())){
                    values.put("organization", request.getExternalConfirmComment());
                    values.put("comment", request.getExternalConfirmComment());
                    request.setComment(request.getExternalConfirmComment());
                }else {
                    values.put("organization", "维修工单机动办确认完成");
                    values.put("comment", "维修工单机动办确认完成");
                    request.setComment("维修工单机动办确认完成");
                }
                if(CommonConstant.STATUS_1.equals(request.getExternalConfirm())) {
                    //机动办可维修  æœºåŠ¨åŠžç»´ä¿®äººè¿›è¡Œç»´ä¿®
                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
                    order.setRepairStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
                }else {
                    //机动办不可维修 è¿›è¡Œå§”外维修
                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
                    order.setRepairStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
                }
                break;
            case UNDER_EXTERNAL_REPAIR:
                // æœºåŠ¨åŠžç»´ä¿®
                values.put("dataId", order.getId());
                values.put("organization", "维修工单机动办维修完成待操作工确认");
                values.put("comment", "维修工单机动办维修完成待操作工确认");
                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
                request.setComment("维修工单机动办维修完成待操作工确认");
                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                order.setFaultReason(request.getFaultReason());
                order.setRepairDescription(request.getRepairDescription());
                order.setActualEndTime(new Date());
                // å¤„理附件
                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
                        order.setImageFiles(referenceFile);
                    } catch (JsonProcessingException e) {
                        log.error("JSON转换失败:" + e.getMessage(), e);
                    }
                }
                //更新设备维修状态
                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
                break;
            case UNDER_OUTSIDE_REPAIR:
                // æœºåŠ¨åŠžç»´ä¿®
                values.put("dataId", order.getId());
                values.put("organization", "维修工单委外维修完成待操作工确认");
                values.put("comment", "维修工单委外维修完成待操作工确认");
                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
                request.setComment("维修工单委外维修完成待操作工确认");
                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                order.setOutsourcedUser(user.getUsername());
                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                order.setFaultReason(request.getFaultReason());
                order.setRepairDescription(request.getRepairDescription());
                order.setActualEndTime(new Date());
                // å¤„理附件
                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
                    ObjectMapper mapper = new ObjectMapper();
                    try {
                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
                        order.setImageFiles(referenceFile);
                    } catch (JsonProcessingException e) {
                        log.error("JSON转换失败:" + e.getMessage(), e);
                    }
                }
                //更新设备维修状态
                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
                break;
            case WAIT_CONFIRM:
                // å¾…确认, ç»´ä¿®å‘˜ç»´ä¿®å®Œæˆï¼ŒæŠ¥ä¿®äººç¡®è®¤ç»“束流程
                values.put("dataId", order.getId());
                values.put("organization", "维修工单流程结束");
                values.put("comment", "维修工单流程结束");
                request.setComment("维修工单流程结束");
                order.setRepairStatus(ReportRepairEnum.COMPLETE.name());
                eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name());
                order.setConfirmComment(request.getConfirmComment());
                order.setConfirmTime(new Date());
                order.setConfirmer(user.getUsername());
                //更新设备维修状态
                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name());
                break;
        }
        values.put("dataId", request.getId());
        values.put("assignee", user.getId());
        values.put("organization", request.getConfirmComment());
        values.put("comment", request.getConfirmComment());
        request.setComment(request.getConfirmComment());
        request.setValues(values);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result result = flowTaskService.complete(request);
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        //保存工单
        if (request.getConfirmResult() != null) {
            if ("1".equals(request.getConfirmResult())) {
                order.setRepairStatus(EamRepairOrderRepairStatusEnum.REPAIR_COMPLETED.name());
            }else {
                order.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
            }
        }
        order.setConfirmer(user.getUsername());
        order.setConfirmTime(new Date());
        order.setConfirmResult(request.getConfirmResult());
        order.setConfirmComment(request.getConfirmComment());
        this.baseMapper.updateById(order);
        // åŒæ­¥æ›´æ–°æŠ¥ä¿®è¡¨çŠ¶æ€
        EamReportRepair eamReportRepair=eamReportRepairService.getById(order.getReportId());
        eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        eamReportRepairService.updateById(eamReportRepair);
        return order;
    }
@@ -508,8 +346,6 @@
        BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse);
        eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles());
        eamRepairOrderResponse.setImageFiles(eamRepairOrder.getImageFiles());
        return eamRepairOrderResponse;
    }
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairPersonServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.service.impl;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import org.jeecg.modules.eam.mapper.EamRepairPersonMapper;
import org.jeecg.modules.eam.service.IEamRepairPersonService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: æ•…障维修人员
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Service
public class EamRepairPersonServiceImpl extends ServiceImpl<EamRepairPersonMapper, EamRepairPerson> implements IEamRepairPersonService {
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportAccidentsRegisterServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,170 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.mapper.EamReportAccidentsRegisterMapper;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
import org.jeecg.modules.eam.service.IEamReportAccidentsRegisterService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Service
public class EamReportAccidentsRegisterServiceImpl extends ServiceImpl<EamReportAccidentsRegisterMapper, EamReportAccidentsRegister> implements IEamReportAccidentsRegisterService {
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    @Lazy
    private IEamReportRepairService iEamReportRepairService;
    /**
     * åˆ†é¡µåˆ—表
     * @param page
     * @param eamReportAccidentsRegisterQuery
     * @return
     */
    @Override
    public IPage<EamReportAccidentsRegisterQuery> pageList(Page<EamReportAccidentsRegisterQuery> page, EamReportAccidentsRegisterQuery eamReportAccidentsRegisterQuery){
        QueryWrapper<EamReportAccidentsRegisterQuery> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return page;
            }
        }
        //查询条件过滤
        if (eamReportAccidentsRegisterQuery != null) {
            if (StringUtils.isNotBlank(eamReportAccidentsRegisterQuery.getEquipmentId())) {
                queryWrapper.eq("aar.equipment_id", eamReportAccidentsRegisterQuery.getEquipmentId());
            }
            if (StringUtils.isNotBlank(eamReportAccidentsRegisterQuery.getEquipmentCode())) {
                queryWrapper.like("e.equipment_code", eamReportAccidentsRegisterQuery.getEquipmentCode());
            }
            if (StringUtils.isNotBlank(eamReportAccidentsRegisterQuery.getEquipmentName())) {
                queryWrapper.like("e.equipment_name", eamReportAccidentsRegisterQuery.getEquipmentName());
            }
            //排序
            if (StringUtils.isNotBlank(eamReportAccidentsRegisterQuery.getColumn()) && StringUtils.isNotBlank(eamReportAccidentsRegisterQuery.getOrder())) {
                String column = eamReportAccidentsRegisterQuery.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamReportAccidentsRegisterQuery.getOrder())) {
                    queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("wmo.create_time");
            }
        } else {
            queryWrapper.orderByDesc("wmo.create_time");
        }
        return baseMapper.queryPageList(page, queryWrapper);
    }
    /**
     * å¡«æŠ¥æ•°æ®
     * @param eamReportAccidentsRegisterDto
     * @return
     */
    @Override
    public boolean report(EamReportAccidentsRegisterDto eamReportAccidentsRegisterDto){
        EamReportAccidentsRegister eamReportAccidentsRegister=this.getById(eamReportAccidentsRegisterDto.getId());
        if (eamReportAccidentsRegister==null){
            return false;
        }
        BeanUtils.copyProperties(eamReportAccidentsRegisterDto,eamReportAccidentsRegister);
        this.updateById(eamReportAccidentsRegister);
        return true;
    }
    /**
     * æ“ä½œå·¥æäº¤-发起流程
     * @param id
     * @return
     */
    @Override
    public Result<?> submit(String id){
        return null;
    }
    /**
     * åˆ é™¤
     * @param id
     * @return
     */
    @Override
    public boolean cancelled(String id){
        //双控故障报修,作废后故障保修数据同步修改
        EamReportAccidentsRegister eamReportAccidentsRegister=this.getById(id);
        if (eamReportAccidentsRegister==null){
            return false;
        }
        EamReportRepair eamReportRepair=iEamReportRepairService.getById(eamReportAccidentsRegister.getReportId());
        if (eamReportRepair==null) {
            return false;
        }
        UpdateWrapper<EamReportRepair> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id",eamReportRepair.getId());
        updateWrapper.set("is_accidents_register","2");
        updateWrapper.set("scrap_part_number",null);
        updateWrapper.set("scrap_part_quantity",null);
        updateWrapper.set("scrap_part_value",null);
        iEamReportRepairService.update(updateWrapper);
        this.removeById(id);
        return true;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportProductHazardsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.mapper.EamReportProductHazardsMapper;
import org.jeecg.modules.eam.request.EamReportProductHazardsQuery;
import org.jeecg.modules.eam.service.IEamReportProductHazardsService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Service("IEamReportProductHazardsService")
public class EamReportProductHazardsServiceImpl extends ServiceImpl<EamReportProductHazardsMapper, EamReportProductHazards> implements IEamReportProductHazardsService {
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    @Lazy
    private IEamReportRepairService iEamReportRepairService;
    /**
     * åˆ†é¡µåˆ—表
     * @param page
     * @param eamReportProductHazardsQuery
     * @return
     */
    @Override
    public IPage<EamReportProductHazardsQuery> pageList(Page<EamReportProductHazardsQuery> page, EamReportProductHazardsQuery eamReportProductHazardsQuery){
        QueryWrapper<EamReportProductHazardsQuery> queryWrapper = new QueryWrapper<>();
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return page;
            }
        }
        //查询条件过滤
        if (eamReportProductHazardsQuery != null) {
            if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentId())) {
                queryWrapper.eq("erph.equipment_id", eamReportProductHazardsQuery.getEquipmentId());
            }
            if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentCode())) {
                queryWrapper.like("e.equipment_code", eamReportProductHazardsQuery.getEquipmentCode());
            }
            if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentName())) {
                queryWrapper.like("e.equipment_name", eamReportProductHazardsQuery.getEquipmentName());
            }
            //排序
            if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getColumn()) && StringUtils.isNotBlank(eamReportProductHazardsQuery.getOrder())) {
                String column = eamReportProductHazardsQuery.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamReportProductHazardsQuery.getOrder())) {
                    queryWrapper.orderByAsc("erph." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("erph." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("erph.create_time");
            }
        } else {
            queryWrapper.orderByDesc("erph.create_time");
        }
        return baseMapper.queryPageList(page, queryWrapper);
    }
    /**
     * æ“ä½œå·¥å¡«æŠ¥
     * @param eamReportProductHazardsDto
     * @return
     */
    @Override
    public boolean report(EamReportProductHazardsDto eamReportProductHazardsDto){
        EamReportProductHazards eamReportProductHazards=this.getById(eamReportProductHazardsDto.getId());
        if (eamReportProductHazards==null){
            return false;
        }
        BeanUtils.copyProperties(eamReportProductHazardsDto,eamReportProductHazards);
        this.updateById(eamReportProductHazards);
        return true;
    }
    /**
     * æ“ä½œå·¥æäº¤-发起流程
     * @param id
     * @return
     */
    @Override
    public Result<?> submit(String id){
        return null;
    }
    /**
     * åˆ é™¤
     * @param id
     * @return
     */
    @Override
    public boolean cancelled(String id){
        //双控故障报修,作废后故障保修数据同步修改
        EamReportProductHazards eamReportProductHazards=this.getById(id);
        if (eamReportProductHazards==null){
            return false;
        }
        EamReportRepair eamReportRepair=iEamReportRepairService.getById(eamReportProductHazards.getReportId());
        if (eamReportRepair==null) {
            return false;
        }
        UpdateWrapper<EamReportRepair> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id",eamReportRepair.getId());
        updateWrapper.set("is_processed","2");
        updateWrapper.set("batch_number",null);
        updateWrapper.set("processing_part",null);
        updateWrapper.set("quantity",null);
        iEamReportRepairService.update(updateWrapper);
        this.removeById(id);
        return true;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -1,30 +1,43 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.dto.EamReportRepairDto;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamReportRepairMapper;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.request.EamReportRepairRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.entity.SysAnnouncementSend;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description: æ•…障报修
@@ -37,6 +50,19 @@
    @Resource
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    private IEamReportProductHazardsService iEamReportProductHazardsService;
    @Autowired
    private IEamReportAccidentsRegisterService iEamReportAccidentsRegisterService;
    @Autowired
    @Lazy
    private IEamRepairOrderService iEamRepairOrderService;
    @Autowired
    private ISysBusinessCodeRuleService businessCodeRuleService;
    /**
     * åˆ†é¡µåˆ—表
     *
@@ -45,21 +71,29 @@
     * @return
     */
    @Override
    public IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery query) {
        QueryWrapper<EamReportRepair> queryWrapper = new QueryWrapper<>();
    public IPage<EamReportRepairDto> pageList(Page<EamReportRepairDto> page, EamReportRepairQuery query) {
        QueryWrapper<EamReportRepairDto> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return page;
            }
        }
        //查询条件过滤
        if (query != null) {
@@ -120,10 +154,7 @@
        entity.setFaultStartTime(new Date());
        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        entity.setFaultName("周保执行报修处理");
        entity.setFaultDescription(sb.toString());
        entity.setFaultType(CommonConstant.DEFAULT_1);
        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        this.baseMapper.insert(entity);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
@@ -145,10 +176,7 @@
        entity.setFaultStartTime(new Date());
        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        entity.setFaultName("点检执行报修处理");
        entity.setFaultDescription(sb.toString());
        entity.setFaultType(CommonConstant.DEFAULT_1);
        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        this.baseMapper.insert(entity);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
@@ -158,21 +186,37 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair")
    public EamReportRepair add(EamReportRepair eamReportRepair) {
        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
    public EamReportRepair add(EamReportRepairRequest eamReportRepairRequest) {
        EamReportRepair eamReportRepair = new EamReportRepair();
        BeanUtils.copyProperties(eamReportRepairRequest, eamReportRepair);
        eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
        // é™„件处理
        if (eamReportRepair.getImageFilesResult() != null) {
            List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult();
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(imageFilesResult);
                eamReportRepair.setImageFiles(referenceFile);
            } catch (JsonProcessingException e) {
                return null;
            }
        }
        eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.PENDING_REPAIR.name());
        this.baseMapper.insert(eamReportRepair);
        if(StrUtil.isNotEmpty(eamReportRepair.getIsProcessed())&&("1").equals(eamReportRepair.getIsProcessed())){
            //添加产品安全隐患确认
            EamReportProductHazards eamReportProductHazards=new EamReportProductHazards();
            eamReportProductHazards.setEquipmentId(eamReportRepair.getEquipmentId());
            eamReportProductHazards.setReportId(eamReportRepair.getId());
            iEamReportProductHazardsService.save(eamReportProductHazards);
        }
        if (StrUtil.isNotEmpty(eamReportRepair.getIsAccidentsRegister())&&("1").equals(eamReportRepair.getIsAccidentsRegister())) {
            //添加设备事故登记表
            EamReportAccidentsRegister eamReportAccidentsRegister = new EamReportAccidentsRegister();
            BeanUtils.copyProperties(eamReportRepairRequest, eamReportAccidentsRegister);
            eamReportAccidentsRegister.setReportId(eamReportRepair.getId());
            eamReportAccidentsRegister.setDelFlag(CommonConstant.DEFAULT_0);
            iEamReportAccidentsRegisterService.save(eamReportAccidentsRegister);
        }
        //生成维修工单,可能会有领取操作
        EamRepairOrder eamRepairOrder=new EamRepairOrder();
        BeanUtils.copyProperties(eamReportRepairRequest, eamRepairOrder);
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
        eamRepairOrder.setRepairCode(codeSeq);
        eamRepairOrder.setId(null);
        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamRepairOrder.setReportId(eamReportRepair.getId());
        eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.PENDING_REPAIR.name());
        iEamRepairOrderService.save(eamRepairOrder);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
        return eamReportRepair;
@@ -180,21 +224,47 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean edit(EamReportRepair eamReportRepair) {
        // é™„件处理
        if (eamReportRepair.getImageFilesResult() != null) {
            List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult();
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(imageFilesResult);
                eamReportRepair.setImageFiles(referenceFile);
            } catch (JsonProcessingException e) {
                return false;
    public boolean edit(EamReportRepairDto eamReportRepairDto) {
        LambdaUpdateWrapper<EamReportRepair> updateWrapper = new UpdateWrapper().lambda();
        EamReportRepair eamReportRepair=new EamReportRepair();
        BeanUtils.copyProperties(eamReportRepairDto, eamReportRepair);
        if(StrUtil.isNotEmpty(eamReportRepairDto.getIsProcessed())){
            //todo ç¼ºå°‘对应流程判断
            if ("0".equals(eamReportRepairDto.getIsProcessed())) {
                updateWrapper.set(EamReportRepair::getBatchNumber,null);
                updateWrapper.set(EamReportRepair::getProcessingPart,null);
                updateWrapper.set(EamReportRepair::getQuantity, null);
            }
        } else {
            eamReportRepair.setImageFiles(null);
            //直接删除再添加
            iEamReportProductHazardsService.remove(new QueryWrapper<EamReportProductHazards>().eq("report_id",eamReportRepairDto.getId())
                    .eq("equipment_id",eamReportRepairDto.getEquipmentId()));
            //添加产品安全隐患确认
            EamReportProductHazards eamReportProductHazards=new EamReportProductHazards();
            eamReportProductHazards.setEquipmentId(eamReportRepairDto.getEquipmentId());
            eamReportProductHazards.setReportId(eamReportRepairDto.getId());
            eamReportProductHazards.setId(null);
            iEamReportProductHazardsService.save(eamReportProductHazards);
        }
        this.baseMapper.updateById(eamReportRepair);
        if (StrUtil.isNotEmpty(eamReportRepairDto.getIsAccidentsRegister())) {
            //todo ç¼ºå°‘对应流程判断
            if ("0".equals(eamReportRepairDto.getIsAccidentsRegister())) {
                updateWrapper.set(EamReportRepair::getScrapPartNumber,null);
                updateWrapper.set(EamReportRepair::getScrapPartValue, null);
                updateWrapper.set(EamReportRepair::getScrapPartQuantity, null);
            }
            //直接删除再添加
            iEamReportAccidentsRegisterService.remove(new QueryWrapper<EamReportAccidentsRegister>()
                    .eq("report_id",eamReportRepairDto.getId()).eq("equipment_id",eamReportRepairDto.getEquipmentId()));
            //添加设备事故登记表
            EamReportAccidentsRegister eamReportAccidentsRegister = new EamReportAccidentsRegister();
            BeanUtils.copyProperties(eamReportRepairDto, eamReportAccidentsRegister);
            eamReportAccidentsRegister.setReportId(eamReportRepairDto.getId());
            eamReportAccidentsRegister.setDelFlag(CommonConstant.DEFAULT_0);
            eamReportAccidentsRegister.setId(null);
            iEamReportAccidentsRegisterService.save(eamReportAccidentsRegister);
        }
        updateWrapper.eq(EamReportRepair::getId,eamReportRepairDto.getId());
        this.update(eamReportRepair,updateWrapper);
        return true;
    }
@@ -213,10 +283,7 @@
        entity.setFaultStartTime(new Date());
        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        entity.setFaultName("二保执行报修处理");
        entity.setFaultDescription(sb.toString());
        entity.setFaultType(CommonConstant.DEFAULT_1);
        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        this.baseMapper.insert(entity);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
@@ -238,10 +305,7 @@
        entity.setFaultStartTime(new Date());
        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        entity.setFaultName("三保执行报修处理");
        entity.setFaultDescription(sb.toString());
        entity.setFaultType(CommonConstant.DEFAULT_1);
        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        this.baseMapper.insert(entity);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportThreeNoSpareServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.service.impl;
import org.jeecg.modules.eam.entity.EamReportThreeNoSpare;
import org.jeecg.modules.eam.mapper.EamReportThreeNoSpareMapper;
import org.jeecg.modules.eam.service.IEamReportThreeNoSpareService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: â€œä¸‰ä¸æ”¾è¿‡çš„原则”分析表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Service
public class EamReportThreeNoSpareServiceImpl extends ServiceImpl<EamReportThreeNoSpareMapper, EamReportThreeNoSpare> implements IEamReportThreeNoSpareService {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
@@ -14,6 +14,7 @@
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.dto.EamRepairOrderDto;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
@@ -75,54 +76,20 @@
    /**
     * é¢†å–
     *
     * @param eamRepairOrder
     * @param id
     * @return
     */
    @AutoLog(value = "维修工单-领取")
    @ApiOperation(value = "维修工单-领取", notes = "维修工单-领取")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamRepairOrder eamRepairOrder) {
        if (StringUtils.isBlank(eamRepairOrder.getReportId())) {
            return Result.error("领取失败,请选择维修记录!");
        }
    @AutoLog(value = "维修工单-提交")
    @ApiOperation(value = "维修工单-提交", notes = "维修工单-提交")
    @GetMapping(value = "/submit")
    public Result<?> submit(String id) {
        // æ ¡éªŒé¢†å–权限
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (!BusinessCodeConst.PCR0002.equals(user.getPost())) {
            return Result.error("领取失败,没有领取权限!");
            return Result.error("提交失败,没有提交权限!,请登录维修工岗位用户");
        }
        eamRepairOrderService.saveRepairOrder(eamRepairOrder);
        return Result.OK("添加成功!");
    }
    /**
     * æŒ‡æ´¾
     *
     * @param
     * @return
     */
    @AutoLog(value = "故障报修-指派")
    @ApiOperation(value = "故障报修-指派", notes = "故障报修-指派")
    @PostMapping(value = "/assign")
    public Result<?> assign(@RequestBody EamReportRepairQuery eamReportRepairQuery) {
        if (StringUtils.isBlank(eamReportRepairQuery.getRepairer())) {
            return Result.error("指派失败,请选择维修工!");
        }
        // æ ¡éªŒæŒ‡æ´¾æƒé™
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (!BusinessCodeConst.PCR0004.equals(user.getPost())) {
            return Result.error("指派失败,没有指派权限!");
        }
        // æ ¡éªŒç»´ä¿®å·¥æƒé™
        SysUser sysUser = sysUserService.getUserByName(eamReportRepairQuery.getRepairer());
        if (sysUser == null) {
            return Result.error("指派失败,未找到此维修工用户!");
        }
        if (!BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
            return Result.error("指派失败,此用户不是维修工!");
        }
        eamRepairOrderService.assign(eamReportRepairQuery);
        return Result.OK("指派成功!");
        eamRepairOrderService.saveRepairOrder(id);
        return Result.OK("提交成功!");
    }
    /**
@@ -150,6 +117,41 @@
    }
    /**
     * å¡«æŠ¥è¯¦æƒ…
     * @param id
     */
    @AutoLog(value = "维修工单-填报详情")
    @ApiOperation(value = "维修工单-填报详情", notes = "维修工单-填报详情")
    @GetMapping(value = "/queryByReportId")
    public Result<?> queryByReportId(@RequestParam(name = "id", required = true) String id) {
        return Result.ok(eamRepairOrderService.queryByReportId(id));
    }
    /**
     * å¡«æŠ¥ç»´ä¿®å·¥å•
     * @param eamRepairOrderDto
     */
    @ApiOperation(value = "维修工单-填报维修工单", notes = "维修工单-填报维修工单")
    @PostMapping(value = "/report")
    public Result<?> report(@RequestBody EamRepairOrderDto eamRepairOrderDto) {
        // æ ¡éªŒé¢†å–权限
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (!BusinessCodeConst.PCR0002.equals(user.getPost())) {
            return Result.error("填报失败,没有填报权限!,请登录维修工岗位用户");
        }
        if (eamRepairOrderDto == null) {
            return Result.error("填报的对象不能为空!");
        }else {
            boolean b = eamRepairOrderService.report(eamRepairOrderDto);
            if(!b) {
                return Result.error("填报失败,请重试");
            }else {
                return  Result.OK("填报成功");
            }
        }
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
@@ -172,7 +174,6 @@
            translateDictTextUtils.translateField("reportStatus", eamRepairOrder.getReportStatus(), item, "report_repair_status");
            translateDictTextUtils.translateField("equipmentId", eamRepairOrder.getEquipmentId(), item, "eam_equipment,id,equipment_code");
            translateDictTextUtils.translateField("repairStatus", eamRepairOrder.getRepairStatus(), item, "report_repair_status");
            translateDictTextUtils.translateField("repairer", eamRepairOrder.getRepairer(), item, "sys_user,username,realname");
            return Result.OK(item);
        } catch (Exception e) {
            return Result.error("数据转译失败!");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairPersonController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamRepairPerson;
import org.jeecg.modules.eam.service.IEamRepairPersonService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: æ•…障维修人员
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Api(tags="故障维修人员")
@RestController
@RequestMapping("/eam/eamRepairPerson")
@Slf4j
public class EamRepairPersonController extends JeecgController<EamRepairPerson, IEamRepairPersonService> {
    @Autowired
    private IEamRepairPersonService eamRepairPersonService;
    /**
     * åˆ—表查询
     *
     * @param eamRepairPerson
     * @return
     */
    //@AutoLog(value = "故障维修人员-分页列表查询")
    @ApiOperation(value="故障维修人员-分页列表查询", notes="故障维修人员-分页列表查询")
    @GetMapping(value = "/list")
    public Result<List<EamRepairPerson>> queryPageList(EamRepairPerson eamRepairPerson) {
        QueryWrapper<EamRepairPerson> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("repair_id",eamRepairPerson.getRepairId());
        queryWrapper.orderByDesc("create_time");
        List<EamRepairPerson> list = eamRepairPersonService.list(queryWrapper);
        return Result.OK(list);
    }
    /**
     *   æ·»åŠ 
     *
     * @param eamRepairPerson
     * @return
     */
    @AutoLog(value = "故障维修人员-添加")
    @ApiOperation(value="故障维修人员-添加", notes="故障维修人员-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_repair_person:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EamRepairPerson eamRepairPerson) {
        eamRepairPersonService.save(eamRepairPerson);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param eamRepairPerson
     * @return
     */
    @AutoLog(value = "故障维修人员-编辑")
    @ApiOperation(value="故障维修人员-编辑", notes="故障维修人员-编辑")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_repair_person:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EamRepairPerson eamRepairPerson) {
        eamRepairPersonService.updateById(eamRepairPerson);
        return Result.OK("编辑成功!");
    }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "故障维修人员-通过id删除")
    @ApiOperation(value="故障维修人员-通过id删除", notes="故障维修人员-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_repair_person:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        eamRepairPersonService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "故障维修人员-批量删除")
    @ApiOperation(value="故障维修人员-批量删除", notes="故障维修人员-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_repair_person:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamRepairPersonService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "故障维修人员-通过id查询")
    @ApiOperation(value="故障维修人员-通过id查询", notes="故障维修人员-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<EamRepairPerson> queryById(@RequestParam(name="id",required=true) String id) {
        EamRepairPerson eamRepairPerson = eamRepairPersonService.getById(id);
        if(eamRepairPerson==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamRepairPerson);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param eamRepairPerson
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_repair_person:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamRepairPerson eamRepairPerson) {
        return super.exportXls(request, eamRepairPerson, EamRepairPerson.class, "故障维修人员");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("eam_repair_person:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamRepairPerson.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportAccidentsRegisterController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,208 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
import org.jeecg.modules.eam.service.IEamReportAccidentsRegisterService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Api(tags="设备事故登记表")
@RestController
@RequestMapping("/eam/eamReportAccidentsRegister")
@Slf4j
public class EamReportAccidentsRegisterController extends JeecgController<EamReportAccidentsRegister, IEamReportAccidentsRegisterService> {
    @Autowired
    private IEamReportAccidentsRegisterService eamReportAccidentsRegisterService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamReportAccidentsRegister
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备事故登记表-分页列表查询")
    @ApiOperation(value="设备事故登记表-分页列表查询", notes="设备事故登记表-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<EamReportAccidentsRegisterQuery>> queryPageList(EamReportAccidentsRegisterQuery eamReportAccidentsRegister,
                                                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                                                   HttpServletRequest req) {
        Page<EamReportAccidentsRegisterQuery> page = new Page<EamReportAccidentsRegisterQuery>(pageNo, pageSize);
        IPage<EamReportAccidentsRegisterQuery> pageList = eamReportAccidentsRegisterService.pageList(page,eamReportAccidentsRegister);
        return Result.OK(pageList);
    }
    /**
     *   æ·»åŠ 
     *
     * @param eamReportAccidentsRegister
     * @return
     */
    @AutoLog(value = "设备事故登记表-添加")
    @ApiOperation(value="设备事故登记表-添加", notes="设备事故登记表-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_accidents_register:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EamReportAccidentsRegister eamReportAccidentsRegister) {
        eamReportAccidentsRegisterService.save(eamReportAccidentsRegister);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param eamReportAccidentsRegister
     * @return
     */
    @AutoLog(value = "设备事故登记表-编辑")
    @ApiOperation(value="设备事故登记表-编辑", notes="设备事故登记表-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EamReportAccidentsRegister eamReportAccidentsRegister) {
        eamReportAccidentsRegisterService.updateById(eamReportAccidentsRegister);
        return Result.OK("编辑成功!");
    }
     /**
      * å¡«æŠ¥æ•°æ®
      * @param eamReportAccidentsRegisterDto
      * @return
      */
     @ApiOperation(value="设备事故登记表-填报数据", notes="设备事故登记表-填报数据")
     @PostMapping(value = "/report")
     public Result<?> report(EamReportAccidentsRegisterDto eamReportAccidentsRegisterDto){
         // æ ¡éªŒé¢†å–权限
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (!BusinessCodeConst.PCR0001.equals(user.getPost())) {
             return Result.error("填报失败,没有填报权限!,请登录操作工岗位用户");
         }
         if (eamReportAccidentsRegisterDto == null) {
             return Result.error("填报的对象不能为空!");
         }else {
             boolean b = eamReportAccidentsRegisterService.report(eamReportAccidentsRegisterDto);
             if(!b) {
                 return Result.error("填报失败,请重试");
             }else {
                 return  Result.OK("填报成功");
             }
         }
     }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "设备事故登记表-通过id删除")
    @ApiOperation(value="设备事故登记表-通过id删除", notes="设备事故登记表-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_accidents_register:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        if (eamReportAccidentsRegisterService.cancelled(id)){
            return Result.OK("删除成功!");
        }
        return Result.error("删除失败!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "设备事故登记表-批量删除")
    @ApiOperation(value="设备事故登记表-批量删除", notes="设备事故登记表-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_accidents_register:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamReportAccidentsRegisterService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "设备事故登记表-通过id查询")
    @ApiOperation(value="设备事故登记表-通过id查询", notes="设备事故登记表-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<EamReportAccidentsRegister> queryById(@RequestParam(name="id",required=true) String id) {
        EamReportAccidentsRegister eamReportAccidentsRegister = eamReportAccidentsRegisterService.getById(id);
        if(eamReportAccidentsRegister==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamReportAccidentsRegister);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param eamReportAccidentsRegister
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_accidents_register:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamReportAccidentsRegister eamReportAccidentsRegister) {
        return super.exportXls(request, eamReportAccidentsRegister, EamReportAccidentsRegister.class, "设备事故登记表");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("eam_report_accidents_register:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamReportAccidentsRegister.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportProductHazardsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,204 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.dto.EamReportRepairDto;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import org.jeecg.modules.eam.request.EamReportProductHazardsQuery;
import org.jeecg.modules.eam.service.IEamReportProductHazardsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Api(tags="产品安全隐患确认")
@RestController
@RequestMapping("/eam/eamReportProductHazards")
@Slf4j
public class EamReportProductHazardsController extends JeecgController<EamReportProductHazards, IEamReportProductHazardsService> {
    @Autowired
    private IEamReportProductHazardsService eamReportProductHazardsService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamReportProductHazardsQuery
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "产品安全隐患确认-分页列表查询")
    @ApiOperation(value="产品安全隐患确认-分页列表查询", notes="产品安全隐患确认-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<EamReportProductHazardsQuery>> queryPageList(EamReportProductHazardsQuery eamReportProductHazardsQuery,
                                                                @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                                                @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                                                HttpServletRequest req) {
        Page<EamReportProductHazardsQuery> page = new Page<EamReportProductHazardsQuery>(pageNo, pageSize);
        IPage<EamReportProductHazardsQuery> pageList = eamReportProductHazardsService.pageList(page, eamReportProductHazardsQuery);
        return Result.OK(pageList);
    }
    /**
     *   æ·»åŠ 
     *
     * @param eamReportProductHazards
     * @return
     */
    @AutoLog(value = "产品安全隐患确认-添加")
    @ApiOperation(value="产品安全隐患确认-添加", notes="产品安全隐患确认-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_product_hazards:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EamReportProductHazards eamReportProductHazards) {
        eamReportProductHazardsService.save(eamReportProductHazards);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param eamReportProductHazards
     * @return
     */
    @AutoLog(value = "产品安全隐患确认-编辑")
    @ApiOperation(value="产品安全隐患确认-编辑", notes="产品安全隐患确认-编辑")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_product_hazards:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EamReportProductHazards eamReportProductHazards) {
        eamReportProductHazardsService.updateById(eamReportProductHazards);
        return Result.OK("编辑成功!");
    }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "产品安全隐患确认-通过id删除")
    @ApiOperation(value="产品安全隐患确认-通过id删除", notes="产品安全隐患确认-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_product_hazards:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        if (eamReportProductHazardsService.cancelled(id)){
            return Result.OK("删除成功!");
        }
        return Result.error("删除失败!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "产品安全隐患确认-批量删除")
    @ApiOperation(value="产品安全隐患确认-批量删除", notes="产品安全隐患确认-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_product_hazards:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamReportProductHazardsService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "产品安全隐患确认-通过id查询")
    @ApiOperation(value="产品安全隐患确认-通过id查询", notes="产品安全隐患确认-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<EamReportProductHazards> queryById(@RequestParam(name="id",required=true) String id) {
        EamReportProductHazards eamReportProductHazards = eamReportProductHazardsService.getById(id);
        if(eamReportProductHazards==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamReportProductHazards);
    }
     /**
      * æ“ä½œå·¥å¡«æŠ¥
      * @param eamReportProductHazardsDto
      * @return
      */
     @ApiOperation(value = "操作工填报",notes = "操作工填报")
     @PostMapping(value = "/report")
    public Result<?> report(EamReportProductHazardsDto eamReportProductHazardsDto){
         // æ ¡éªŒé¢†å–权限
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (!BusinessCodeConst.PCR0001.equals(user.getPost())) {
             return Result.error("填报失败,没有填报权限!,请登录操作工岗位用户");
         }
         if (eamReportProductHazardsDto == null) {
             return Result.error("填报的对象不能为空!");
         }else {
             boolean b = eamReportProductHazardsService.report(eamReportProductHazardsDto);
             if(!b) {
                 return Result.error("填报失败,请重试");
             }else {
                 return  Result.OK("填报成功");
             }
         }
     }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param eamReportProductHazards
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_product_hazards:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamReportProductHazards eamReportProductHazards) {
        return super.exportXls(request, eamReportProductHazards, EamReportProductHazards.class, "产品安全隐患确认");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("eam_report_product_hazards:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamReportProductHazards.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
@@ -7,24 +7,15 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.dto.EamReportRepairDto;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.request.EamReportRepairRequest;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
@@ -71,22 +62,22 @@
    public Result<?> queryPageList(EamReportRepairQuery eamReportRepairQuery,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        Page<EamReportRepair> page = new Page<EamReportRepair>(pageNo, pageSize);
        IPage<EamReportRepair> pageList = eamReportRepairService.pageList(page, eamReportRepairQuery);
        Page<EamReportRepairDto> page = new Page<EamReportRepairDto>(pageNo, pageSize);
        IPage<EamReportRepairDto> pageList = eamReportRepairService.pageList(page, eamReportRepairQuery);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     *
     * @param eamReportRepair
     * @param eamReportRepairRequest
     * @return
     */
    @AutoLog(value = "故障报修-添加")
    @ApiOperation(value = "故障报修-添加", notes = "故障报修-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamReportRepair eamReportRepair) {
        EamReportRepair b = eamReportRepairService.add(eamReportRepair);
    public Result<?> add(@RequestBody EamReportRepairRequest eamReportRepairRequest) {
        EamReportRepair b = eamReportRepairService.add(eamReportRepairRequest);
        if(b == null) {
            return Result.error("添加失败!");
        }
@@ -96,33 +87,20 @@
    /**
     * ç¼–辑
     *
     * @param eamReportRepair
     * @param eamReportRepairDto
     * @return
     */
    @AutoLog(value = "故障报修-编辑")
    @ApiOperation(value = "故障报修-编辑", notes = "故障报修-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<?> edit(@RequestBody EamReportRepair eamReportRepair) {
        boolean b = eamReportRepairService.edit(eamReportRepair);
    public Result<?> edit(@RequestBody EamReportRepairDto eamReportRepairDto) {
        boolean b = eamReportRepairService.edit(eamReportRepairDto);
        if(!b) {
            return Result.error("编辑失败!");
        }
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id作废
     *
     * @param id
     * @return
     */
    @AutoLog(value = "故障报修-作废")
    @ApiOperation(value = "故障报修-作废", notes = "故障报修-作废")
    @DeleteMapping(value = "/abolish")
    public Result<?> abolish(@RequestParam(name = "id", required = true) String id) {
        eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id).eq(EamReportRepair::getReportStatus, ReportRepairEnum.WAIT_REPAIR.name()));
        return Result.OK("作废成功!");
    }
    /**
     * æ‰¹é‡ä½œåºŸ
@@ -135,11 +113,6 @@
    @DeleteMapping(value = "/abolishBatch")
    public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
        List<EamReportRepair> eamReportRepairs = eamReportRepairService.listByIds(Arrays.asList(ids.split(",")));
        eamReportRepairs.forEach(eamReportRepair -> {
            if(ReportRepairEnum.ABOLISH.name().equals(eamReportRepair.getReportStatus())) {
                eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name());
            }
        });
        this.eamReportRepairService.updateBatchById(eamReportRepairs);
        return Result.OK("批量作废成功!");
    }
@@ -163,9 +136,7 @@
            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
            translateDictTextUtils.translateField("createBy", eamReportRepair.getCreateBy(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("breakdownFlag", eamReportRepair.getBreakdownFlag(), item, "breakdown_flag");
            translateDictTextUtils.translateField("faultType", eamReportRepair.getFaultType(), item, "fault_reason_category");
            translateDictTextUtils.translateField("reportStatus", eamReportRepair.getReportStatus(), item, "report_repair_status");
            translateDictTextUtils.translateField("equipmentId", eamReportRepair.getEquipmentId(), item, "eam_equipment,id,equipment_code");
          translateDictTextUtils.translateField("equipmentId", eamReportRepair.getEquipmentId(), item, "eam_equipment,id,equipment_code");
            return Result.OK(item);
        } catch (Exception e) {
            return Result.error("数据转译失败!");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportThreeNoSpareController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamReportThreeNoSpare;
import org.jeecg.modules.eam.service.IEamReportThreeNoSpareService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: â€œä¸‰ä¸æ”¾è¿‡çš„原则”分析表
 * @Author: jeecg-boot
 * @Date:   2025-07-17
 * @Version: V1.0
 */
@Api(tags="“三不放过的原则”分析表")
@RestController
@RequestMapping("/eam/eamReportThreeNoSpare")
@Slf4j
public class EamReportThreeNoSpareController extends JeecgController<EamReportThreeNoSpare, IEamReportThreeNoSpareService> {
    @Autowired
    private IEamReportThreeNoSpareService eamReportThreeNoSpareService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamReportThreeNoSpare
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "“三不放过的原则”分析表-分页列表查询")
    @ApiOperation(value="“三不放过的原则”分析表-分页列表查询", notes="“三不放过的原则”分析表-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<EamReportThreeNoSpare>> queryPageList(EamReportThreeNoSpare eamReportThreeNoSpare,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamReportThreeNoSpare> queryWrapper = QueryGenerator.initQueryWrapper(eamReportThreeNoSpare, req.getParameterMap());
        Page<EamReportThreeNoSpare> page = new Page<EamReportThreeNoSpare>(pageNo, pageSize);
        IPage<EamReportThreeNoSpare> pageList = eamReportThreeNoSpareService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     *   æ·»åŠ 
     *
     * @param eamReportThreeNoSpare
     * @return
     */
    @AutoLog(value = "“三不放过的原则”分析表-添加")
    @ApiOperation(value="“三不放过的原则”分析表-添加", notes="“三不放过的原则”分析表-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EamReportThreeNoSpare eamReportThreeNoSpare) {
        eamReportThreeNoSpareService.save(eamReportThreeNoSpare);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param eamReportThreeNoSpare
     * @return
     */
    @AutoLog(value = "“三不放过的原则”分析表-编辑")
    @ApiOperation(value="“三不放过的原则”分析表-编辑", notes="“三不放过的原则”分析表-编辑")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EamReportThreeNoSpare eamReportThreeNoSpare) {
        eamReportThreeNoSpareService.updateById(eamReportThreeNoSpare);
        return Result.OK("编辑成功!");
    }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "“三不放过的原则”分析表-通过id删除")
    @ApiOperation(value="“三不放过的原则”分析表-通过id删除", notes="“三不放过的原则”分析表-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        eamReportThreeNoSpareService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "“三不放过的原则”分析表-批量删除")
    @ApiOperation(value="“三不放过的原则”分析表-批量删除", notes="“三不放过的原则”分析表-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamReportThreeNoSpareService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "“三不放过的原则”分析表-通过id查询")
    @ApiOperation(value="“三不放过的原则”分析表-通过id查询", notes="“三不放过的原则”分析表-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<EamReportThreeNoSpare> queryById(@RequestParam(name="id",required=true) String id) {
        EamReportThreeNoSpare eamReportThreeNoSpare = eamReportThreeNoSpareService.getById(id);
        if(eamReportThreeNoSpare==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamReportThreeNoSpare);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param eamReportThreeNoSpare
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamReportThreeNoSpare eamReportThreeNoSpare) {
        return super.exportXls(request, eamReportThreeNoSpare, EamReportThreeNoSpare.class, "“三不放过的原则”分析表");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("eam_report_three_no_spare:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamReportThreeNoSpare.class);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java
@@ -18,6 +18,7 @@
    private Date inspectionDateEnd;
    private String inspectionStatus;
    private String column;
    private String order;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -437,6 +437,9 @@
            Result result = flowTaskService.complete(eamMaintenanceStandardVo);
            if (result.isSuccess()) {
                if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
                    if ("2".equals(eamMaintenanceStandard.getRepairManagerApproveResult())) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
                    }
                    if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")) {
                        List<FlowMyBusiness> newbusinessList = flowMyBusinessService.list(
                                new QueryWrapper<FlowMyBusiness>()
@@ -451,6 +454,8 @@
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            newflowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
                            flowMyBusinessService.updateById(newflowMyBusiness);
                        }else {
                            throw new JeecgBootException("设备未存在管理员,无法进入下级审批!");
                        }
                    } else {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
@@ -461,6 +466,9 @@
                    eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment());
                }
                if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
                    if ("2".equals(eamMaintenanceStandard.getTechnicalManagerApproveResult())) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
                    }
                    if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name());
                        //判断是否进行升版,通过设备编号、保养分类、状态进行筛选
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -430,6 +430,9 @@
                    userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    values.put("dataId", entity.getId());
                    if (StrUtil.isEmpty(request.getDealDescription())){
                        request.setDealDescription("");
                    }
                    values.put("organization",request.getDealDescription());
                    values.put("comment", request.getDealDescription());
                    values.put("manageUserResult",request.getManageUserResult());
@@ -440,10 +443,16 @@
                    entity.setDealDescription(request.getDealDescription());
                    entity.setConfirmTime(new Date());
                    request.setComment(request.getDealDescription());
                    if (request.getManageUserResult().equals("2")){
                        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name());
                    }
                }
                break;
            case WAIT_INSPECTOR_CONFIRM:
                //检查人确认
                if (StrUtil.isEmpty(request.getDealDescription())){
                    request.setDealDescription("");
                }
                values.put("dataId", entity.getId());
                values.put("organization",request.getInspectConfirmComment());
                values.put("comment", request.getInspectConfirmComment());
@@ -454,6 +463,9 @@
                entity.setInspectConfirmComment(request.getInspectConfirmComment());
                entity.setInspectConfirmTime(new Date());
                request.setComment(request.getDealDescription());
                if (request.getInspectorResult().equals("2")){
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name());
                }
                break;
            default:
                throw  new JeecgBootException("审批失败");