已添加1个文件
已修改11个文件
517 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamRepairOrderExport.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportRepairDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExport.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceOrderMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceOrderMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamRepairOrderExport.java
@@ -95,6 +95,13 @@
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String reportPerson;
    /**故障开始时间*/
    @Excel(name = "故障开始时间", width = 15,format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(name = "故障开始时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /** ç»´ä¿®å¼€å§‹æ—¶é—´ */
    @Excel(name = "维修开始时间", width = 15,format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(name = "维修开始时间",notes = "")
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportRepairDto.java
@@ -51,8 +51,9 @@
    @Dict(dicCode = "is_processed")
    private String isProcessed;
    /**故障开始时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(name = "故障开始时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /**是否停机*/
    @Dict(dicCode = "yn")
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamThirdMaintenanceOrderExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,275 @@
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.aspect.annotation.DictList;
import org.jeecg.common.system.base.entity.JeecgEntity;
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.io.Serializable;
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 EamThirdMaintenanceOrderExport  {
    /**
     * 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;
    /**
     * åˆ—表 ä¿å…»é¡¹æ˜Žç»†
     */
    @ApiModelProperty(value = "列表 ä¿å…»é¡¹æ˜Žç»†")
    @DictList
    private List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceOrderDetailList;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
@@ -94,6 +94,12 @@
    @ApiModelProperty(value = "报修人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String reportPerson;
    /**故障开始时间*/
    @Excel(name = "故障开始时间", width = 15,format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(name = "故障开始时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /** ç»´ä¿®å¼€å§‹æ—¶é—´ */
    @ApiModelProperty(name = "维修开始时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
@@ -68,10 +68,10 @@
    @Dict(dicCode = "is_processed")
    private String isProcessed;
    /**故障开始时间*/
    @Excel(name = "故障开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "故障开始时间")
    @Excel(name = "故障开始时间", width = 15,format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(name = "故障开始时间",notes = "")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /**是否停机*/
    @Excel(name = "是否停机", width = 15)
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -208,22 +208,46 @@
        BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder);
        eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        eamRepairOrder.setActualEndTime(new Date());
        //计算维修时间与故障时间
        // è®¡ç®—维修时间与故障时间
        Date startTime;
        Date endTime;
        //维修结束时间-维修开始时间=维修时长
        startTime=eamRepairOrder.getActualStartTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2));
        //维修结束时间-故障报修时间=故障时长
        startTime=eamRepairOrder.getCreateTime();
        endTime=eamRepairOrder.getActualEndTime();
        eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2));
        this.updateById(eamRepairOrder);
        EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair==null){
            return false;
        // 1. è®¡ç®—维修时长(维修结束时间-维修开始时间)
        if (eamRepairOrder.getActualStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
            startTime = eamRepairOrder.getActualStartTime();
            endTime = eamRepairOrder.getActualEndTime();
            // ç¡®ä¿ç»“束时间在开始时间之后
            if (endTime.after(startTime)) {
                long time = endTime.getTime() - startTime.getTime();
                double hours = (double) time / (1000 * 60 * 60);
                eamRepairOrder.setRepairDuration(String.format("%.2f", hours));
            } else {
                // æ—¶é—´é¡ºåºé”™è¯¯å¤„理
                eamRepairOrder.setRepairDuration("0.00");
            }
        } else {
            // å¤„理缺失时间的情况
            eamRepairOrder.setRepairDuration("0.00");
        }
        // 2. è®¡ç®—故障时长(维修结束时间-故障开始时间)
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        if (eamReportRepair != null &&
                eamReportRepair.getFaultStartTime() != null &&
                eamRepairOrder.getActualEndTime() != null) {
            startTime = eamReportRepair.getFaultStartTime();
            endTime = eamRepairOrder.getActualEndTime();
            if (endTime.after(startTime)) {
                long time = endTime.getTime() - startTime.getTime();
                double hours = (double) time / (1000 * 60 * 60);
                eamRepairOrder.setFaultDuration(String.format("%.2f", hours));
            } else {
                eamRepairOrder.setFaultDuration("0.00");
            }
        } else {
            eamRepairOrder.setFaultDuration("0.00");
        }
        eamRepairOrder.setFaultStartTime(new Date());
        this.updateById(eamRepairOrder);
        eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name());
        eamReportRepairService.updateById(eamReportRepair);
        List<EamRepairPerson> eamRepairPersonList=new ArrayList<>();
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -250,6 +250,8 @@
        eamRepairOrder.setReportId(eamReportRepair.getId());
        eamRepairOrder.setReportPerson(eamReportRepair.getCreateBy());
        eamRepairOrder.setFaultPhenomenon(eamReportRepair.getFaultDescription());
        eamRepairOrder.setFaultStartTime(eamReportRepair.getFaultStartTime());
        eamRepairOrder.setClaimStatus("0");
        eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.PENDING_REPAIR.name());
        iEamRepairOrderService.save(eamRepairOrder);
        //更新设备维修状态
@@ -300,6 +302,12 @@
        }
        updateWrapper.eq(EamReportRepair::getId,eamReportRepairDto.getId());
        this.update(eamReportRepair,updateWrapper);
        //修改维修工单
        EamRepairOrder eamRepairOrder=iEamRepairOrderService.
                getOne(new QueryWrapper<EamRepairOrder>().eq("report_id",eamReportRepairDto.getId()));
        eamRepairOrder.setFaultStartTime(eamReportRepairDto.getFaultStartTime());
        eamRepairOrder.setFaultPhenomenon(eamReportRepairDto.getFaultDescription());
        iEamRepairOrderService.updateById(eamRepairOrder);
        return true;
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
@@ -278,4 +278,28 @@
    public JSONObject exportThirdMaintenanceOrderBaseInfo(@RequestParam(name = "id", required = true) String id) {
        return eamThirdMaintenanceOrderService.exportThirdMaintenanceOrderBaseInfo(id);
    }
    /**
     * æ‰¹é‡åŠ å·¥è®¾å¤‡ä¸‰çº§ä¿å…»å®Œå·¥ç§»äº¤å•
     * @param ids
     * @return
     */
    @AutoLog(value = "设备三级保养-加工设备三级保养完工移交单")
    @ApiOperation(value = "设备三级保养-加工设备三级保养完工移交单", notes = "设备三级保养-加工设备三级保养完工移交单")
    @GetMapping(value = "/batchExport")
    public Result<?> export(String ids){
        return Result.ok(eamThirdMaintenanceOrderService.export(ids));
    }
    /**
     * æ‰¹é‡åŠ å·¥è®¾å¤‡ä¸‰çº§ä¿å…»éªŒæ”¶å•
     * @param ids
     * @return
     */
    @AutoLog(value = "设备三级保养-加工设备三级保养验收单")
    @ApiOperation(value = "设备三级保养-加工设备三级保养验收单", notes = "设备三级保养-加工设备三级保养验收单")
    @GetMapping(value = "/batchExportCheck")
    public Result<?> exportCheck(String ids) {
        return Result.ok(eamThirdMaintenanceOrderService.exportAcceptance(ids));
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceOrderMapper.java
@@ -6,8 +6,11 @@
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.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse;
import java.util.List;
/**
 * @Description: è®¾å¤‡ä¸‰çº§ä¿å…»
@@ -27,6 +30,12 @@
    IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamThirdMaintenanceOrder> queryWrapper);
    /**
     * åˆ—表查询
     * @param queryWrapper
     * @return
     */
    List<EamThirdMaintenanceOrderExport> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper);
    /**
     *
     * @param id
     * @return
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceOrderMapper.xml
@@ -35,4 +35,14 @@
                LEFT JOIN eam_base_factory t3 ON t3.org_code = SUBSTRING ( t2.factory_org_code , 1, 6 )
        WHERE t1.id = #{id}
    </select>
</mapper>
    <select id="queryList" resultType="org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport">
        select wmo.*,FORMAT(CAST(wmo.maintenance_date AS DATE), 'yyyyå¹´MM月dd日') AS maintenance_date_formatted,
               e.equipment_code, e.equipment_name, e.equipment_model,e.equipment_category
             ,f.factory_name
        from eam_third_maintenance_order wmo
                 inner join eam_equipment e
                            on wmo.equipment_id = e.id
                 LEFT JOIN eam_base_factory f ON f.org_code = SUBSTRING ( e.factory_org_code , 1, 6 )
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java
@@ -4,6 +4,7 @@
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.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery;
@@ -88,4 +89,16 @@
     * @return
     */
    JSONObject exportThirdMaintenanceOrderBaseInfo(String id);
    /**
     * æ‰¹é‡æ‰“印加工设备三级保养完工移交单
     * @param ids
     * @return
     */
    List<EamThirdMaintenanceOrderExport> export(String ids);
    /**
     * æ‰¹é‡æ‰“印加工设备三级保养验收单
     */
    List<EamThirdMaintenanceOrderExport> exportAcceptance(String ids);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -24,6 +24,8 @@
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.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper;
import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse;
@@ -591,6 +593,104 @@
    }
    /**
     * æ‰¹é‡æ‰“印加工设备三级保养完工移交单
     * @param ids
     * @return
     */
    @Override
    public List<EamThirdMaintenanceOrderExport> 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());
        //用户数据权限
        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("wmo.id", idList);
        } else {
            queryWrapper.orderByDesc("wmo.create_time");
        }
        List<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper);
        //填充对应修理更换备件明细
        eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{
            List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpares=eamThirdMaintenanceSpareService.list(
                    new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExport.getId()));
            if (!eamThirdMaintenanceSpares.isEmpty()){
                eamThirdMaintenanceOrderExport.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares);
            }
        });
        return eamThirdMaintenanceOrderExports;
    }
    /**
     * æ‰¹é‡æ‰“印加工设备三级保养验收单
     */
    @Override
    public List<EamThirdMaintenanceOrderExport> exportAcceptance(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());
        //用户数据权限
        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("wmo.id", idList);
        } else {
            queryWrapper.orderByDesc("wmo.create_time");
        }
        List<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper);
        //填充对应保养项明细
        eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{
            List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceSpares=eamThirdMaintenanceOrderDetailService.list(
                    new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_Id",eamThirdMaintenanceOrderExport.getId()));
            if (!eamThirdMaintenanceSpares.isEmpty()){
                eamThirdMaintenanceOrderExport.setEamThirdMaintenanceOrderDetailList(eamThirdMaintenanceSpares);
            }
        });
        return eamThirdMaintenanceOrderExports;
    }
    /**
     * æ›´æ–°å·¥å•状态
     */
    private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) {