From 2c9427b2aa0e5c80850a40b833ffc1580f3f5eb4 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 24 三月 2025 13:27:26 +0800 Subject: [PATCH] MDC设备产线树接口 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 0 deletions(-) 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 938efca..f94adf6 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,9 +1,11 @@ package org.jeecg.modules.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; @@ -180,6 +182,13 @@ mdcProduction.setOrgType(String.valueOf(orgType)); mdcProduction.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); this.save(mdcProduction); + + //澶勭悊瀛樺湪鐖跺瓙鍏崇郴 mdc鏍囪缁熶竴鐨勯棶棰� + //1.mdc鏍囪 涓� 1 寮�鍚� 鐖剁骇鑺傜偣瑕佺粺涓�寮�鍚� + //2.mdc鏍囪 涓� 0 鍏抽棴 瀛愮骇鑺傜偣瑕佺粺涓�鍏抽棴 鏂板鎿嶄綔 涓嶅瓨鍦ㄦ鎯呭喌 + if(StringUtils.isNotBlank(parentId) && CommonConstant.DEFAULT_1.equals(mdcProduction.getMdcFlag())){ + openParentMdcFlag(parentId); + } } } @@ -191,6 +200,18 @@ public boolean updateProductionDataById(MdcProduction mdcProduction) { if (mdcProduction != null) { this.updateById(mdcProduction); + + //澶勭悊瀛樺湪鐖跺瓙鍏崇郴 mdc鏍囪缁熶竴鐨勯棶棰� + //1.mdc鏍囪 涓� 1 寮�鍚� 鐖剁骇鑺傜偣瑕佺粺涓�寮�鍚� + //2.mdc鏍囪 涓� 0 鍏抽棴 瀛愮骇鑺傜偣瑕佺粺涓�鍏抽棴 + String parentId = mdcProduction.getParentId(); + if(StringUtils.isNotBlank(parentId) && CommonConstant.DEFAULT_1.equals(mdcProduction.getMdcFlag())){ + openParentMdcFlag(parentId); + } + if(CommonConstant.DEFAULT_0.equals(mdcProduction.getMdcFlag())){ + //鍏抽棴 + closeChildrenMdcFlag(mdcProduction.getId()); + } return true; } return false; @@ -441,4 +462,90 @@ public List<String> findAllProductionIds(List<String> ids){ return this.baseMapper.recursionChildrenByList(ids); } + + @Override + public List<String> findParentIdsForProduction(String parentId, List<String> idList) { + if (StringUtils.isEmpty(parentId)) { + return null; + } + if (idList == null || idList.isEmpty()) { + idList = new ArrayList<>(); + } + boolean p = true; + if (p) { + MdcProduction en = super.getById(parentId); + if (en != null) { + idList.add(0, en.getId()); + } + if (StringUtils.isNotBlank(en.getParentId())) { + parentId = en.getParentId(); + findParentIdsForProduction(parentId, idList); + } else { + p = false; + return idList; + } + } + return idList; + } + + @Override + public List<MdcProductionTreeModel> queryTreeListByMdc(String ids) { + List<MdcProductionTreeModel> listResult = new ArrayList<>(); + LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>(); + query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + query.eq(MdcProduction::getMdcFlag, CommonConstant.DEFAULT_1); + if (oConvertUtils.isNotEmpty(ids)) { + query.in(true, MdcProduction::getId, ids.split(",")); + } + query.orderByAsc(MdcProduction::getProductionOrder); + List<MdcProduction> list = this.list(query); + for (MdcProduction production : list) { + if (production.getDescription().isEmpty()){ + production.setDescription(""); + } + listResult.add(new MdcProductionTreeModel(production)); + } + return listResult; + } + + @Override + public List<MdcProductionTreeModel> queryTreeListByMdc() { + LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>(); + query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + query.eq(MdcProduction::getMdcFlag, CommonConstant.DEFAULT_1); + query.orderByAsc(MdcProduction::getProductionOrder); + List<MdcProduction> list = this.list(query); + //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず + this.setUserIdsByProList(list); + //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁 + return FindsProductionsChildrenUtil.wrapTreeDataToTreeList(list); + } + + /** + * 鎵撳紑 鐖惰妭鐐� 鍙� 浠ヤ笂鐨刴dc鏍囪 + * @param parentId + */ + private void openParentMdcFlag(String parentId) { + List<String> listParentTree = findParentIdsForProduction(parentId, new ArrayList<>()); + if (!CollectionUtil.isEmpty(listParentTree)) { + UpdateWrapper<MdcProduction> updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", listParentTree); + updateWrapper.set("mdc_flag", "1"); + super.update(updateWrapper); + } + } + + /** + * 鍏抽棴鎵�鏈夊瓙鑺傜偣鐨刴dc鏍囪 + * @param productionId + */ + private void closeChildrenMdcFlag(String productionId) { + List<String> childrenList = recursionChildren(productionId); + if (!CollectionUtil.isEmpty(childrenList)) { + UpdateWrapper<MdcProduction> updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", childrenList); + updateWrapper.set("mdc_flag", "0"); + super.update(updateWrapper); + } + } } -- Gitblit v1.9.3