lyh
2 天以前 d61b21c50e62298f185ecafa8e0b22f7ee8c4973
430报表接口与列表流程添加
已添加5个文件
已修改27个文件
1066 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/DailyResponsibleInfo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamInspectionOrderDetailExport.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamInspectionOrderExport.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportAccidentsRegisterDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportProductHazardsDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExport.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExportYj.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/WeeklyResponsibleInfo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportAccidentsRegisterMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportProductHazardsMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | 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 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportAccidentsRegisterService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportProductHazardsService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportAccidentsRegisterServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportProductHazardsServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportAccidentsRegisterController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportProductHazardsController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceOrderMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/DailyResponsibleInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.eam.dto;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class DailyResponsibleInfo {
    /** æ“ä½œå‘˜å§“名数组 (1-31日) */
    private String[] operators = new String[31];
    /** ç¡®è®¤äººå§“名数组 (1-31日) */
    private String[] confirmUsers = new String[31];
    /**
     * è®¾ç½®æŸå¤©çš„责任人信息
     */
    public void setResponsibleForDay(int day, String operator, String confirmUser) {
        if (day >= 1 && day <= 31) {
            operators[day - 1] = operator;
            confirmUsers[day - 1] = confirmUser;
        }
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamInspectionOrderDetailExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.TableName;
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.system.base.entity.JeecgEntity;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
 * @Description: ç‚¹æ£€å·¥å•明细
 * @Author: jeecg-boot
 * @Date:   2025-04-02
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EamInspectionOrderDetailExport extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**工单ID*/
    @Excel(name = "工单ID", width = 15)
    @ApiModelProperty(value = "工单ID")
    private String orderId;
    /**点检结果*/
    @Excel(name = "点检结果", width = 15)
    @ApiModelProperty(value = "点检结果-正常-异常-故障-关机")
    private String inspectionResult;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
    @ApiModelProperty(value = "异常描述")
    private String exceptionDescription;
    /**保养项序号*/
    @ApiModelProperty(value = "保养项序号")
    private Integer itemCode;
    /**保养项*/
    @ApiModelProperty(value = "保养项")
    private String itemName;
    /**保养要求*/
    @ApiModelProperty(value = "保养要求")
    private String  itemDemand;
    /**
     * 1-31日期标志
     */
    private String[] dateFlag;
    /**
     * 1-5周标志
     */
    private String[] weekFlag;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamInspectionOrderExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
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.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;
/**
 * @Description: ç‚¹æ£€å·¥å•批量导出
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EamInspectionOrderExport  {
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;
    @ApiModelProperty(value = "设备编号")
    private String equipmentCode;
    @ApiModelProperty(value = "单位")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private String factoryName;
    @ApiModelProperty(value = "å¹´")
    private String inspectionYear;
    @ApiModelProperty(value = "月")
    private String inspectionMonth;
    @ApiModelProperty(value = "hf编码")
    private String hfCode;
    /**
     * æ—¥ç‚¹æ£€åˆ—表
     */
    @ApiModelProperty(value = "日点检列表")
    @TableField(exist = false)
    private List<EamInspectionOrderDetailExport> eamDailyInspectionList;
    /**
     * å‘¨ç‚¹æ£€åˆ—表
     */
    @ApiModelProperty(value = "周点检列表")
    @TableField(exist = false)
    private List<EamInspectionOrderDetailExport> eamWeeklyInspectionList;
    /**日点检责任人信息 (1-31日) */
    @ApiModelProperty(value = "日点检责任人信息")
    private DailyResponsibleInfo dailyResponsibleInfo;
    /**周点检责任人信息 (1-5周) */
    @ApiModelProperty(value = "周点检责任人信息")
    private WeeklyResponsibleInfo weeklyResponsibleInfo;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportAccidentsRegisterDto.java
@@ -333,4 +333,6 @@
    @TableField(exist = false)
    @ApiModelProperty(value = "废品价值")
    private String scrapPartValue;
    /**生产单位*/
    private String factoryName;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportProductHazardsDto.java
@@ -10,6 +10,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@@ -64,6 +65,7 @@
    /**操作工*/
    @Excel(name = "操作工", width = 15)
    @ApiModelProperty(value = "操作工")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String confirmer;
    /**操作工确认时间*/
    @Excel(name = "操作工确认时间", width = 15, format = "yyyy-MM-dd")
@@ -74,6 +76,7 @@
    /**产品损失情况*/
    @Excel(name = "产品损失情况", width = 15)
    @ApiModelProperty(value = "产品损失情况")
    @Dict(dicCode = "yn")
    private String productLoss;
    /**产品损失质量影响分析*/
    @Excel(name = "产品损失质量影响分析", width = 15)
@@ -82,6 +85,7 @@
    /**主管工艺*/
    @Excel(name = "主管工艺", width = 15)
    @ApiModelProperty(value = "主管工艺")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String technologist;
    /**主管工艺确认时间*/
    @Excel(name = "主管工艺确认时间", width = 15, format = "yyyy-MM-dd")
@@ -100,6 +104,7 @@
    /**部级领导*/
    @Excel(name = "部级领导", width = 15)
    @ApiModelProperty(value = "部级领导")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String deputyDepartment;
    /**部级领导确认时间*/
    @Excel(name = "部级领导确认时间", width = 15, format = "yyyy-MM-dd")
@@ -124,5 +129,14 @@
    private String equipmentModel;
    @TableField(exist = false)
    private String installationPosition;
    /**生产单位*/
    private String factoryName;
    /**故障现象*/
    private String faultDescription;
    /**批次号*/
    private String batchNumber;
    /**加工零件号*/
    private String processingPart;
    /**件数*/
    private String quantity;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExport.java
@@ -259,12 +259,6 @@
    private String maintenanceDateFormatted;
    //使用单位
    private String factoryName;
    /**
     * å¤‡ä»¶æ˜Žç»†
     */
    @ApiModelProperty(value = "备件使用明细")
    @DictList
    private List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpareList;
    /**
     * åˆ—表 ä¿å…»é¡¹æ˜Žç»†
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExportYj.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,268 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
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.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.EamThirdMaintenanceOrderDetail;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
 * @Description: è®¾å¤‡ä¸‰çº§ä¿å…»
 * @Author: jeecg-boot
 * @Date: 2025-04-29
 * @Version: V1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class EamThirdMaintenanceOrderExportYj {
    /**
     * ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "ID")
    private String id;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**
     * å·¥å•号
     */
    @Excel(name = "工单号", width = 15)
    @ApiModelProperty(value = "工单号")
    private String orderNum;
    /**
     * è®¾å¤‡ID
     */
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**
     * æ ‡å‡†ID
     */
    @Excel(name = "标准ID", width = 15)
    @ApiModelProperty(value = "标准ID")
    @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name")
    private String standardId;
    /**
     * è®¡åˆ’保养日期
     */
    @ApiModelProperty(value = "计划保养日期;提前70天生成工单")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String maintenanceDate;
    /**
     * é”å®šå·¥å•日期
     */
    @ApiModelProperty(value = "锁定工单日期;提前55天锁定工单")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date freezeOrderDate;
    /**
     * å·¥å•过期日期
     */
    @ApiModelProperty(value = "工单过期日期;到期未做直接过期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date orderExpirationDate;
    /**
     * å®žé™…开始时间
     */
    @Excel(name = "实际开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际开始时间")
    private Date actualStartTime;
    /**
     * å®žé™…结束时间
     */
    @Excel(name = "实际结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际结束时间")
    private Date actualEndTime;
    /**
     * ç»´ä¿®äºº
     */
    @Excel(name = "维修人", width = 15)
    @ApiModelProperty(value = "维修人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairman;
    /**
     * ä¿å…»çŠ¶æ€
     */
    @Excel(name = "保养状态", width = 15)
    @ApiModelProperty(value = "保养状态;待保养、保养中、待检查、操作人签字、维修人签字、维修室主任签字、设备检查人签字、已完成、已锁定、变更中、已取消")
    @Dict(dicCode = "third_maintenance_status")
    private String maintenanceStatus;
    /**
     * åˆ›å»ºæ–¹å¼
     */
    @Excel(name = "创建方式", width = 15)
    @ApiModelProperty(value = "创建方式")
    @Dict(dicCode = "order_creation_method")
    private String creationMethod;
    /**
     * è®¾å¤‡åŠŸèƒ½æ˜¯å¦é½å¤‡;是否
     */
    @Excel(name = "设备功能是否齐备;是否", width = 15)
    @ApiModelProperty(value = "设备功能是否齐备;是否")
    @Dict(dicCode = "yn")
    private String fullyFunctional;
    /**
     * è®¾å¤‡åŠŸèƒ½æ˜¯å¦é½å¤‡;是否
     */
    @Excel(name = "设备能否正常运转;是否", width = 15)
    @ApiModelProperty(value = "设备功能是否齐备;是否")
    @Dict(dicCode = "yn")
    private String runningNormally;
    /**
     * é—®é¢˜æè¿°
     */
    @Excel(name = "问题描述", width = 30)
    @ApiModelProperty(value = "问题描述")
    private String problemDescription;
    /**
     * æ£€æŸ¥äºº
     */
    @Excel(name = "检查人", width = 15)
    @ApiModelProperty(value = "检查人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String inspector;
    /**
     * æ£€æŸ¥æ—¶é—´
     */
    @ApiModelProperty(value = "检查时间")
    @Excel(name = "检查时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inspectTime;
    /**
     * æ“ä½œäººç­¾å­—
     */
    @Excel(name = "操作人签字", width = 15)
    @ApiModelProperty(value = "操作人签字")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String operatorSignature;
    /**
     * ååŠ©æ“ä½œäºº
     */
    @Excel(name = "协助操作人", width = 15)
    @ApiModelProperty(value = "协助操作人")
    private String assistantOperator;
    /**
     * æ“ä½œäººç­¾å­—æ—¶é—´
     */
    @ApiModelProperty(value = "操作人签字时间")
    @Excel(name = "操作人签字时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operatorSignatureTime;
    /**
     * ç»´ä¿®äººç­¾å­—
     */
    @Excel(name = "维修人签字", width = 15)
    @ApiModelProperty(value = "维修人签字")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairmanSignature;
    /**
     * ååŠ©ç»´ä¿®äºº
     */
    @Excel(name = "协助维修人", width = 15)
    @ApiModelProperty(value = "协助维修人")
    private String assistantRepairman;
    /**
     * ç»´ä¿®äººç­¾å­—æ—¶é—´
     */
    @ApiModelProperty(value = "维修人签字时间")
    @Excel(name = "维修人签字时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date repairmanSignatureTime;
    /**
     * ç»´ä¿®å®¤ä¸»ä»»ç­¾å­—
     */
    @Excel(name = "维修室主任签字", width = 15)
    @ApiModelProperty(value = "维修室主任签字")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairManagerSignature;
    /**
     * ç»´ä¿®å®¤ä¸»ä»»ç­¾å­—æ—¶é—´
     */
    @ApiModelProperty(value = "维修室主任签字时间")
    @Excel(name = "维修室主任签字时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date repairManagerSignatureTime;
    /**
     * è®¾å¤‡æ£€æŸ¥äººç­¾å­—
     */
    @Excel(name = "设备检查人签字", width = 15)
    @ApiModelProperty(value = "设备检查人签字")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String inspectorSignature;
    /**
     * è®¾å¤‡æ£€æŸ¥äººç­¾å­—æ—¶é—´
     */
    @ApiModelProperty(value = "设备检查人签字时间")
    @Excel(name = "设备检查人签字时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inspectorSignatureTime;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * ç§»äº¤å•HF编码
     */
    @Excel(name = "移交单HF编码", width = 15)
    @ApiModelProperty(value = "移交单HF编码")
    private String hfCodeA;
    /**
     * éªŒæ”¶å•HF编码
     */
    @Excel(name = "验收单HF编码", width = 15)
    @ApiModelProperty(value = "验收单HF编码")
    private String hfCodeB;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    //型号
    @TableField(exist = false)
    private String equipmentModel;
    @ApiModelProperty(value = "设备类别")
    @Dict(dicCode = "equipment_category")
    private String equipmentCategory;
    //保养日期
    private String maintenanceDateFormatted;
    //使用单位
    private String factoryName;
    /**
     * å¤‡ä»¶æ˜Žç»†
     */
    @ApiModelProperty(value = "备件使用明细")
    @DictList
    private List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpareList;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/WeeklyResponsibleInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.eam.dto;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class WeeklyResponsibleInfo {
    /** æ“ä½œå‘˜å§“名数组 (1-5周) */
    private String[] operators = new String[5];
    /** ç¡®è®¤äººå§“名数组 (1-5周) */
    private String[] confirmUsers = new String[5];
    /**
     * è®¾ç½®æŸå‘¨çš„责任人信息
     */
    public void setResponsibleForWeek(int week, String operator, String confirmUser) {
        if (week >= 1 && week <= 5) {
            operators[week - 1] = operator;
            confirmUsers[week - 1] = confirmUser;
        }
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
@@ -122,4 +122,17 @@
    @Excel(name = "HF编码", width = 15)
    @ApiModelProperty(value = "HF编码")
    private String hfCode;
    //流转节点使用查询
    @TableField(exist = false)
    private String procInstId;
    /**流程定义key ä¸€ä¸ªkey会有多个版本的id*/
    @TableField(exist = false)
    private String processDefinitionKey;
    /**流程定义id ä¸€ä¸ªæµç¨‹å®šä¹‰å”¯ä¸€*/
    @TableField(exist = false)
    private String processDefinitionId;
    /**流程业务实例id ä¸€ä¸ªæµç¨‹ä¸šåŠ¡å”¯ä¸€ï¼Œæœ¬è¡¨ä¸­ä¹Ÿå”¯ä¸€*/
    @TableField(exist = false)
    private String processInstanceId;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java
@@ -187,4 +187,14 @@
    //流转节点使用查询
    @TableField(exist = false)
    private String procInstId;
    /**流程定义key ä¸€ä¸ªkey会有多个版本的id*/
    @TableField(exist = false)
    private String processDefinitionKey;
    /**流程定义id ä¸€ä¸ªæµç¨‹å®šä¹‰å”¯ä¸€*/
    @TableField(exist = false)
    private String processDefinitionId;
    /**流程业务实例id ä¸€ä¸ªæµç¨‹ä¸šåŠ¡å”¯ä¸€ï¼Œæœ¬è¡¨ä¸­ä¹Ÿå”¯ä¸€*/
    @TableField(exist = false)
    private String processInstanceId;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
@@ -247,4 +247,16 @@
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    //流转节点使用查询
    @TableField(exist = false)
    private String procInstId;
    /**流程定义key ä¸€ä¸ªkey会有多个版本的id*/
    @TableField(exist = false)
    private String processDefinitionKey;
    /**流程定义id ä¸€ä¸ªæµç¨‹å®šä¹‰å”¯ä¸€*/
    @TableField(exist = false)
    private String processDefinitionId;
    /**流程业务实例id ä¸€ä¸ªæµç¨‹ä¸šåŠ¡å”¯ä¸€ï¼Œæœ¬è¡¨ä¸­ä¹Ÿå”¯ä¸€*/
    @TableField(exist = false)
    private String processInstanceId;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportAccidentsRegisterMapper.java
@@ -6,6 +6,8 @@
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.dto.EamReportAccidentsRegisterDto;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
@@ -19,4 +21,10 @@
public interface EamReportAccidentsRegisterMapper extends BaseMapper<EamReportAccidentsRegister> {
    IPage<EamReportAccidentsRegisterQuery>  queryPageList(IPage<EamReportAccidentsRegisterQuery> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportAccidentsRegisterQuery> eamReportAccidentsRegisterQuery);
    /**
     * åˆ—表查询
     * param
     */
    List<EamReportAccidentsRegisterDto> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamReportAccidentsRegisterDto> queryWrapper);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportProductHazardsMapper.java
@@ -7,6 +7,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.EamReportProductHazardsDto;
import org.jeecg.modules.eam.entity.EamReportProductHazards;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.request.EamReportProductHazardsQuery;
@@ -21,4 +22,9 @@
    IPage<EamReportProductHazardsQuery> queryPageList(Page<EamReportProductHazardsQuery> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportProductHazardsQuery> eamReportProductHazardsQuery);
    /**
     * åˆ—表查询
     * @param queryWrapper
     */
    List<EamReportProductHazardsDto> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamReportProductHazardsDto> queryWrapper);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportAccidentsRegisterMapper.xml
@@ -21,4 +21,25 @@
                                AND e.del_flag = 0
            ${ew.customSqlSegment}
    </select>
    <select id="queryList" resultType="org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto">
        SELECT
            aar.*,
            e.equipment_code,
            e.equipment_name,
            e.equipment_model,
            e.installation_position,
            wmo.scrap_part_number,
            wmo.scrap_part_quantity,
            wmo.scrap_part_value ,
            f.factory_name
        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
                 LEFT JOIN eam_base_factory f ON f.org_code = SUBSTRING ( e.factory_org_code , 1, 6 )
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportProductHazardsMapper.xml
@@ -14,4 +14,18 @@
                               and arr.del_flag=0
            ${ew.customSqlSegment}
    </select>
    <select id="queryList" resultType="org.jeecg.modules.eam.dto.EamReportProductHazardsDto">
        select erph.*, e.equipment_code, e.equipment_name,e.equipment_model, e.installation_position,
               arr.processing_part,arr.batch_number,arr.quantity,arr.fault_description,
               f.factory_name
        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
                 LEFT JOIN eam_base_factory f ON f.org_code = SUBSTRING ( e.factory_org_code , 1, 6 )
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportAccidentsRegisterService.java
@@ -10,6 +10,8 @@
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
import java.util.List;
/**
 * @Description: è®¾å¤‡äº‹æ•…登记表
 * @Author: jeecg-boot
@@ -52,4 +54,11 @@
     * @return
     */
    boolean cancelled(String id);
    /**
     * è®¾å¤‡äº‹æ•…登记表打印
     * @param ids
     * @return
     */
    List<EamReportAccidentsRegisterDto> findListByIds(String ids);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportProductHazardsService.java
@@ -3,11 +3,14 @@
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.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;
import java.util.List;
/**
 * @Description: äº§å“å®‰å…¨é𐿂£ç¡®è®¤
@@ -51,4 +54,11 @@
     * @return
     */
    boolean cancelled(String id);
    /**
     * äº§å“å®‰å…¨é𐿂£ç¡®è®¤æ‰“印
     * @param ids
     * @return
     */
    List<EamReportProductHazardsDto> findListByIds(String ids);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportAccidentsRegisterServiceImpl.java
@@ -21,6 +21,7 @@
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamReportAccidentsRegisterMapper;
import org.jeecg.modules.eam.request.EamReportAccidentsRegisterQuery;
@@ -631,6 +632,47 @@
        return true;
    }
    /**
     * è®¾å¤‡äº‹æ•…登记表打印
     * @param ids
     * @return
     */
    @Override
    public List<EamReportAccidentsRegisterDto> findListByIds(String ids){
        QueryWrapper<EamReportAccidentsRegisterDto> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("aar.del_flag",CommonConstant.DEL_FLAG_0.toString());
        queryWrapper.eq("aar.register_status",EamReportAccidentsRegisterEnum.REPAIR_COMPLETED.name());
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return new ArrayList<>();
        }
        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 new ArrayList<>();
            }
        }
        //查询条件过滤
        if (StrUtil.isNotEmpty(ids)) {
            List<String> idList = Arrays.asList(ids.split(","));
            queryWrapper.in("aar.id", idList);
        } else {
            queryWrapper.orderByDesc("aar.create_time");
        }
        return this.baseMapper.queryList(queryWrapper);
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportProductHazardsServiceImpl.java
@@ -22,6 +22,8 @@
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.EamReportAccidentsRegisterEnum;
import org.jeecg.modules.eam.constant.EamReportProductHazardsEnum;
import org.jeecg.modules.eam.constant.SecondMaintenanceStatusEnum;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.dto.EamReportProductHazardsDto;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamReportAccidentsRegister;
@@ -380,6 +382,47 @@
        return true;
    }
    /**
     * äº§å“å®‰å…¨é𐿂£ç¡®è®¤æ‰“印
     * @param ids
     * @return
     */
    @Override
    public List<EamReportProductHazardsDto> findListByIds(String ids){
        QueryWrapper<EamReportProductHazardsDto> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("erph.del_flag",CommonConstant.DEL_FLAG_0.toString());
        queryWrapper.eq("erph.confirm_status",EamReportProductHazardsEnum.REPAIR_COMPLETED.name() );
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return new ArrayList<>();
        }
        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 new ArrayList<>();
            }
        }
        //查询条件过滤
        if (StrUtil.isNotEmpty(ids)) {
            List<String> idList = Arrays.asList(ids.split(","));
            queryWrapper.in("erph.id", idList);
        } else {
            queryWrapper.orderByDesc("erph.create_time");
        }
        return this.baseMapper.queryList(queryWrapper);
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
@@ -19,6 +19,7 @@
import org.jeecg.modules.eam.constant.InspectionItemCategroyEnum;
import org.jeecg.modules.eam.constant.InspectionStatus;
import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
import org.jeecg.modules.eam.dto.EamInspectionOrderExport;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
@@ -364,4 +365,14 @@
        return eamInspectionOrderService.exportWeekInsOrderDetailUserList(equipmentCode, inspectionDate);
    }
    /**
     * ç”Ÿäº§è®¾å¤‡è‡ªä¸»ç»´æŠ¤ç‚¹æ£€è¡¨æ‰“印
     * @param ids
     * @return
     */
    @ApiOperation(value = "生产设备自主维护点检表打印", notes = "生产设备自主维护点检表打印")
    @GetMapping("/printInspectionOrder")
    public Result<?> printInspectionOrder(String ids) {
        return Result.ok(eamInspectionOrderService.printInspectionOrder(ids));
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportAccidentsRegisterController.java
@@ -270,4 +270,16 @@
        return super.importExcel(request, response, EamReportAccidentsRegister.class);
    }
     /**
      * è®¾å¤‡äº‹æ•…登记表打印
      * @param ids
      * @return
      */
     @AutoLog(value = "设备事故登记表-设备事故登记表打印")
     @ApiOperation(value="设备事故登记表-设备事故登记表打印", notes="设备事故登记表-设备事故登记表打印")
     @GetMapping(value = "/batchExport")
     public Result<?> batchExport(String ids){
         return Result.ok(eamReportAccidentsRegisterService.findListByIds(ids));
     }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportProductHazardsController.java
@@ -160,6 +160,18 @@
        return Result.error("删除失败!");
    }
     /**
      * äº§å“å®‰å…¨é𐿂£ç¡®è®¤æ‰“印
      * @param ids
      * @return
      */
     @AutoLog(value = "产品安全隐患确认-产品安全隐患确认打印")
     @ApiOperation(value="产品安全隐患确认-产品安全隐患确认打印", notes="产品安全隐患确认-产品安全隐患确认打印")
     @GetMapping(value = "/batchExport")
     public Result<?> batchExport(String ids){
         return Result.ok(eamReportProductHazardsService.findListByIds(ids));
     }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -186,6 +186,15 @@
    //流转节点使用查询
    @TableField(exist = false)
    private String procInstId;
    /**流程定义key ä¸€ä¸ªkey会有多个版本的id*/
    @TableField(exist = false)
    private String processDefinitionKey;
    /**流程定义id ä¸€ä¸ªæµç¨‹å®šä¹‰å”¯ä¸€*/
    @TableField(exist = false)
    private String processDefinitionId;
    /**流程业务实例id ä¸€ä¸ªæµç¨‹ä¸šåŠ¡å”¯ä¸€ï¼Œæœ¬è¡¨ä¸­ä¹Ÿå”¯ä¸€*/
    @TableField(exist = false)
    private String processInstanceId;
    public String getEquipmentText() {
        return equipmentCode + "[" + equipmentName + "]";
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
@@ -6,6 +6,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.EamInspectionOrderExport;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.request.*;
@@ -27,6 +28,12 @@
     */
    IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamInspectionOrder> queryWrapper);
    /**
     * åˆ—表查询
     * @return
     */
    List<EamInspectionOrderExport> queryList(@Param("ids") List<String> ids);
    EamInspectionOrderBaseResponse findInsOrderBaseInfo(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
    List<EamInsOrderDetailResultResponse> findInsOrderDetailList(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
@@ -3,10 +3,14 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamInspectionOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamInspectionOrder">
        select wmo.*, e.equipment_code, e.equipment_name, e.equipment_model
        select wmo.*, e.equipment_code, e.equipment_name, e.equipment_model,f.process_instance_id as 'procInstId',
               f.process_definition_key,
               f.process_definition_id,
               f.process_instance_id
        from eam_inspection_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        left join flow_my_business f on f.data_id=wmo.id
        ${ew.customSqlSegment}
    </select>
@@ -124,5 +128,35 @@
        ORDER BY
            t1.plan_inspection_date ASC
    </select>
    <select id="queryList" resultType="org.jeecg.modules.eam.dto.EamInspectionOrderExport">
        SELECT
            t2.equipment_name equipmentName,
            t2.equipment_code equipmentCode,
            t2.equipment_model equipmentModel,
            SUBSTRING(t2.factory_org_code,1,6) factoryName,
            DATEPART( YEAR, t1.inspection_date ) AS inspectionYear,
            DATEPART( MONTH, t1.inspection_date ) AS inspectionMonth,
            t1.hf_code hfCode
        FROM
            eam_inspection_order t1
                LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
        WHERE
            1=1
          <if test="ids != null and ids.size() > 0">
            AND t1.id IN
              <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
                #{id}
            </foreach>
          </if>
          AND t1.inspection_status = 'COMPLETE'
        GROUP BY
        t2.equipment_name,
        t2.equipment_code,
        t2.equipment_model ,
        t2.factory_org_code ,
        DATEPART( YEAR, t1.inspection_date ),
        DATEPART( MONTH, t1.inspection_date ),
        t1.hf_code
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
@@ -3,7 +3,10 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
        select ems.*, e.equipment_code, e.equipment_name,
               e.equipment_model,f.process_instance_id as 'procInstId'
               e.equipment_model,f.process_instance_id as 'procInstId',
               f.process_definition_key,
               f.process_definition_id,
               f.process_instance_id
        from eam_maintenance_standard ems
        inner join eam_equipment e
        on ems.equipment_id = e.id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml
@@ -3,7 +3,10 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder">
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model,f.process_instance_id as 'procInstId'
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model,f.process_instance_id as 'procInstId',
               f.process_definition_key,
               f.process_definition_id,
               f.process_instance_id
        from eam_second_maintenance_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceOrderMapper.xml
@@ -3,10 +3,14 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder">
        select wmo.*, e.equipment_code, e.equipment_name, e.equipment_model
        select wmo.*, e.equipment_code, e.equipment_name, e.equipment_model,f.process_instance_id as 'procInstId',
               f.process_definition_key,
               f.process_definition_id,
               f.process_instance_id
        from eam_third_maintenance_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        left join flow_my_business f on f.data_id=wmo.id
        ${ew.customSqlSegment}
    </select>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -1,19 +1,16 @@
package org.jeecg.modules.eam.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.common.api.vo.Result;
import org.jeecg.modules.eam.dto.EamInspectionOrderExport;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
import org.jeecg.modules.eam.vo.InspectionVo;
import java.util.List;
import java.util.Map;
/**
 * @Description: ç‚¹æ£€å·¥å•
@@ -112,4 +109,11 @@
     * å‘¨ç‚¹æ£€è´£ä»»äººåˆ—表
     */
    JSONObject exportWeekInsOrderDetailUserList(String equipmentCode, String inspectionDate);
    /**
     * ç”Ÿäº§è®¾å¤‡è‡ªä¸»ç»´æŠ¤ç‚¹æ£€è¡¨æ‰“印
     * @param ids
     * @return
     */
    List<EamInspectionOrderExport> printInspectionOrder(String ids);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExportYj;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery;
@@ -95,7 +96,7 @@
     * @param ids
     * @return
     */
    List<EamThirdMaintenanceOrderExport> export(String ids);
    List<EamThirdMaintenanceOrderExportYj> export(String ids);
    /**
     * æ‰¹é‡æ‰“印加工设备三级保养验收单
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -11,6 +11,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
@@ -23,6 +24,10 @@
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.DailyResponsibleInfo;
import org.jeecg.modules.eam.dto.EamInspectionOrderDetailExport;
import org.jeecg.modules.eam.dto.EamInspectionOrderExport;
import org.jeecg.modules.eam.dto.WeeklyResponsibleInfo;
import org.jeecg.modules.eam.request.*;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
@@ -49,6 +54,7 @@
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -698,6 +704,270 @@
        }
    }
    /**
     * ç”Ÿäº§è®¾å¤‡è‡ªä¸»ç»´æŠ¤ç‚¹æ£€è¡¨æ‰“印
     * @param ids
     * @return
     */
    @Override
    public List<EamInspectionOrderExport> printInspectionOrder(String ids) {
        List<EamInspectionOrderExport> eamInspectionOrderExports =
                this.eamInspectionOrderMapper.queryList(Arrays.asList(ids.split(",")));
        if (eamInspectionOrderExports == null || eamInspectionOrderExports.isEmpty()) {
            return null;
        }
        eamInspectionOrderExports.forEach(eamInspectionOrderExport -> {
            // æ—¥æœŸå¤„理
            if (StrUtil.isNotEmpty(eamInspectionOrderExport.getInspectionMonth())){
                if (eamInspectionOrderExport.getInspectionMonth().length() == 1) {
                    eamInspectionOrderExport.setInspectionMonth("0" + eamInspectionOrderExport.getInspectionMonth());
                }
            }
            String finalInspectionDate = eamInspectionOrderExport.getInspectionYear()+"-" + eamInspectionOrderExport.getInspectionMonth();
            // èŽ·å–è¯¥è®¾å¤‡çš„æ—¥ç‚¹æ£€æ˜Žç»†æ•°æ®
            List<EamInsOrderDetailResultResponse> detailResponseList =
                    eamInspectionOrderMapper.findInsOrderDetailList(
                            eamInspectionOrderExport.getEquipmentCode(),
                            finalInspectionDate
                    );
            if (!detailResponseList.isEmpty()) {
                // æŒ‰é¡¹ç›®åˆ†ç»„存储(项目编码为key)
                Map<Integer, EamInspectionOrderDetailExport> detailExportMap = new HashMap<>();
                // åˆå§‹åŒ–项目信息(每个项目对应一个31天状态的对象)
                detailResponseList.forEach(detail -> {
                    Integer itemCode = detail.getItemCode();
                    EamInspectionOrderDetailExport export = detailExportMap.get(itemCode);
                    if (export == null) {
                        // åˆ›å»ºæ–°çš„点检项目对象
                        export = new EamInspectionOrderDetailExport()
                                .setItemCode(itemCode)
                                .setItemName(detail.getItemName())
                                .setItemDemand(detail.getItemDemand())
                                .setDateFlag(new String[31]); // åˆå§‹åŒ–31天状态数组
                        detailExportMap.put(itemCode, export);
                    }
                });
                // å¡«å……各项目每日的点检状态
                detailResponseList.forEach(detail -> {
                    Integer itemCode = detail.getItemCode();
                    EamInspectionOrderDetailExport export = detailExportMap.get(itemCode);
                    try {
                        Date newinspectionDate = detail.getInspectionDate();
                        // å¤„理空日期情况
                        if (newinspectionDate == null) {
                            log.warn("检测到空日期值, itemCode: {}");
                            return;
                        }
                        // è½¬æ¢ä¸ºLocalDate
                        LocalDate date = newinspectionDate.toInstant()
                                .atZone(ZoneId.systemDefault())
                                .toLocalDate();
                        int day = date.getDayOfMonth();
                        // å®‰å…¨è®¾ç½®æ—¥æœŸçŠ¶æ€
                        if (day >= 1 && day <= 31) {
                            String[] dateFlags = export.getDateFlag();
                            if (dateFlags == null) {
                                dateFlags = new String[31];
                                export.setDateFlag(dateFlags);
                            }
                            if (StrUtil.isNotEmpty(detail.getInspectionResult())){
                                switch (detail.getInspectionResult()) {
                                    case "NORMAL":
                                        dateFlags[day - 1] = "√";
                                        break;
                                    case "ANOMALY":
                                        dateFlags[day - 1] = "×";
                                        break;
                                    case "FAULT":
                                        dateFlags[day - 1] = "△";
                                        break;
                                    case "CLOSE":
                                        dateFlags[day - 1] = "T";
                                        break;
                                }
                            }
                        } else {
                            log.warn("非法日期值: {}, itemCode: {}");
                        }
                    }
                    catch (DateTimeParseException | NullPointerException e) {
                        log.error("日期处理错误 - åŽŸå§‹å€¼: {}, é¡¹ç›®: {}, é”™è¯¯: {}");
                    }
                });
                // å°†ç‚¹æ£€é¡¹ç›®é›†åˆè½¬æ¢ä¸ºåˆ—表
                List<EamInspectionOrderDetailExport> detailExports =
                        new ArrayList<>(detailExportMap.values());
                // è®¾ç½®åˆ°ä¸»å¯¼å‡ºå¯¹è±¡ä¸­
                eamInspectionOrderExport.setEamDailyInspectionList(detailExports);
            }else {
                eamInspectionOrderExport.setEamDailyInspectionList(null);
            }
            // èŽ·å–è¯¥è®¾å¤‡çš„å‘¨ç‚¹æ£€æ˜Žç»†æ•°æ®
            List<EamWeekInsDetailResultResponse> eamWeekInsDetailResultResponseList =
                    eamInspectionOrderMapper.findWeekInsDetailList(
                            eamInspectionOrderExport.getEquipmentCode(),
                            finalInspectionDate
                    );
            if (!eamWeekInsDetailResultResponseList.isEmpty()) {
                // æŒ‰é¡¹ç›®åˆ†ç»„存储(项目编码为key)
                Map<Integer, EamInspectionOrderDetailExport> detailExportMap = new HashMap<>();
                // åˆå§‹åŒ–项目信息
                eamWeekInsDetailResultResponseList.forEach(detail -> {
                    Integer itemCode = detail.getItemCode();
                    EamInspectionOrderDetailExport export = detailExportMap.get(itemCode);
                    if (export == null) {
                        // åˆ›å»ºæ–°çš„点检项目对象并初始化weekFlag数组
                        export = new EamInspectionOrderDetailExport()
                                .setItemCode(itemCode)
                                .setItemName(detail.getItemName())
                                .setItemDemand(detail.getItemDemand())
                                .setWeekFlag(new String[5]); // æ˜Žç¡®åˆå§‹åŒ–长度为5
                        detailExportMap.put(itemCode, export);
                    }
                });
                // å¡«å……各项目每周的点检状态
                eamWeekInsDetailResultResponseList.forEach(detail -> {
                    Integer itemCode = detail.getItemCode();
                    EamInspectionOrderDetailExport export = detailExportMap.get(itemCode);
                    Date newinspectionDate = detail.getPlanInspectionDate();
                    if (newinspectionDate == null) {
                        log.warn("检测到空日期值, itemCode: {}");
                        return;
                    }
                    // è®¡ç®—该日期是当月第几周 (1-5)
                    int week = calculateWeekOfMonth(newinspectionDate);
                    if (week >= 1 && week <= 5) {
                        String[] weekFlags = export.getWeekFlag();
                        if (weekFlags == null) {
                            weekFlags = new String[31];
                            export.setWeekFlag(weekFlags);
                        }
                        if (StrUtil.isNotEmpty(detail.getInspectionResult())){
                            switch (detail.getInspectionResult()) {
                                case "NORMAL":
                                    weekFlags[week - 1] = "√";
                                    break;
                                case "ANOMALY":
                                    weekFlags[week - 1] = "×";
                                    break;
                                case "FAULT":
                                    weekFlags[week - 1] = "△";
                                    break;
                                case "CLOSE":
                                    weekFlags[week - 1] = "T";
                                    break;
                            }
                        }
                    }
                });
                // å°†ç‚¹æ£€é¡¹ç›®é›†åˆè½¬æ¢ä¸ºåˆ—表
                List<EamInspectionOrderDetailExport> weekDetailExports =
                        new ArrayList<>(detailExportMap.values());
                // è®¾ç½®åˆ°ä¸»å¯¼å‡ºå¯¹è±¡ä¸­
                eamInspectionOrderExport.setEamWeeklyInspectionList(weekDetailExports);
            }else {
                eamInspectionOrderExport.setEamWeeklyInspectionList(null);
            }
            // ================== æ·»åŠ æ—¥ç‚¹æ£€è´£ä»»äººä¿¡æ¯ ==================
            DailyResponsibleInfo dailyResponsible = new DailyResponsibleInfo();
            List<EamInsOrderDetailUserResponse> dailyUserResponses =
                    eamInspectionOrderMapper.findInspectionOrderDetailUserList(
                            eamInspectionOrderExport.getEquipmentCode(),
                            finalInspectionDate
                    );
            if (dailyUserResponses != null && !dailyUserResponses.isEmpty()) {
                dailyUserResponses.forEach(response -> {
                    try {
                        Date date = response.getInspectionDate();
                        if (date == null) return;
                        LocalDate localDate = date.toInstant()
                                .atZone(ZoneId.systemDefault())
                                .toLocalDate();
                        int day = localDate.getDayOfMonth();
                        if (day < 1 || day > 31) return;
                        // èŽ·å–æ“ä½œå‘˜å’Œç¡®è®¤äººå§“å
                        String operator = sysDictService.queryTableDictTextByKey(
                                "sys_user", "realname", "username", response.getOperator());
                        String confirmUser = sysDictService.queryTableDictTextByKey(
                                "sys_user", "realname", "username", response.getConfirmUser());
                        // è®¾ç½®è´£ä»»äººä¿¡æ¯
                        dailyResponsible.setResponsibleForDay(day, operator, confirmUser);
                    } catch (Exception e) {
                        log.error("处理日点检责任人信息出错: {}");
                    }
                });
            }
            eamInspectionOrderExport.setDailyResponsibleInfo(dailyResponsible);
            // ================== æ·»åŠ å‘¨ç‚¹æ£€è´£ä»»äººä¿¡æ¯ ==================
            WeeklyResponsibleInfo weeklyResponsible = new WeeklyResponsibleInfo();
            List<EamWeekInsDetailUserResponse> weeklyUserResponses =
                    eamInspectionOrderMapper.findWeekInsOrderDetailUserList(
                            eamInspectionOrderExport.getEquipmentCode(),
                            finalInspectionDate
                    );
            if (weeklyUserResponses != null && !weeklyUserResponses.isEmpty()) {
                weeklyUserResponses.forEach(response -> {
                    try {
                        Date date = response.getPlanInspectionDate();
                        if (date == null) return;
                        // è®¡ç®—周数
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(date);
                        int week = calendar.get(Calendar.WEEK_OF_MONTH);
                        if (week < 1 || week > 5) return;
                        // èŽ·å–æ“ä½œå‘˜å’Œç¡®è®¤äººå§“å
                        String operator = sysDictService.queryTableDictTextByKey(
                                "sys_user", "realname", "username", response.getInspector());
                        String confirmUser = sysDictService.queryTableDictTextByKey(
                                "sys_user", "realname", "username", response.getConfirmUser());
                        // è®¾ç½®è´£ä»»äººä¿¡æ¯
                        weeklyResponsible.setResponsibleForWeek(week, operator, confirmUser);
                    } catch (Exception e) {
                        log.error("处理周点检责任人信息出错: {}");
                    }
                });
            }
            eamInspectionOrderExport.setWeeklyResponsibleInfo(weeklyResponsible);
        });
        return eamInspectionOrderExports;
    }
    /**
     * è®¡ç®—日期在当月是第几周(1-5)
     */
    private int calculateWeekOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.WEEK_OF_MONTH);
    }
    private boolean isValidRequest(EamInspectionOrderRequest request) {
        return StrUtil.isNotBlank(request.getTaskId()) && StrUtil.isNotBlank(request.getDataId());
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -26,6 +26,7 @@
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExportYj;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper;
import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse;
@@ -598,7 +599,7 @@
     * @return
     */
    @Override
    public List<EamThirdMaintenanceOrderExport> export(String ids){
    public List<EamThirdMaintenanceOrderExportYj> export(String ids){
        QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString());
        queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name());
@@ -631,15 +632,23 @@
            queryWrapper.orderByDesc("wmo.create_time");
        }
        List<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper);
        List<EamThirdMaintenanceOrderExportYj> eamThirdMaintenanceOrderExportYjs=new  ArrayList<>();
        if (!eamThirdMaintenanceOrderExports.isEmpty()){
            for (EamThirdMaintenanceOrderExport eamThirdMaintenanceOrderExport:eamThirdMaintenanceOrderExports) {
                EamThirdMaintenanceOrderExportYj eamThirdMaintenanceOrderExportYj = new EamThirdMaintenanceOrderExportYj();
                BeanUtils.copyProperties(eamThirdMaintenanceOrderExport, eamThirdMaintenanceOrderExportYj);
                eamThirdMaintenanceOrderExportYjs.add(eamThirdMaintenanceOrderExportYj);
            }
        }
        //填充对应修理更换备件明细
        eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{
        eamThirdMaintenanceOrderExportYjs.forEach(eamThirdMaintenanceOrderExportYj->{
            List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpares=eamThirdMaintenanceSpareService.list(
                    new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExport.getId()));
                    new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExportYj.getId()));
            if (!eamThirdMaintenanceSpares.isEmpty()){
                eamThirdMaintenanceOrderExport.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares);
                eamThirdMaintenanceOrderExportYj.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares);
            }
        });
        return eamThirdMaintenanceOrderExports;
        return eamThirdMaintenanceOrderExportYjs;
    }
    /**