From c82b14f3a882698cbca62ef168615d31711320ca Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期四, 03 七月 2025 15:12:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java | 305 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 305 insertions(+), 0 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 new file mode 100644 index 0000000..38a4fe4 --- /dev/null +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java @@ -0,0 +1,305 @@ +package org.jeecg.modules.eam.base.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.eam.base.entity.EamBaseRepairDepart; +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.mapper.SysUserMapper; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @Author: Lius + * @CreateTime: 2025-07-01 + * @Description: + */ +@Service +public class EamBaseRepairDepartImpl extends ServiceImpl<EamBaseRepairDepartMapper, EamBaseRepairDepart> implements IEamBaseRepairDepartService { + + @Resource + private SysUserMapper sysUserMapper; + + /** + * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔� + */ + @Override + @Cacheable(value = "eam:cache:repairDepart:alldata") + public List<EamBaseRepairDepartTreeModel> queryTreeList() { + LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>(); + query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + query.orderByAsc(EamBaseRepairDepart::getDepartOrder); + List<EamBaseRepairDepart> list = this.list(query); + //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず +// this.setUserIdsByProList(list); + //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁 + return FindsRepairDepartsChildrenUtil.wrapTreeDataToTreeList(list); + } + + /** + * queryTreeList 鏍规嵁缁翠慨閮ㄩ棬鐝粍id鏌ヨ,鍓嶇鍥炴樉璋冪敤 + */ + @Override + public List<EamBaseRepairDepartTreeModel> queryTreeList(String ids) { + List<EamBaseRepairDepartTreeModel> listResult = new ArrayList<>(); + LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<EamBaseRepairDepart>(); + query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + if (oConvertUtils.isNotEmpty(ids)) { + query.in(true, EamBaseRepairDepart::getId, ids.split(",")); + } + query.orderByAsc(EamBaseRepairDepart::getDepartOrder); + List<EamBaseRepairDepart> list = this.list(query); + for (EamBaseRepairDepart repairDepart : list) { + listResult.add(new EamBaseRepairDepartTreeModel(repairDepart)); + } + return listResult; + } + + @Override + @Cacheable(value = "eam:cache:repairDepart:allids") + public List<RepairDepartIdModel> queryMaintainDepartIdTreeList() { + LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); + query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + query.orderByAsc(EamBaseRepairDepart::getDepartOrder); + List<EamBaseRepairDepart> list = this.list(query); + //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁 + return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list); + } + + /** + * 鏍规嵁鍏抽敭瀛楁悳绱㈢浉鍏崇殑閮ㄩ棬鏁版嵁 + */ + @Override + public List<EamBaseRepairDepartTreeModel> searchByKeyWord(String keyWord) { + LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); + List<EamBaseRepairDepartTreeModel> newList = new ArrayList<>(); + query.like(EamBaseRepairDepart::getDepartName, keyWord); + EamBaseRepairDepartTreeModel model = new EamBaseRepairDepartTreeModel(); + List<EamBaseRepairDepart> repairDepartList = this.list(query); + if (!repairDepartList.isEmpty()) { + for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { + model = new EamBaseRepairDepartTreeModel(eamBaseRepairDepart); + model.setChildren(null); + newList.add(model); + } + return newList; + } + return Collections.emptyList(); + } + + /** + * saveMaintainDepartData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑缁翠慨閮ㄩ棬鐝粍瀵硅薄鏁版嵁 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void saveMaintainDepartData(EamBaseRepairDepart eamBaseRepairDepart) { + if (eamBaseRepairDepart != null) { + if (eamBaseRepairDepart.getParentId() == null) { + eamBaseRepairDepart.setParentId(""); + } + eamBaseRepairDepart.setId(IdWorker.getIdStr(eamBaseRepairDepart)); + // 鍏堝垽鏂瀵硅薄鏈夋棤鐖剁骇ID,鏈夊垯鎰忓懗鐫�涓嶆槸鏈�楂樼骇,鍚﹀垯鎰忓懗鐫�鏄渶楂樼骇 + // 鑾峰彇鐖剁骇ID + String parentId = eamBaseRepairDepart.getParentId(); + JSONObject formData = new JSONObject(); + formData.put("parentId",parentId); + String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.REPAIRDEPART,formData); + eamBaseRepairDepart.setOrgCode(codeArray[0]); + String orgType = codeArray[1]; + eamBaseRepairDepart.setOrgType(String.valueOf(orgType)); + eamBaseRepairDepart.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); + this.save(eamBaseRepairDepart); + } + } + + /** + * updateMaintainDepartDataById 瀵瑰簲 edit 鏍规嵁缁翠慨閮ㄩ棬鐝粍涓婚敭鏉ユ洿鏂板搴旂殑缁翠慨閮ㄩ棬鐝粍鏁版嵁 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateMaintainDepartDataById(EamBaseRepairDepart eamBaseRepairDepart) { + if (eamBaseRepairDepart != null) { + this.updateById(eamBaseRepairDepart); + return true; + } + return false; + } + + /** + * 鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎骞跺垹闄ゅ叾鍙兘瀛樺湪鐨勫瓙绾х淮淇儴闂ㄧ彮缁� + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(String id) { + List<String> idList = new ArrayList<>(); + idList.add(id); + this.checkChildrenExists(id, idList); + boolean result = this.removeByIds(idList); + //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯� +// repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); + //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯� +// repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); + return result; + } + + /** + * 鏍规嵁缁翠慨閮ㄩ棬鐝粍id鎵归噺鍒犻櫎骞跺垹闄ゅ叾鍙兘瀛樺湪鐨勫瓙绾х淮淇儴闂ㄧ彮缁� + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatchWithChildren(List<String> ids) { + List<String> idList = new ArrayList<>(); + for (String id : ids) { + idList.add(id); + this.checkChildrenExists(id, idList); + } + this.removeByIds(idList); + //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯� +// repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList)); + //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯� +// repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList)); + } + +// /** +// * 鏍规嵁id鏌ヨ涓嬬骇缁翠慨閮ㄩ棬鐝粍 +// */ +// @Override +// public List<EamBaseRepairDepart> queryRepDepByPid(String pid) { +// 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<String> recursionChildren(String repairDepartId) { +// return this.baseMapper.recursionChildren(repairDepartId); +// } +// +// /** +// * 鏍规嵁鐢ㄦ埛id鍜岃溅闂磇d鑾峰彇鐢ㄦ埛鎷ユ湁鐨勮溅闂磇d +// * @param userId +// * @param repairDepartId +// * @return +// */ +// @Override +// public String findFirstMaintainDepart(String userId, String repairDepartId) { +// return this.baseMapper.findFirstMaintain(userId, repairDepartId); +// } +// +// /** +// * 鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛缁翠慨閮ㄩ棬鐝粍鏉冮檺 +// */ +// @Override +// public String findThreeMaintainDepartId(String userId) { +// return this.baseMapper.findThreeMaintainId(userId); +// } +// +// @Override +// public EamBaseRepairDepart findMaintainDepartList(String equipmentId) { +// return this.baseMapper.findMaintainList(equipmentId); +// } + + /** + * delete 鏂规硶璋冪敤 閫掑綊鏌ユ壘瀛愰泦id + */ + private void checkChildrenExists(String id, List<String> idList) { + LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>(); + query.eq(EamBaseRepairDepart::getParentId, id); + List<EamBaseRepairDepart> repairDepartList = this.list(query); + if (repairDepartList != null && !repairDepartList.isEmpty()) { + for (EamBaseRepairDepart repairDepart : repairDepartList) { + idList.add(repairDepart.getId()); + this.checkChildrenExists(repairDepart.getId(), idList); + } + } + } + +// /** +// * 鑾峰彇鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍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