lyh
2025-07-12 097313810e7f44078a5244f794e945269a665d72
二保基础代码
已修改8个文件
340 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrderDetail.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSecondMaintenanceOrderController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -106,7 +106,7 @@
                        log.setEquipmentId(order.getEquipmentId());
                        log.setBusinessId(order.getId());
                        log.setOperator(order.getOperator());
                        log.setDescription(order.getConfirmComment());
                        log.setDescription(order.getInspectConfirmComment());
                        log.setCreateTime(order.getActualEndTime());
                    }
                }
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -120,7 +120,7 @@
     */
    @Excel(name = "中心/工区/工段", width = 15, orderNum = "4")
    @ApiModelProperty(value = "中心/工区/工段")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "factory_code")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private String factoryOrgCode;
    /**
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java
@@ -78,7 +78,7 @@
     */
    @Excel(name = "标准ID", width = 15)
    @ApiModelProperty(value = "标准ID")
    @Dict(dicCode = "eam_maintenance_standard, standard_name, id")
    @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name")
    private String standardId;
    /**
     * 计划保养日期
@@ -101,15 +101,14 @@
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actualEndTime;
    /**
     * 保养人
     */
    @Excel(name = "保养人", width = 15)
    @ApiModelProperty(value = "保养人")
    @Dict(dicCode = "sys_user, realname, username")
    /** 操作工 */
    @ApiModelProperty(value = "操作工")
    private String operator;
    /** 维修工 */
    @ApiModelProperty(value = "维修工")
    private String repairman ;
    /**
     * 保养状态
     * 保养状态  待保养、保养中、管理员确认、检查人确认、已完成
     */
    @Excel(name = "保养状态", width = 15)
    @ApiModelProperty(value = "保养状态")
@@ -123,55 +122,35 @@
    @Dict(dicCode = "order_creation_method")
    private String creationMethod;
    /**
     * 维修组长确认
     * 管理员确认
     */
    @Excel(name = "维修组长确认", width = 15)
    @ApiModelProperty(value = "维修组长确认")
    @Excel(name = "管理员确认", width = 15)
    @ApiModelProperty(value = "管理员确认")
    @Dict(dicCode = "sys_user, realname, username")
    private String confirmUser;
    /**
     * 确认意见
     */
    @ApiModelProperty(value = "确认意见")
    private String confirmComment;
    /** 确认类型 1 通过  2 驳回 */
    @ApiModelProperty(value = "确认类型")
    @Dict(dicCode = "approved_rejected")
    private String confirmDealType;
    /**
     * 确认时间
     */
    @ApiModelProperty(value = "确认时间")
    private String manageUser;
    /** 问题描述;默认 无 */
    @ApiModelProperty(name = "问题描述",notes = "默认 无")
    private String problemDescription ;
    /** 处理描述;默认 无 */
    @ApiModelProperty(name = "处理描述",notes = "默认 无")
    private String dealDescription ;
    /** 管理员确认时间 */
    @ApiModelProperty(name = "管理员确认时间",notes = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    /**
     * 单位领导确认
     */
    @Excel(name = "单位领导确认", width = 15)
    @ApiModelProperty(value = "单位领导确认")
    @Dict(dicCode = "sys_user, realname, username")
    private String confirmLeader;
    /**
     * 领导意见
     */
    @ApiModelProperty(value = "领导意见")
    private String leaderConfirmComment;
    /**
     * 领导确认时间
     */
    @ApiModelProperty(value = "领导确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leaderConfirmTime;
    /**
     * 保养上传图片
     */
    @Excel(name = "保养上传图片", width = 15)
    @ApiModelProperty(value = "保养上传图片")
    private String imageFiles;
    /** 检查人确认 */
    @ApiModelProperty(name = "检查人确认",notes = "")
    private String inspector;
    /** 检查人意见 */
    @ApiModelProperty(name = "检查人意见",notes = "")
    private String inspectConfirmComment;
    /** 检查人确认时间 */
    @ApiModelProperty(name = "检查人确认时间",notes = "")
    private String inspectConfirmTime;
    /** HF编码 */
    @ApiModelProperty(name = "HF编码",notes = "")
    private String hfCode;
    /**
     * 备注
     */
@@ -184,4 +163,7 @@
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    //型号
    @TableField(exist = false)
    private String equipmentModel;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrderDetail.java
@@ -51,28 +51,19 @@
    @Excel(name = "项目序号", width = 15)
    @ApiModelProperty(value = "项目序号")
    private Integer itemCode;
    /**保养项目*/
    @Excel(name = "保养项目", width = 15)
    @ApiModelProperty(value = "保养项目")
    /** 保养分类;操作工、维修工 */
    @ApiModelProperty(name = "保养分类",notes = "操作工、维修工")
    private String itemCategory;
    /** 保养内容 */
    @ApiModelProperty(name = "保养内容",notes = "")
    private String itemName;
    /**部位*/
    @Excel(name = "部位", width = 15)
    @ApiModelProperty(value = "部位")
    private String itemPart;
    /**保养要求*/
    @Excel(name = "保养要求", width = 15)
    @ApiModelProperty(value = "保养要求")
    private String itemDemand;
    /**保养结果*/
    @Excel(name = "保养结果", width = 15)
    @ApiModelProperty(value = "保养结果")
    @ApiModelProperty(name = "保养结果",notes = "")
    private String maintenanceResult;
    /**报修标记*/
    @Excel(name = "报修标记", width = 15)
    @ApiModelProperty(value = "报修标记")
    @ApiModelProperty(name = "报修标记",notes = "")
    private String reportFlag;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
    @ApiModelProperty(value = "异常描述")
    @ApiModelProperty(name = "异常描述",notes = "")
    private String exceptionDescription;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSecondMaintenanceOrderController.java
@@ -80,7 +80,7 @@
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
        if (StrUtil.isEmpty(request.getStandardId())) {
            return Result.error("保养项不能为空!");
        }
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.SECOND_MAINTENANCE_CODE_RULE);
@@ -106,7 +106,7 @@
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
        if (StrUtil.isEmpty(request.getStandardId())) {
            return Result.error("保养项不能为空!");
        }
        boolean b = eamSecondMaintenanceOrderService.editMaintenance(request);
@@ -228,7 +228,7 @@
        if (request == null) {
            return Result.error("审批的对象不能为空!");
        }
        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
        if (StrUtil.isEmpty(request.getStandardId())) {
            return Result.error("保养项不能为空!");
        }
        // 检查请求参数
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder">
        select wmo.*, e.equipment_code, e.equipment_name
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model
        from eam_second_maintenance_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
@@ -7,8 +7,10 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrderDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -24,43 +26,100 @@
    /**主键*/
    @ApiModelProperty(value = "主键")
    private String id;
    /**工单号*/
    /**
     * 工单号
     */
    @Excel(name = "工单号", width = 15)
    @ApiModelProperty(value = "工单号")
    private String orderNum;
    /**设备ID*/
    /**
     * 设备ID
     */
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**标准ID*/
    /**
     * 标准ID
     */
    @Excel(name = "标准ID", width = 15)
    @ApiModelProperty(value = "标准ID")
    @Dict(dicCode = "eam_maintenance_standard, standard_name, id")
    private String standardId;
    /**保养日期*/
    @ApiModelProperty(value = "保养日期")
    /**
     * 计划保养日期
     */
    @ApiModelProperty(value = "计划保养日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date maintenanceDate;
    /**保养人*/
    @ApiModelProperty(value = "保养人")
    /**
     * 实际开始时间
     */
    @ApiModelProperty(value = "实际开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actualStartTime;
    /**
     * 实际结束时间
     */
    @ApiModelProperty(value = "实际结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actualEndTime;
    /** 操作工 */
    @ApiModelProperty(value = "操作工")
    private String operator;
    /**备注*/
    /** 维修工 */
    @ApiModelProperty(value = "维修工")
    private String repairman ;
    /**
     * 保养状态  待保养、保养中、管理员确认、检查人确认、已完成
     */
    @Excel(name = "保养状态", width = 15)
    @ApiModelProperty(value = "保养状态")
    @Dict(dicCode = "second_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 = "sys_user, realname, username")
    private String manageUser;
    /** 问题描述;默认 无 */
    @ApiModelProperty(name = "问题描述",notes = "默认 无")
    private String problemDescription ;
    /** 处理描述;默认 无 */
    @ApiModelProperty(name = "处理描述",notes = "默认 无")
    private String dealDescription ;
    /** 管理员确认时间 */
    @ApiModelProperty(name = "管理员确认时间",notes = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime ;
    /** 检查人确认 */
    @ApiModelProperty(name = "检查人确认",notes = "")
    private String inspector;
    /** 检查人意见 */
    @ApiModelProperty(name = "检查人意见",notes = "")
    private String inspectConfirmComment;
    /** 检查人确认时间 */
    @ApiModelProperty(name = "检查人确认时间",notes = "")
    private String inspectConfirmTime;
    /** HF编码 */
    @ApiModelProperty(name = "HF编码",notes = "")
    private String hfCode;
    /**
     * 备注
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**创建方式*/
    @ApiModelProperty(value = "创建方式")
    private String creationMethod;
    /**列表 保养项明细*/
    @ApiModelProperty(value = "列表 保养项明细")
    private List<EamSecondMaintenanceOrderDetail> tableDetailList;
    /**删除 保养项明细*/
    @ApiModelProperty(value = "删除 保养项明细")
    private List<EamSecondMaintenanceOrderDetail> removeDetailList;
    //确认操作
    /**确认意见*/
    @ApiModelProperty(value = "确认意见")
    private String confirmComment;
    @ApiModelProperty(value = "确认类型")
    private String confirmDealType;
    /**领导确认意见*/
    @ApiModelProperty(value = "领导确认意见")
    private String leaderConfirmComment;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -39,6 +39,7 @@
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -82,6 +83,10 @@
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Autowired
    private IEamBaseHFCodeService hfCodeService;
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    @Override
    public IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, EamSecondMaintenanceQuery query) {
@@ -155,6 +160,12 @@
        order.setStandardId(request.getStandardId());
        order.setMaintenanceDate(request.getMaintenanceDate());
        order.setOperator(request.getOperator());
        //技术状态鉴定表
        EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.SECOND_MAINTENANCE.name());
        if(eamBaseHFCode == null) {
            throw new JeecgBootException("未配置技术状态鉴定表的HF编码,添加失败!");
        }
        order.setHfCode(eamBaseHFCode.getHfCode());
        order.setRemark(request.getRemark());
        //状态初始化
        order.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
@@ -163,43 +174,17 @@
        order.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamSecondMaintenanceOrderMapper.insert(order);
        //处理明细数据
        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
            request.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setId(null);
                tableDetail.setOrderId(order.getId());
        List<EamMaintenanceStandardDetail> eamMaintenanceStandardDetailList= eamMaintenanceStandardDetailService.selectByStandardId(order.getStandardId());
        List<EamSecondMaintenanceOrderDetail> requestTableDetailList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(eamMaintenanceStandardDetailList)) {
            eamMaintenanceStandardDetailList.forEach(item -> {
                EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail();
                BeanUtils.copyProperties(item, detail);
                detail.setOrderId(order.getId());
                requestTableDetailList.add(detail);
            });
            secondMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
            secondMaintenanceOrderDetailService.saveBatch(requestTableDetailList);
        }
        //判断是否存在保养人 如果存在则启动流程
        if (StringUtils.isNotBlank(order.getOperator())) {
            //启动流程
            flowCommonService.initActBusiness("工单号: " + order.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";安装位置" + equipment.getInstallationPosition(),
                    order.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
            Map<String, Object> variables = new HashMap<>();
            variables.put("dataId", order.getId());
            if (StrUtil.isEmpty(order.getRemark())) {
                variables.put("organization", "新增二保工单默认启动流程");
                variables.put("comment", "新增二保工单默认启动流程");
            } else {
                variables.put("organization", order.getRemark());
                variables.put("comment", order.getRemark());
            }
            variables.put("proofreading", true);
            List<String> usernames = new ArrayList<>();
            usernames.add(order.getOperator());
            variables.put("NextAssignee", usernames);
            Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables);
            if (result != null) {
                //更新周保状态
                order.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                order.setActualStartTime(new Date());
                eamSecondMaintenanceOrderMapper.updateById(order);
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name());
                return result.isSuccess();
            }
        }
        return true;
    }
@@ -218,33 +203,9 @@
            throw new JeecgBootException("只有待保养状态的数据才可编辑!");
        }
        entity.setMaintenanceDate(request.getMaintenanceDate());
        entity.setOperator(request.getOperator());
        entity.setRemark(request.getRemark());
        eamSecondMaintenanceOrderMapper.updateById(entity);
        //处理详情
        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
            List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>();
            List<EamSecondMaintenanceOrderDetail> updateList = new ArrayList<>();
            request.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setOrderId(entity.getId());
                if (tableDetail.getId() == null) {
                    addList.add(tableDetail);
                } else {
                    updateList.add(tableDetail);
                }
            });
            if (CollectionUtil.isNotEmpty(addList)) {
                secondMaintenanceOrderDetailService.saveBatch(addList);
            }
            if (CollectionUtil.isNotEmpty(updateList)) {
                secondMaintenanceOrderDetailService.updateBatchById(updateList);
            }
        }
        if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) {
            List<String> ids = request.getRemoveDetailList().stream().map(EamSecondMaintenanceOrderDetail::getId).collect(Collectors.toList());
            secondMaintenanceOrderDetailService.removeBatchByIds(ids);
        }
        //判断是否存在保养人 如果存在则启动流程
        if (StringUtils.isNotBlank(entity.getOperator())) {
            //启动流程
@@ -385,10 +346,6 @@
                //设置entity
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name());
                entity.setActualEndTime(new Date());
                //处理详情
                if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                    secondMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
                }
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name());
                break;
@@ -399,33 +356,12 @@
                }
                //班组长确认
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", request.getConfirmComment());
                values.put("comment", request.getConfirmComment());
                values.put("NextAssignee", userApprovalList);
                values.put("confirmation", request.getConfirmDealType());
                request.setComment(request.getConfirmComment());
                //设置entity
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
                entity.setConfirmTime(new Date());
                if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) {
                    //驳回
                    userApprovalList = new ArrayList<>();
                    userApprovalList.add(entity.getOperator());
                    values.put("NextAssignee", userApprovalList);
                    entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                }
                //处理报修
                List<EamSecondMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
                if (CollectionUtil.isNotEmpty(collect)) {
                    eamReportRepairService.reportRepairFromSecondMaintenance(equipment.getId(), entity.getOperator(), collect);
                }
                break;
            case WAIT_LEADER_CONFIRM:
                values.put("dataId", entity.getId());
                values.put("organization", request.getLeaderConfirmComment());
                values.put("comment", request.getLeaderConfirmComment());
                request.setComment(request.getLeaderConfirmComment());
                //设置entity
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
                //更新设备保养状态