From d7bbd0eb98734769cc8737915e0ed29daa5293b7 Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期三, 05 七月 2023 09:34:32 +0800 Subject: [PATCH] 接口设备权限漏洞修复 --- lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquProDto.java | 41 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 44 ++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/OrgCodeProRule.java | 98 ++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquDepDto.java | 39 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 156 +++++++++++++++-- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java | 12 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 26 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java | 18 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java | 18 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java | 34 +- 12 files changed, 459 insertions(+), 38 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java index d2b07d7..741dd03 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java @@ -18,6 +18,11 @@ public static final String DEPART = "org_num_role"; /** + * 浜х嚎缂栫爜 + */ + public static final String PRODUCTION = "org_num_rule"; + + /** * 鍒嗙被瀛楀吀缂栫爜 */ public static final String CATEGORY = "category_code_rule"; diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java index 09ae327..4bd5a50 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEfficiencyListDto.java @@ -12,6 +12,12 @@ @Data public class MdcEfficiencyListDto { + private String level1; + + private String level2; + + private String level3; + /** * 璁惧缂栫爜 */ diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquDepDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquDepDto.java new file mode 100644 index 0000000..434328f --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquDepDto.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.mdc.dto; + +import lombok.Data; + +/** + * @author: LiuS + * @create: 2023-07-04 11:02 + */ +@Data +public class MdcEquDepDto { + /** + * 閮ㄩ棬id + */ + private String id; + /** + * 閮ㄩ棬鐖秈d + */ + private String parentId; + /** + * 閮ㄩ棬鍚嶇О + */ + private String departName; + /** + * 灞傜骇缂栧彿 + */ + private String orgType; + /** + * 璁惧id + */ + private String equipmentId; + /** + * 璁惧鍚嶇О + */ + private String equipmentName; + /** + * 璁惧绫诲瀷 + */ + private String equipmentType; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquProDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquProDto.java new file mode 100644 index 0000000..ebba0d4 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MdcEquProDto.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.mdc.dto; + +import lombok.Data; + +/** + * @author: LiuS + * @create: 2023-07-04 11:06 + */ +@Data +public class MdcEquProDto { + + /** + * 浜х嚎id + */ + private String id; + /** + * 浜х嚎鐖秈d + */ + private String parentId; + /** + * 浜х嚎鍚嶇О + */ + private String productionName; + /** + * 灞傜骇缂栧彿 + */ + private String orgType; + /** + * 璁惧id + */ + private String equipmentId; + /** + * 璁惧鍚嶇О + */ + private String equipmentName; + /** + * 璁惧绫诲瀷 + */ + private String equipmentType; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java index 1474c85..30fa299 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.mdc.dto.MdcEquDepDto; +import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo; @@ -63,4 +65,20 @@ * 鏍规嵁閮ㄩ棬id鏌ヨ璁惧id闆嗗悎 */ List<String> queryIdsByDeparts(@Param("allDepartIds") List<String> allDepartIds); + + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜岄儴闂ㄤ俊鎭� + * + * @param equipmentIdList + * @return + */ + List<MdcEquDepDto> findEquDepList(@Param("equipmentIdList") List<String> equipmentIdList); + + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜屼骇绾夸俊鎭� + * + * @param equipmentIdList + * @return + */ + List<MdcEquProDto> findEquProList(@Param("equipmentIdList") List<String> equipmentIdList); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml index 26d708c..15df7d9 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml @@ -146,5 +146,49 @@ </foreach> </select> + <!--鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜岄儴闂ㄤ俊鎭�--> + <select id="findEquDepList" resultType="org.jeecg.modules.mdc.dto.MdcEquDepDto"> + SELECT + sd.id, + sd.parent_id, + sd.depart_name, + sd.org_type, + me.equipment_id, + me.equipment_name, + me.equipment_type + FROM + mdc_equipment_depart med + LEFT JOIN sys_depart sd ON med.dep_id = sd.id + LEFT JOIN mdc_equipment me ON me.id = med.equipment_id + <where> + me.equipment_id IN + <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </where> + </select> + + <!--鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜屼骇绾夸俊鎭�--> + <select id="findEquProList" resultType="org.jeecg.modules.mdc.dto.MdcEquProDto"> + SELECT + mp.id, + mp.parent_id, + mp.production_name, + mp.org_type, + me.equipment_id, + me.equipment_name, + me.equipment_type + FROM + mdc_production_equipment mpe + LEFT JOIN mdc_production mp ON mpe.production_id = mp.id + LEFT JOIN mdc_equipment me ON me.id = mpe.equipment_id + <where> + me.equipment_id IN + <foreach collection="equipmentIdList" index="index" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </where> + </select> + </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java index 78f11f9..e57d140 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.dto.MdcEquDepDto; +import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; @@ -124,6 +126,7 @@ /** * 鏍规嵁璁惧id鏌ヨ璁惧鍚嶇О + * * @param equipmentId * @return */ @@ -139,4 +142,19 @@ */ MdcEquipment getEquipmentByPid(String pid, String userId); + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜岄儴闂ㄤ俊鎭� + * + * @param equipmentIdList + * @return + */ + List<MdcEquDepDto> findEquDepList(List<String> equipmentIdList); + + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜屼骇绾夸俊鎭� + * + * @param equipmentIdList + * @return + */ + List<MdcEquProDto> findEquProList(List<String> equipmentIdList); } 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()); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 1307c01..45cca50 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -10,6 +10,8 @@ import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.mdc.dto.EquipmentTemperatureDto; +import org.jeecg.modules.mdc.dto.MdcEquDepDto; +import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.entity.*; import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; @@ -634,7 +636,7 @@ } /** - * 鏍规嵁浜х嚎灞傜骇鏌ヨ璁惧鍗曚釜 + * 鏍规嵁浜х嚎灞傜骇鏌ヨ璁惧鍗曚釜 */ @Override public MdcEquipment getEquipmentByPid(String pid, String userId) { @@ -645,4 +647,26 @@ return null; } + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜岄儴闂ㄤ俊鎭� + * + * @param equipmentIdList + * @return + */ + @Override + public List<MdcEquDepDto> findEquDepList(List<String> equipmentIdList) { + return this.baseMapper.findEquDepList(equipmentIdList); + } + + /** + * 鏍规嵁璁惧缂栧彿鏌ヨ璁惧淇℃伅鍜屼骇绾夸俊鎭� + * + * @param equipmentIdList + * @return + */ + @Override + public List<MdcEquProDto> findEquProList(List<String> equipmentIdList) { + return this.baseMapper.findEquProList(equipmentIdList); + } + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java index 324ab6b..e029c30 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcTorqueConfigServiceImpl.java @@ -27,7 +27,7 @@ * @Date: 2023-06-29 */ @Service -public class MdcTorqueConfigServiceImpl extends ServiceImpl<MdcTorqueConfigMapper, MdcTorqueConfig> implements IMdcTorqueConfigService{ +public class MdcTorqueConfigServiceImpl extends ServiceImpl<MdcTorqueConfigMapper, MdcTorqueConfig> implements IMdcTorqueConfigService { @Autowired private IMdcEquipmentService mdcEquipmentService; @@ -59,38 +59,38 @@ @Override public List<MdcTorqueConfig> findSpindleRunningCurve(float torqueValue, String equipmentId) { - return this.baseMapper.findSpindleRunningCurve(torqueValue,equipmentId); + return this.baseMapper.findSpindleRunningCurve(torqueValue, equipmentId); } @Override public IPage<MdcTorqueConfig> pageList(String userId, Page page, HttpServletRequest req, MdcTorqueConfig mdcTorqueConfig) { - List<String> equipmentIds=new ArrayList<>(); - if (StringUtils.isNotEmpty(mdcTorqueConfig.getParentId())&&StringUtils.isEmpty(mdcTorqueConfig.getEquipmentId())){ - if ("2".equals(mdcTorqueConfig.getTypeTree())){ + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(mdcTorqueConfig.getParentId()) && StringUtils.isEmpty(mdcTorqueConfig.getEquipmentId())) { + if ("2".equals(mdcTorqueConfig.getTypeTree())) { //閮ㄩ棬灞傜骇 - equipmentIds=mdcEquipmentService.getEquipmentIdsByDepart(userId,mdcTorqueConfig.getParentId()); - }else { + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcTorqueConfig.getParentId()); + } else { //浜х嚎灞傜骇 - equipmentIds=mdcEquipmentService.getEquipmentIdsProduction(userId,mdcTorqueConfig.getParentId()); + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcTorqueConfig.getParentId()); } - }else if (StringUtils.isNotEmpty(mdcTorqueConfig.getEquipmentId())){ + } else if (StringUtils.isNotEmpty(mdcTorqueConfig.getEquipmentId())) { //鍗曞彴璁惧淇℃伅 mdcTorqueConfig.setMdcSectionIds(Collections.singletonList(mdcTorqueConfig.getEquipmentId())); - }else { + } else { //鏌ヨ鐢ㄦ埛鎵�鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� - if ("2".equals(mdcTorqueConfig.getTypeTree())){ + if ("2".equals(mdcTorqueConfig.getTypeTree())) { //閮ㄩ棬灞傜骇 - equipmentIds=mdcEquipmentService.getEquipmentIdsByDepart(userId,null); - }else { - equipmentIds=mdcEquipmentService.getEquipmentIdsProduction(userId,null); + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); } } - if (mdcTorqueConfig.getMdcSectionIds()==null||mdcTorqueConfig.getMdcSectionIds().isEmpty()){ + if (mdcTorqueConfig.getMdcSectionIds() == null || mdcTorqueConfig.getMdcSectionIds().isEmpty()) { mdcTorqueConfig.setMdcSectionIds(equipmentIds); } - if (mdcTorqueConfig.getMdcSectionIds()==null||mdcTorqueConfig.getMdcSectionIds().isEmpty()){ + if (mdcTorqueConfig.getMdcSectionIds() == null || mdcTorqueConfig.getMdcSectionIds().isEmpty()) { return null; } - return this.baseMapper.pageList(page,mdcTorqueConfig); + return this.baseMapper.pageList(page, mdcTorqueConfig); } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/OrgCodeProRule.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/OrgCodeProRule.java new file mode 100644 index 0000000..cc7ee4a --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/rule/OrgCodeProRule.java @@ -0,0 +1,98 @@ +package org.jeecg.modules.system.rule; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.netty.util.internal.StringUtil; +import org.jeecg.common.handler.IFillRuleHandler; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.YouBianCodeUtil; +import org.jeecg.modules.system.entity.MdcProduction; +import org.jeecg.modules.system.service.IMdcProductionService; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author: LiuS + * @create: 2023-07-04 16:15 + * @Description: 杞﹂棿鏈烘瀯缂栫爜鐢熸垚瑙勫垯 + */ +public class OrgCodeProRule implements IFillRuleHandler { + + @Override + public Object execute(JSONObject params, JSONObject formData) { + IMdcProductionService mdcProductionService = (IMdcProductionService) SpringContextUtils.getBean("mdcProductionServiceImpl"); + + LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>(); + LambdaQueryWrapper<MdcProduction> query1 = new LambdaQueryWrapper<MdcProduction>(); + // 鍒涘缓涓�涓狶ist闆嗗悎,瀛樺偍鏌ヨ杩斿洖鐨勬墍鏈塎dcProduction瀵硅薄 + List<MdcProduction> mdcProductionList = new ArrayList<>(); + String[] strArray = new String[2]; + //瀹氫箟杞﹂棿绫诲瀷 + String orgType = ""; + // 瀹氫箟鏂扮紪鐮佸瓧绗︿覆 + String newOrgCode = ""; + // 瀹氫箟鏃х紪鐮佸瓧绗︿覆 + String oldOrgCode = ""; + + String parentId = null; + if (formData != null && formData.size() > 0) { + Object obj = formData.get("parentId"); + if (obj != null) { + parentId = obj.toString(); + } + } else { + if (params != null) { + Object obj = params.get("parentId"); + if (obj != null) { + parentId = obj.toString(); + } + } + } + + //濡傛灉鏄渶楂樼骇,鍒欐煡璇㈠嚭鍚岀骇鐨刼rg_code, 璋冪敤宸ュ叿绫荤敓鎴愮紪鐮佸苟杩斿洖 + if (StringUtil.isNullOrEmpty(parentId)) { + // 绾垮垽鏂暟鎹簱涓殑琛ㄦ槸鍚︿负绌�,绌哄垯鐩存帴杩斿洖鍒濆缂栫爜 + query1.eq(MdcProduction::getParentId, "").or().isNull(MdcProduction::getParentId); + query1.orderByDesc(MdcProduction::getOrgCode); + mdcProductionList = mdcProductionService.list(query1); + if (mdcProductionList == null || mdcProductionList.size() == 0) { + strArray[0] = YouBianCodeUtil.getNextYouBianCode(null); + strArray[1] = "1"; + return strArray; + } else { + MdcProduction mdcProduction = mdcProductionList.get(0); + oldOrgCode = mdcProduction.getOrgCode(); + orgType = mdcProduction.getOrgType(); + newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode); + } + } else {//鍙嶄箣鍒欐煡璇㈠嚭鎵�鏈夊悓绾х殑杞﹂棿,鑾峰彇缁撴灉鍚庢湁涓ょ鎯呭喌,鏈夊悓绾у拰娌℃湁鍚岀骇 + // 灏佽鏌ヨ鍚岀骇鐨勬潯浠� + query.eq(MdcProduction::getParentId, parentId); + // 闄嶅簭鎺掑簭 + query.orderByDesc(MdcProduction::getOrgCode); + // 鏌ヨ鍑哄悓绾т骇绾跨殑闆嗗悎 + List<MdcProduction> parentList = mdcProductionService.list(query); + // 鏌ヨ鍑虹埗绾т骇绾� + MdcProduction production = mdcProductionService.getById(parentId); + // 鑾峰彇鐖剁骇浜х嚎鐨刢ode + String parentCode = production.getOrgCode(); + // 鏍规嵁鐖剁骇浜х嚎绫诲瀷绠楀嚭褰撳墠浜х嚎鐨勭被鍨� + orgType = String.valueOf(Integer.valueOf(production.getOrgType()) + 1); + // 澶勭悊鍚岀骇浜х嚎涓簄ull鐨勬儏鍐� + if (parentList == null || parentList.size() == 0) { + // 鐩存帴鐢熸垚褰撳墠鐨勪骇绾跨紪鐮佸苟杩斿洖 + newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, null); + } else { //澶勭悊鏈夊悓绾т骇绾跨殑鎯呭喌 + // 鑾峰彇鍚岀骇浜х嚎鐨勭紪鐮�,鍒╃敤宸ュ叿绫� + String subCode = parentList.get(0).getOrgCode(); + // 杩斿洖鐢熸垚鐨勫綋鍓嶄骇绾跨紪鐮� + newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, subCode); + } + } + // 杩斿洖鏈�缁堝皝瑁呬簡浜х嚎缂栫爜鍜屼骇绾跨被鍨嬬殑鏁扮粍 + strArray[0] = newOrgCode; + strArray[1] = orgType; + return strArray; + } +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java index d517ef0..0e8f025 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java @@ -1,10 +1,13 @@ package org.jeecg.modules.system.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.FillRuleConstant; +import org.jeecg.common.util.FillRuleUtil; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.MdcProductionEquipment; @@ -122,6 +125,15 @@ mdcProduction.setParentId(""); } mdcProduction.setId(IdWorker.getIdStr(mdcProduction)); + // 鍏堝垽鏂瀵硅薄鏈夋棤鐖剁骇ID,鏈夊垯鎰忓懗鐫�涓嶆槸鏈�楂樼骇,鍚﹀垯鎰忓懗鐫�鏄渶楂樼骇 + // 鑾峰彇鐖剁骇ID + String parentId = mdcProduction.getParentId(); + JSONObject formData = new JSONObject(); + formData.put("parentId",parentId); + String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.PRODUCTION,formData); + mdcProduction.setOrgCode(codeArray[0]); + String orgType = codeArray[1]; + mdcProduction.setOrgType(String.valueOf(orgType)); mdcProduction.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); this.save(mdcProduction); } -- Gitblit v1.9.3