lyh
4 天以前 548de3053898bc6571c90d014a40050c39a7d195
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -80,8 +80,6 @@
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Autowired
    private IEamBaseHFCodeService hfCodeService;
@@ -114,6 +112,9 @@
        }
        //查询条件过滤
        if (query != null) {
            if (StringUtils.isNotBlank(query.getId())){
                queryWrapper.eq("wmo.id", query.getId());
            }
            if (StringUtils.isNotBlank(query.getEquipmentId())) {
                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
            }
@@ -180,6 +181,7 @@
            eamMaintenanceStandardDetailList.forEach(item -> {
                EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail();
                BeanUtils.copyProperties(item, detail);
                detail.setId(null);
                detail.setOrderId(order.getId());
                requestTableDetailList.add(detail);
            });
@@ -259,13 +261,16 @@
                throw new JeecgBootException("不是操作工,无法领取此工单!");
            }
        }
        List<String> usernames = new ArrayList<>();
        if (sysUser != null) {
            entity.setOperator(sysUser.getUsername());
        }
        if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
            entity.setOperator(sysUser.getUsername());
        }else if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
            entity.setRepairman(sysUser.getUsername());
            if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
                entity.setOperator(sysUser.getUsername());
                usernames.add(entity.getOperator());
            }
            if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
                entity.setRepairman(sysUser.getUsername());
                usernames.add(entity.getRepairman());
            }
        }
        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
        entity.setActualStartTime(new Date());
@@ -283,8 +288,6 @@
            variables.put("comment", entity.getRemark());
        }
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(entity.getOperator());
        if (sysUser != null) {
            if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
                variables.put("operator_task", usernames);
@@ -371,42 +374,107 @@
                }
                if (BusinessCodeConst.PCR0001.equals(user.getPost())) {
                    entity.setOperator(user.getUsername());
                    values.put("organization", "二保操作工执行结束");
                    values.put("comment", "二保操作工执行结束");
                    request.setComment("二保操作工执行结束");
                    //处理对应详情
                    if (CollectionUtils.isNotEmpty(request.getTableDetailList())){
                        //删除原有数据
                        List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>();
                        //先删除原有
                        LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId());
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name());
                        secondMaintenanceOrderDetailService.remove(queryWrapper);
                        request.getTableDetailList().forEach(tableDetail -> {
                            EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail();
                            BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail);
                            eamMaintenanceStandardDetail.setOrderId(entity.getId());
                            eamMaintenanceStandardDetail.setCreateBy(user.getUsername());
                            addList.add(eamMaintenanceStandardDetail);
                        });
                        secondMaintenanceOrderDetailService.saveBatch(addList);
                    }
                }else if (BusinessCodeConst.PCR0002.equals(user.getPost())) {
                    entity.setRepairman(user.getUsername());
                    values.put("organization", "二保维修工执行结束");
                    values.put("comment", "二保维修工执行结束");
                    request.setComment("二保维修工执行结束");
                    //处理对应详情
                    if (CollectionUtils.isNotEmpty(request.getTableDetailList())){
                        //删除原有数据
                        List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>();
                        //先删除原有
                        LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId());
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name());
                        secondMaintenanceOrderDetailService.remove(queryWrapper);
                        request.getTableDetailList().forEach(tableDetail -> {
                            EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail();
                            BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail);
                            eamMaintenanceStandardDetail.setOrderId(entity.getId());
                            eamMaintenanceStandardDetail.setCreateBy(user.getUsername());
                            addList.add(eamMaintenanceStandardDetail);
                        });
                        secondMaintenanceOrderDetailService.saveBatch(addList);
                    }
                }
                values.put("dataId", entity.getId());
                values.put("organization", "三保执行结束");
                values.put("comment", "三保执行结束");
                break;
            case WAIT_ADMIN_CONFIRM:
                //管理员确认
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0006);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未存在检查人,无法进入下级审批!");
                }else{
                    userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    values.put("dataId", entity.getId());
                    values.put("organization",request.getComment());
                    values.put("comment", request.getComment());
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name());
                    entity.setManageUser(user.getUsername());
                    entity.setProblemDescription(request.getProblemDescription());
                    entity.setDealDescription(request.getComment());
                    entity.setConfirmTime(new Date());
                    if (StrUtil.isEmpty(request.getManageUserResult())){
                        request.setManageUserResult("");
                    }
                    values.put("organization",request.getDealDescription());
                    values.put("comment", request.getManageUserResult());
                    values.put("manageUserResult",request.getManageUserResult());
                    request.setComment(request.getDealDescription());
                    if (request.getManageUserResult().equals("2")){
                        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                    }else {
                        values.put("NextAssignee", userApprovalList);
                        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name());
                        entity.setConfirmTime(new Date());
                        entity.setManageUser(user.getUsername());
                        entity.setProblemDescription(request.getProblemDescription());
                        entity.setManageUserResult(request.getManageUserResult());
                        entity.setDealDescription(request.getDealDescription());
                    }
                }
                break;
            case WAIT_INSPECTOR_CONFIRM:
                //检查人确认
                if (StrUtil.isEmpty(request.getInspectConfirmComment())){
                    request.setInspectConfirmComment("");
                }
                values.put("dataId", entity.getId());
                values.put("organization",request.getComment());
                values.put("comment", request.getComment());
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
                entity.setInspector(user.getUsername());
                entity.setInspectConfirmComment(request.getInspectConfirmComment());
                entity.setInspectConfirmTime(new Date());
                values.put("organization",request.getInspectConfirmComment());
                values.put("comment", request.getInspectConfirmComment());
                values.put("inspectorResult",request.getInspectorResult());
                request.setComment(request.getInspectConfirmComment());
                if (request.getInspectorResult().equals("2")){
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name());
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0004);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未存在管理员,无法进入下级审批!");
                    }else{
                        userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                        values.put("NextAssignee", userApprovalList);
                    }
                }else {
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
                    entity.setInspector(user.getUsername());
                    entity.setInspectorResult(request.getInspectorResult());
                    entity.setInspectConfirmComment(request.getInspectConfirmComment());
                    entity.setInspectConfirmTime(new Date());
                }
                break;
            default:
                throw  new JeecgBootException("审批失败");
@@ -417,6 +485,31 @@
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        if (user.getPost().equals(BusinessCodeConst.PCR0004)&&request.getManageUserResult().equals("2")){
            //管理员拒绝,会签节点修改对应关系
            List<FlowMyBusiness> list = flowMyBusinessService.list(new LambdaQueryWrapper<FlowMyBusiness>().eq(FlowMyBusiness::getProcessInstanceId, request.getInstanceId()));
            if (CollectionUtils.isNotEmpty(list)) {
                list.forEach(item -> {
                    if (item.getTaskNameId().equals("maintenance_task")) {
                        //获取维修工岗位用户
                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                        if (!CollectionUtils.isEmpty(userSelectorList)) {
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            item.setTodoUsers(JSON.toJSONString(usernameList));
                        }
                    }
                    if (item.getTaskNameId().equals("operator_task")) {
                        //获取操作人岗位用户
                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
                        if (!CollectionUtils.isEmpty(userSelectorList)) {
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            item.setTodoUsers(JSON.toJSONString(usernameList));
                        }
                    }
                });
                flowMyBusinessService.updateBatchById(list);
            }
        }
        //保存工单
        eamSecondMaintenanceOrderMapper.updateById(entity);
        return entity;