From c800257cb6c8b45e7edc20e2e9018cd90b230806 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 09 七月 2025 19:50:00 +0800 Subject: [PATCH] art: 技术状态鉴定-基础代码生成 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 73 insertions(+), 16 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 047ae84..084bb65 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 @@ -3,10 +3,12 @@ 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.toolkit.IdWorker; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.FillRuleConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.util.FillRuleUtil; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.entity.BaseFactory; @@ -100,32 +102,81 @@ return Collections.emptyList(); } + public BaseFactory searchCenterByKeyWord(String keyWord) { + if (StringUtils.isBlank(keyWord)) { + return null; + } + + if (keyWord.contains("/")) { + return searchByHierarchy(keyWord); + } else { + return searchByCode(keyWord); + } + } + + private BaseFactory searchByHierarchy(String path) { + String[] levels = path.split("/"); + int depth = levels.length; + + // 妫�鏌ュ眰绾ф繁搴� + if (depth < 2 || depth > 3) { + return null; // 鏃犳晥鐨勫眰绾ф繁搴� + } + + // 鏌ヨ绗竴绾т腑蹇� + BaseFactory center = findFactory(levels[0], 1, null); + if (center == null) return null; + + // 鏌ヨ绗簩绾у伐鍖� + BaseFactory workArea = findFactory(levels[1], null, center.getId()); + if (workArea == null || depth == 2) return workArea; + + // 鏌ヨ绗笁绾у伐娈� + return findFactory(levels[2], null, workArea.getId()); + } + + private BaseFactory searchByCode(String code) { + LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>(); + query.like(BaseFactory::getFactoryCode, code); + return this.baseMapper.selectOne(query); // 浣跨敤selectOne閬垮厤澶氫釜缁撴灉 + } + + private BaseFactory findFactory(String name, Integer category, String parentId) { + LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>(); + query.eq(BaseFactory::getFactoryName, name); + + if (category != null) query.eq(BaseFactory::getFactoryCategory, category); + if (parentId != null) query.eq(BaseFactory::getParentId, parentId); + + return this.baseMapper.selectOne(query); + } + /** * saveProductionData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑璁惧杞﹂棿绠$悊瀵硅薄鏁版嵁 */ @Override @Transactional(rollbackFor = Exception.class) - public void saveBaseFactoryData(BaseFactory BaseFactory) { - if (BaseFactory != null) { - if (BaseFactory.getParentId() == null|| StrUtil.isEmpty(BaseFactory.getParentId())) { - BaseFactory.setParentId(""); - BaseFactory.setFactoryCategory("0"); + public void saveBaseFactoryData(BaseFactory baseFactory) { + if (baseFactory != null) { + if (baseFactory.getParentId() == null|| StrUtil.isEmpty(baseFactory.getParentId())) { + baseFactory.setParentId(""); + baseFactory.setFactoryCategory("0"); } - if (BaseFactory.getFactoryCategory() == null|| StrUtil.isEmpty(BaseFactory.getFactoryCategory())) { - BaseFactory.setFactoryCategory("1"); + if (baseFactory.getFactoryCategory() == null|| StrUtil.isEmpty(baseFactory.getFactoryCategory())) { + baseFactory.setFactoryCategory("1"); } - BaseFactory.setId(IdWorker.getIdStr(BaseFactory)); + baseFactory.setId(IdWorker.getIdStr(baseFactory)); // 鍏堝垽鏂瀵硅薄鏈夋棤鐖剁骇ID,鏈夊垯鎰忓懗鐫�涓嶆槸鏈�楂樼骇,鍚﹀垯鎰忓懗鐫�鏄渶楂樼骇 // 鑾峰彇鐖剁骇ID - String parentId = BaseFactory.getParentId(); + String parentId = baseFactory.getParentId(); JSONObject formData = new JSONObject(); formData.put("parentId",parentId); String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.WORKSHOP,formData); - BaseFactory.setOrgCode(codeArray[0]); + baseFactory.setOrgCode(codeArray[0]); String orgType = codeArray[1]; - BaseFactory.setOrgType(String.valueOf(orgType)); - BaseFactory.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); - this.save(BaseFactory); + baseFactory.setOrgType(String.valueOf(orgType)); + baseFactory.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); + this.save(baseFactory); } } @@ -145,9 +196,15 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public boolean updateBaseFactoryDataById(BaseFactory BaseFactory) { - if (BaseFactory != null) { - this.updateById(BaseFactory); + public boolean updateBaseFactoryDataById(BaseFactory baseFactory) { + QueryWrapper<BaseFactory> baseFactoryQueryWrapper = new QueryWrapper<>(); + baseFactoryQueryWrapper.eq(StrUtil.isNotEmpty(baseFactory.getFactoryCode()), "factory_code", baseFactory.getFactoryCode()); + baseFactoryQueryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0.toString()); + if (this.getOne(baseFactoryQueryWrapper) != null) { + throw new JeecgBootException("鏈烘瀯缂栫爜宸插瓨鍦�"); + } + if (baseFactory != null) { + this.updateById(baseFactory); return true; } return false; -- Gitblit v1.9.3