From 4e0eb5fa436dcfe7cc69d9aa37c9e8d2e286ed80 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 03 七月 2025 15:32:18 +0800 Subject: [PATCH] 维修部门班组调整 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java | 155 +++++++++++++++++++++++++++------------------------ 1 files changed, 81 insertions(+), 74 deletions(-) diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java index 38a4fe4..6df251a 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java @@ -10,11 +10,14 @@ import org.jeecg.common.util.FillRuleUtil; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart; +import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser; +import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper; import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService; import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper; import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel; import org.jeecg.modules.eam.base.model.RepairDepartIdModel; import org.jeecg.modules.eam.base.util.FindsRepairDepartsChildrenUtil; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.mapper.SysUserMapper; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -22,6 +25,7 @@ import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @Author: Lius @@ -34,6 +38,9 @@ @Resource private SysUserMapper sysUserMapper; + @Resource + private EamBaseRepairDepartUserMapper repairDepartUserMapper; + /** * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔� */ @@ -45,7 +52,7 @@ query.orderByAsc(EamBaseRepairDepart::getDepartOrder); List<EamBaseRepairDepart> list = this.list(query); //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず -// this.setUserIdsByProList(list); + this.setUserIdsByProList(list); //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁 return FindsRepairDepartsChildrenUtil.wrapTreeDataToTreeList(list); } @@ -150,7 +157,7 @@ this.checkChildrenExists(id, idList); boolean result = this.removeByIds(idList); //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯� -// repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); + repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯� // repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); return result; @@ -169,7 +176,7 @@ } this.removeByIds(idList); //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯� -// repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); + repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯� // repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); } @@ -182,26 +189,26 @@ // return this.baseMapper.queryRepDepByPid(pid); // } // -// /** -// * 鏍规嵁鐢ㄦ埛id鑾峰彇缁翠慨閮ㄩ棬鐝粍涓嬫媺鏍戦�夐」 -// */ -// @Override -// public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) { -// //鑾峰彇鎵�鏈夌淮淇儴闂ㄧ彮缁勬暟鎹� -// List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder)); -// //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勭淮淇儴闂ㄧ彮缁勪俊鎭泦鍚� -// List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId); -// List<String> allMaintainDepartIds = new ArrayList<>(); -// //鎵惧埌鎵�鏈夌淮淇儴闂ㄧ彮缁刬d鐨勪笂绾d -// if (repairDepartIds != null && !repairDepartIds.isEmpty()) { -// for (String repairDepartId : repairDepartIds) { -// this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds); -// } -// } -// //杩囨护缁翠慨閮ㄩ棬鐝粍鏁版嵁 -// List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList()); -// return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list); -// } + /** + * 鏍规嵁鐢ㄦ埛id鑾峰彇缁翠慨閮ㄩ棬鐝粍涓嬫媺鏍戦�夐」 + */ + @Override + public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) { + //鑾峰彇鎵�鏈夌淮淇儴闂ㄧ彮缁勬暟鎹� + List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder)); + //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勭淮淇儴闂ㄧ彮缁勪俊鎭泦鍚� + List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId); + List<String> allMaintainDepartIds = new ArrayList<>(); + //鎵惧埌鎵�鏈夌淮淇儴闂ㄧ彮缁刬d鐨勪笂绾d + if (repairDepartIds != null && !repairDepartIds.isEmpty()) { + for (String repairDepartId : repairDepartIds) { + this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds); + } + } + //杩囨护缁翠慨閮ㄩ棬鐝粍鏁版嵁 + List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList()); + return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list); + } // // /** // * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣id @@ -250,56 +257,56 @@ } } -// /** -// * 鑾峰彇鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍id锛堝寘鍚墍鏈変笂绾э級 -// */ -// private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) { -// if (!allMaintainDepartIds.contains(repairDepartId)) { -// allMaintainDepartIds.add(repairDepartId); -// } -// for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { -// if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) { -// continue; -// } -// if (repairDepartId.equals(eamBaseRepairDepart.getId())) { -// if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) { -// allMaintainDepartIds.add(eamBaseRepairDepart.getParentId()); -// getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds); -// } -// } -// } -// } -// -// /** -// * 閫氳繃缁翠慨閮ㄩ棬鐝粍闆嗗悎涓虹淮淇儴闂ㄧ彮缁勮缃敤鎴穒d锛岀敤浜庡墠鍙板睍绀� -// */ -// private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) { -// //鏌ヨ璐熻矗閮ㄩ棬涓嶄负绌虹殑鎯呭喌 -// LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>(); -// query.isNotNull(SysUser::getDepartIds); -// List<SysUser> users = sysUserMapper.selectList(query); -// Map<String, Object> map = new HashMap(5); -// //鍏堝惊鐜竴閬嶆壘鍒颁笉鍚岀殑璐熻矗缁翠慨閮ㄩ棬鐝粍id -// for (SysUser user : users) { -// String repairDepartIds = user.getRepairDepartIds(); -// if (StringUtils.isNotBlank(repairDepartIds)) { -// String[] repairDepartIdArray = repairDepartIds.split(","); -// for (String repairDepartId : repairDepartIdArray) { -// if (map.containsKey(repairDepartId)) { -// String userIds = map.get(repairDepartId) + "," + user.getId(); -// map.put(repairDepartId, userIds); -// } else { -// map.put(repairDepartId, user.getId()); -// } -// } -// } -// } -// //寰幆缁翠慨閮ㄩ棬鐝粍闆嗗悎鎵惧埌缁翠慨閮ㄩ棬鐝粍id瀵瑰簲鐨勮礋璐g敤鎴� -// for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { -// if (map.containsKey(eamBaseRepairDepart.getId())) { -// eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString()); -// } -// } -// } + /** + * 鑾峰彇鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍id锛堝寘鍚墍鏈変笂绾э級 + */ + private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) { + if (!allMaintainDepartIds.contains(repairDepartId)) { + allMaintainDepartIds.add(repairDepartId); + } + for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { + if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) { + continue; + } + if (repairDepartId.equals(eamBaseRepairDepart.getId())) { + if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) { + allMaintainDepartIds.add(eamBaseRepairDepart.getParentId()); + getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds); + } + } + } + } + + /** + * 閫氳繃缁翠慨閮ㄩ棬鐝粍闆嗗悎涓虹淮淇儴闂ㄧ彮缁勮缃敤鎴穒d锛岀敤浜庡墠鍙板睍绀� + */ + private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) { + //鏌ヨ璐熻矗閮ㄩ棬涓嶄负绌虹殑鎯呭喌 + LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>(); + query.isNotNull(SysUser::getDepartIds); + List<SysUser> users = sysUserMapper.selectList(query); + Map<String, Object> map = new HashMap(5); + //鍏堝惊鐜竴閬嶆壘鍒颁笉鍚岀殑璐熻矗缁翠慨閮ㄩ棬鐝粍id + for (SysUser user : users) { + String repairDepartIds = user.getRepairDepartIds(); + if (StringUtils.isNotBlank(repairDepartIds)) { + String[] repairDepartIdArray = repairDepartIds.split(","); + for (String repairDepartId : repairDepartIdArray) { + if (map.containsKey(repairDepartId)) { + String userIds = map.get(repairDepartId) + "," + user.getId(); + map.put(repairDepartId, userIds); + } else { + map.put(repairDepartId, user.getId()); + } + } + } + } + //寰幆缁翠慨閮ㄩ棬鐝粍闆嗗悎鎵惧埌缁翠慨閮ㄩ棬鐝粍id瀵瑰簲鐨勮礋璐g敤鎴� + for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { + if (map.containsKey(eamBaseRepairDepart.getId())) { + eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString()); + } + } + } } -- Gitblit v1.9.3