From 27cddefb0cb28da699954ba1a1756d6bcabafbbe Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期三, 05 三月 2025 17:41:29 +0800 Subject: [PATCH] 集成申码接口调整:当码值按照约定传表名为空的业务场景下传null校验问题和码值组装问题。 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java index 9fbee7b..3fce2a5 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java @@ -7,6 +7,7 @@ import com.vci.ubcs.code.mapper.CommonsMapper; import com.vci.ubcs.code.service.ICodeClassifyService; import com.vci.ubcs.code.service.IMdmCountService; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.system.entity.MdmCountConfig; import com.vci.ubcs.system.entity.Menu; import com.vci.ubcs.system.feign.ISysClient; @@ -18,10 +19,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import java.util.stream.Collectors; import static com.vci.ubcs.starter.web.util.VciBaseUtil.getTableName; @@ -58,18 +58,24 @@ if(Func.isBlank(userId) && Func.isBlank(AuthUtil.getUserId().toString())){ throw new ServiceException("蹇呬紶鍙傛暟鐢ㄦ埛id涓嶈兘涓虹┖"); } - /** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О锛岀浉褰撲簬鎷垮埌涓绘暟鎹〃鍚� - 椤跺眰鑺傜偣鐨刡tmtypeid杩橀渶瑕佺敤浣滄煡璇㈡潯浠跺搴旂殑鑿滃崟琛ㄧ殑code瀛楁 - 浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤btmtypeid瀛楁杩涜鎺掑簭 + /** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌缁戝畾鐨勪笟鍔$被鍨嬪悕绉帮紝鐩稿綋浜庢嬁鍒颁富鏁版嵁琛ㄥ悕 + 椤跺眰鑺傜偣鐨刡tmtypeid锛�2024骞�1鏈�31鏃ョ殑鏃跺�欐敼鎴愪簡鐢ㄥ垎绫荤殑id锛夊幓鏌ヨ瀵瑰簲鐨勮彍鍗曡〃鐨刢ode瀛楁 + 锛屾煡璇㈠嚭涓绘暟鎹鐞嗕笅闈㈡湁鍝簺涓绘暟鎹殑 + 浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤id瀛楁杩涜鎺掑簭 */ LambdaQueryWrapper<CodeClassify> wrapper = Wrappers.<CodeClassify>query() .lambda() - .isNull(CodeClassify::getParentCodeClassifyOid).select(CodeClassify::getBtmTypeId) - .orderByAsc(CodeClassify::getBtmTypeId); + .isNull(CodeClassify::getParentCodeClassifyOid)/*椤跺眰鑺傜偣*/ + .orderByAsc(CodeClassify::getId); + // 鍔犱笂绉熸埛鏌ヨ鏉′欢 + if(!VciBaseUtil.checkAdminTenant()){ + wrapper.eq(CodeClassify::getTenantId,AuthUtil.getTenantId()); + } List<CodeClassify> codeClassifies = codeClassifyService.list(wrapper); - List<String> btmTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList()); + // List<String> btmTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList()); + List<String> classifyIds = codeClassifies.stream().map(CodeClassify::getId).collect(Collectors.toList()); // 2銆佺劧鍚巉eign璋冪敤闇�瑕佹煡璇㈠嚭鑿滃崟璺敱鍜屽浘鏍� - R<List<Menu>> menuList = sysClient.getMenuByCodes(btmTypeIds,Func.toLong(userId)); + R<List<Menu>> menuList = sysClient.getMenuByCodes(classifyIds,Func.toLong(userId)); if(!menuList.isSuccess()){ throw new ServiceException("鑾峰彇涓绘暟鎹粺璁℃椂锛屼富鏁版嵁鑿滃崟鏌ヨ澶辫触锛屽師鍥狅細"+menuList.getMsg()); } @@ -80,6 +86,7 @@ throw new ServiceException("鑾峰彇涓绘暟鎹粺璁¢」閰嶇疆鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+mdmCountConfig.getMsg()); } List<String> mdmNames = null; + //棣栭〉閰嶇疆鏄剧ず灏戜簬5涓氨榛樿鏄剧ず鍓嶄簲涓� if(Func.isBlank(mdmCountConfig.getData().getMdmName())){ AtomicInteger count = new AtomicInteger(); mdmNames = menuList.getData().stream().map(item->{ @@ -92,12 +99,29 @@ mdmNames = Arrays.stream(mdmCountConfig.getData().getMdmName().split(",")).collect(Collectors.toList()); } final List<String> mdmNamesFinal = mdmNames; - // 4銆佺劧鍚巗et杩涘璞′腑 + /* 4銆佽幏鍙栬〃鍚嶏紝褰撳墠鏈幏鍙栧埌琛ㄥ悕锛岃彍鍗曠殑code鍊煎搴斾簡鍒嗙被鐨刬d锛� + 鏈搴斾笟鍔$被鍨嬬殑id锛屾墍浠ラ渶瑕侀�氳繃鑿滃崟鐨刬d绛涢�夊嚭閰嶇疆骞朵笖鍦ㄤ娇鐢ㄧ殑涓绘暟鎹垎绫�, + 鐒跺悗閫氳繃鍒嗙被淇℃伅鏌ヨ鍒颁笟鍔$被鍨媔d锛屽湪閫氳繃涓氬姟绫诲瀷鎺ュ彛鏌ヨ鍑鸿〃鍚�(杩欎竴姝ュ彲浠ュ厛鐪佺暐鍥犱负鍒嗙被涓婂叧鑱旂殑涓氬姟绫诲瀷id涔熷彲浠ユ嫾鎺ュ嚭琛ㄥ悕) + */ + // 鑾峰彇鍒嗙被涓婄殑涓氬姟绫诲瀷鐨刬d + Map<String, String> btmTypeIdMaps = menuList.getData().stream() + .filter(menu -> codeClassifies.stream() + .anyMatch(codeClassify -> codeClassify.getId().equals(menu.getCode())) + ).collect(Collectors.toMap( + Menu::getCode, + menu -> codeClassifies.stream() + .filter(codeClassify -> codeClassify.getId().equals(menu.getCode())) + .findFirst() + .map(CodeClassify::getBtmTypeId) + .orElse(null) + )); + + // 5銆佺劧鍚巗et杩涘璞′腑 menuList.getData().stream().forEach(item->{ Integer isDefault = mdmNamesFinal.contains(item.getCode()) ? 1:0; MdmCount mdmCount = new MdmCount( item.getName(), - getCountByTableName(item.getCode()), /*鏌ヨ涓绘暟鎹�绘暟*/ + getCountByTableName(btmTypeIdMaps.get(item.getCode())), /*鏌ヨ涓绘暟鎹�绘暟*/ item.getPath(), item.getSource(), item.getCode(), @@ -114,8 +138,11 @@ * @return */ private String getCountByTableName(String tableName){ - String sql = "SELECT COUNT(*) FROM " + getTableName(tableName,true) +";"; String count = "0"; + if(Func.isBlank(tableName)){ + return count; + } + String sql = "SELECT COUNT(*) FROM " + getTableName(tableName,true) +";"; try { count = commonsMapper.queryCountStringBySql(sql); }catch (Exception e){ -- Gitblit v1.9.3