From e49ddcc6cc24ba1f8d5c45ed27c38cecd6116110 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 14 七月 2025 09:24:18 +0800
Subject: [PATCH] 三保
---
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java | 105 ++++++++++++++++++++--------------------------------
1 files changed, 40 insertions(+), 65 deletions(-)
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
index d28a83f..0062273 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -11,6 +12,7 @@
import org.jeecg.common.constant.FillRuleConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.util.FillRuleUtil;
+import org.jeecg.common.util.OrgCodeSplitUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
@@ -29,6 +31,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.stream.Collectors;
/**
* @Description: 璁惧杞﹂棿绠$悊
@@ -119,87 +122,47 @@
String[] levels = path.split("/");
int depth = levels.length;
- // 鏀寔澶氱鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ
+ // 鏀寔鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ
if (depth < 2 || depth > 3) {
return null;
}
- // 浠庡簳灞傚紑濮嬫煡璇細鏈�鍚庝竴绾у彲鑳芥槸宸ュ尯鎴栧伐娈�
- String lastName = levels[depth - 1];
- BaseFactory lastLevel = searchForLastLevel(lastName);
- if (lastLevel == null) return null;
+ // 浠庨《灞傚紑濮嬫煡璇� - 绗�1绾э細涓績鑺傜偣
+ BaseFactory center = findFactory(levels[0], 1, null);
+ if (center == null) return null;
- return validatePath(levels, lastLevel);
- }
-
- private BaseFactory validatePath(String[] levels, BaseFactory lastLevel) {
- if (levels.length == 2) {
- // 涓績/宸ュ尯 鎴� 涓績/宸ユ
- BaseFactory center = findParentCenter(lastLevel);
- if (center != null &&
- center.getFactoryName().equals(levels[0]) &&
- ("1").equals(center.getFactoryCategory())) {
- return lastLevel;
+ // 绗�2绾ф煡璇細宸ュ尯鎴栧伐娈�
+ BaseFactory secondLevel;
+ if (depth == 2) {
+ // 鍏煎鏂规锛氫紭鍏堟煡宸ユ鍐嶆煡宸ュ尯
+ secondLevel = findFactory(levels[1], 3, center.getId());
+ if (secondLevel == null) {
+ secondLevel = findFactory(levels[1], 2, center.getId());
}
+ return secondLevel; // 鍙兘涓簄ull
} else {
- // 涓績/宸ュ尯/宸ユ
- if (!("3").equals(lastLevel.getFactoryCategory())) return null;
+ // 绗�2绾у繀椤绘槸宸ュ尯
+ BaseFactory workArea = findFactory(levels[1], 2, center.getId());
+ if (workArea == null) return null;
- BaseFactory workArea = getById(lastLevel.getParentId());
- if (workArea == null ||
- !("2").equals(workArea.getFactoryCategory())) return null;
-
- BaseFactory center = getById(workArea.getParentId());
- if (center == null ||
- !("1").equals(center.getFactoryCategory())) return null;
-
- if (workArea.getFactoryName().equals(levels[1]) &&
- center.getFactoryName().equals(levels[0])) {
- return lastLevel;
- }
+ // 绗�3绾э細宸ユ
+ return findFactory(levels[2], 3, workArea.getId());
}
- return null;
}
- private BaseFactory searchForLastLevel(String name) {
- // 鍏堝皾璇曟煡璇㈠伐娈碉紙绫诲埆3锛�
- BaseFactory workshop = findFactory(name, 3, null);
- if (workshop != null) return workshop;
-
- // 濡傛灉娌℃湁鎵惧埌宸ユ锛屽皾璇曟煡璇㈠伐鍖猴紙绫诲埆2锛�
- return findFactory(name, 2, null);
- }
-
- private BaseFactory findParentCenter(BaseFactory entity) {
- if (("1").equals(entity.getFactoryCategory())) {
- return entity; // 鏈韩灏辨槸涓績
- }
-
- BaseFactory parent = getById(entity.getParentId());
- if (parent == null) return null;
-
- if (("1").equals(parent.getFactoryCategory())) {
- return parent; // 鐩存帴鐖剁骇鏄腑蹇�
- }
-
- // 濡傛灉鐖剁骇涓嶆槸涓績锛屽皾璇曟壘鐖剁骇鐨勭埗绾�
- return getById(parent.getParentId());
- }
-
+ // 淇濇寔涓嶅彉
private BaseFactory searchByCodeOrName(String keyword) {
- // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
query.and(q -> q.eq(BaseFactory::getFactoryName, keyword)
.or()
.like(BaseFactory::getFactoryCode, keyword));
- // 浣跨敤鍒嗛〉鏌ヨ鑾峰彇绗竴鏉¤褰�
Page<BaseFactory> page = new Page<>(1, 1);
Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
-
return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
}
+ // 淇濇寔涓嶅彉
private BaseFactory findFactory(String name, Integer category, String parentId) {
LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
query.eq(BaseFactory::getFactoryName, name);
@@ -207,17 +170,11 @@
if (category != null) query.eq(BaseFactory::getFactoryCategory, category);
if (parentId != null) query.eq(BaseFactory::getParentId, parentId);
- // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
Page<BaseFactory> page = new Page<>(1, 1);
Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
-
return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
}
- private BaseFactory getById(String id) {
- if (StringUtils.isBlank(id)) return null;
- return baseMapper.selectById(id);
- }
/**
* saveProductionData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑璁惧杞﹂棿绠$悊瀵硅薄鏁版嵁
@@ -362,4 +319,22 @@
}
return null;
}
+
+ @Override
+ public List<String> queryFactoryIdsByOrgCode(String orgCode) {
+ //鍒嗗壊 orgCode
+ List<String> orgCodeArr = OrgCodeSplitUtil.splitOrgCode(orgCode);
+ if(CollectionUtil.isEmpty(orgCodeArr)){
+ return Collections.emptyList();
+ }
+ LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
+ query.in(BaseFactory::getOrgCode, orgCodeArr);
+ query.eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0);
+ List<BaseFactory> list = this.getBaseMapper().selectList(query);
+ Set<String> collect = list.stream().map(BaseFactory::getId).collect(Collectors.toSet());
+ if(CollectionUtil.isEmpty(collect)){
+ return Collections.emptyList();
+ }
+ return new ArrayList<>(collect);
+ }
}
--
Gitblit v1.9.3