From d7bbd0eb98734769cc8737915e0ed29daa5293b7 Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期三, 05 七月 2023 09:34:32 +0800 Subject: [PATCH] 接口设备权限漏洞修复 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 156 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 136 insertions(+), 20 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 daae6c8..583d480 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 @@ -1,12 +1,9 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import net.sf.saxon.expr.Component; import org.apache.commons.lang3.StringUtils; -import org.jeecg.modules.mdc.dto.MdcEfficiencyDto; -import org.jeecg.modules.mdc.dto.MdcEfficiencyListDto; -import org.jeecg.modules.mdc.dto.MdcEfficiencyResultDto; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.modules.mdc.dto.*; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcUtilizationRate; import org.jeecg.modules.mdc.mapper.MdcEfficiencyReportMapper; @@ -16,12 +13,15 @@ import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo; import org.jeecg.modules.mdc.vo.MdcEfficiencyVo; +import org.jeecg.modules.system.entity.MdcProduction; +import org.jeecg.modules.system.entity.SysDepart; +import org.jeecg.modules.system.service.IMdcProductionService; +import org.jeecg.modules.system.service.ISysDepartService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; -import java.util.stream.Collectors; /** * @author: LiuS @@ -38,6 +38,12 @@ @Resource private IMdcUtilizationRateService mdcUtilizationRateService; + + @Resource + private ISysDepartService sysDepartService; + + @Resource + private IMdcProductionService mdcProductionService; /** * 鍒╃敤鐜囨姤琛� @@ -87,20 +93,130 @@ // 鍒╃敤鐜囩瓑绾� List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("lyl"); - //灏佽缁撴灉 - List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList())); + // 灏佽缁撴灉 + 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 (MdcEquipment mdcEquipment : equipmentList) { - MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto(); - mdcEfficiencyListDto.setEquipmentId(mdcEquipment.getEquipmentId()); - mdcEfficiencyListDto.setEquipmentName(mdcEquipment.getEquipmentName()); - mdcEfficiencyListDto.setEquipmentType(mdcEquipment.getEquipmentType()); - List<MdcEfficiencyResultDto> list = new ArrayList<>(); - for (String date : dates) { - list.add(this.efficiencyRate(efficiencyList, date, mdcEquipment, mdcUtilizationRateList)); + 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); } - 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); @@ -114,11 +230,11 @@ return null; } - private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEquipment mdcEquipment, List<MdcUtilizationRate> mdcUtilizationRateList) { + private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, String equipmentId, List<MdcUtilizationRate> mdcUtilizationRateList) { MdcEfficiencyResultDto mdcEfficiencyResultDto = new MdcEfficiencyResultDto(); if (efficiencyList != null && !efficiencyList.isEmpty()) { for (MdcEfficiencyDto efficiencyDto : efficiencyList) { - if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(mdcEquipment.getEquipmentId())) { + if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(equipmentId)) { mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate()); mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong()); mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate()); -- Gitblit v1.9.3