From daf5a28d644cece1e19972521f0d6f19dfef20a4 Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期五, 07 七月 2023 09:57:01 +0800 Subject: [PATCH] 率参数标签接口 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 192 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 189 insertions(+), 3 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java index 583d480..7cddfa0 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java @@ -12,6 +12,7 @@ import org.jeecg.modules.mdc.service.MdcEfficiencyReportService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo; +import org.jeecg.modules.mdc.vo.MdcEfficiencyReportShiftQueryVo; import org.jeecg.modules.mdc.vo.MdcEfficiencyVo; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysDepart; @@ -225,8 +226,195 @@ return result; } + /** + * 寮�鏈虹巼鎶ヨ〃 + * + * @param userId + * @param vo + * @return + */ @Override - public MdcEfficiencyVo shiftEfficiencyList(String userId, MdcEfficiencyReportQueryVo vo) { + public MdcEfficiencyVo efficiencyPOList(String userId, MdcEfficiencyReportQueryVo vo) { + MdcEfficiencyVo result = new MdcEfficiencyVo(); + List<MdcEfficiencyListDto> listDtos = new ArrayList<>(); + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) { + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId()); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId()); + } + } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) { + // 鍗曞彴璁惧淇℃伅 + vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId())); + } else { + // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + vo.setEquipmentIdList(equipmentIds); + } + + List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime())); + result.setDates(dates); + + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + result.setMdcEfficiencyList(listDtos); + } else { + // 鏌ヨ鍒╃敤鐜囨暟鎹� + List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyPOList(vo); + // 鍒╃敤鐜囩瓑绾� + List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("kdl"); + + // 灏佽缁撴灉 + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + List<MdcEquDepDto> equipmentList = mdcEquipmentService.findEquDepList(vo.getEquipmentIdList()); + // 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭� + List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().ne(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_1.toString())); + + for (MdcEquDepDto mdcEquDepDto : equipmentList) { + MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto(); + mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId()); + mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName()); + mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType()); + switch (mdcEquDepDto.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(mdcEquDepDto.getDepartName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(mdcEquDepDto.getDepartName()); + break; + default: + } + + SysDepart sysDepart = departList.stream().filter(depart -> depart.getId().equals(mdcEquDepDto.getParentId())).findAny().orElse(null); + if (sysDepart != null) { + switch (sysDepart.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(sysDepart.getDepartName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(sysDepart.getDepartName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(sysDepart.getDepartName()); + break; + default: + } + if (StringUtils.isNotEmpty(sysDepart.getParentId())) { + departList.stream().filter(depart -> depart.getId().equals(sysDepart.getParentId())).findAny().ifPresent(depart1 -> { + switch (depart1.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(depart1.getDepartName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(depart1.getDepartName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(depart1.getDepartName()); + break; + default: + } + }); + } + } + List<MdcEfficiencyResultDto> list = new ArrayList<>(); + for (String date : dates) { + list.add(this.efficiencyRate(efficiencyList, date, mdcEquDepDto.getEquipmentId(), mdcUtilizationRateList)); + } + mdcEfficiencyListDto.setDataList(list); + listDtos.add(mdcEfficiencyListDto); + } + } else { + // 浜х嚎灞傜骇 + List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList()); + // 鏌ヨ鎵�鏈変骇绾夸俊鎭� + List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString())); + + for (MdcEquProDto mdcEquProDto : equipmentList) { + MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto(); + mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId()); + mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName()); + mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType()); + switch (mdcEquProDto.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(mdcEquProDto.getProductionName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(mdcEquProDto.getProductionName()); + break; + default: + } + MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null); + if (mdcProduction != null) { + switch (mdcProduction.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName()); + break; + default: + } + if (StringUtils.isNotEmpty(mdcProduction.getParentId())) { + productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> { + switch (production1.getOrgType()) { + case "1": + mdcEfficiencyListDto.setLevel1(production1.getProductionName()); + break; + case "2": + mdcEfficiencyListDto.setLevel2(production1.getProductionName()); + break; + case "3": + mdcEfficiencyListDto.setLevel3(production1.getProductionName()); + break; + default: + } + }); + } + } + List<MdcEfficiencyResultDto> list = new ArrayList<>(); + for (String date : dates) { + list.add(this.efficiencyRate(efficiencyList, date, mdcEquProDto.getEquipmentId(), mdcUtilizationRateList)); + } + mdcEfficiencyListDto.setDataList(list); + listDtos.add(mdcEfficiencyListDto); + } + } + + result.setMdcEfficiencyList(listDtos); + } + + return result; + } + + /** + * 鐝鍒╃敤鐜囨姤琛� + * + * @param userId + * @param vo + * @return + */ + @Override + public MdcEfficiencyVo efficiencyShiftList(String userId, MdcEfficiencyReportShiftQueryVo vo) { return null; } @@ -238,7 +426,6 @@ mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate()); mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong()); mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate()); - mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); mdcEfficiencyResultDto.setOpenRate(efficiencyDto.getOpenRate()); mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong()); @@ -256,7 +443,6 @@ mdcEfficiencyResultDto.setTheDate(date); mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0")); mdcEfficiencyResultDto.setUtilizationRate(new BigDecimal("0")); - mdcEfficiencyResultDto.setStartRate(new BigDecimal("0")); mdcEfficiencyResultDto.setStartRate(new BigDecimal("0")); mdcEfficiencyResultDto.setOpenRate(new BigDecimal("0")); mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0")); -- Gitblit v1.9.3