lyh
6 天以前 0063343edb7cee0a8b460f4b1424748e660ec370
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -183,7 +183,7 @@
        //删除标记
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
        if (exist != null) {
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
@@ -259,7 +259,7 @@
        //删除标记
        newEntity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
        if (exist != null) {
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
@@ -285,7 +285,7 @@
        queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, standardStatus);
        queryWrapper.ne(EamMaintenanceStandard::getStandardStatus, standardStatus);
        queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
        List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -323,6 +323,16 @@
        return eamMaintenanceStandardMapper.selectList(queryWrapper);
    }
    @Override
    public EamMaintenanceStandard queryByEquipmentIdAndCategory(String equipmentId, String maintenanceCategory) {
        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.START.name());
        queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
        return eamMaintenanceStandardMapper.selectOne(queryWrapper);
    }
    /*流程业务代码--------------------------开始*/
@@ -347,6 +357,16 @@
        variables.put("organization", "保养规范启动流程");
        variables.put("comment", "保养规范启动流程");
        variables.put("proofreading", true);
        EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
        if (!CollectionUtils.isEmpty(userSelectorList)) {
            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
            if (CollectionUtils.isNotEmpty(usernameList)) {
                variables.put("NextAssignee", usernameList);
            }else {
                throw new JeecgBootException("设备未存在维修室主任,无法进入下级审批!");
            }
        }
        Result result = flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables);
        if (!result.isSuccess()) {
            super.removeById(maintenanceStandard.getId());
@@ -363,14 +383,6 @@
            if (businessList.isEmpty()) {
                return Result.error("流程记录不存在");
            }
            FlowMyBusiness flowMyBusiness = businessList.get(0);
            EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
            List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
            if (!CollectionUtils.isEmpty(userSelectorList)) {
                List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
                flowMyBusinessService.updateById(flowMyBusiness);
            }
        }
        return result;
    }
@@ -382,6 +394,7 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo) {
        try {
            // 参数校验
@@ -436,21 +449,11 @@
            Result result = flowTaskService.complete(eamMaintenanceStandardVo);
            if (result.isSuccess()) {
                if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
                    if ("2".equals(eamMaintenanceStandard.getRepairManagerApproveResult())) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
                    }
                    if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")) {
                        List<FlowMyBusiness> newbusinessList = flowMyBusinessService.list(
                                new QueryWrapper<FlowMyBusiness>()
                                        .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId()));
                        FlowMyBusiness newflowMyBusiness = newbusinessList.get(0);
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name());
                        //获取flow的流程实例id,设置下一步的处理人员
                        EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
                        EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009);
                        if (!CollectionUtils.isEmpty(userSelectorList)) {
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            newflowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
                            flowMyBusinessService.updateById(newflowMyBusiness);
                        }
                    } else {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
                    }
@@ -460,6 +463,9 @@
                    eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment());
                }
                if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
                    if ("2".equals(eamMaintenanceStandard.getTechnicalManagerApproveResult())) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
                    }
                    if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name());
                        //判断是否进行升版,通过设备编号、保养分类、状态进行筛选
@@ -508,6 +514,16 @@
            values.put("organization", eamMaintenanceStandardVo.getTechnicalManagerApproveComment());
            values.put("comment", eamMaintenanceStandardVo.getTechnicalManagerApproveComment());
        }
        List<UserSelector> userSelectorList=new ArrayList<>();
        if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
            //获取flow的流程实例id,设置下一步的处理人员
            EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
            EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
            userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009);
            if (CollectionUtils.isEmpty(userSelectorList)) {
                throw new JeecgBootException("设备未存在管理员,无法进入下级审批!");
            }
        }
        return values;
    }
@@ -531,8 +547,9 @@
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        return null;
        //获取下一步处理人
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
    /*流程业务代码--------------------------结束*/
@@ -545,7 +562,11 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<?> importPointInspectionExcel(MultipartFile file) {
    public Result<?> importPointInspectionExcel(MultipartFile file,String id) {
        EamMaintenanceStandard eamMaintenanceStandardOld=new EamMaintenanceStandard();
        if (StrUtil.isNotEmpty(id)){
            eamMaintenanceStandardOld=eamMaintenanceStandardMapper.selectById(id);
        }
        try (Workbook workbook = WorkbookFactory.create(file.getInputStream())) {
            Sheet sheet = workbook.getSheetAt(0);
@@ -560,11 +581,31 @@
            eamMaintenanceStandard.setStandardName(name);
            // 检查重复
            EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(),
                    eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
            if (exist != null) {
                return Result.error(name + ": 设备标准已存在,不能重复添加");
            // 检查重复,只导入校验,升版不校验
            if (StrUtil.isEmpty(id)){
                EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(),
                        eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
                if (exist != null) {
                    return Result.error(name + ": 设备标准已存在,不能重复添加");
                }
            }
            if (StrUtil.isNotEmpty(id)){
                if (eamMaintenanceStandardOld.getEquipmentId().equals(eamMaintenanceStandard.getEquipmentId())
                        &&eamMaintenanceStandardOld.getMaintenanceCategory().equals(eamMaintenanceStandard.getMaintenanceCategory())) {
                    //升版操作,作废原有
                    eamMaintenanceStandardOld.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name());
                    eamMaintenanceStandardMapper.updateById(eamMaintenanceStandardOld);
                    //版本递增获取数字
                    Pattern pattern = Pattern.compile("(\\d+)(?:\\.\\d+)*$");
                    Matcher matcher = pattern.matcher(eamMaintenanceStandardOld.getStandardVersion());
                    if (matcher.find()) {
                        try {
                            int mainVersion = Integer.parseInt(matcher.group(1));
                            eamMaintenanceStandard.setStandardVersion("v" + (mainVersion + 1));
                        } catch (NumberFormatException ignored) {
                        }
                    }
                }
            }
            eamMaintenanceStandard.setInitialDate(new Date());
            eamMaintenanceStandardMapper.insert(eamMaintenanceStandard);
@@ -1077,7 +1118,7 @@
     */
    @Override
    @Transactional
    public Result<?> importMaintenanceStandard(MultipartFile file, String type) {
    public Result<?> importMaintenanceStandard(MultipartFile file, String type,String id) {
        String fileName = file.getOriginalFilename();
        try (XWPFDocument doc = new XWPFDocument(file.getInputStream())) {
@@ -1123,11 +1164,37 @@
                        return Result.error(fileName + ": 设备信息提取失败");
                    }
                    EamMaintenanceStandard eamMaintenanceStandardOld=new EamMaintenanceStandard();
                    if (StrUtil.isNotEmpty(id)){
                        eamMaintenanceStandardOld=eamMaintenanceStandardMapper.selectById(id);
                    }
                    // 配置类型相关参数
                    configureStandard(standard, type, file);
                    EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
                    if (exist != null) {
                        return Result.error(fileName + ": 设备标准已存在,不能重复添加");
                    if (StrUtil.isEmpty(id)){
                        EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
                        if (exist != null) {
                            return Result.error(fileName + ": 设备标准已存在,不能重复添加");
                        }
                    }
                    if (StrUtil.isNotEmpty(id)){
                        if (eamMaintenanceStandardOld.getEquipmentId().equals(standard.getEquipmentId())
                                &&eamMaintenanceStandardOld.getMaintenanceCategory().equals(standard.getMaintenanceCategory())) {
                            //升版操作,作废原有
                            eamMaintenanceStandardOld.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name());
                            eamMaintenanceStandardMapper.updateById(eamMaintenanceStandardOld);
                            //版本递增获取数字
                            Pattern pattern = Pattern.compile("(\\d+)(?:\\.\\d+)*$");
                            Matcher matcher = pattern.matcher(eamMaintenanceStandardOld.getStandardVersion());
                            if (matcher.find()) {
                                try {
                                    int mainVersion = Integer.parseInt(matcher.group(1));
                                    standard.setStandardVersion("v" + (mainVersion + 1));
                                } catch (NumberFormatException ignored) {
                                }
                            }
                        }
                    }
                    standard.setStandardName(documentTitle);
                    eamMaintenanceStandardMapper.insert(standard);