zhangherong
2 天以前 57df7097f99ffe16a4b81876f23aebf38b637ec5
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
@@ -17,6 +17,7 @@
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.*;
@@ -41,6 +42,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -165,15 +167,20 @@
        if (CollectionUtil.isEmpty(standardDetailList)) {
            throw new JeecgBootException("技术状态鉴定规范检查项为空,添加失败!");
        }
        EamTechnicalStatusEvaluationOrder unCompleted = checkDuplicate(request.getEquipmentId());
        if(unCompleted != null) {
            throw new JeecgBootException("设备已存在未完成的技术状态鉴定工单,无法再次新增!");
        }
        EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder();
        order.setOrderNum(request.getOrderNum());
        order.setEquipmentId(request.getEquipmentId());
        order.setStandardId(request.getStandardId());
        order.setEvaluationDate(request.getEvaluationDate());
        order.setFreezeOrderDate(request.getFreezeOrderDate());
        order.setOrderExpirationDate(request.getOrderExpirationDate());
        order.setRemark(request.getRemark());
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE);
        order.setOrderNum(codeSeq);
        order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
        order.setCreationMethod(request.getCreationMethod());
        //状态初始化
        order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
        //删除标记
@@ -331,7 +338,7 @@
        List<UserSelector> userSelectors;
        switch (status) {
            case UNDER_EVALUATION:
                if(CollectionUtil.isEmpty(request.getTableDetailList())) {
                if (CollectionUtil.isEmpty(request.getTableDetailList())) {
                    throw new JeecgBootException("检查明细信息为空!");
                }
                boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
@@ -495,8 +502,6 @@
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name());
                }
//                //更新设备保养状态
//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                break;
            case PROCESS_TECHNICIAN_SIGNING:
                //工艺员签字
@@ -532,14 +537,15 @@
                entity.setDepartTechnicalLeaderSignature(user.getUsername());
                entity.setDepartTechnicalLeaderSignatureTime(new Date());
                entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment());
                entity.setDepartTechnicalLeaderSignatureResult(request.getDepartTechnicalLeaderSignatureResult());
                //设置entity
                if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) {
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
                } else {
                    userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature());
                    values.put("NextAssignee", userApprovalList);
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
                }
                break;
            case INSPECTOR_SIGNING:
@@ -555,6 +561,11 @@
                entity.setInspectorComment(request.getInspectorComment());
                entity.setEvaluationResult(request.getEvaluationResult());
                entity.setEvaluationReason(request.getEvaluationReason());
                //更新设备技术状态
                // 按照填报完成日期计算本次三保日期,去除时分秒
                Date evaluationDate = DateUtils.localDateToDate(DateUtils.dateToLocalDate(entity.getActualEndTime()));
                equipmentExtendService.updateTechnologyParam(equipment.getId(), entity.getEvaluationResult(),
                        evaluationDate, CommonConstant.STATUS_0);
                break;
        }
        request.setValues(values);
@@ -573,14 +584,68 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean updateEvaluationStatus(String orderId, String evaluationStatus) {
        UpdateWrapper<EamTechnicalStatusEvaluationOrder> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("order_id", orderId);
        updateWrapper.eq("id", orderId);
        updateWrapper.set("evaluation_status", evaluationStatus);
        updateWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        updateWrapper.eq("evaluation_status", TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
        updateWrapper.in("evaluation_status", Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name()));
        int update = this.getBaseMapper().update(null, updateWrapper);
        return update > 0;
    }
    @Override
    public List<EamTechnicalStatusEvaluationOrder> selectWaitEvaluationOrderList() {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
        queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate);
        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        LocalDate localDate = LocalDate.now();
        queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate, localDate.toString());
        return this.getBaseMapper().selectList(queryWrapper);
    }
    @Override
    public List<EamTechnicalStatusEvaluationOrder> selectUncompletedEvaluationOrderList() {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>();
        List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(),
                TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(),
                TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name()
        );
        queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList);
        queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate);
        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        LocalDate localDate = LocalDate.now();
        queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate, localDate.toString());
        return this.getBaseMapper().selectList(queryWrapper);
    }
    private EamTechnicalStatusEvaluationOrder checkDuplicate(String equipmentId) {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>();
        List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(),
                TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(),
                TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(),
                TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name(),
                TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name()
        );
        queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList);
        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEquipmentId, equipmentId);
        List<EamTechnicalStatusEvaluationOrder> list = this.getBaseMapper().selectList(queryWrapper);
        if (CollectionUtil.isEmpty(list)) {
            return null;
        }
        return list.get(0);
    }
    private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) {
        boolean b;
        switch (checkCategory) {