zhangherong
2025-07-12 4d4bc8ebf380ff900201f42bffa357293cf97f27
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
@@ -17,10 +17,7 @@
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderMapper;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
@@ -67,6 +64,8 @@
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Autowired
    private IEamTechnicalStatusEvaluationStandardService standardService;
    @Autowired
    private IEamTechnicalStatusEvaluationStandardDetailService standardDetailService;
    @Autowired
    private IEamBaseHFCodeService hfCodeService;
    @Autowired
@@ -158,6 +157,13 @@
        if (standard == null) {
            throw new JeecgBootException("技术状态鉴定规范不存在,添加失败!");
        }
        if (!TechnicalStatusEvaluationStandardEnum.ENABLE.name().equals(standard.getStandardStatus())) {
            throw new JeecgBootException("技术状态鉴定规范未启用,添加失败!");
        }
        List<EamTechnicalStatusEvaluationStandardDetail> standardDetailList = standardDetailService.queryList(standard.getId());
        if (CollectionUtil.isEmpty(standardDetailList)) {
            throw new JeecgBootException("技术状态鉴定规范检查项为空,添加失败!");
        }
        EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder();
        order.setOrderNum(request.getOrderNum());
        order.setEquipmentId(request.getEquipmentId());
@@ -197,17 +203,8 @@
        order.setHfCodeC(eamBaseHFCode.getHfCode());
        this.getBaseMapper().insert(order);
        //处理明细数据
        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
            request.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setId(null);
                tableDetail.setCreateBy(null);
                tableDetail.setCreateTime(null);
                tableDetail.setUpdateBy(null);
                tableDetail.setUpdateTime(null);
                tableDetail.setOrderId(order.getId());
            });
            orderDetailService.saveBatch(request.getTableDetailList());
        }
        List<EamTechnicalStatusEvaluationOrderDetail> orderDetailList = standardDetailList.stream().map(item -> new EamTechnicalStatusEvaluationOrderDetail(item, order.getId())).collect(Collectors.toList());
        orderDetailService.saveBatch(orderDetailList);
        return true;
    }
@@ -438,11 +435,11 @@
                }
                break;
            case REPAIRER_SIGNING:
                //维修工签字
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给维修室主任,无法进入下级审批!");
                }
                //维修工签字
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", "维修工签字完成");
@@ -459,23 +456,89 @@
                entity.setOtherCheckResult(request.getOtherCheckResult());
                break;
            case REPAIR_MANAGER_SIGNING:
//                values.put("dataId", entity.getId());
//                values.put("organization", request.getLeaderConfirmComment());
//                values.put("comment", request.getLeaderConfirmComment());
//                request.setComment(request.getLeaderConfirmComment());
//                //设置entity
//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
//                entity.setConfirmLeader(user.getUsername());
//                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
//                entity.setLeaderConfirmTime(new Date());
                //维修室主任签字
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0007);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给工艺员,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", request.getRepairManagerComment());
                values.put("comment", request.getRepairManagerComment());
                request.setComment(request.getRepairManagerComment());
                values.put("repairManagerApprovalFlag", request.getRepairManagerSignatureResult());
                entity.setRepairManagerSignature(user.getUsername());
                entity.setRepairManagerSignatureTime(new Date());
                entity.setRepairManagerComment(request.getRepairManagerComment());
                //设置entity
                if (BusinessCodeConst.APPROVED.equals(request.getRepairManagerSignatureResult())) {
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
                } else {
                    userApprovalList = Collections.singletonList(entity.getRepairerSignature());
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name());
                }
//                //更新设备保养状态
//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                break;
            case PROCESS_TECHNICIAN_SIGNING:
                //工艺员签字
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0010);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给使用单位技术主管,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", request.getProcessTechnicianComment());
                values.put("comment", request.getProcessTechnicianComment());
                values.put("NextAssignee", userApprovalList);
                request.setComment(request.getProcessTechnicianComment());
                //设置entity
                entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name());
                entity.setProcessTechnicianSignature(user.getUsername());
                entity.setProcessTechnicianSignatureTime(new Date());
                entity.setSampleCheckResult(request.getSampleCheckResult());
                entity.setProcessTechnicianComment(request.getProcessTechnicianComment());
                break;
            case DEPART_TECHNICAL_LEADER_SIGNING:
                //使用单位技术主管签字
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给设备检验员,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", request.getDepartTechnicalLeaderComment());
                values.put("comment", request.getDepartTechnicalLeaderComment());
                request.setComment(request.getDepartTechnicalLeaderComment());
                values.put("technicalLeaderApprovalFlag", request.getDepartTechnicalLeaderSignatureResult());
                entity.setDepartTechnicalLeaderSignature(user.getUsername());
                entity.setDepartTechnicalLeaderSignatureTime(new Date());
                entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment());
                //设置entity
                if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) {
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
                } else {
                    userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature());
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
                }
                break;
            case INSPECTOR_SIGNING:
                //设备检察员签字
                values.put("dataId", entity.getId());
                values.put("organization", request.getInspectorComment());
                values.put("comment", request.getInspectorComment());
                request.setComment(request.getInspectorComment());
                //设置entity
                entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.COMPLETED.name());
                entity.setInspectorSignature(user.getUsername());
                entity.setInspectorSignatureTime(new Date());
                entity.setInspectorComment(request.getInspectorComment());
                entity.setEvaluationResult(request.getEvaluationResult());
                entity.setEvaluationReason(request.getEvaluationReason());
                break;
        }
        request.setValues(values);