¶Ô±ÈÐÂÎļþ |
| | |
| | | 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<>(); |
| | | // //æ¾å°ææç»´ä¿®é¨é¨çç»idçä¸çº§id |
| | | // 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å车é´idè·åç¨æ·æ¥æç车é´id |
| | | // * @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); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * éè¿ç»´ä¿®é¨é¨çç»éå为维修é¨é¨çç»è®¾ç½®ç¨æ·idï¼ç¨äºåå°å±ç¤º |
| | | // */ |
| | | // 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对åºçè´è´£ç¨æ· |
| | | // for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) { |
| | | // if (map.containsKey(eamBaseRepairDepart.getId())) { |
| | | // eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString()); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | } |