From 3534b13391b2a6152d0f91b72fda343b13a947cb Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期三, 22 一月 2025 15:55:27 +0800
Subject: [PATCH] 分类码段码值管理查询去除null的情况,分类码段生成编码时去除码值为null的情况

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  629 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 436 insertions(+), 193 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 59d595a..0996090 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
@@ -69,16 +69,16 @@
 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.ForkJoinPool;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
 import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC;
+import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_REFER_SEC;
 
 /***
  * 缁熶竴鎺ュ彛
@@ -86,7 +86,7 @@
 @Service
 @Slf4j
 @VciWebservice(path = "/universalInterface")
-public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
+public class UniversalInterfaceImpl implements UniversalInterfaceI {
 
 	/***
 	 * 鎿嶄綔绫诲瀷
@@ -114,11 +114,13 @@
 	 */
 	@Value("${bzApply.seriesFlow:seriesFlow}")
 	private String seriesFlow;
+
 	/***
 	 * 鏄惁鍙樻洿绯诲垪
 	 */
 	@Value("${bzApply.isEditSeries:isEditSeries}")
 	private String isEditSeries;
+
 	/***
 	 * 鎺у埗鏄惁鍐欏叆鍊肩殑鐮佹鍚嶇О
 	 */
@@ -130,7 +132,6 @@
 	 */
 	@Value("${bzApply.yearSecName:骞翠唬鍙穧")
 	private String yearSecName;
-
 
 	@Value("${code.universalinterface.checkSystemConfig:true}")
 	public boolean CODE_CHECKCONFIG;
@@ -203,8 +204,14 @@
 	 */
 	@Resource
 	private IDockingLogeService dockingLogeService;
+
 	@Resource
 	private IPasswordFreeLoginService passwordFreeLoginService;
+
+	/**
+	 * 鑷畾涔夊苟鍙慒orkJoinPool
+	 */
+	private static final ForkJoinPool customForkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors() - 1);
 
 	private  static String separator="##VCI##";
 	private  String errorid="0";
@@ -277,6 +284,7 @@
 				}
 			}catch (Throwable e){
 				errorid[0] ="101";
+				log.error("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�",e);
 				throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�");
 			}
 			ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
@@ -287,20 +295,20 @@
 				passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT), this.getRequest());
 			}catch (Throwable e){
 				errorid[0] ="1";
-				throw new Throwable("鐢ㄦ埛閴存潈澶辫触.");
+				throw new Throwable("鐢ㄦ埛閴存潈澶辫触锛屽師鍥狅細"+e.getMessage());
 			}
 			List<ClassfyVO> classVOList = classfysVO.getClassify();
-			InterParameterVO finalInterParameterVO = interParameterVO;
+			//InterParameterVO finalInterParameterVO = interParameterVO;
 			//杩欐槸璐﹀彿淇℃伅
 			SessionInfo sessionInfo = new SessionInfo();
 			sessionInfo.setUserId(userVo.getUserName());
 			sessionInfo.setUserName(userVo.getTrueName());
 			sessionInfo.setIp(userVo.getIp());
 			VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
-//			List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>();
+			//List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>();
 			String finalSystemId = systemId;
 			classVOList.stream().forEach(classVO -> {
-				log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode());
+				log.info("鍙傛暟锛氬垎绫籆ode:" + classVO.getClassCode());
 				boolean isCodeOrGroupCode=false;
 				LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
 				String libray ="";
@@ -362,13 +370,14 @@
 				} catch (Throwable e) {
 					List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject();
 					objerrorCode="1";
+					log.error("缂栫爜鐢宠澶辫触:",e);
 					if(!CollectionUtils.isEmpty(applyDataVOList)) {
 						applyDataVOList.stream().forEach(applyDataVO -> {
 							XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
 							xmlResultDataObjectDetailDO.setCode("");
 							xmlResultDataObjectDetailDO.setId(applyDataVO.getId());
 							xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
-							xmlResultDataObjectDetailDO.setMsg("缂栫爜缁存姢澶辫触:" + e.getMessage());
+							xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage());
 							resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
 						});
 					}else{
@@ -376,11 +385,11 @@
 						xmlResultDataObjectDetailDO.setCode("");
 						xmlResultDataObjectDetailDO.setId("");
 						xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
-						xmlResultDataObjectDetailDO.setMsg("缂栫爜缁存姢澶辫触:" + e.getMessage());
+						xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage());
 						resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
 					}
 					e.printStackTrace();
-					log.error(e.getMessage());
+					//log.error(e.getMessage());
 				}finally {
 					XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
 					resultClassfyVO.setClassCode(classVO.getClassCode());
@@ -399,7 +408,8 @@
 		}catch (Throwable e){
 			e.printStackTrace();
 			msg="鐢宠缂栫爜澶辫触:"+e.getMessage();
-			log.error(msg);
+			//log.error(msg);
+			log.error("缂栫爜鐢宠澶辫触:",e);
           /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
             XMLResultSystemVO.setErrorid(errorid);
             XMLResultSystemVO.setMsg("鐢宠缂栫爜澶辫触锛�->"+e.getMessage());
@@ -435,7 +445,8 @@
 				this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode");
 			}catch (Throwable e){
 				e.printStackTrace();
-				log.error(e.getMessage());
+				//log.error(e.getMessage());
+				log.error("淇濆瓨鏃ュ織鍑洪敊,鍘熷洜:",e);
 			}
 		}
 		log.info("杩斿洖鍙傛暟:"+resultStr);
@@ -451,7 +462,6 @@
 	 */
 	@Override
 	public ResultOrgData syncDataForPerson(PersonData personData) {
-
 		boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
 		ResultOrgData resultOrgData=new ResultOrgData();
 
@@ -462,7 +472,7 @@
 		if(isUsedFlag){
 			AtomicBoolean success= new AtomicBoolean(true);
 			List<PersonMasterData> masterDataList=new ArrayList<>();
-			List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
+			List<String> fields = Func.toStrList(personAndDeptConfig.getPersonFields());
 			try {
 				if(personData==null){
 					throw new Throwable("浼犲叆鍙傛暟涓簄ull");
@@ -470,6 +480,7 @@
 				try {
 					passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(),this.getRequest());
 				}catch (Throwable e){
+					log.error("鐢ㄦ埛閴存潈澶辫触:",e);
 					throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 				}
 				masterDataList = personData.getMasterData();
@@ -483,7 +494,7 @@
 				ClassfyVO classfyVO = new ClassfyVO();
 				classfyVO.setLibrary(personLibrary);
 				classfyVO.setClassCode(personClassCode);
-				CodeClassifyVO  codeClassifyVO=this.getClassfy(classfyVO,personLibrary);
+				CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary);
 				log.info("end锛氬垎绫绘煡璇㈠畬姣�");
 				//鑾峰彇鍒嗙被妯℃澘淇℃伅
 				if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
@@ -501,8 +512,7 @@
 				).collect(Collectors.toList());
 
 				List<PersonMasterData> personMasterDataList= personData.getMasterData();
-				List<Map> dataList=new ArrayList<>();
-
+				//List<Map> dataList=new ArrayList<>();
 				List<String> codeList=new ArrayList<>();
 
 				List<ApplyDataVO> applyDataVOList=new ArrayList<>();
@@ -521,7 +531,7 @@
 					 */
 					fields.stream().forEach(field->{
 						if(dataMap.containsKey(field)){
-							String enumFiled= dataMap.get(field);
+							String enumFiled = dataMap.get(field);
 							EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class);
 							String enumCode=enumerableData.getCode();
 							//String enumCodeValue=enumerableData.getName();
@@ -541,15 +551,15 @@
 
 					object.setProp(proppertyVOList);
 					if(personMasterData.getDr()==1){
-						object.setOperate("delete");//鎿嶄綔绫诲瀷
+						//鎿嶄綔绫诲瀷
+						object.setOperate("delete");
 						deleteDataVOList.add(object);
 					}else{
-						String worker_category=personMasterData.getWorker_category();
-
+						//String worker_category=personMasterData.getWorker_category();
 						object.setOperate("create");
 						applyDataVOList.add(object);
 					}
-					codeList.add(personMasterData.getLm_code());
+					codeList.add(object.getCode());
 				});
 
 				R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -573,12 +583,12 @@
 				sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0])));
 				sb.append(")");
 				List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
-
+				DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
 				List<ClientBusinessObject> cboList=	ChangeMapTOClientBusinessObjects(dataMapList);
 				ApplyDatasVO applyDatasVO=new ApplyDatasVO();
 				ApplyDatasVO editDatasVO=new ApplyDatasVO();
 				if(!CollectionUtils.isEmpty(cboList)){
-				Map<String,ClientBusinessObject> oldpplyDataVOMap=	cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+				Map<String,ClientBusinessObject> oldpplyDataVOMap =	cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
 					//鏁版嵁搴撲笉瀛樺湪鐨�
 					List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
 						String code =cbo.getCode();
@@ -604,8 +614,8 @@
 					DataObjectVO dataObjectVO = new DataObjectVO();
 					this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
 					log.info("start锛氫慨鏀规暟鎹墽琛屽畬姣�");
-					boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
-					mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
+				//	boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
+					mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isPersonApplyGroupCode);
 					log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�");
 				}
 				if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
@@ -618,7 +628,8 @@
 						throw  new Throwable("缂栫爜瑙勫垯");
 					}
 					List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>();
-					dataObjectVO.getRowData().parallelStream().forEach(rowData->{
+					final List<RowDatas> rowDatas = dataObjectVO.getRowData();
+					rowDatas.parallelStream().forEach(rowData->{
 						String mesg="";
 						try {
 							CodeOrderDTO orderDTO = new CodeOrderDTO();
@@ -666,8 +677,10 @@
 								}
 							}
 						} catch (Exception e) {
+							log.error("鏁版嵁淇濆瓨澶辫触:",e);
 							mesg=e.getMessage();
 							e.printStackTrace();
+						//	throw new ServiceException(e.getMessage());
 						}finally {
 							XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
 							x.setId(rowData.getOid());
@@ -680,21 +693,26 @@
 					resultDataObjectDetailDOs.addAll(xDOs);
 					boolean finalSuccess1 = success.get();
 					String finalMessage1 = message;
-					resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
-						ResultMdMapping resultMdMapping=new ResultMdMapping();
-						resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId());
-						resultMdMapping.setSuccess(finalSuccess1);
-						resultMdMapping.setEntityCode(" ");
-						resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode());
-						resultMdMapping.setMessage(finalMessage1);
-						resultMdMapping.setSubMdMappings(null);
-						resultMdMappingList.add(resultMdMapping);
-					});
+					// 闄愬埗绾跨▼骞惰鏁伴噺
+					customForkJoinPool.submit(()->{
+						resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
+							ResultMdMapping resultMdMapping=new ResultMdMapping();
+							resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId());
+							resultMdMapping.setSuccess(finalSuccess1);
+							resultMdMapping.setEntityCode(" ");
+							resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode());
+							resultMdMapping.setMessage(finalMessage1);
+							resultMdMapping.setSubMdMappings(null);
+							resultMdMappingList.add(resultMdMapping);
+						});
+					}).join();
 					log.info("end锛氱敵璇疯幏鍙栧畬姣�");
 				}
 			}catch (Throwable e){
 				success.set(false);
-				message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage();
+				message = "浜哄憳鏁版嵁鎺ユ敹澶辫触:"+e.getMessage();
+				msg = "浜哄憳鏁版嵁鎺ユ敹澶辫触:"+e.getMessage();
+				log.error( "浜哄憳鏁版嵁鎺ユ敹澶辫触:",e);
 				//缁勭粐杩斿洖缁撴灉
 				boolean finalSuccess = success.get();
 				String finalMessage = message;
@@ -711,7 +729,7 @@
 				resultOrgData.setMessage(message);
 				resultOrgData.setSuccess(success.get());
 				resultOrgData.setMdMappings(resultMdMappingList);
-				Object object = JSONObject.toJSON(resultOrgData);
+				//Object object = JSONObject.toJSON(resultOrgData);
 			}
 			String resultStr = JSONObject.toJSONString(resultOrgData);
 			String data = JSONObject.toJSONString(personData);
@@ -719,6 +737,7 @@
 				//璁板綍鏃ュ織
 				this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForPerson");
 			}catch (Throwable e){
+				log.error( "鏃ュ織淇濆瓨澶辫触:",e);
 				e.printStackTrace();
 			}
 		}
@@ -736,14 +755,14 @@
 	public ResultOrgData syncDataForOrg(OrgData orgData) {
 		boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
 		ResultOrgData resultOrgData=new ResultOrgData();
-		boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
+		// boolean isPersonApplyGroupCode= personAndDeptConfig.isDeptApplyGroupCode();
 		List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
 		AtomicBoolean success= new AtomicBoolean(true);
 		String message="";
 		String systemCode="";
 		if(isUsedFlag){
-			List<OrgMasterData> orgMasterDataList=new ArrayList<>();
-			List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
+			List<OrgMasterData> orgMasterDataList = new ArrayList<>();
+			List<String> fields = Func.toStrList(personAndDeptConfig.getDeptFields());
 			try {
 				if(orgData==null){
 					throw new Throwable("浼犲叆鍙傛暟涓簄ull");
@@ -752,20 +771,21 @@
 				try {
 					passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(),this.getRequest());
 				}catch (Throwable e){
+					log.error( "鐢ㄦ埛閴存潈澶辫触:",e);
 					throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 				}
 				orgMasterDataList = orgData.getMasterData();
-				String personLibrary = personAndDeptConfig.getPersonLibrary();
-				if (StringUtils.isBlank(personLibrary)) {
+				String deptLibrary = personAndDeptConfig.getDeptLibrary();
+				if (StringUtils.isBlank(deptLibrary)) {
 					success.set(false);
-					log.info("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
-					throw  new Throwable("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
+					log.info("闆嗘垚閰嶇疆缂哄皯閮ㄩ棬搴撹妭鐐逛俊鎭�,deptLibrary->" + deptLibrary);
+					throw  new Throwable("闆嗘垚閰嶇疆缂哄皯閮ㄩ棬搴撹妭鐐逛俊鎭�,deptLibrary->" + deptLibrary);
 				}
-				String personClassCode = personAndDeptConfig.getPersonClassCode();
+				String deptClassCode = personAndDeptConfig.getDeptClassCode();
 				ClassfyVO classfyVO = new ClassfyVO();
-				classfyVO.setLibrary(personLibrary);
-				classfyVO.setClassCode(personClassCode);
-				CodeClassifyVO  codeClassifyVO=this.getClassfy(classfyVO,personLibrary);
+				classfyVO.setLibrary(deptLibrary);
+				classfyVO.setClassCode(deptClassCode);
+				CodeClassifyVO codeClassifyVO = this.getClassfy(classfyVO,deptLibrary);
 				log.info("end锛氬垎绫绘煡璇㈠畬姣�");
 				//鑾峰彇鍒嗙被妯℃澘淇℃伅
 				if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
@@ -775,25 +795,24 @@
 				CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
 				if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
 					success.set(false);
-					throw  new  Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
+					throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
 				}
 
 				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<>();
 				List<ApplyDataVO> applyDataVOList=new ArrayList<>();
 				List<ApplyDataVO> deleteDataVOList=new ArrayList<>();
 				orgMasterDataList.stream().forEach(orgMasterData -> {
 					ApplyDataVO object=new ApplyDataVO();
-					object.setCode(orgMasterData.getMdm_code());//缂栫爜
+					object.setCode(orgMasterData.getDepartment_code());//缂栫爜
 					object.setCreator(orgMasterData.getCreator());//鍒涘缓鑰�
 					object.setEditor(orgMasterData.getModifier());//淇敼鑰�
-					object.setId(orgMasterData.getPk_mdm());//涓婚敭
+					object.setId(orgMasterData.getId());//涓婚敭
 					object.setStatus(CodeDefaultLC.RELEASED.getValue());//鐘舵�佸垯闇�瑕佸垽鏂�
 					Map<String,String> dataMap= VciBaseUtil.objectToMapString(orgMasterData);
-					List<ProppertyVO> proppertyVOList=new ArrayList<>();
+					List<ProppertyVO> proppertyVOList = new ArrayList<>();
 					/***
 					 * 鏍规嵁閰嶇疆鏂囦欢鑾峰彇鏋氫妇鍊�
 					 */
@@ -822,11 +841,10 @@
 						object.setOperate("delete");//鎿嶄綔绫诲瀷
 						deleteDataVOList.add(object);
 					}else{
-
 						object.setOperate("create");
 						applyDataVOList.add(object);
 					}
-					codeList.add(orgMasterData.getMdm_code());
+					codeList.add(object.getCode());
 				});
 
 				R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -838,10 +856,10 @@
 					throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�");
 				}
 				String tableName = btmTypeVO.getTableName();
-				if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) {
+				if (StringUtils.isBlank(tableName)) {
 					throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�");
 				}
-				StringBuffer sb=new StringBuffer();
+				StringBuffer sb = new StringBuffer();
 				sb.append(" select * from ");
 				sb.append(tableName);
 				sb.append(" where 1=1 ");
@@ -849,15 +867,16 @@
 				sb.append(" and id in (");
 				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);
+				List<Map<String,String>> dataMapList = commonsMapper.queryByOnlySqlForMap(sb.toString());
+				DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
+				List<ClientBusinessObject> cboList = ChangeMapTOClientBusinessObjects(dataMapList);
 				ApplyDatasVO applyDatasVO=new ApplyDatasVO();
 				ApplyDatasVO editDatasVO=new ApplyDatasVO();
 				if(!CollectionUtils.isEmpty(cboList)){
-					Map<String,ClientBusinessObject> oldpplyDataVOMap=	cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+					Map<String,ClientBusinessObject> oldpplyDataVOMap =	cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
 					//鏁版嵁搴撲笉瀛樺湪鐨�
 					List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
-						String code =cbo.getCode();
+						String code = cbo.getCode();
 						return !oldpplyDataVOMap.containsKey(code);
 					}).collect(Collectors.toList());
 					applyDatasVO.setObject(applyApplyDataVOList);
@@ -878,15 +897,15 @@
 				LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
 				if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){
 					DataObjectVO dataObjectVO = new DataObjectVO();
-					this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
+					this.getConfigDatas(systemCode, deptLibrary, editDatasVO, attrVOS, dataObjectVO);
 					log.info("start锛氫慨鏀规暟鎹墽琛屽畬姣�");
-					boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
+					boolean personApplyGroupCode = false;//personAndDeptConfig.isPersonApplyGroupCode();
 					mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
 					log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�");
 				}
 				if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
 					DataObjectVO dataObjectVO = new DataObjectVO();
-					this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO);
+					this.getConfigDatas(systemCode, deptLibrary, applyDatasVO, attrVOS, dataObjectVO);
 
 					CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
 					CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
@@ -894,67 +913,72 @@
 						throw  new Throwable("缂栫爜瑙勫垯");
 					}
 					List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>();
-					dataObjectVO.getRowData().parallelStream().forEach(rowData->{
-						String mesg="";
-						try {
-							CodeOrderDTO orderDTO = new CodeOrderDTO();
-							List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
-							orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭
-							orderDTO.setTemplateOid(templateVO.getOid());
-							orderDTO.setCreator(rowData.getCreator());
-							orderDTO.setLastModifier(rowData.getEditor());
-							orderDTO.setLcStatus(rowData.getStatus());
-							if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
-								ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
-									if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//瑙勫垯涔嬪畾涔変负鍙彉鐮佹瀛樺偍涓绘暟鎹紶閫掕繃鏉ョ殑鏁版嵁
-										CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
-										CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
-										CodeOrderSecDTO.setSecValue(rowData.getCode());
-										codeOrderSecDTOList.add(CodeOrderSecDTO);
-
-									}
-								});
-							}
-							orderDTO.setCodeRuleOid(ruleVO.getOid());
-							orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜
-							orderDTO.setData(rowData.getFiledValue());
-							String code=engineService.addSaveCodeNotauthUser(orderDTO,false);
-							if(StringUtils.isNotBlank(code)) {
-								//rowData.setCode(code);
-								StringBuffer sqlsb = new StringBuffer();
-								sqlsb.append(" select * from ");
-								sqlsb.append(tableName);
-								sqlsb.append(" where 1=1 ");
-								sqlsb.append(" and lastr=1 and lastv=1");
-								sqlsb.append(" and id in (");
-								sqlsb.append(VciBaseUtil.toInSql(code));
-								sqlsb.append(")");
-								List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
-								if (!CollectionUtils.isEmpty(newDataMapList)) {
-									String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
-									List<String> oidList = new ArrayList<>();
-									oidList.add(oid);
-									//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
-									if (isPersonApplyGroupCode) {
-										mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
-										success.set(true);
-										mesg = "鏁版嵁淇濆瓨鎴愬姛锛岀瓑寰呯敵璇烽泦鍥㈢爜";
-									}
+					//闄愬埗绾跨▼骞惰鏁伴噺
+					//customForkJoinPool.submit(()->{
+					//	dataObjectVO.getRowData().parallelStream().forEach(rowData->{
+					dataObjectVO.getRowData().forEach(rowData->{
+							String mesg="";
+							try {
+								CodeOrderDTO orderDTO = new CodeOrderDTO();
+								List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
+								orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭
+								orderDTO.setTemplateOid(templateVO.getOid());
+								orderDTO.setCreator(rowData.getCreator());
+								orderDTO.setLastModifier(rowData.getEditor());
+								orderDTO.setLcStatus(rowData.getStatus());
+								if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
+									ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
+										if (codeBasicSecVO.getSecType().equals("codevariablesec")) {
+											//瑙勫垯涔嬪畾涔変负鍙彉鐮佹瀛樺偍涓绘暟鎹紶閫掕繃鏉ョ殑鏁版嵁
+											CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
+											CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
+											CodeOrderSecDTO.setSecValue(rowData.getCode());
+											codeOrderSecDTOList.add(CodeOrderSecDTO);
+										}
+									});
 								}
+								orderDTO.setCodeRuleOid(ruleVO.getOid());
+								orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜
+								orderDTO.setData(rowData.getFiledValue());
+								String code = engineService.addSaveCodeNotauthUser(orderDTO,false);
+								/*if(StringUtils.isNotBlank(code)) {
+									//rowData.setCode(code);
+									StringBuffer sqlsb = new StringBuffer();
+									sqlsb.append(" select * from ");
+									sqlsb.append(tableName);
+									sqlsb.append(" where 1=1 ");
+									sqlsb.append(" and lastr=1 and lastv=1");
+									sqlsb.append(" and id in (");
+									sqlsb.append(VciBaseUtil.toInSql(code));
+									sqlsb.append(")");
+									List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
+									if (!CollectionUtils.isEmpty(newDataMapList)) {
+										String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
+										List<String> oidList = new ArrayList<>();
+										oidList.add(oid);
+										//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
+										if (isPersonApplyGroupCode) {
+											mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
+											success.set(true);
+											mesg = "鏁版嵁淇濆瓨鎴愬姛锛岀瓑寰呯敵璇烽泦鍥㈢爜";
+										}
+									}
+								}*/
+							} catch (Exception e) {
+								log.error( "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:",e);
+								mesg=e.getMessage();
+								e.printStackTrace();
+							//	throw new ServiceException(e.getMessage());
+							}finally {
+								XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
+								x.setId(rowData.getOid());
+								x.setCode(rowData.getCode());
+								x.setMsg(mesg);
+								x.setErrorid("1");
+								xDOs.add(x);
 							}
-						} catch (Exception e) {
-							mesg=e.getMessage();
-							e.getMessage();
-							e.printStackTrace();
-						}finally {
-							XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
-							x.setId(rowData.getOid());
-							x.setCode(rowData.getCode());
-							x.setMsg(mesg);
-							x.setErrorid("1");
-							xDOs.add(x);
-						}
-					});
+						});
+					//}).join();
 					resultDataObjectDetailDOs.addAll(xDOs);
 					boolean finalSuccess1 = success.get();
 					String finalMessage1 = message;
@@ -972,7 +996,9 @@
 				}
 			}catch (Throwable e){
 				success.set(false);
-				message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage();
+				message = "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:"+e.getMessage();
+				msg = "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:"+e.getMessage();
+				log.error( "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:",e);
 				//缁勭粐杩斿洖缁撴灉
 				boolean finalSuccess = success.get();
 				String finalMessage = message;
@@ -997,6 +1023,7 @@
 				//璁板綍鏃ュ織
 				this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForOrg");
 			}catch (Throwable e){
+				log.error( "淇濆瓨鏃ュ織澶辫触:",e);
 				e.printStackTrace();
 			}
 		}
@@ -1053,10 +1080,11 @@
 				passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
 			}catch (Throwable e){
 				errorid = "1";
+				log.error("鐢ㄦ埛閴存潈澶辫触",e);
 				throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 			}
 			List<ClassfyVO> classVOList = classfysVO.getClassify();
-			InterParameterVO finalInterParameterVO = interParameterVO;
+			//InterParameterVO finalInterParameterVO = interParameterVO;
 			//杩欐槸璐﹀彿淇℃伅
 			SessionInfo sessionInfo = new SessionInfo();
 			sessionInfo.setUserId(userVo.getUserName());
@@ -1108,6 +1136,8 @@
 					mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode);
 					log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�");
 				} catch (Throwable e) {
+					msg="缂栫爜鏇存敼/鐘舵�佹洿鏀�/鍒犻櫎:";
+					log.error(msg,e);
 					List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject();
 					objerrorCode="1";
 					if(!CollectionUtils.isEmpty(applyDataVOList)) {
@@ -1141,6 +1171,7 @@
 		}catch (Throwable e){
 			e.printStackTrace();
 			msg="缂栫爜鏇存敼/鐘舵�佹洿鏀�/鍒犻櫎:"+e.getMessage();
+			log.error(msg,e);
           /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
             XMLResultSystemVO.setErrorid(errorid);
             XMLResultSystemVO.setMsg("鐢宠缂栫爜澶辫触锛�->"+e.getMessage());
@@ -1175,6 +1206,7 @@
 				//璁板綍鏃ュ織
 				this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "syncEditData");
 			}catch (Throwable e){
+				log.error("淇濆瓨鏃ュ織澶辫触",e);
 				e.printStackTrace();
 			}
 		}
@@ -1201,7 +1233,7 @@
 		log.info("鏌ヨ鍒嗙被鐨勬暟鎹被鍨�:->"+dataType);
 		ResultClassifyVO resultClassifyVO =new ResultClassifyVO();
 		List<ClassifyVO> classifyVOList=new ArrayList<>();
-		com.vci.ubcs.code.vo.webserviceModel.classify.ResultData resultData=new com.vci.ubcs.code.vo.webserviceModel.classify.ResultData();
+		ResultData resultData=new ResultData();
 		try {
 			if (StringUtils.isBlank(data)) {
 				errorid = "101";
@@ -1223,6 +1255,7 @@
 				errorid = "101";
 				msg="鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�";
 				e.printStackTrace();
+				log.error("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�",e);
 				throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�");
 			}
 			QueryData queryData=queryClassifyVO.getData();
@@ -1329,7 +1362,9 @@
 			resultData.setLibrary(libraryVo);
 		}catch (Throwable e){
 			e.printStackTrace();
+
 			msg="鏌ヨ鍒嗙被澶辫触:"+e.getMessage();
+			log.error(msg,e);
 		}finally {
 			resultData.setErrorid(errorid);
 			resultData.setMsg(msg);
@@ -1350,6 +1385,7 @@
 			//璁板綍鏃ュ織
 			this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify");
 		}catch (Throwable e){
+			log.error("淇濆瓨鏃ュ織淇℃伅澶辫触锛�",e);
 			e.printStackTrace();
 		}
 		log.info("杩斿洖鍙傛暟:"+resultStr);
@@ -1389,6 +1425,7 @@
 				errorid = "101";
 				msg = "鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�";
 				e.printStackTrace();
+				log.error( "鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�",e);
 				throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�");
 			}
 			CondtionsVO condtionsVO=dataCondtionsVO.getCondtions();
@@ -1400,6 +1437,7 @@
 				passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
 			}catch (Throwable e){
 				errorid = "1";
+				log.error("鐢ㄦ埛閴存潈澶辫触",e);
 				throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 			}
 			CondtionVO condtionVO= condtionsVO.getCondtion();
@@ -1498,7 +1536,8 @@
 					sb.append(" and lastr=1 and lastv=1" );
 					sb.append(" and codeclsfid in (" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) +")");
 					sb.append(" and Lcstatus in (" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) +")");
-					List<Map<String,String>>  newDataList= commonsMapper.queryByOnlySqlForMap(sb.toString());
+					List<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString());
+					DefaultAttrAssimtUtil.mapToLowerCase(newDataList,true);
 					List<ClientBusinessObject> clientBusinessObjects=	ChangeMapTOClientBusinessObjects(newDataList);
 					List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>();
 					if(!CollectionUtils.isEmpty(clientBusinessObjects)){
@@ -1553,7 +1592,9 @@
 			}
 		}catch (Throwable e){
 			e.printStackTrace();
+
 			msg="鏌ヨ鏁版嵁澶辫触:"+e.getMessage();
+			log.error(msg,e);
 		}finally {
 			resultDataVO.setErrorid(errorid);
 			resultDataVO.setMsg(msg);
@@ -1573,6 +1614,7 @@
 		try {    //璁板綍鏃ュ織
 			this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryData");
 		}catch (Throwable e){
+			log.error("淇濆瓨鏃ュ織淇℃伅澶辫触:",e);
 			e.printStackTrace();
 		}
 		log.info("杩斿洖鍙傛暟:"+resultStr);
@@ -1611,6 +1653,7 @@
 			} catch (Throwable e) {
 				errorid = "101";
 				msg = "鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�";
+				log.error(msg,e);
 				e.printStackTrace();
 				throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�");
 			}
@@ -1623,6 +1666,7 @@
 				passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
 			}catch (Throwable e){
 				errorid = "1";
+				log.error("鐢ㄦ埛閴存潈澶辫触",e);
 				throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 			}
 
@@ -2011,6 +2055,7 @@
 		}catch (Throwable e){
 			e.printStackTrace();
 			msg="鏌ヨ鍒嗙被澶辫触:"+e.getMessage();
+			log.error("鏌ヨ鍒嗙被澶辫触:",e);
 		}finally {
 			resultClassifyRuleData.setErrorid(errorid);
 			resultClassifyRuleData.setMsg(msg);
@@ -2031,6 +2076,7 @@
 			//璁板綍鏃ュ織
 			this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassifyRule");
 		}catch (Throwable e){
+			log.error("淇濆瓨鏃ュ織淇℃伅澶辫触:",e);
 			e.printStackTrace();
 		}
 		log.info("杩斿洖鍙傛暟:"+resultStr);
@@ -2075,6 +2121,7 @@
 				}
 			} catch (Throwable e) {
 				errorid[0] = "101";
+				log.error("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�:",e);
 				throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�");
 			}
 			classfyBZVO = applyBZParamVO.getData().getClassify();
@@ -2086,6 +2133,7 @@
 				passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest());
 			}catch (Throwable e){
 				errorid[0] = "1";
+				log.error("鐢ㄦ埛閴存潈澶辫触:",e);
 				throw new Throwable("鐢ㄦ埛閴存潈澶辫触");
 			}
 			//杩欐槸璐﹀彿淇℃伅
@@ -2180,6 +2228,7 @@
 					codeBZApplyDTO.setLastModifier(applyBZDataVO.getEditor());
 					codeBZApplyDTO.setLcStatus(applyBZDataVO.getStatus());
 					ApplyBZDatasVO newApplyBZDatasVO=new ApplyBZDatasVO();
+					applyBZDataVO.setProp(proppertyVOList);
 					newApplyBZDatasVO.setObject(Arrays.asList(applyBZDataVO));
 					log.info("end锛氭暟鎹粍缁囧畬姣�");
 					this.getConfigDatas(finalSystemId, finalLibray, newApplyBZDatasVO, attrVOS, dataObjectVO);
@@ -2190,6 +2239,7 @@
 				} catch (Throwable e) {
 					objerrorCode = "1";
 					msg="缂栫爜鐢宠澶辫触:" +e.getMessage();
+					log.error(msg,e);
 					e.printStackTrace();
 				}finally {
 					XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
@@ -2214,6 +2264,7 @@
 		}catch (Throwable e){
 			e.printStackTrace();
 			msg="鐢宠缂栫爜澶辫触:"+e.getMessage();
+			log.error(msg,e);
 		}finally {
 			XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
 			xmlResultSystemVO.setClassifys(resultClassfyVOList);
@@ -2239,6 +2290,7 @@
 				//璁板綍鏃ュ織
 				this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCodeForBZ");
 			}catch (Throwable e){
+				log.error("淇濆瓨鏃ュ織淇℃伅澶辫触锛�",e);
 				e.printStackTrace();
 			}
 		}
@@ -2246,6 +2298,7 @@
 		//璋冪敤闆嗗洟鐢宠鎺ュ彛鐢宠闆嗗洟鐮�
 		return resultStr;
 	}
+
 	private void setPropertyValue(String key,String value,List<ProppertyVO> proppertyVOList){
 		ProppertyVO proppertyVO=new ProppertyVO();
 		proppertyVO.setKey(key);
@@ -2253,6 +2306,7 @@
 		proppertyVOList.add(proppertyVO);
 
 	}
+
 	/***
 	 * 鏌ヨ鏍¢獙鍒嗙被淇℃伅
 	 * @param classfyVO
@@ -2291,10 +2345,12 @@
 			}
 		}catch (Throwable e){
 			objerrorCode="100";
+			log.error("鑾峰彇鍒嗙被淇℃伅澶辫触:",e);
 			throw 	new  Throwable("鑾峰彇鍒嗙被淇℃伅澶辫触:"+e.getMessage());
 		}
 		return classifyVO;
 	}
+
 	/***
 	 * 鏌ヨ鏍¢獙鍒嗙被淇℃伅
 	 * @param classfyVO
@@ -2333,6 +2389,7 @@
 			}
 		}catch (Throwable e){
 			objerrorCode="100";
+			log.error("鑾峰彇鍒嗙被淇℃伅澶辫触:",e);
 			throw 	new  Throwable("鑾峰彇鍒嗙被淇℃伅澶辫触:"+e.getMessage());
 		}
 		return classifyVO;
@@ -2354,7 +2411,6 @@
 		return clientBusinessObjectList;
 	}
 
-
 	private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOsBZ(CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo){
 		List<CodeBasicSecVO>  codeBasicSecVOS= ruleVO.getSecVOList();
 		List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
@@ -2366,7 +2422,6 @@
 		}
 		return codeOrderSecDTOList;
 	}
-
 
 	/***
 	 * 鏍规嵁浼犲叆鐨勫弬鏁颁俊鎭牎楠岀爜娈佃鍒�
@@ -2382,7 +2437,7 @@
 		Map<String,String> errorMap=new HashMap<>();
 		for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
 			String sectype = codeBasicSecVO.getSecType();
-			String newSecName=codeBasicSecVO.getName();
+		//	String newSecName=codeBasicSecVO.getName();
 			String classifySecOid= codeBasicSecVO.getOid();
 			String message="";
 			if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
@@ -2395,11 +2450,10 @@
 					CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
 					String sectypeValue = sectionVOMap.get(name);
 					log.info("鐮佹鍊�:"+sectypeValue);
-					CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(sectype);
-					if(CODE_CLASSIFY_SEC.equals(secType)) {//濡傛灉鏄垎绫荤殑璇濓紝鍒欓渶瑕佸尮閰嶄紶杩囨潵鐨勫垎绫讳唬鍙蜂笌
+				//	CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(sectype);
+					if(CODE_CLASSIFY_SEC.getValue().equals(sectype)) {//濡傛灉鏄垎绫荤殑璇濓紝鍒欓渶瑕佸尮閰嶄紶杩囨潵鐨勫垎绫讳唬鍙蜂笌
 						//鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
 						List<CodeClassifyValue> codeClassifyValueDOList = codeClassifyValueService.list(Wrappers.<CodeClassifyValue>query().lambda().eq(CodeClassifyValue::getCodeClassifySecOid,classifySecOid));
-
 						if (!CollectionUtils.isEmpty(codeClassifyValueDOList)) {
 							Map<String, CodeClassifyValue> codeClassifyValueDOMap = codeClassifyValueDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2));
 							if(codeClassifyValueDOMap.containsKey(sectypeValue)){
@@ -2411,9 +2465,157 @@
 								errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 							}
 						}
+					}else if(CODE_REFER_SEC.getValue().equals(sectype)){
+						String referBtmId=codeBasicSecVO.getReferBtmId();
+						String btmName=codeBasicSecVO.getReferBtmName();
+						String referConfig= codeBasicSecVO.getReferConfig();
+						CoderefersecSearchVO coderefersecSearchVO=new CoderefersecSearchVO();
+						if(StringUtils.isNotBlank(referConfig)){
+							coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class);
+						}
+						String buildSqlwhere="";
+						List<CodeSectionValueVO> codeSectionValueVOList=new ArrayList<>();
+						if(coderefersecSearchVO!=null) {
+							Map<String, Object> condtionMap = new HashMap<>();
+							String valueField= coderefersecSearchVO.getValueField();
+							if(StringUtils.isNotBlank(valueField)){
+								condtionMap.put(valueField,sectypeValue);
+							}
+							if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.DEFAULT.getValue()) || coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.GRID.getValue())) {//榛樿鏍峰紡/鍒楄〃
+								List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
+								if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
+									codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
+										condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
+									});
+								}
+								if(!CollectionUtils.isEmpty(condtionMap)) {
+									buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
+								}
+								//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+								R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
+								if (!listR.isSuccess() || listR.getData().size() == 0) {
+									throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+								}
+								String referTable = listR.getData().get(0).getTableName();
+								StringBuffer sb = new StringBuffer();
+								sb.append(" select * from  ");
+								sb.append(referTable);
+								sb.append(" where 1=1  ");
+								if (StringUtils.isNotBlank(buildSqlwhere)) {
+									sb.append(buildSqlwhere);
+								}
+								List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
+								//String valueField = coderefersecSearchVO.getValueField();
+								String textField = coderefersecSearchVO.getTextField();
+								final int[] num = {0};
+								if (!CollectionUtils.isEmpty(ListMap)) {
+									ListMap.stream().forEach(map -> {
+										num[0]++;
+										String id = Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
+										String value = Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
+										String text = Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
+										String description = Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
+										CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, id, "", description);
+										codeSectionValueVOList.add(sectionValueVO);
+									});
+								}
+							}else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())) {//鏍戝舰
+								//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+								R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
+								if (!listR.isSuccess() || listR.getData().size() == 0) {
+									throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+								}
+								String referTable = listR.getData().get(0).getTableName();
+
+								String oidFieldName = StringUtils.isNotBlank(coderefersecSearchVO.getParentUsedField())?coderefersecSearchVO.getParentUsedField():coderefersecSearchVO.getValueField();
+								String parentValue =coderefersecSearchVO.getParentValue();
+								String parentFieldName =StringUtils.isBlank(coderefersecSearchVO.getParentFieldName())?"":coderefersecSearchVO.getParentFieldName();
+								List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
+								List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=coderefersecSearchVO.getCodeShowFieldConfigVOS();
+								if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
+									codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
+										condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
+									});
+								}
+								if(!CollectionUtils.isEmpty(condtionMap)) {
+									buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
+								}
+								//if("all".equals(coderefersecSearchVO.getLoadType())) {
+								String parentOidSql = "";
+								if(StringUtils.isNotBlank(parentValue)){
+									String temp=parentValue;
+									if(temp.startsWith(QueryOptionConstant.IN)){
+										temp = temp.substring((QueryOptionConstant.IN).length()).trim();
+										parentOidSql = " in " + ((temp.startsWith("(")  && temp.endsWith(")"))?temp:"(" + temp + ")");
+									}else if(temp.startsWith(QueryOptionConstant.NOTIN)){
+										parentOidSql = " not in " + ((temp.startsWith("(")  && temp.endsWith(")"))?temp:"(" + temp + ")");
+									}else if(temp.startsWith(QueryOptionConstant.NOTEQUAL)){
+										temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim();
+										parentOidSql = QueryOptionConstant.NOTEQUAL +  " " + ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}else if(temp.startsWith(QueryOptionConstant.MORETHAN)){
+										temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim();
+										parentOidSql = QueryOptionConstant.MORETHAN + " " +  ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}else if(temp.startsWith(QueryOptionConstant.MORE)){
+										temp = temp.substring((QueryOptionConstant.MORE).length()).trim();
+										parentOidSql = QueryOptionConstant.MORE + " " +  ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}else if(temp.startsWith(QueryOptionConstant.LESSTHAN)){
+										temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim();
+										parentOidSql = QueryOptionConstant.LESSTHAN + " " +  ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}else if(temp.startsWith(QueryOptionConstant.LESS)){
+										temp = temp.substring((QueryOptionConstant.LESS).length()).trim();
+										parentOidSql = QueryOptionConstant.LESS +  " " + ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) {
+										parentOidSql = " is not null";
+									} else if (temp.startsWith(QueryOptionConstant.ISNULL)) {
+										parentOidSql = " is  null";
+									} else if(temp.contains("*")){
+										parentOidSql = " like " + ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'").replace("*","%");
+									}else {
+										parentOidSql = " = " + ((temp.startsWith("'")  && temp.endsWith("'"))?temp:"'" + temp + "'");
+									}
+								}
+								//鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+								buildSqlwhere+= " and oid  in (select oid from " +referTable + " START WITH " + coderefersecSearchVO.getParentFieldName() + " "+
+									parentOidSql +
+									" CONNECT BY PRIOR " + oidFieldName + " = " + parentFieldName + ")";
+								StringBuffer sb = new StringBuffer();
+								sb.append(" select * from  ");
+								sb.append(referTable);
+								sb.append(" where 1=1  ");
+								if (StringUtils.isNotBlank(buildSqlwhere)) {
+									sb.append(buildSqlwhere);
+								}
+								List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
+								String textField = coderefersecSearchVO.getTextField();
+								final int[] num = {0};
+								if (!CollectionUtils.isEmpty(ListMap)) {
+									ListMap.stream().forEach(map -> {
+										num[0]++;
+										String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
+										String value =Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
+										String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
+										String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
+										String pid =Func.isNull(map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString();
+										CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description);
+										codeSectionValueVOList.add(sectionValueVO);
+									});
+								}
+							}
+						}
+						if(!CollectionUtils.isEmpty(codeSectionValueVOList)){
+							Map<String, CodeSectionValueVO> codeSectionValueVOMap = codeSectionValueVOList.stream().collect(Collectors.toMap(s -> s.getValue(), t -> t, (o1, o2) -> o2));
+							if(!codeSectionValueVOMap.containsKey(sectypeValue)){
+								message="浼犲叆鐨勭紪鐮佽鍒欑爜娈�:銆�"+name+"銆戜负"+CODE_REFER_SEC.getText()+",鍏跺搴旂殑鍊笺��"+sectypeValue+"銆戯紝鍦ㄧ紪鐮佺郴缁熶笉瀛樺湪";
+								errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
+							}
+						}else{
+							message="浼犲叆鐨勭紪鐮佽鍒欑爜娈�:銆�"+name+"銆戜负"+CODE_REFER_SEC.getText()+",鍏跺搴旂殑鍊笺��"+sectypeValue+"銆戯紝鍦ㄧ紪鐮佺郴缁熶笉瀛樺湪";
+							errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
+						}
 					}
-					if(StringUtils.isBlank(sectypeValue)&&!newSecName.equals(secName)){
-						message="浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 銆戠殑鍊间笉鍏佽涓虹┖";
+
+					if(StringUtils.isBlank(sectypeValue)&&!name.equals(secName)){
+						message="浼犲叆鐨勭爜娈碉細銆�" + name + " 銆戠殑鍊间笉鍏佽涓虹┖";
 						errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 					}
 					CodeOrderSecDTO.setSecValue(sectypeValue);
@@ -2431,41 +2633,61 @@
 		return codeOrderSecDTOList;
 	}
 
+	/***
+	 * 璇诲彇灞炴�ф槧灏勯厤缃俊鎭�
+	 * @param systemId
+	 * @param libray
+	 * @param applyDatasVO
+	 * @param codeClassifyTemplateAttrVOList
+	 * @param dataObjectVO
+	 * @throws Throwable
+	 */
 	public void getConfigDatas(String systemId,String libray, ApplyBZDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
 
-		LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
+		// LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
 		//濡傛灉灏嗘暟鎹浆鎹㈡垚鎵�闇�瑕佺殑鏁版嵁瀵硅薄
 		Map<String, String> attrMapConfigMap=new HashMap<>();
 		Map<String, String> propMaps=new HashMap<>();
-		try {
-			log.info("寮�濮嬭鍙栫郴缁熼厤缃枃浠� start");
-			Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
-			log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size());
-			//stringStringMap.put("RLM","D:\\RLM.xml");
-			if(!CollectionUtils.isEmpty(stringStringMap)) {
+		log.info("寮�濮嬭鍙栫郴缁熼厤缃枃浠� start");
+		Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
+		log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size());
+		//stringStringMap.put("RLM","D:\\RLM.xml");
+		if(!CollectionUtils.isEmpty(stringStringMap)) {
+			List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>();
+			try {
 				log.info("info锛氶渶瑕佽鍙栭厤缃枃浠�");
 				LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap);
-				List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf();
-				if(!CollectionUtils.isEmpty(libraryClsfDOList)) {
-					Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
-					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
-					String path=stringStringMap.get(systemId);
-					if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
-						log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
-						List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
-						propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
-						log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+" + clsfAttrMappingDOList.size());
-					}else{
-						throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�"+systemId+"銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�"+path+"銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��"+libray+"銆戝睘鎬ф槧灏勪俊鎭厤缃�");
-					}
-				}
+				libraryClsfDOList = libraryDO.getClsf();
+			} catch (Throwable e) {
+				objerrorCode = "1";
+				e.printStackTrace();
+				log.error("闆嗘垚绯荤粺灞炴�ч厤缃枃浠惰鍙栧け璐ワ細",e);
+				throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�" + systemId + "銆戯紝鍒嗙被搴撲负:銆�" + libray + "銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
 			}
-			log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end ");
-		}catch (Throwable e){
-			objerrorCode="1";
-			e.printStackTrace();
-			throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�"+systemId+"銆戯紝鍒嗙被搴撲负:銆�"+libray+"銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
+			// String path = stringStringMap.get(systemId);
+			// 蹇界暐key澶у皬鍐欙紝鑾峰彇閰嶇疆鐨勬槧灏勬枃浠惰矾寰�
+			String path = VciBaseUtil.getMapStrValueIgnoreCase(stringStringMap,systemId);
+			if (!CollectionUtils.isEmpty(libraryClsfDOList)) {
+				Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
+				log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
+				if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
+					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
+					List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
+					propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
+					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+" + clsfAttrMappingDOList.size());
+				} else {
+					objerrorCode = "1";
+					throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�" + systemId + "銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�" + path + "銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��" + libray + "銆戝睘鎬ф槧灏勪俊鎭厤缃�");
+				}
+			}else{
+				objerrorCode = "1";
+				throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�" + systemId + "銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�" + path + "銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��" + libray + "銆戝睘鎬ф槧灏勪俊鎭厤缃�");
+			}
+		}else{
+			objerrorCode = "1";
+			throw new Throwable("鏈幏鍙栧埌闆嗘垚灞炴�ф槧灏勭郴缁熼厤缃俊鎭�");
 		}
+		log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end ");
 		LinkedList<String> rowNameList=new LinkedList<>();
 		LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
 		//鏍规嵁鍒嗙被妯℃澘缁勭粐鏁版嵁
@@ -2510,6 +2732,7 @@
 							String dataValue = sourceKeyValueMap.get(sourceKey);
 							if (attrMapConfigMap.containsKey(sourceKey)) {
 								String targetKey = attrMapConfigMap.get(sourceKey);
+								log.info("xxxxx灞炴�ф槧灏勫��:sourceKey銆�"+sourceKey+"銆戔�斺�斻��+targetKey---銆�"+targetKey+":"+dataValue);
 								keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue);
 							}
 						});
@@ -2535,12 +2758,19 @@
 			dataObjectVO.setRowData(rowDataList);
 		}catch (Throwable e){
 			objerrorCode="1";
-			throw new   Throwable("缁勭粐鏁版嵁鏄犲皠鍊煎け璐�");
+			log.error("缁勭粐灞炴�ф槧灏勫�煎け璐ワ細",e);
+			throw new   Throwable("缁勭粐灞炴�ф槧灏勫�煎け璐�");
 		}
 	}
 
 	/***
-	 * 鏍规嵁灞炴�ф槧灏勮浆鎹㈢紪鐮佹墍闇�瀛楁
+	 * 璇诲彇灞炴�ф槧灏勯厤缃俊鎭�
+	 * @param systemId
+	 * @param libray
+	 * @param applyDatasVO
+	 * @param codeClassifyTemplateAttrVOList
+	 * @param dataObjectVO
+	 * @throws Throwable
 	 */
 	public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
 
@@ -2548,35 +2778,45 @@
 		//濡傛灉灏嗘暟鎹浆鎹㈡垚鎵�闇�瑕佺殑鏁版嵁瀵硅薄
 		Map<String, String> attrMapConfigMap=new HashMap<>();
 		Map<String, String> propMaps=new HashMap<>();
-		try {
-			log.info("寮�濮嬭鍙栫郴缁熼厤缃枃浠� start");
-			Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
-			log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size());
-			//stringStringMap.put("RLM","D:\\RLM.xml");
-			if(!CollectionUtils.isEmpty(stringStringMap)) {
+		log.info("寮�濮嬭鍙栫郴缁熼厤缃枃浠� start");
+		Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
+		log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size());
+		if(!CollectionUtils.isEmpty(stringStringMap)) {
+			List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>();
+			try {
 				log.info("info锛氶渶瑕佽鍙栭厤缃枃浠�");
 				LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap);
-				List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf();
-				if(!CollectionUtils.isEmpty(libraryClsfDOList)) {
-					Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
-					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
-					String path=stringStringMap.get(systemId);
-					if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
-						log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
-						List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
-						propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
-						log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+" + clsfAttrMappingDOList.size());
-					}else{
-						throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�"+systemId+"銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�"+path+"銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��"+libray+"銆戝睘鎬ф槧灏勪俊鎭厤缃�");
-					}
-				}
+				libraryClsfDOList = libraryDO.getClsf();
+			} catch (Throwable e) {
+				objerrorCode = "1";
+				e.printStackTrace();
+				log.error("闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐ワ細",e);
+				throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�" + systemId + "銆戯紝鍒嗙被搴撲负:銆�" + libray + "銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
 			}
-			log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end ");
-		}catch (Throwable e){
-			objerrorCode="1";
-			e.printStackTrace();
-			throw new Throwable("闆嗘垚绯荤粺鏍囪瘑涓猴細銆�"+systemId+"銆戯紝鍒嗙被搴撲负:銆�"+libray+"銆戠殑闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
+			// String path = stringStringMap.get(systemId);
+			// 蹇界暐key澶у皬鍐欙紝鑾峰彇閰嶇疆鐨勬槧灏勬枃浠惰矾寰�
+			String path = VciBaseUtil.getMapStrValueIgnoreCase(stringStringMap,systemId);
+			if (!CollectionUtils.isEmpty(libraryClsfDOList)) {
+				Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
+				log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
+				if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) {
+					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
+					List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT));
+					propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
+					log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+" + clsfAttrMappingDOList.size());
+				} else {
+					objerrorCode = "1";
+					throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�" + systemId + "銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�" + path + "銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��" + libray + "銆戝睘鎬ф槧灏勪俊鎭厤缃�");
+				}
+			}else{
+				objerrorCode = "1";
+				throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�" + systemId + "銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�" + path + "銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��" + libray + "銆戝睘鎬ф槧灏勪俊鎭厤缃�");
+			}
+		}else{
+			objerrorCode = "1";
+			throw new Throwable("鏈幏鍙栧埌闆嗘垚灞炴�ф槧灏勭郴缁熼厤缃俊鎭�");
 		}
+		log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end ");
 		LinkedList<String> rowNameList=new LinkedList<>();
 		LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
 		//鏍规嵁鍒嗙被妯℃澘缁勭粐鏁版嵁
@@ -2626,6 +2866,7 @@
 							String dataValue = sourceKeyValueMap.get(sourceKey);
 							if (attrMapConfigMap.containsKey(sourceKey)) {
 								String targetKey = attrMapConfigMap.get(sourceKey);
+								log.info("xxxxx灞炴�ф槧灏勫��:sourceKey銆�"+sourceKey+"銆戔�斺�斻��+targetKey---銆�"+targetKey+":"+dataValue);
 								keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue);
 							}
 						});
@@ -2651,9 +2892,11 @@
 			dataObjectVO.setRowData(rowDataList);
 		}catch (Throwable e){
 			objerrorCode="1";
-			throw new   Throwable("缁勭粐鏁版嵁鏄犲皠鍊煎け璐�");
+			log.error("缁勭粐灞炴�ф槧灏勫�煎け璐ワ細",e);
+			throw new   Throwable("缁勭粐灞炴�ф槧灏勫�煎け璐�");
 		}
 	}
+
 	/***
 	 * 璁板綍鏃ュ織淇℃伅
 	 * @param systemId
@@ -2685,7 +2928,7 @@
 			dockingLoge.setInterfaceStatus("false");//鎺ュ彛闆嗘垚鐘舵��
 		}
 		dockingLogeService.save(dockingLoge);
-		log.info("闆嗘垚鎺ㄩ�佹暟鎹垚鍔�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
+		log.info("闆嗘垚鎺ㄩ�佹暟鎹�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
 	}
 
 	/***

--
Gitblit v1.9.3