lyh
2025-07-10 736003d4534e1686b3e9ee27f7baa2afba7ad959
Merge remote-tracking branch 'origin/master'
已添加7个文件
已修改17个文件
1449 ■■■■■ 文件已修改
db/430设备管理数据库设计.pdma.json 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionResultEnum.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekInspectionDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInsOrderDetailResultResponse.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInsOrderDetailUserResponse.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderBaseResponse.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamWeekInsDetailResultResponse.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamWeekInsDetailUserResponse.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java 314 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderController.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderDetailController.java 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrder.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderDetail.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationOrderMapper.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationOrderMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/430É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-7-9 19:20:22",
  "updatedTime": "2025-7-10 10:43:18",
  "dbConns": [],
  "profile": {
    "default": {
@@ -25418,6 +25418,24 @@
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "order_id",
          "defName": "工单ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "237E6137-D268-4FDF-95F1-C20B95DE6F98"
        },
        {
          "defKey": "item_code",
          "defName": "序号",
          "comment": "",
lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -137,6 +137,12 @@
        filterChainDefinitionMap.put("/jmreport/**", "anon");
        filterChainDefinitionMap.put("/**/*.js.map", "anon");
        filterChainDefinitionMap.put("/**/*.css.map", "anon");
        //设备点检打印接口排除
        filterChainDefinitionMap.put("/eam/eamInspectionOrder/exportInsOrderBaseInfo", "anon");
        filterChainDefinitionMap.put("/eam/eamInspectionOrder/exportInsOrderDetailList", "anon");
        filterChainDefinitionMap.put("/eam/eamInspectionOrder/exportInsOrderDetailUserList", "anon");
        filterChainDefinitionMap.put("/eam/eamInspectionOrder/exportWeekInsDetailList", "anon");
        filterChainDefinitionMap.put("/eam/eamInspectionOrder/exportWeekInsOrderDetailUserList", "anon");
        //设备完好率报表排除
        filterChainDefinitionMap.put("/eam/repairOrder/equipmentAvailability", "anon");
        //生产故障间隔时间报表排除
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionResultEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package org.jeecg.modules.eam.constant;
/**
 * ç‚¹æ£€ç»“果分类
 */
public enum InspectionResultEnum {
    NORMAL, //正常
    ANOMALY, //异常
    FAULT, //故障
    CLOSE //关机
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java
@@ -31,7 +31,7 @@
    private String orderId;
    /**点检结果*/
    @Excel(name = "点检结果", width = 15)
    @ApiModelProperty(value = "点检结果-正常-异常")
    @ApiModelProperty(value = "点检结果-正常-异常-故障-关机")
    private String inspectionResult;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekInspectionDetail.java
@@ -46,7 +46,7 @@
    private Date planInspectionDate;
    /**点检结果*/
    @Excel(name = "点检结果", width = 15)
    @ApiModelProperty(value = "点检结果-正常-异常")
    @ApiModelProperty(value = "点检结果-正常-异常-关机-故障")
    private String inspectionResult;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInsOrderDetailResultResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package org.jeecg.modules.eam.request;
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.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-09
 * @Description: ç‚¹æ£€é¡¹åŸºç¡€ä¿¡æ¯å¯¼å‡ºè¯¦ç»†
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="点检工单基础信息导出详细")
public class EamInsOrderDetailResultResponse implements Serializable {
    private static final long serialVersionUID = -1779195782355233938L;
    /**点检日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "点检日期")
    private Date inspectionDate;
    /**保养项序号*/
    @ApiModelProperty(value = "保养项序号")
    private Integer itemCode;
    /**保养项*/
    @ApiModelProperty(value = "保养项")
    private String itemName;
    /**保养要求*/
    @ApiModelProperty(value = "保养要求")
    private String  itemDemand;
    /**点检结果*/
    @ApiModelProperty(value = "点检结果-正常-异常-")
    private String inspectionResult;
    public EamInsOrderDetailResultResponse() {
    }
    public EamInsOrderDetailResultResponse(Integer itemCode, String itemName, String itemDemand) {
        this.itemCode = itemCode;
        this.itemName = itemName;
        this.itemDemand = itemDemand;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInsOrderDetailUserResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package org.jeecg.modules.eam.request;
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.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-09
 * @Description: æ—¥ç‚¹æ£€è´£ä»»äººè¿”回对象
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="日点检责任人返回导出详细")
public class EamInsOrderDetailUserResponse implements Serializable {
    private static final long serialVersionUID = 6369935960896727599L;
    /**点检日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "点检日期")
    private Date inspectionDate;
    /**点检人*/
    @ApiModelProperty(value = "点检人-是领取人")
    private String operator;
    /**班组长确认*/
    @ApiModelProperty(value = "班组长确认--领取后产生")
    private String confirmUser;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderBaseResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-09
 * @Description: ç‚¹æ£€å·¥å•基础信息导出详细
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="点检工单基础信息导出详细")
public class EamInspectionOrderBaseResponse implements Serializable {
    private static final long serialVersionUID = -9051699099294744556L;
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;
    @ApiModelProperty(value = "设备编号")
    private String equipmentCode;
    @ApiModelProperty(value = "单位")
    private String factoryName;
    @ApiModelProperty(value = "å¹´")
    private String inspectionYear;
    @ApiModelProperty(value = "月")
    private String inspectionMonth;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamWeekInsDetailResultResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package org.jeecg.modules.eam.request;
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;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-09
 * @Description: å‘¨ç‚¹æ£€ç»“果列表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="周点检工单基础信息导出详细")
public class EamWeekInsDetailResultResponse implements Serializable {
    private static final long serialVersionUID = -9051699099294744556L;
    /**计划点检日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划点检日期")
    private Date planInspectionDate;
    /**保养项序号*/
    @ApiModelProperty(value = "保养项序号")
    private Integer itemCode;
    /**保养项*/
    @ApiModelProperty(value = "保养项")
    private String itemName;
    /**保养要求*/
    @ApiModelProperty(value = "保养要求")
    private String  itemDemand;
    /**点检结果*/
    @ApiModelProperty(value = "点检结果-正常-异常-故障-关机")
    private String inspectionResult;
    public EamWeekInsDetailResultResponse() {
    }
    public EamWeekInsDetailResultResponse(Integer itemCode, String itemName, String itemDemand) {
        this.itemCode = itemCode;
        this.itemName = itemName;
        this.itemDemand = itemDemand;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamWeekInsDetailUserResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package org.jeecg.modules.eam.request;
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.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-10
 * @Description: å‘¨ç‚¹æ£€è´£ä»»äººè¿”回对象
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="周点检责任人返回导出详细")
public class EamWeekInsDetailUserResponse implements Serializable {
    private static final long serialVersionUID = -2269180394302345460L;
    /**点检日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "点检日期")
    private Date inspectionDate;
    /**点检人*/
    @ApiModelProperty(value = "点检人-是领取人")
    private String inspector;
    /**班组长确认*/
    @ApiModelProperty(value = "班组长确认--领取后产生")
    private String confirmUser;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
@@ -330,277 +330,63 @@
    }
    /**
     * æŠ¥è¡¨ä½¿ç”¨ qsw
     * 2025-6-19
     * å¯¼å‡ºèŽ·å–åŸºæœ¬ä¿¡æ¯
     * @param equipmentCode ç»Ÿä¸€ç¼–码
     * @param inspectionDate æ—¥æœŸ
     * @return
     */
    @GetMapping("/findInspectionResult")
    public JSONObject findInspectionResult(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                          @RequestParam(name = "pageSize", defaultValue = "1000") Integer pageSize,
                                          @RequestParam Map<String, Object> params) {
        String equipmentId = (String)params.get("equipmentId");
        String inspectionDate = (String)params.get("inspectionDate");
        List<InspectionVo> inspectionVos = new ArrayList<>();
        List<Map<String, Object>> inspectionStandard = eamInspectionOrderService.findInspectionStandard(equipmentId);
        for (Map<String, Object> map : inspectionStandard) {
            List<InspectionVo> dayInspectionResult = eamInspectionOrderService.findInspectionResult(equipmentId,(String)map.get("itemDemand"),inspectionDate);
            InspectionVo inspectionVo = new InspectionVo();
            inspectionVo.setInspectionContent((String)map.get("itemDemand"));
            Object seq = map.get("seq");
            inspectionVo.setSeq(seq.toString());
            for (InspectionVo vo : dayInspectionResult) {
                if("1".equals(vo.getDayTime())){
                    inspectionVo.setDay1(vo.getInspectionResult());
                    continue;
                }else if("2".equals(vo.getDayTime())){
                    inspectionVo.setDay2(vo.getInspectionResult());
                    continue;
                }else if("3".equals(vo.getDayTime())){
                    inspectionVo.setDay3(vo.getInspectionResult());
                    continue;
                }else if("4".equals(vo.getDayTime())){
                    inspectionVo.setDay4(vo.getInspectionResult());
                    continue;
                }else if("5".equals(vo.getDayTime())){
                    inspectionVo.setDay5(vo.getInspectionResult());
                    continue;
                }else if("6".equals(vo.getDayTime())){
                    inspectionVo.setDay6(vo.getInspectionResult());
                    continue;
                }else if("7".equals(vo.getDayTime())){
                    inspectionVo.setDay7(vo.getInspectionResult());
                    continue;
                }else if("8".equals(vo.getDayTime())){
                    inspectionVo.setDay8(vo.getInspectionResult());
                    continue;
                }else if("9".equals(vo.getDayTime())){
                    inspectionVo.setDay9(vo.getInspectionResult());
                    continue;
                }else if("10".equals(vo.getDayTime())){
                    inspectionVo.setDay10(vo.getInspectionResult());
                    continue;
                }else if("11".equals(vo.getDayTime())){
                    inspectionVo.setDay11(vo.getInspectionResult());
                    continue;
                }else if("12".equals(vo.getDayTime())){
                    inspectionVo.setDay12(vo.getInspectionResult());
                    continue;
                }else if("13".equals(vo.getDayTime())){
                    inspectionVo.setDay13(vo.getInspectionResult());
                    continue;
                }else if("14".equals(vo.getDayTime())){
                    inspectionVo.setDay14(vo.getInspectionResult());
                    continue;
                }else if("15".equals(vo.getDayTime())){
                    inspectionVo.setDay15(vo.getInspectionResult());
                    continue;
                }else if("16".equals(vo.getDayTime())){
                    inspectionVo.setDay16(vo.getInspectionResult());
                    continue;
                }else if("17".equals(vo.getDayTime())){
                    inspectionVo.setDay17(vo.getInspectionResult());
                    continue;
                }else if("18".equals(vo.getDayTime())){
                    inspectionVo.setDay18(vo.getInspectionResult());
                    continue;
                }else if("19".equals(vo.getDayTime())){
                    inspectionVo.setDay19(vo.getInspectionResult());
                    continue;
                }else if("20".equals(vo.getDayTime())){
                    inspectionVo.setDay20(vo.getInspectionResult());
                    continue;
                }else if("21".equals(vo.getDayTime())){
                    inspectionVo.setDay21(vo.getInspectionResult());
                    continue;
                }else if("22".equals(vo.getDayTime())){
                    inspectionVo.setDay22(vo.getInspectionResult());
                    continue;
                }else if("23".equals(vo.getDayTime())){
                    inspectionVo.setDay23(vo.getInspectionResult());
                    continue;
                }else if("24".equals(vo.getDayTime())){
                    inspectionVo.setDay24(vo.getInspectionResult());
                    continue;
                }else if("25".equals(vo.getDayTime())){
                    inspectionVo.setDay25(vo.getInspectionResult());
                    continue;
                }else if("26".equals(vo.getDayTime())){
                    inspectionVo.setDay26(vo.getInspectionResult());
                    continue;
                }else if("27".equals(vo.getDayTime())){
                    inspectionVo.setDay27(vo.getInspectionResult());
                    continue;
                }else if("28".equals(vo.getDayTime())){
                    inspectionVo.setDay28(vo.getInspectionResult());
                    continue;
                }else if("29".equals(vo.getDayTime())){
                    inspectionVo.setDay29(vo.getInspectionResult());
                    continue;
                }else if("30".equals(vo.getDayTime())){
                    inspectionVo.setDay30(vo.getInspectionResult());
                    continue;
                }else if("31".equals(vo.getDayTime())){
                    inspectionVo.setDay31(vo.getInspectionResult());
                    continue;
                }
            }
            inspectionVos.add(inspectionVo);
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data",inspectionVos);
        return jsonObject;
    @GetMapping("/exportInsOrderBaseInfo")
    public JSONObject exportInspectionOrderBaseInfo(@RequestParam(name = "equipmentCode", required = true) String equipmentCode,
                                                    @RequestParam(name = "inspectionDate", required = true) String inspectionDate) {
        return eamInspectionOrderService.exportInspectionOrderBaseInfo(equipmentCode, inspectionDate);
    }
    /**
     * æŠ¥è¡¨ä½¿ç”¨ qsw
     * 2025-6-19
     * æ—¥ç‚¹æ£€é¡¹åˆ—表
     * @param equipmentCode ç»Ÿä¸€ç¼–码
     * @param inspectionDate æ—¥æœŸ
     * @return
     */
    @GetMapping("/findInspectionUser")
    public JSONObject findInspectionUser(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                           @RequestParam(name = "pageSize", defaultValue = "1000") Integer pageSize,
                                           @RequestParam Map<String, Object> params) {
        String equipmentId = (String)params.get("equipmentId");
        String inspectionDate = (String)params.get("inspectionDate");
        List<InspectionVo> inspectionVos = new ArrayList<>();
            List<InspectionVo> inspectionUser = eamInspectionOrderService.findInspectionUser(equipmentId,inspectionDate);
            InspectionVo inspectionVo = new InspectionVo();
            for (InspectionVo vo : inspectionUser) {
                if("1".equals(vo.getDayTime())){
                    inspectionVo.setOperator1(vo.getOperator());
                    inspectionVo.setConfirmUser1(vo.getConfirmUser());
                    continue;
                }else if("2".equals(vo.getDayTime())){
                    inspectionVo.setOperator2(vo.getOperator());
                    inspectionVo.setConfirmUser2(vo.getConfirmUser());
                    continue;
                }else if("3".equals(vo.getDayTime())){
                    inspectionVo.setOperator3(vo.getOperator());
                    inspectionVo.setConfirmUser3(vo.getConfirmUser());
                    continue;
                }else if("4".equals(vo.getDayTime())){
                    inspectionVo.setOperator4(vo.getOperator());
                    inspectionVo.setConfirmUser4(vo.getConfirmUser());
                    continue;
                }else if("5".equals(vo.getDayTime())){
                    inspectionVo.setOperator5(vo.getOperator());
                    inspectionVo.setConfirmUser5(vo.getConfirmUser());
                    continue;
                }else if("6".equals(vo.getDayTime())){
                    inspectionVo.setOperator6(vo.getOperator());
                    inspectionVo.setConfirmUser6(vo.getConfirmUser());
                    continue;
                }else if("7".equals(vo.getDayTime())){
                    inspectionVo.setOperator7(vo.getOperator());
                    inspectionVo.setConfirmUser7(vo.getConfirmUser());
                    continue;
                }else if("8".equals(vo.getDayTime())){
                    inspectionVo.setOperator8(vo.getOperator());
                    inspectionVo.setConfirmUser8(vo.getConfirmUser());
                    continue;
                }else if("9".equals(vo.getDayTime())){
                    inspectionVo.setOperator9(vo.getOperator());
                    inspectionVo.setConfirmUser9(vo.getConfirmUser());
                    continue;
                }else if("10".equals(vo.getDayTime())){
                    inspectionVo.setOperator10(vo.getOperator());
                    inspectionVo.setConfirmUser10(vo.getConfirmUser());
                    continue;
                }else if("11".equals(vo.getDayTime())){
                    inspectionVo.setOperator11(vo.getOperator());
                    inspectionVo.setConfirmUser11(vo.getConfirmUser());
                    continue;
                }else if("12".equals(vo.getDayTime())){
                    inspectionVo.setOperator12(vo.getOperator());
                    inspectionVo.setConfirmUser12(vo.getConfirmUser());
                    continue;
                }else if("13".equals(vo.getDayTime())){
                    inspectionVo.setOperator13(vo.getOperator());
                    inspectionVo.setConfirmUser13(vo.getConfirmUser());
                    continue;
                }else if("14".equals(vo.getDayTime())){
                    inspectionVo.setOperator14(vo.getOperator());
                    inspectionVo.setConfirmUser14(vo.getConfirmUser());
                    continue;
                }else if("15".equals(vo.getDayTime())){
                    inspectionVo.setOperator15(vo.getOperator());
                    inspectionVo.setConfirmUser15(vo.getConfirmUser());
                    continue;
                }else if("16".equals(vo.getDayTime())){
                    inspectionVo.setOperator16(vo.getOperator());
                    inspectionVo.setConfirmUser16(vo.getConfirmUser());
                    continue;
                }else if("17".equals(vo.getDayTime())){
                    inspectionVo.setOperator17(vo.getOperator());
                    inspectionVo.setConfirmUser17(vo.getConfirmUser());
                    continue;
                }else if("18".equals(vo.getDayTime())){
                    inspectionVo.setOperator18(vo.getOperator());
                    inspectionVo.setConfirmUser18(vo.getConfirmUser());
                    continue;
                }else if("19".equals(vo.getDayTime())){
                    inspectionVo.setOperator19(vo.getOperator());
                    inspectionVo.setConfirmUser19(vo.getConfirmUser());
                    continue;
                }else if("20".equals(vo.getDayTime())){
                    inspectionVo.setOperator20(vo.getOperator());
                    inspectionVo.setConfirmUser20(vo.getConfirmUser());
                    continue;
                }else if("21".equals(vo.getDayTime())){
                    inspectionVo.setOperator21(vo.getOperator());
                    inspectionVo.setConfirmUser21(vo.getConfirmUser());
                    continue;
                }else if("22".equals(vo.getDayTime())){
                    inspectionVo.setOperator22(vo.getOperator());
                    inspectionVo.setConfirmUser22(vo.getConfirmUser());
                    continue;
                }else if("23".equals(vo.getDayTime())){
                    inspectionVo.setOperator23(vo.getOperator());
                    inspectionVo.setConfirmUser23(vo.getConfirmUser());
                    continue;
                }else if("24".equals(vo.getDayTime())){
                    inspectionVo.setOperator24(vo.getOperator());
                    inspectionVo.setConfirmUser24(vo.getConfirmUser());
                    continue;
                }else if("25".equals(vo.getDayTime())){
                    inspectionVo.setOperator25(vo.getOperator());
                    inspectionVo.setConfirmUser25(vo.getConfirmUser());
                    continue;
                }else if("26".equals(vo.getDayTime())){
                    inspectionVo.setOperator26(vo.getOperator());
                    inspectionVo.setConfirmUser26(vo.getConfirmUser());
                    continue;
                }else if("27".equals(vo.getDayTime())){
                    inspectionVo.setOperator27(vo.getOperator());
                    inspectionVo.setConfirmUser27(vo.getConfirmUser());
                    continue;
                }else if("28".equals(vo.getDayTime())){
                    inspectionVo.setOperator28(vo.getOperator());
                    inspectionVo.setConfirmUser28(vo.getConfirmUser());
                    continue;
                }else if("29".equals(vo.getDayTime())){
                    inspectionVo.setOperator29(vo.getOperator());
                    inspectionVo.setConfirmUser29(vo.getConfirmUser());
                    continue;
                }else if("30".equals(vo.getDayTime())){
                    inspectionVo.setOperator30(vo.getOperator());
                    inspectionVo.setConfirmUser30(vo.getConfirmUser());
                    continue;
                }else if("31".equals(vo.getDayTime())){
                    inspectionVo.setOperator31(vo.getOperator());
                    inspectionVo.setConfirmUser31(vo.getConfirmUser());
                    continue;
                }
            }
            inspectionVos.add(inspectionVo);
//        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data",inspectionVos);
        return jsonObject;
    @GetMapping("/exportInsOrderDetailList")
    public JSONObject exportInspectionOrderDetailList(@RequestParam(name = "equipmentCode", required = true) String equipmentCode,
                                                    @RequestParam(name = "inspectionDate", required = true) String inspectionDate) {
        return eamInspectionOrderService.exportInspectionOrderDetailList(equipmentCode, inspectionDate);
    }
    /**
     * æ—¥ç‚¹æ£€è´£ä»»äººåˆ—表
     * @param equipmentCode ç»Ÿä¸€ç¼–码
     * @param inspectionDate æ—¥æœŸ
     * @return
     */
    @GetMapping("/exportInsOrderDetailUserList")
    public JSONObject exportInspectionOrderDetailUserList(@RequestParam(name = "equipmentCode", required = true) String equipmentCode,
                                                    @RequestParam(name = "inspectionDate", required = true) String inspectionDate) {
        return eamInspectionOrderService.exportInspectionOrderDetailUserList(equipmentCode, inspectionDate);
    }
    /**
     * å‘¨ç‚¹æ£€é¡¹åˆ—表
     * @param equipmentCode ç»Ÿä¸€ç¼–码
     * @param inspectionDate æ—¥æœŸ
     * @return
     */
    @GetMapping("/exportWeekInsDetailList")
    public JSONObject exportWeekInsDetailList(@RequestParam(name = "equipmentCode", required = true) String equipmentCode,
                                                    @RequestParam(name = "inspectionDate", required = true) String inspectionDate) {
        return eamInspectionOrderService.exportWeekInsDetailList(equipmentCode, inspectionDate);
    }
    /**
     * å‘¨ç‚¹æ£€è´£ä»»äººåˆ—表
     * @param equipmentCode ç»Ÿä¸€ç¼–码
     * @param inspectionDate æ—¥æœŸ
     * @return
     */
    @GetMapping("/exportWeekInsOrderDetailUserList")
    public JSONObject exportInspectionOrder(@RequestParam(name = "equipmentCode", required = true) String equipmentCode,
                                                    @RequestParam(name = "inspectionDate", required = true) String inspectionDate) {
        return eamInspectionOrderService.exportWeekInsOrderDetailUserList(equipmentCode, inspectionDate);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderController.java
@@ -1,6 +1,5 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -9,16 +8,11 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
 /**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•
@@ -37,21 +31,18 @@
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamTechnicalStatusEvaluationOrder
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value="技术状态鉴定工单-分页列表查询", notes="技术状态鉴定工单-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusEvaluationOrder eamTechnicalStatusEvaluationOrder,
    public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderQuery query,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusEvaluationOrder, req.getParameterMap());
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
        Page<EamTechnicalStatusEvaluationOrder> page = new Page<EamTechnicalStatusEvaluationOrder>(pageNo, pageSize);
        IPage<EamTechnicalStatusEvaluationOrder> pageList = eamTechnicalStatusEvaluationOrderService.page(page, queryWrapper);
        IPage<EamTechnicalStatusEvaluationOrder> pageList = eamTechnicalStatusEvaluationOrderService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    
@@ -82,34 +73,7 @@
        eamTechnicalStatusEvaluationOrderService.updateById(eamTechnicalStatusEvaluationOrder);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单-通过id删除")
    @ApiOperation(value="技术状态鉴定工单-通过id删除", notes="技术状态鉴定工单-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusEvaluationOrderService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单-批量删除")
    @ApiOperation(value="技术状态鉴定工单-批量删除", notes="技术状态鉴定工单-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamTechnicalStatusEvaluationOrderService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    
    /**
     * é€šè¿‡id查询
@@ -117,35 +81,10 @@
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单-通过id查询")
    @ApiOperation(value="技术状态鉴定工单-通过id查询", notes="技术状态鉴定工单-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
        EamTechnicalStatusEvaluationOrder eamTechnicalStatusEvaluationOrder = eamTechnicalStatusEvaluationOrderService.getById(id);
        return Result.OK(eamTechnicalStatusEvaluationOrder);
    }
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusEvaluationOrder
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationOrder eamTechnicalStatusEvaluationOrder) {
      return super.exportXls(request, eamTechnicalStatusEvaluationOrder, EamTechnicalStatusEvaluationOrder.class, "技术状态鉴定工单");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusEvaluationOrder.class);
  }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderDetailController.java
@@ -1,26 +1,22 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderDetail;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
 /**
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-07-09
@@ -32,120 +28,24 @@
@RequestMapping("/eam/eamTechnicalStatusEvaluationOrderDetail")
public class EamTechnicalStatusEvaluationOrderDetailController extends JeecgController<EamTechnicalStatusEvaluationOrderDetail, IEamTechnicalStatusEvaluationOrderDetailService> {
    @Autowired
    private IEamTechnicalStatusEvaluationOrderDetailService eamTechnicalStatusEvaluationOrderDetailService;
    private IEamTechnicalStatusEvaluationOrderDetailService orderDetailService;
    /**
     * åˆ†é¡µåˆ—表查询
     * ä¸€æ¬¡åŠ è½½
     *
     * @param eamTechnicalStatusEvaluationOrderDetail
     * @param pageNo
     * @param pageSize
     * @param req
     * @param orderId
     * @return
     */
    @ApiOperation(value="技术状态鉴定工单明细-分页列表查询", notes="技术状态鉴定工单明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderDetail eamTechnicalStatusEvaluationOrderDetail,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusEvaluationOrderDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusEvaluationOrderDetail, req.getParameterMap());
        Page<EamTechnicalStatusEvaluationOrderDetail> page = new Page<EamTechnicalStatusEvaluationOrderDetail>(pageNo, pageSize);
        IPage<EamTechnicalStatusEvaluationOrderDetail> pageList = eamTechnicalStatusEvaluationOrderDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusEvaluationOrderDetail
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单明细-添加")
    @ApiOperation(value="技术状态鉴定工单明细-添加", notes="技术状态鉴定工单明细-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationOrderDetail eamTechnicalStatusEvaluationOrderDetail) {
        eamTechnicalStatusEvaluationOrderDetailService.save(eamTechnicalStatusEvaluationOrderDetail);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusEvaluationOrderDetail
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单明细-编辑")
    @ApiOperation(value="技术状态鉴定工单明细-编辑", notes="技术状态鉴定工单明细-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationOrderDetail eamTechnicalStatusEvaluationOrderDetail) {
        eamTechnicalStatusEvaluationOrderDetailService.updateById(eamTechnicalStatusEvaluationOrderDetail);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单明细-通过id删除")
    @ApiOperation(value="技术状态鉴定工单明细-通过id删除", notes="技术状态鉴定工单明细-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusEvaluationOrderDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单明细-批量删除")
    @ApiOperation(value="技术状态鉴定工单明细-批量删除", notes="技术状态鉴定工单明细-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamTechnicalStatusEvaluationOrderDetailService.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<?> queryById(@RequestParam(name="id",required=true) String id) {
        EamTechnicalStatusEvaluationOrderDetail eamTechnicalStatusEvaluationOrderDetail = eamTechnicalStatusEvaluationOrderDetailService.getById(id);
        return Result.OK(eamTechnicalStatusEvaluationOrderDetail);
    @ApiOperation(value = "技术状态鉴定规范明细-不分页列表查询", notes = "技术状态鉴定规范明细-不分页列表查询")
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("orderId") String orderId) {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamTechnicalStatusEvaluationOrderDetail::getOrderId, orderId);
        queryWrapper.orderByAsc(EamTechnicalStatusEvaluationOrderDetail::getCheckCategory);
        queryWrapper.orderByAsc(EamTechnicalStatusEvaluationOrderDetail::getItemCode);
        List<EamTechnicalStatusEvaluationOrderDetail> list = orderDetailService.list(queryWrapper);
        return Result.OK(list);
    }
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusEvaluationOrderDetail
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationOrderDetail eamTechnicalStatusEvaluationOrderDetail) {
      return super.exportXls(request, eamTechnicalStatusEvaluationOrderDetail, EamTechnicalStatusEvaluationOrderDetail.class, "技术状态鉴定工单明细");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusEvaluationOrderDetail.class);
  }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrder.java
@@ -1,6 +1,7 @@
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 io.swagger.annotations.ApiModel;
@@ -130,4 +131,12 @@
    /**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderDetail.java
@@ -40,6 +40,9 @@
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**工单ID*/
    @ApiModelProperty(value = "工单ID")
    private String orderId;
    /**序号*/
    @ApiModelProperty(value = "序号")
    private Integer itemCode;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
@@ -7,11 +7,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
import org.jeecg.modules.eam.vo.InspectionVo;
import org.jeecg.modules.eam.request.*;
import java.util.List;
import java.util.Map;
/**
 * @Description: ç‚¹æ£€å·¥å•
@@ -28,12 +26,14 @@
     * @return
     */
    IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamInspectionOrder> queryWrapper);
    /**
     * ç‚¹æ£€æŠ¥è¡¨ new
     */
    List<InspectionVo> findInspectionResult(@Param("equipmentId")String equipmentId, @Param("itemDemand")String itemDemand,@Param("yearMonth")String yearMonth);
    List<InspectionVo> findInspectionUser(@Param("equipmentId")String equipmentId,@Param("yearMonth")String yearMonth);
    EamInspectionOrderBaseResponse findInsOrderBaseInfo(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
    List<Map<String,Object>> findInspectionStandard(@Param("equipmentId")String equipmentId);
    List<EamInsOrderDetailResultResponse> findInsOrderDetailList(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
    List<EamInsOrderDetailUserResponse> findInspectionOrderDetailUserList(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
    List<EamWeekInsDetailResultResponse> findWeekInsDetailList(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
    List<EamWeekInsDetailUserResponse> findWeekInsOrderDetailUserList(@Param("equipmentCode") String equipmentCode, @Param("inspectionDate") String inspectionDate);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationOrderMapper.java
@@ -1,10 +1,12 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.EamTechnicalStatusEvaluationOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•
@@ -14,4 +16,11 @@
 */
public interface EamTechnicalStatusEvaluationOrderMapper extends BaseMapper<EamTechnicalStatusEvaluationOrder> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<EamTechnicalStatusEvaluationOrder> queryPageList(Page<EamTechnicalStatusEvaluationOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
@@ -10,47 +10,117 @@
        ${ew.customSqlSegment}
    </select>
    <select id="findInspectionUser"  parameterType="String" resultType="org.jeecg.modules.eam.vo.InspectionVo">
        SELECT
            t2.realname operator,
            t3.realname as confirmUser,
            CONVERT(VARCHAR, DATEPART(DAY, t1.inspection_date)) as dayTime
    <select id="findInsOrderBaseInfo" resultType="org.jeecg.modules.eam.request.EamInspectionOrderBaseResponse">
        SELECT TOP 1
            t2.equipment_name equipmentName,
            t2.equipment_code equipmentCode,
            t2.equipment_model equipmentModel,
            t2.factory_org_code factoryName,
            DATEPART( YEAR, t1.inspection_date ) AS inspectionYear,
            DATEPART( MONTH, t1.inspection_date ) AS inspectionMonth
        FROM
            eam_inspection_order t1
            left join sys_user t2 on t1.operator = t2.username
            left join sys_user t3 on t1.confirm_user = t3.username
        WHERE t1.del_flag = '0'
          AND t1.equipment_id = #{equipmentId}
        AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.inspection_date, 120 ), 1, 7 ) = SUBSTRING(CONVERT(VARCHAR(10),#{yearMonth}, 120 ), 1, 7 )
    </select>
    <select id="findInspectionResult"  parameterType="String" resultType="org.jeecg.modules.eam.vo.InspectionVo">
        SELECT
            t1.item_demand as inspectionContent,
            CONVERT(VARCHAR, DATEPART(DAY, t2.inspection_date)) as dayTime,
            case t1.inspection_result  when '1' then '√' when '2' then 'x' else '' end as inspectionResult
        FROM
            eam_inspection_order_detail t1
        LEFT JOIN eam_inspection_order t2 ON t1.order_id = t2.id
        WHERE t1.item_demand = #{itemDemand}
        and t2.equipment_id = #{equipmentId}
        AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t2.inspection_date, 120 ), 1, 7 ) = SUBSTRING(CONVERT(VARCHAR(10),#{yearMonth}, 120 ), 1, 7 )
    </select>
    <select id="findInspectionStandard"  parameterType="String" resultType="Map">
        SELECT
            ROW_NUMBER() OVER (ORDER BY t1.id) AS seq,
            t1.item_demand as itemDemand
        FROM
            eam_maintenance_standard_detail t1
            LEFT JOIN eam_maintenance_standard t2 ON t1.standard_id = t2.id
                LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
        WHERE
          t2.maintenance_category = 'POINT_INSPECTION'
          AND t2.standard_status = 'NORMAL'
          and equipment_id =#{equipmentId}
            t2.equipment_code = #{equipmentCode}
          AND t1.inspection_date LIKE CONCAT(#{inspectionDate},'%')
          AND t1.inspection_status = 'COMPLETE'
        ORDER BY
            item_code ASC
            t1.inspection_date DESC
    </select>
    <select id="findInsOrderDetailList" resultType="org.jeecg.modules.eam.request.EamInsOrderDetailResultResponse">
        SELECT
            t1.inspection_date inspectionDate,
            t2.item_code item_code,
            t2.item_name item_name,
            t2.item_demand item_demand,
            t2.inspection_result inspection_result
        FROM
            eam_inspection_order t1
                LEFT JOIN eam_inspection_order_detail t2 ON t1.id = t2.order_id
                LEFT JOIN eam_equipment t3 ON t1.equipment_id = t3.id
        WHERE
            t3.equipment_code = #{equipmentCode}
            AND t1.inspection_date LIKE CONCAT(#{inspectionDate},'%')
            AND t1.inspection_status = 'COMPLETE'
        GROUP BY
            t1.inspection_date,
            t2.item_code,
            t2.item_name,
            t2.item_demand,
            t2.inspection_result
        ORDER BY
            t1.inspection_date ASC
    </select>
    <select id="findInspectionOrderDetailUserList" resultType="org.jeecg.modules.eam.request.EamInsOrderDetailUserResponse">
        SELECT
            t1.inspection_date inspectionDate,
            t1.operator,
            t1.confirm_user confirmUser
        FROM
            eam_inspection_order t1
            LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
        WHERE
            t2.equipment_code = #{equipmentCode}
            AND t1.inspection_date LIKE CONCAT(#{inspectionDate},'%')
            AND t1.inspection_status = 'COMPLETE'
        GROUP BY
            t1.inspection_date,
            t1.operator,
            t1.confirm_user
        ORDER BY
            t1.inspection_date ASC
    </select>
    <select id="findWeekInsDetailList" resultType="org.jeecg.modules.eam.request.EamWeekInsDetailResultResponse">
        SELECT
            t1.plan_inspection_date,
            t1.item_code,
            t1.item_name,
            t1.item_demand,
            t1.inspection_result
        FROM
            eam_week_inspection_detail t1
                LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
                LEFT JOIN eam_inspection_order t3 ON t3.inspection_date = t1.plan_inspection_date
                AND t3.equipment_id = t1.equipment_id
        WHERE
            t2.equipment_code = #{equipmentCode}
            AND t3.inspection_date LIKE CONCAT(#{inspectionDate},'%')
            AND t3.inspection_status = 'COMPLETE'
        GROUP BY
            t1.plan_inspection_date,
            t1.item_code,
            t1.item_name,
            t1.item_demand,
            t1.inspection_result
        ORDER BY
            t1.plan_inspection_date ASC
    </select>
    <select id="findWeekInsOrderDetailUserList" resultType="org.jeecg.modules.eam.request.EamWeekInsDetailUserResponse">
        SELECT
            t1.plan_inspection_date,
            t1.inspector,
            t3.confirm_user
        FROM
            eam_week_inspection_detail t1
                LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
                LEFT JOIN eam_inspection_order t3 ON t3.inspection_date = t1.plan_inspection_date
                AND t3.equipment_id = t1.equipment_id
        WHERE
            t2.equipment_code = #{equipmentCode}
            AND t3.inspection_date LIKE CONCAT(#{inspectionDate},'%')
            AND t3.inspection_status = 'COMPLETE'
        GROUP BY
            t1.plan_inspection_date,
            t1.inspector,
            t3.confirm_user
        ORDER BY
            t1.plan_inspection_date ASC
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationOrderMapper.xml
@@ -1,5 +1,11 @@
<?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.EamTechnicalStatusEvaluationOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder">
        select ems.*, e.equipment_code, e.equipment_name, e.equipment_model
        from eam_technical_status_evaluation_order ems
        inner join eam_equipment e
        on ems.equipment_id = e.id
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class EamTechnicalStatusEvaluationOrderQuery {
    private String orderNum;
    private String equipmentId;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateBegin;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateEnd;
    private String evaluationStatus;
    private String column;
    private String order;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -1,5 +1,6 @@
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;
@@ -88,11 +89,27 @@
    List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate);
    /**
     * ç‚¹æ£€æŠ¥è¡¨ new
     * å¯¼å‡ºèŽ·å–åŸºæœ¬ä¿¡æ¯
     */
    List<InspectionVo> findInspectionResult(String equipmentId, String itemDemand,String yearMonth);
    JSONObject exportInspectionOrderBaseInfo(String equipmentCode, String inspectionDate);
    List<InspectionVo> findInspectionUser(String equipmentId,String yearMonth);
    /**
     * æ—¥ç‚¹æ£€é¡¹åˆ—表
     */
    JSONObject exportInspectionOrderDetailList(String equipmentCode, String inspectionDate);
    List<Map<String,Object>> findInspectionStandard(String equipmentId);
    /**
     * æ—¥ç‚¹æ£€è´£ä»»äººåˆ—表
     */
    JSONObject exportInspectionOrderDetailUserList(String equipmentCode, String inspectionDate);
    /**
     * å‘¨ç‚¹æ£€é¡¹åˆ—表
     */
    JSONObject exportWeekInsDetailList(String equipmentCode, String inspectionDate);
    /**
     * å‘¨ç‚¹æ£€è´£ä»»äººåˆ—表
     */
    JSONObject exportWeekInsOrderDetailUserList(String equipmentCode, String inspectionDate);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java
@@ -1,7 +1,10 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder;
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.entity.EamTechnicalStatusEvaluationOrder;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•
@@ -11,4 +14,11 @@
 */
public interface IEamTechnicalStatusEvaluationOrderService extends IService<EamTechnicalStatusEvaluationOrder> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param query
     * @return
     */
    IPage<EamTechnicalStatusEvaluationOrder> queryPageList(Page<EamTechnicalStatusEvaluationOrder> page, EamTechnicalStatusEvaluationOrderQuery query);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -20,18 +21,14 @@
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.request.*;
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.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
import org.jeecg.modules.eam.constant.InspectionItemCategroyEnum;
import org.jeecg.modules.eam.constant.InspectionStatus;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper;
import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.util.DateUtils;
import org.jeecg.modules.eam.vo.InspectionVo;
@@ -41,13 +38,20 @@
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.service.ISysDictService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
 * @Description: ç‚¹æ£€å·¥å•
@@ -84,6 +88,8 @@
    private IEamReportRepairService eamReportRepairService;
    @Resource
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    @Resource
    private ISysDictService sysDictService;
    @Override
    public IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query) {
@@ -156,6 +162,264 @@
        return eamInspectionOrderMapper.selectList(queryWrapper);
    }
    /**
     * å¯¼å‡ºèŽ·å–åŸºæœ¬ä¿¡æ¯
     * @param equipmentCode è®¾å¤‡ç¼–码
     * @param inspectionDate ç‚¹æ£€æ—¥æœŸ
     * @return
     */
    @Override
    public JSONObject exportInspectionOrderBaseInfo(String equipmentCode, String inspectionDate) {
        // åˆ›å»ºç»“果对象
        JSONObject result = new JSONObject();
        EamInspectionOrderBaseResponse eamInspectionOrderBaseResponse = eamInspectionOrderMapper.findInsOrderBaseInfo(equipmentCode, inspectionDate);
        // å¤„理单位
        String factoryOrgCode = eamInspectionOrderBaseResponse.getFactoryName();
        BaseFactory baseFactory = baseFactoryService.getOne(new LambdaQueryWrapper<BaseFactory>().eq(BaseFactory::getOrgCode, factoryOrgCode.substring(0, 6)));
        eamInspectionOrderBaseResponse.setFactoryName(baseFactory.getFactoryName());
        result.put("data",Collections.singletonList(eamInspectionOrderBaseResponse));
        return result;
    }
    /**
     * æ—¥ç‚¹æ£€é¡¹åˆ—表
     * @param equipmentCode è®¾å¤‡ç¼–码
     * @param inspectionDate ç‚¹æ£€æ—¥æœŸ
     * @return
     */
    @Override
    public JSONObject exportInspectionOrderDetailList(String equipmentCode, String inspectionDate) {
        // åˆ›å»ºç»“果对象
        JSONObject result = new JSONObject();
        List<EamInsOrderDetailResultResponse> eamInsOrderDetailResultResponseList = eamInspectionOrderMapper.findInsOrderDetailList(equipmentCode, inspectionDate);
        if (eamInsOrderDetailResultResponseList == null || eamInsOrderDetailResultResponseList.isEmpty()) {
            return result;
        }
        Map<EamInsOrderDetailResultResponse, List<EamInsOrderDetailResultResponse>> groupMap = eamInsOrderDetailResultResponseList
                .stream().collect(Collectors.groupingBy(
                        // åˆ†ç»„键:包含 itemCode、itemName、itemDemand çš„对象
                        item -> new EamInsOrderDetailResultResponse(
                                item.getItemCode(),
                                item.getItemName(),
                                item.getItemDemand()
                        ),
                        // ç”¨ TreeMap ä½œä¸ºå®¹å™¨ï¼Œå¹¶æŒ‡å®šæŒ‰ itemCode æŽ’序的比较器
                        () -> new TreeMap<>(Comparator.comparingInt(EamInsOrderDetailResultResponse::getItemCode)),
                        // æ”¶é›†æ¯ç»„的元素为 List
                        Collectors.toList()
                ));
        List<Map<String, Object>> resultList = new ArrayList<>();
        groupMap.forEach((insOrderDetailResultResponse, insOrderDetailResultResponseList) -> {
            Map<String, Object> resultMap = new LinkedHashMap<>();
            resultMap.put("itemCode", insOrderDetailResultResponse.getItemCode());
            resultMap.put("itemName", insOrderDetailResultResponse.getItemName());
            resultMap.put("itemDemand", insOrderDetailResultResponse.getItemDemand());
            Map<Integer, EamInsOrderDetailResultResponse> collect = insOrderDetailResultResponseList
                    .stream().collect(Collectors.toMap(
                            // åˆ†ç»„键:提取日期中的“天”
                            item -> {
                                Date date = item.getInspectionDate();
                                LocalDate localDate = date.toInstant()
                                        .atZone(ZoneId.systemDefault())
                                        .toLocalDate();
                                return localDate.getDayOfMonth(); // é”®ä¸ºâ€œå¤©â€ï¼ˆ1-31)
                            },
                            // å€¼ï¼šç›´æŽ¥ä½¿ç”¨å½“前对象(作为初始值)
                            item -> item,
                            // åˆå¹¶å‡½æ•°ï¼šå½“同一“天”有多个对象时,如何处理(这里示例取第一个)
                            (existing, replacement) -> existing // è‹¥æœ‰é‡å¤é”®ï¼Œä¿ç•™å·²å­˜åœ¨çš„对象
                    ));
            for (int i = 1; i <= 31; i++) {
                if (collect.containsKey(i)) {
                    String inspectionResult = "";
                    switch (collect.get(i).getInspectionResult()) {
                        case "NORMAL":
                            inspectionResult = "√";
                            break;
                        case "ANOMALY":
                            inspectionResult = "×";
                            break;
                        case "FAULT":
                            inspectionResult = "△";
                            break;
                        case "CLOSE":
                            inspectionResult = "T";
                            break;
                    }
                    resultMap.put("inspectionResult" + i, inspectionResult);
                } else {
                    resultMap.put("inspectionResult" + i, "");
                }
            }
            resultList.add(resultMap);
        });
        result.put("data", resultList);
        return result;
    }
    /**
     * æ—¥ç‚¹æ£€è´£ä»»äººåˆ—表
     * @param equipmentCode è®¾å¤‡ç¼–码
     * @param inspectionDate ç‚¹æ£€æ—¥æœŸ
     * @return
     */
    @Override
    public JSONObject exportInspectionOrderDetailUserList(String equipmentCode, String inspectionDate) {
        // åˆ›å»ºç»“果对象
        JSONObject result = new JSONObject();
        List<EamInsOrderDetailUserResponse> eamInsOrderDetailUserResponseList = eamInspectionOrderMapper.findInspectionOrderDetailUserList(equipmentCode, inspectionDate);
        if (eamInsOrderDetailUserResponseList == null || eamInsOrderDetailUserResponseList.isEmpty()) {
            return result;
        }
        Map<Integer, EamInsOrderDetailUserResponse> groupMap = eamInsOrderDetailUserResponseList.stream().collect(Collectors.toMap(
                // åˆ†ç»„键:提取日期中的“天”
                item -> {
                    Date date = item.getInspectionDate();
                    LocalDate localDate = date.toInstant()
                            .atZone(ZoneId.systemDefault())
                            .toLocalDate();
                    return localDate.getDayOfMonth(); // é”®ä¸ºâ€œå¤©â€ï¼ˆ1-31)
                },
                // å€¼ï¼šç›´æŽ¥ä½¿ç”¨å½“前对象(作为初始值)
                item -> item,
                // åˆå¹¶å‡½æ•°ï¼šå½“同一“天”有多个对象时,如何处理(这里示例取第一个)
                (existing, replacement) -> existing // è‹¥æœ‰é‡å¤é”®ï¼Œä¿ç•™å·²å­˜åœ¨çš„对象
        ));
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (int i = 1; i <= 31; i++) {
            Map<String, Object> resultMap = new HashMap<>();
            if (groupMap.containsKey(i)) {
                EamInsOrderDetailUserResponse eamInsOrderDetailUserResponse = groupMap.get(i);
                resultMap.put("operator" + i, sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamInsOrderDetailUserResponse.getOperator()));
                resultMap.put("confirmUser" + i, sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamInsOrderDetailUserResponse.getConfirmUser()));
            } else {
                resultMap.put("operator" + i, "");
                resultMap.put("confirmUser" + i, "");
            }
            resultList.add(resultMap);
        }
        result.put("data", resultList);
        return result;
    }
    /**
     * å‘¨ç‚¹æ£€é¡¹åˆ—表
     * @param equipmentCode è®¾å¤‡ç¼–码
     * @param inspectionDate ç‚¹æ£€æ—¥æœŸ
     * @return
     */
    @Override
    public JSONObject exportWeekInsDetailList(String equipmentCode, String inspectionDate) {
        // åˆ›å»ºç»“果对象
        JSONObject result = new JSONObject();
        List<EamWeekInsDetailResultResponse> eamWeekInsDetailResultResponseList = eamInspectionOrderMapper.findWeekInsDetailList(equipmentCode, inspectionDate);
        if (eamWeekInsDetailResultResponseList == null || eamWeekInsDetailResultResponseList.isEmpty()) {
            return result;
        }
        Map<EamWeekInsDetailResultResponse, List<EamWeekInsDetailResultResponse>> groupMap = eamWeekInsDetailResultResponseList
                .stream().collect(Collectors.groupingBy(
                        // åˆ†ç»„键:包含 itemCode、itemName、itemDemand çš„对象
                        item -> new EamWeekInsDetailResultResponse(
                                item.getItemCode(),
                                item.getItemName(),
                                item.getItemDemand()
                        ),
                        // ç”¨ TreeMap ä½œä¸ºå®¹å™¨ï¼Œå¹¶æŒ‡å®šæŒ‰ itemCode æŽ’序的比较器
                        () -> new TreeMap<>(Comparator.comparingInt(EamWeekInsDetailResultResponse::getItemCode)),
                        // æ”¶é›†æ¯ç»„的元素为 List
                        Collectors.toList()
                ));
        List<Map<String, Object>> resultList = new ArrayList<>();
        groupMap.forEach((weekInsDetailResultResponse, weekInsDetailResultResponseList) -> {
            Map<String, Object> resultMap = new LinkedHashMap<>();
            resultMap.put("itemCode", weekInsDetailResultResponse.getItemCode());
            resultMap.put("itemName", weekInsDetailResultResponse.getItemName());
            resultMap.put("itemDemand", weekInsDetailResultResponse.getItemDemand());
            // ä½¿ç”¨AtomicInteger作为计数器,从1开始
            AtomicInteger counter = new AtomicInteger(1);
            Map<Integer, EamWeekInsDetailResultResponse> collect = weekInsDetailResultResponseList
                    .stream()
                    .collect(Collectors.toMap(
                            // åˆ†ç»„键:使用自增序号(从1开始)
                            item -> counter.getAndIncrement(),
                            // å€¼ï¼šç›´æŽ¥ä½¿ç”¨å½“前对象
                            item -> item,
                            // åˆå¹¶å‡½æ•°ï¼šå½“同一序号有多个对象时(理论上不会发生),如何处理
                            (existing, replacement) -> existing, // è‹¥æœ‰é‡å¤é”®ï¼Œä¿ç•™å·²å­˜åœ¨çš„对象
                            // æŒ‡å®šMap的具体实现(可选)
                            LinkedHashMap::new // ä¿æŒæ’入顺序
                    ));
            for (int i = 1; i <= 5; i++) {
                if (collect.containsKey(i)) {
                    String inspectionResult = "";
                    switch (collect.get(i).getInspectionResult()) {
                        case "NORMAL":
                            inspectionResult = "√";
                            break;
                        case "ANOMALY":
                            inspectionResult = "×";
                            break;
                        case "FAULT":
                            inspectionResult = "△";
                            break;
                        case "CLOSE":
                            inspectionResult = "T";
                            break;
                    }
                    resultMap.put("inspectionResult" + i, inspectionResult);
                } else {
                    resultMap.put("inspectionResult" + i, "");
                }
            }
            resultList.add(resultMap);
        });
        result.put("data", resultList);
        return result;
    }
    /**
     * å‘¨ç‚¹æ£€è´£ä»»äººåˆ—表
     * @param equipmentCode è®¾å¤‡ç¼–码
     * @param inspectionDate ç‚¹æ£€æ—¥æœŸ
     * @return
     */
    @Override
    public JSONObject exportWeekInsOrderDetailUserList(String equipmentCode, String inspectionDate) {
        // åˆ›å»ºç»“果对象
        JSONObject result = new JSONObject();
        List<EamWeekInsDetailUserResponse> eamWeekInsDetailUserResponseList = eamInspectionOrderMapper.findWeekInsOrderDetailUserList(equipmentCode, inspectionDate);
        if (eamWeekInsDetailUserResponseList == null || eamWeekInsDetailUserResponseList.isEmpty()) {
            return result;
        }
        // ä½¿ç”¨AtomicInteger作为计数器,从1开始
        AtomicInteger counter = new AtomicInteger(1);
        Map<Integer, EamWeekInsDetailUserResponse> groupMap = eamWeekInsDetailUserResponseList
                .stream()
                .collect(Collectors.toMap(
                        // åˆ†ç»„键:使用自增序号(从1开始)
                        item -> counter.getAndIncrement(),
                        // å€¼ï¼šç›´æŽ¥ä½¿ç”¨å½“前对象(作为初始值)
                        item -> item,
                        // åˆå¹¶å‡½æ•°ï¼šå½“同一“天”有多个对象时,如何处理(这里示例取第一个)
                        (existing, replacement) -> existing // è‹¥æœ‰é‡å¤é”®ï¼Œä¿ç•™å·²å­˜åœ¨çš„对象
                ));
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            Map<String, Object> resultMap = new HashMap<>();
            if (groupMap.containsKey(i)) {
                EamWeekInsDetailUserResponse eamWeekInsDetailUserResponse = groupMap.get(i);
                resultMap.put("operator" + i, sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamWeekInsDetailUserResponse.getInspector()));
                resultMap.put("confirmUser" + i, sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamWeekInsDetailUserResponse.getConfirmUser()));
            } else {
                resultMap.put("operator" + i, "");
                resultMap.put("confirmUser" + i, "");
            }
            resultList.add(resultMap);
        }
        result.put("data", resultList);
        return result;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<String> addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
@@ -193,6 +457,7 @@
                if (CollectionUtils.isNotEmpty(maintenanceStandardDetailList)) {
                    List<EamWeekInspectionDetail> weekInspectionDetailList = maintenanceStandardDetailList.stream().map(EamWeekInspectionDetail::new).collect(Collectors.toList());
                    weekInspectionDetailList.forEach(weekInspectionDetail -> {
                        weekInspectionDetail.setEquipmentId(eamInspectionOrderRequest.getEquipmentId());
                        weekInspectionDetail.setStandardId(eamInspectionOrderRequest.getStandardId());
                        // TODO å‘¨ç‚¹æ£€æ—¥æœŸ
                        weekInspectionDetail.setPlanInspectionDate(eamInspectionOrderRequest.getInspectionDate());
@@ -541,18 +806,4 @@
        return (List<String>) object;
    }
    @Override
    public List<InspectionVo> findInspectionResult(String equipmentId, String itemDemand, String yearMonth) {
        return this.baseMapper.findInspectionResult(equipmentId, itemDemand, yearMonth);
    }
    @Override
    public List<InspectionVo> findInspectionUser(String equipmentId, String yearMonth) {
        return this.baseMapper.findInspectionUser(equipmentId, yearMonth);
    }
    @Override
    public List<Map<String, Object>> findInspectionStandard(String equipmentId) {
        return this.baseMapper.findInspectionStandard(equipmentId);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
@@ -1,19 +1,116 @@
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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.shiro.SecurityUtils;
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.entity.EamTechnicalStatusEvaluationOrder;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderMapper;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderDetailService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService;
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.springframework.beans.factory.annotation.Autowired;
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-09
 * @Date: 2025-07-09
 * @Version: V1.0
 */
@Service
public class EamTechnicalStatusEvaluationOrderServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationOrderMapper, EamTechnicalStatusEvaluationOrder> implements IEamTechnicalStatusEvaluationOrderService {
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    private IEamTechnicalStatusEvaluationOrderDetailService orderDetailService;
    @Autowired
    private IEamEquipmentService equipmentService;
    @Autowired
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Override
    public IPage<EamTechnicalStatusEvaluationOrder> queryPageList(Page<EamTechnicalStatusEvaluationOrder> page, EamTechnicalStatusEvaluationOrderQuery query) {
        QueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("ems.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> factoryCodeList = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCodeList);
            } else {
                return page;
            }
        }
        if (query != null) {
            //编码 æ¨¡ç³ŠæŸ¥è¯¢
            if (StringUtils.isNotBlank(query.getOrderNum())) {
                queryWrapper.like("ems.order_num", query.getOrderNum());
            }
            //设备
            if (StringUtils.isNotBlank(query.getEquipmentId())) {
                queryWrapper.eq("ems.equipment_id", query.getEquipmentId());
            }
            //保养分类
            if (StringUtils.isNotBlank(query.getEvaluationStatus())) {
                queryWrapper.eq("ems.evaluation_status", query.getEvaluationStatus());
            }
            if (query.getDateBegin() != null && query.getDateEnd() != null) {
                queryWrapper.between("ems.evaluation_date", query.getDateBegin(), query.getDateEnd());
            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
                String column = query.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
                    queryWrapper.orderByAsc("ems." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("ems." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("ems.create_time");
            }
        } else {
            queryWrapper.orderByDesc("ems.create_time");
        }
        queryWrapper.orderByDesc("ems.create_time");
        return this.getBaseMapper().queryPageList(page, queryWrapper);
    }
}