From 3a8545610608eaece0702a1fca82d09956fdd66d Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 14 十二月 2023 17:08:19 +0800
Subject: [PATCH] 集成统一接口管理模块控制接口完善

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |   64 +++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 18 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index a270828..40aa35b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -55,6 +55,7 @@
 import com.vci.ubcs.system.vo.RoleVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
@@ -68,6 +69,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.xml.ws.WebServiceContext;
 import javax.xml.ws.handler.MessageContext;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -312,7 +315,7 @@
 						//鏍¢獙鏄惁閰嶇疆
 						DockingSystemConfig dockingSystemConfig=null;
 						dockingSystemConfig=checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid());
-						if(dockingSystemConfig==null){
+						if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){
 							errorid[0] ="101";
 							throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ finalSystemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+codeClassifyVO.getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
 						}
@@ -326,7 +329,8 @@
 					log.info("end锛氭ā鏉挎煡璇㈠畬姣�");
 					ApplyDatasVO applyDatasVO = classVO.getObjects();
 					DataObjectVO dataObjectVO = new DataObjectVO();
-					List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+						((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 					).collect(Collectors.toList());
 					this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
 					log.info("end锛氭暟鎹粍缁囧畬姣�");
@@ -482,7 +486,8 @@
 					throw  new  Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
 				}
 
-				List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+				List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 				).collect(Collectors.toList());
 
 				List<PersonMasterData> personMasterDataList= personData.getMasterData();
@@ -558,6 +563,7 @@
 				sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0])));
 				sb.append(")");
 				List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
+
 				List<ClientBusinessObject> cboList=	ChangeMapTOClientBusinessObjects(dataMapList);
 				ApplyDatasVO applyDatasVO=new ApplyDatasVO();
 				ApplyDatasVO editDatasVO=new ApplyDatasVO();
@@ -759,7 +765,8 @@
 					throw  new  Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
 				}
 
-				List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+				List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 				).collect(Collectors.toList());
 				List<Map> dataList=new ArrayList<>();
 				List<String> codeList=new ArrayList<>();
@@ -1057,7 +1064,7 @@
 					if(CODE_CHECKCONFIG) {
 						//鏍¢獙鏄惁閰嶇疆
 						DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue(),codeClassifyVO.getOid());
-						if(dockingSystemConfig==null){
+						if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){
 							objerrorCode ="101";
 							throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ finalSystemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+codeClassifyVO.getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
 						}
@@ -1074,7 +1081,8 @@
 					ApplyDatasVO applyDatasVO = classVO.getObjects();
 					DataObjectVO dataObjectVO = new DataObjectVO();
 					//灏嗛粯璁ょ殑灞炴�у叏閮ㄦ浛鎹㈡帀
-					List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+						((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 					).collect(Collectors.toList());
 					this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
 					log.info("end锛氭暟鎹瀯寤哄畬姣�");
@@ -1413,7 +1421,7 @@
 					if(CODE_CHECKCONFIG) {
 						//鏍¢獙鏄惁閰嶇疆
 						DockingSystemConfig dockingSystemConfig= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue(),currentCodeClassify[0].getOid());
-						if(dockingSystemConfig==null){
+						if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){
 							errorid ="101";
 							throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ systemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+currentCodeClassify[0].getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
 						}
@@ -2064,7 +2072,7 @@
 				//鏍¢獙鏄惁閰嶇疆
 				DockingSystemConfig dockingSystemConfig=null;
 				dockingSystemConfig=checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid());
-				if(dockingSystemConfig==null){
+				if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){
 					errorid[0] ="101";
 					throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ finalSystemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+codeClassifyVO.getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
 				}
@@ -2078,7 +2086,8 @@
 			log.info("end锛氭ā鏉挎煡璇㈠畬姣�");
 			ApplyBZDatasVO applyBZDatasVO = classfyBZVO.getObjects();
 				DataObjectVO dataObjectVO = new DataObjectVO();
-			List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+			List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+				((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 			).collect(Collectors.toList());
 			List<ApplyBZDataVO> applyBZDataVOList=	applyBZDatasVO.getObject();
 			if(applyBZDataVOList.size()>1){
@@ -2293,9 +2302,11 @@
 
 	private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){
 		List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
+		DefaultAttrAssimtUtil.mapToLowerCase(oldDataMap,true);
+		final BladeUser user = AuthUtil.getUser();
 		oldDataMap.stream().forEach(dataMap->{
 			ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
-			DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,null);
+			DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,false,user);
 			for (String key:dataMap.keySet()){
 				Object value= dataMap.getOrDefault(key,"");
 				clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
@@ -2320,7 +2331,7 @@
 
 
 	/***
-	 * 鏍规嵁绌垮叆鐨勫弬鏁颁俊鎭牎楠岀爜娈佃鍒�
+	 * 鏍规嵁浼犲叆鐨勫弬鏁颁俊鎭牎楠岀爜娈佃鍒�
 	 */
 	private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo) throws Throwable{
 		List<CodeBasicSecVO>  codeBasicSecVOS= ruleVO.getSecVOList();
@@ -2370,7 +2381,7 @@
 					CodeOrderSecDTO.setSecValue(sectypeValue);
 					codeOrderSecDTOList.add(CodeOrderSecDTO);
 				} else {
-					message="浼犲叆鐨勭爜娈佃鍒欑己灏�" + name + "鐮佹";
+					message="浼犲叆鐨勭爜娈佃鍒欑己灏�" + name;
 					errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 				}
 			}
@@ -2415,7 +2426,7 @@
 		}catch (Throwable e){
 			objerrorCode="1";
 			e.printStackTrace();
-			throw new Throwable("MDM闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
+			throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�"+systemId+"銆戯紝鍒嗙被搴撲负:銆�"+libray+"銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
 		}
 		LinkedList<String> rowNameList=new LinkedList<>();
 		LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
@@ -2526,13 +2537,18 @@
 		}catch (Throwable e){
 			objerrorCode="1";
 			e.printStackTrace();
-			throw new Throwable("MDM闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
+			throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�"+systemId+"銆戯紝鍒嗙被搴撲负:銆�"+libray+"銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
 		}
 		LinkedList<String> rowNameList=new LinkedList<>();
 		LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
 		//鏍规嵁鍒嗙被妯℃澘缁勭粐鏁版嵁
 		final int[] index = {0};
 		try {
+			//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁鍏锋湁鍒嗙被娉ㄥ叆鐨勬墠杩囨护鍑烘潵
+			codeClassifyTemplateAttrVOList = codeClassifyTemplateAttrVOList.stream().filter(
+				s ->!DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) &&
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
+			).collect(Collectors.toList());
 			codeClassifyTemplateAttrVOList.stream().forEach(codeClassifyTemplateAttrVO -> {
 				String attrName = codeClassifyTemplateAttrVO.getName();
 				String field = codeClassifyTemplateAttrVO.getId();
@@ -2713,8 +2729,15 @@
 	 */
 	private DockingSystemConfig  checkIspass(String systemId,String type,String operationType,String classOid){
 		log.info("systemId锛�"+systemId+",type:"+SysIntegrationDataFlowTypeEnum.getTextByValue(type)+",operationType:"+sysIntegrationPushTypeEnum.getTextByValue(operationType)+",classOid:"+classOid);
-		CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid);
-		classOid=codeClassifyVO.getOid();
+		//CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid);
+		List<CodeClassify> codeClassifyList=  classifyService.selectAllLevelParentByOid(classOid);
+		List<String> classifyOids=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(codeClassifyList)) {
+			classifyOids = codeClassifyList.stream().map(CodeClassify::getOid).collect(Collectors.toList());
+		}else{
+			return null;
+		}
+		//classOid=codeClassifyVO.getOid();
 		//鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹�
 		LambdaQueryWrapper<DockingSystemConfig> queryWrapper = Wrappers.<DockingSystemConfig>lambdaQuery();
 		queryWrapper.eq(DockingSystemConfig::getUsedFlag, MdmDuckingConstant.SEND_FLAG_TRUE);
@@ -2722,11 +2745,16 @@
 		queryWrapper.eq(DockingSystemConfig::getDataFlowType,type);
 		queryWrapper.eq(DockingSystemConfig::getPushType,operationType);
 		if(StringUtils.isNotBlank(classOid)){
-			queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid);
+			queryWrapper.in(DockingSystemConfig::getClassifyOid,classifyOids);
 		}
 		List<DockingSystemConfig> dockingSystemConfigList=new ArrayList<>();
 		dockingSystemConfigList=	dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper);
 		if(!CollectionUtils.isEmpty(dockingSystemConfigList)){
+			return	dockingSystemConfigList.get(0);
+		}else{
+			return null;
+		}
+		/*if(!CollectionUtils.isEmpty(dockingSystemConfigList)){
 		 return	dockingSystemConfigList.get(0);
 		}else{
 			if(StringUtils.isNotBlank(codeClassifyVO.getParentCodeClassifyOid())) {
@@ -2737,6 +2765,6 @@
 			return dockingSystemConfigList.get(0);
 		}else{
 			return	new DockingSystemConfig();
-		}
+		}*/
 	}
 }

--
Gitblit v1.9.3