| | |
| | | import org.jeecg.modules.eam.constant.BusinessCodeConst; |
| | | import org.jeecg.modules.eam.constant.EamMaintenanceStandardDetailCategory; |
| | | import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; |
| | | import org.jeecg.modules.eam.constant.SecondMaintenanceStatusEnum; |
| | | import org.jeecg.modules.eam.entity.EamEquipment; |
| | | import org.jeecg.modules.eam.entity.EamEquipmentExtend; |
| | | import org.jeecg.modules.eam.entity.EamMaintenanceStandard; |
| | |
| | | queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); |
| | | queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); |
| | | queryWrapper.ne(EamMaintenanceStandard::getStandardStatus, standardStatus); |
| | | queryWrapper.ne(EamMaintenanceStandard::getStandardStatus,MaintenanceStandardStatusEnum.START.name()); |
| | | queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion); |
| | | |
| | | List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); |
| | |
| | | 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); |
| | | } |
| | | |
| | | |
| | | /*流程业务代码--------------------------开始*/ |
| | | |
| | |
| | | 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()); |
| | |
| | | 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; |
| | | } |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo) { |
| | | try { |
| | | // 参数校验 |
| | | if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTaskId()) || StrUtil.isEmpty(eamMaintenanceStandardVo.getDataId())) { |
| | | return Result.error("参数错误"); |
| | | } |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | String userId = user.getId(); |
| | | eamMaintenanceStandardVo.setAssignee(user.getUsername()); |
| | | if (StrUtil.isEmpty(userId)) { |
| | | return Result.error("未找到对应用户"); |
| | | } |
| | | EamMaintenanceStandard eamMaintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); |
| | | if (eamMaintenanceStandard == null) { |
| | | return Result.error("未找到对应保养标准"); |
| | | } |
| | | // 获取当前登录用户 |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (user == null || StrUtil.isBlank(user.getId())) { |
| | | throw new JeecgBootException("未获取到登录用户,请重新登录后再试!"); |
| | | } |
| | | eamMaintenanceStandardVo.setAssignee(user.getUsername()); |
| | | // 获取流程业务记录 |
| | | FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(eamMaintenanceStandardVo.getInstanceId(), eamMaintenanceStandardVo.getTaskId()); |
| | | if (flowMyBusiness == null) { |
| | | throw new JeecgBootException("流程实例不存在,请刷新后重试!"); |
| | | } |
| | | |
| | | // 数据查询 |
| | | EamMaintenanceStandard eamMaintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); |
| | | if (eamMaintenanceStandard == null) { |
| | | return Result.error("未找到对应保养标准"); |
| | | } |
| | | boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); |
| | | if (!userAuthorized) { |
| | | throw new JeecgBootException("用户无权操作此任务,请刷新后重试!"); |
| | | } |
| | | // 认领任务 |
| | | if (!claimTask(flowMyBusiness.getTaskId(), user)) { |
| | | throw new JeecgBootException("任务不存在、已完成或已被他人认领!"); |
| | | } |
| | | |
| | | // 2. 查询流程业务记录(处理空结果) |
| | | List<FlowMyBusiness> businessList = flowMyBusinessService.list( |
| | | new QueryWrapper<FlowMyBusiness>() |
| | | .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId()) |
| | | ); |
| | | if (businessList.isEmpty()) { |
| | | return Result.error("流程记录不存在"); |
| | | } |
| | | FlowMyBusiness flowMyBusiness = businessList.get(0); |
| | | EamEquipment eamEquipment = eamEquipmentService.getById(eamMaintenanceStandard.getEquipmentId()); |
| | | if (eamEquipment == null) { |
| | | throw new JeecgBootException("设备不存在,请检查!"); |
| | | } |
| | | |
| | | // 3. 校验用户是否为候选处理人 |
| | | List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); |
| | | if (todoUsers == null || !todoUsers.contains(user.getUsername())) { |
| | | return Result.error("用户无权操作此任务"); |
| | | } |
| | | |
| | | // 4. 认领任务(处理已被认领的情况) |
| | | String taskId = flowMyBusiness.getTaskId(); |
| | | Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); |
| | | if (task == null) { |
| | | return Result.error("任务不存在或已完成"); |
| | | } |
| | | if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { |
| | | return Result.error("任务已被他人认领"); |
| | | } |
| | | taskService.claim(taskId, user.getUsername()); |
| | | |
| | | // 设置流程变量 |
| | | Map<String, Object> values = setProcessVariables(eamMaintenanceStandard, userId, eamMaintenanceStandardVo); |
| | | eamMaintenanceStandardVo.setValues(values); |
| | | eamMaintenanceStandardVo.setComment(values.get("comment").toString()); |
| | | // 完成流程任务 |
| | | Result result = flowTaskService.complete(eamMaintenanceStandardVo); |
| | | if (result.isSuccess()) { |
| | | if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) { |
| | | if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")) { |
| | | List<FlowMyBusiness> newbusinessList = flowMyBusinessService.list( |
| | | new QueryWrapper<FlowMyBusiness>() |
| | | .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId())); |
| | | FlowMyBusiness newflowMyBusiness = newbusinessList.get(0); |
| | | MaintenanceStandardStatusEnum status = MaintenanceStandardStatusEnum.getInstance(eamMaintenanceStandard.getStandardStatus()); |
| | | if (status == null) { |
| | | return null; |
| | | } |
| | | //流程变量 |
| | | Map<String, Object> values = new HashMap<>(); |
| | | List<String> userApprovalList; |
| | | List<UserSelector> userSelectors; |
| | | switch (status){ |
| | | case WAIT_REPAIR_DIRECTOR: |
| | | //维修主任审核 |
| | | userSelectors = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009); |
| | | if (CollectionUtils.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未存在生产设备技术主管,无法进入下级审批!"); |
| | | }else { |
| | | userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("dataId", eamMaintenanceStandard.getId()); |
| | | values.put("repairManagerApproveResult", eamMaintenanceStandardVo.getRepairManagerApproveResult()); |
| | | if (StrUtil.isEmpty(eamMaintenanceStandardVo.getRepairManagerApproveComment())){ |
| | | eamMaintenanceStandardVo.setRepairManagerApproveComment(""); |
| | | } |
| | | values.put("organization", eamMaintenanceStandardVo.getRepairManagerApproveComment()); |
| | | values.put("comment", eamMaintenanceStandardVo.getRepairManagerApproveComment()); |
| | | eamMaintenanceStandardVo.setComment(eamMaintenanceStandardVo.getRepairManagerApproveComment()); |
| | | if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("2")){ |
| | | eamMaintenanceStandard.setStandardStatus(SecondMaintenanceStatusEnum.ABOLISH.name()); |
| | | }else { |
| | | values.put("NextAssignee", userApprovalList); |
| | | eamMaintenanceStandard.setRepairManager(user.getUsername()); |
| | | eamMaintenanceStandard.setRepairManagerApproveResult(eamMaintenanceStandardVo.getRepairManagerApproveResult()); |
| | | eamMaintenanceStandard.setRepairManagerApproveTime(new Date()); |
| | | eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment()); |
| | | 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()); |
| | | } |
| | | eamMaintenanceStandard.setRepairManager(user.getUsername()); |
| | | eamMaintenanceStandard.setRepairManagerApproveResult(eamMaintenanceStandardVo.getRepairManagerApproveResult()); |
| | | eamMaintenanceStandard.setRepairManagerApproveTime(new Date()); |
| | | eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment()); |
| | | } |
| | | if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) { |
| | | if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) { |
| | | eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name()); |
| | | //判断是否进行升版,通过设备编号、保养分类、状态进行筛选 |
| | | EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); |
| | | QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("equipment_id", maintenanceStandard.getEquipmentId()); |
| | | queryWrapper.eq("maintenance_category", maintenanceStandard.getMaintenanceCategory()); |
| | | queryWrapper.eq("standard_status", MaintenanceStandardStatusEnum.START.name()); |
| | | List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); |
| | | if (!CollectionUtils.isEmpty(list)) { |
| | | //作废原有 |
| | | for (EamMaintenanceStandard eamMaintenanceStandard1 : list) { |
| | | eamMaintenanceStandard1.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); |
| | | this.updateById(eamMaintenanceStandard1); |
| | | } |
| | | } |
| | | } else { |
| | | eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); |
| | | break; |
| | | case WAIT_TECHNICAL_DIRECTOR: |
| | | //待技术主管审批 |
| | | if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTechnicalManagerApproveComment())){ |
| | | eamMaintenanceStandardVo.setTechnicalManagerApproveComment(""); |
| | | } |
| | | values.put("dataId", eamMaintenanceStandard.getId()); |
| | | values.put("organization", eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | values.put("comment", eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | values.put("technicalManagerApproveResult", eamMaintenanceStandardVo.getTechnicalManagerApproveResult()); |
| | | eamMaintenanceStandardVo.setComment(eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("2")){ |
| | | eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name()); |
| | | userSelectors = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未存在维修室主任,无法进入驳回审批!"); |
| | | }else{ |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | } |
| | | }else { |
| | | eamMaintenanceStandard.setTechnicalManager(user.getUsername()); |
| | | eamMaintenanceStandard.setTechnicalManagerApproveResult(eamMaintenanceStandardVo.getTechnicalManagerApproveResult()); |
| | | eamMaintenanceStandard.setTechnicalManagerApproveTime(new Date()); |
| | | eamMaintenanceStandard.setTechnicalManagerApproveComment(eamMaintenanceStandardVo.getComment()); |
| | | eamMaintenanceStandard.setTechnicalManagerApproveComment(eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name()); |
| | | } |
| | | this.updateById(eamMaintenanceStandard); |
| | | } else { |
| | | return result; |
| | | } |
| | | return Result.OK("操作成功"); |
| | | } catch (Exception e) { |
| | | return Result.error("操作失败:" + e.getMessage()); |
| | | break; |
| | | default: |
| | | throw new JeecgBootException("审批失败"); |
| | | |
| | | } |
| | | eamMaintenanceStandardVo.setValues(values); |
| | | // 完成流程任务 |
| | | Result result = flowTaskService.complete(eamMaintenanceStandardVo); |
| | | if (!result.isSuccess()) { |
| | | throw new JeecgBootException("审批失败,请刷新查看!"); |
| | | } |
| | | this.updateById(eamMaintenanceStandard); |
| | | if (StrUtil.isNotEmpty(eamMaintenanceStandardVo.getTechnicalManagerApproveResult())){ |
| | | if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) { |
| | | eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name()); |
| | | //判断是否进行升版,通过设备编号、保养分类、状态进行筛选 |
| | | EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); |
| | | QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.ne("id", eamMaintenanceStandardVo.getDataId()); |
| | | queryWrapper.eq("equipment_id", maintenanceStandard.getEquipmentId()); |
| | | queryWrapper.eq("maintenance_category", maintenanceStandard.getMaintenanceCategory()); |
| | | queryWrapper.eq("standard_status", MaintenanceStandardStatusEnum.START.name()); |
| | | List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); |
| | | if (!CollectionUtils.isEmpty(list)) { |
| | | //作废原有 |
| | | for (EamMaintenanceStandard eamMaintenanceStandard1 : list) { |
| | | eamMaintenanceStandard1.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); |
| | | this.updateById(eamMaintenanceStandard1); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return Result.OK("操作成功"); |
| | | } |
| | | |
| | | private Map<String, Object> setProcessVariables(EamMaintenanceStandard eamMaintenanceStandard, String userId, EamMaintenanceStandardVo eamMaintenanceStandardVo) { |
| | | Map<String, Object> values = new HashMap<>(); |
| | | values.put("dataId", eamMaintenanceStandard.getId()); |
| | | values.put("assignee", userId); |
| | | if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) { |
| | | values.put("repairManagerApproveResult", eamMaintenanceStandardVo.getRepairManagerApproveResult()); |
| | | values.put("organization", eamMaintenanceStandardVo.getRepairManagerApproveComment()); |
| | | values.put("comment", eamMaintenanceStandardVo.getRepairManagerApproveComment()); |
| | | |
| | | private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { |
| | | List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); |
| | | return todoUsers != null && todoUsers.contains(user.getUsername()); |
| | | } |
| | | |
| | | private boolean claimTask(String taskId, LoginUser user) { |
| | | Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); |
| | | if (task == null) { |
| | | return false; |
| | | } |
| | | if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) { |
| | | values.put("technicalManagerApproveResult", eamMaintenanceStandardVo.getTechnicalManagerApproveResult()); |
| | | values.put("organization", eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | values.put("comment", eamMaintenanceStandardVo.getTechnicalManagerApproveComment()); |
| | | if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { |
| | | return false; |
| | | } |
| | | return values; |
| | | taskService.claim(taskId, user.getUsername()); |
| | | return true; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { |
| | | //业务是否干预流程,业务干预,流程干预,指定人员进行处理 |
| | | return null; |
| | | //获取下一步处理人 |
| | | Object object = values.get("NextAssignee"); |
| | | return (List<String>) object; |
| | | } |
| | | |
| | | /*流程业务代码--------------------------结束*/ |
| | |
| | | */ |
| | | @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); |
| | | |
| | |
| | | |
| | | eamMaintenanceStandard.setStandardName(name); |
| | | |
| | | // 检查重复 |
| | | EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(), |
| | | eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.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())) { |
| | | //判断是否现有待提交数据 |
| | | EamMaintenanceStandard maintenanceStandard=eamMaintenanceStandardMapper.selectOne( |
| | | new QueryWrapper<EamMaintenanceStandard>().eq("equipment_id",eamMaintenanceStandard.getEquipmentId()) |
| | | .eq("maintenance_category",eamMaintenanceStandard.getMaintenanceCategory()) |
| | | .eq("standard_status",MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()) |
| | | .eq("del_flag", CommonConstant.DEL_FLAG_0)); |
| | | if (maintenanceStandard != null) { |
| | | //删除原有待提交 |
| | | eamMaintenanceStandardMapper.deleteById(maintenanceStandard.getId()); |
| | | } |
| | | //查询在流程中的数据 |
| | | List<EamMaintenanceStandard> eamMaintenanceStandardList=eamMaintenanceStandardMapper.selectList( |
| | | new QueryWrapper<EamMaintenanceStandard>().eq("equipment_id",eamMaintenanceStandard.getEquipmentId()) |
| | | .eq("maintenance_category",eamMaintenanceStandard.getMaintenanceCategory()) |
| | | .eq("del_flag", CommonConstant.DEL_FLAG_0) |
| | | .and(i->i. |
| | | eq("standard_status",MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name()) |
| | | .or() |
| | | .eq("standard_status",MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name()) |
| | | )); |
| | | if (!eamMaintenanceStandardList.isEmpty()) { |
| | | return Result.error("已存在处于审批流程的数据,请删除或结束后进行升版导入操作"); |
| | | } |
| | | //升版操作,作废原有 |
| | | 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) { |
| | | } |
| | | } |
| | | }else { |
| | | return Result.error("升版导入的文件与原有数据的设备编号不一致,请重新编辑导入文件"); |
| | | } |
| | | } |
| | | eamMaintenanceStandard.setInitialDate(new Date()); |
| | | eamMaintenanceStandardMapper.insert(eamMaintenanceStandard); |
| | |
| | | */ |
| | | @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())) { |
| | |
| | | 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.ABOLISH.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())) { |
| | | //判断是否现有待提交数据 |
| | | EamMaintenanceStandard maintenanceStandard=eamMaintenanceStandardMapper.selectOne( |
| | | new QueryWrapper<EamMaintenanceStandard>().eq("equipment_id",standard.getEquipmentId()) |
| | | .eq("maintenance_category",standard.getMaintenanceCategory()) |
| | | .eq("standard_status",MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()) |
| | | .eq("del_flag", CommonConstant.DEL_FLAG_0)); |
| | | if (maintenanceStandard != null) { |
| | | //删除原有待提交 |
| | | eamMaintenanceStandardMapper.deleteById(maintenanceStandard.getId()); |
| | | } |
| | | //查询在流程中的数据 |
| | | List<EamMaintenanceStandard> eamMaintenanceStandardList=eamMaintenanceStandardMapper.selectList( |
| | | new QueryWrapper<EamMaintenanceStandard>().eq("equipment_id",standard.getEquipmentId()) |
| | | .eq("maintenance_category",standard.getMaintenanceCategory()) |
| | | .eq("del_flag", CommonConstant.DEL_FLAG_0) |
| | | .and(it->it. |
| | | eq("standard_status",MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name()) |
| | | .or() |
| | | .eq("standard_status",MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name()) |
| | | )); |
| | | if (!eamMaintenanceStandardList.isEmpty()) { |
| | | return Result.error("已存在处于审批流程的数据,请删除或结束后进行升版导入操作"); |
| | | } |
| | | //升版操作,作废原有 |
| | | 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) { |
| | | } |
| | | } |
| | | }else { |
| | | return Result.error("升版导入的文件与原有数据的设备编号不一致,请重新编辑导入文件"); |
| | | } |
| | | } |
| | | standard.setStandardName(documentTitle); |
| | | eamMaintenanceStandardMapper.insert(standard); |