From e50b37ea73d82149cd52646464389bf6010b1d22 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 12 十二月 2023 10:49:19 +0800
Subject: [PATCH] map对象大小写导致code返回为空问题

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |  171 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 138 insertions(+), 33 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 058a663..b8482cd 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -13,9 +13,7 @@
 import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
 import com.vci.ubcs.code.dto.*;
 import com.vci.ubcs.code.entity.CodeAllCode;
-import com.vci.ubcs.code.enumpack.CodeDefaultLC;
-import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
-import com.vci.ubcs.code.enumpack.sysIntegrationPushTypeEnum;
+import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.lifecycle.CodeAllCodeLC;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
@@ -383,7 +381,7 @@
 		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
 
 		//鑾峰彇鐮佹瀹藉害
-		//String secWidth = getCodeSegmentWidth(codeClassifyVO.getOid());
+		String secWidth = getCodeSegmentWidth(codeClassifyVO.getOid());
 
 		if(isHistory){
 			templateVOList= templateService.childTemplates(codeClassifyOid);
@@ -434,6 +432,8 @@
 				excelDataList.add(new WriteExcelData(0,0,"鍒嗙被璺緞",""));
 				excelDataList.add(new WriteExcelData(0,1,"鐮佹瀹藉害",""));
 				excelDataList.add(new WriteExcelData(0,2,!CollectionUtils.isEmpty(idAttrVOList)?idAttrVOList.get(0).getName():"浼佷笟缂栫爜",idAttrVOList.get(0).getId()));
+				// 濉厖鐮佹
+				excelDataList.add(new WriteExcelData(1,1,secWidth));
 			}
 			for (int i = 0; i < templateAttrVOS.size(); i++) {
 				CodeClassifyTemplateAttrVO attrVO = templateAttrVOS.get(i);
@@ -620,22 +620,121 @@
 	 * @return
 	 */
 	private String getCodeSegmentWidth(String codeClassifyOid){
-		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
+		CodeClassifyFullInfoBO classifyFullInfoBO = classifyService.getClassifyFullInfo(codeClassifyOid);
 		// 瑕佽幏鍙栫爜娈靛搴︼紝鍏堣鑾峰彇瑙勫垯锛屽綋鍓嶆病鏈夊線涓婃壘
 		CodeRuleVO codeRuleByClassifyFullInfo = mdmEngineService.getCodeRuleByClassifyFullInfo(classifyService.getClassifyFullInfo(codeClassifyOid));
 		List<CodeBasicSecVO> secVOList = codeRuleByClassifyFullInfo.getSecVOList();
 		if(secVOList.isEmpty()){
 			return "";
 		}
-
 		StringBuffer secWidth = new StringBuffer("");
-
-		for (int j = 0; j < secVOList.size(); j++) {
-			CodeBasicSecVO secVO = secVOList.get(j);
-			int width = VciBaseUtil.getInt(secVO.getCodeSecLength()) + ((secVO.getPrefixCode() + secVO.getSuffixCode()).length());
-			secWidth.append(width).append("#");
-		}
+		secVOList.stream().forEach(item->{
+			switch (item.getSecType().toLowerCase(Locale.ROOT)){
+				case "codeclassifysec":
+				case "codevariablesec":
+				case "coderefersec":
+				case "codefixedsec":
+				case "codeattrsec":
+				case "codeserialsec":
+					countSecWith(item,secWidth);
+					break;
+				case "codelevelsec":
+					//灞傜骇鐮佹锛岄渶瑕佷粠鍒嗙被涓婅幏鍙栫浉搴旂殑淇℃伅
+					String secValue = "";
+					if (CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(item.getCodeLevelType())) {
+						//鏈�灏忓眰锛屽洜涓烘垜浠彧鑳藉湪鍙跺瓙鑺傜偣涓婄敵璇风紪鐮侊紝鎵�浠ヨ繖涓氨鏄綋鍓嶅垎绫荤殑
+						if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(item.getCodeGetValueType()) || CollectionUtils.isEmpty(classifyFullInfoBO.getParentClassifyVOs())) {
+							//灏辨槸褰撳墠鍒嗙被鐨�
+							secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
+						} else {
+							//鎴戜滑闇�瑕佷粠椤跺眰寮�濮嬫壘鍒板綋鍓嶅垎绫讳负姝�
+							secValue = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
+						}
+					} else {
+						//鎸囧畾灞傦紝鎴戜滑闇�瑕侀�氳繃涓婄骇鐨勬潵鑾峰彇
+						if (CollectionUtils.isEmpty(classifyFullInfoBO.getParentClassifyVOs())) {
+							//璇存槑褰撳墠宸茬粡鏄渶楂樼殑浜�
+							secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
+						} else {
+							//杩欎釜鎴戜滑闇�瑕佺湅鐪�,灞傜骇鏄笉鏄ぇ浜庝簡鏈�澶у眰绾х殑鏁�
+							List<CodeClassifyVO> parentClassifyVOList = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).collect(Collectors.toList());
+							if (item.getCodeLevelValue() > (parentClassifyVOList.size() + 1)) {
+								//鎸囧畾鐨勫眰绾ф瘮褰撳墠鐨勫眰绾ц繕澶т簡锛屾墍浠ュ彧鑳借幏鍙栧綋鍓嶅眰绾т簡
+								if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(item.getCodeGetValueType())) {
+									secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
+								} else {
+									secValue = parentClassifyVOList.stream().map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
+								}
+							} else {
+								//鎴戜滑鑾峰彇鍏朵腑鎸囧畾灞傜殑鍐呭
+								if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(item.getCodeGetValueType())) {
+									CodeClassifyVO classifyVO = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() == item.getCodeLevelValue().intValue()).findFirst().orElseGet(() -> null);
+									if (classifyVO != null) {
+										secValue = classifyVO.getId();
+									}
+								} else {
+									//灏忎簬绛変簬鐨勫叏閮ㄦ嬁鍑烘潵
+									secValue = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() <= item.getCodeLevelValue().intValue()).sorted(((o1, o2) -> -o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining());
+								}
+							}
+						}
+					}
+					//鐪嬬湅闀垮害鏄惁闇�瑕佹埅鏂�
+					if (!CodeCutTypeEnum.NONE.getValue().equalsIgnoreCase(item.getValueCutType()) &&
+						item.getValueCutLength() != null && item.getValueCutLength() > 0 && secValue.length() > item.getValueCutLength()) {
+						if (CodeCutTypeEnum.RIGHT.getValue().equalsIgnoreCase(item.getValueCutType())) {
+							//宸︽埅鍙栨槸浠庡乏杈瑰壀鎺夛紝鍙虫埅鍙栨槸浠庡彸杈瑰壀鎺�--淇濈暀宸﹁竟
+							secValue = secValue.substring(0, item.getValueCutLength());
+						} else {
+							secValue = secValue.substring(secValue.length() - item.getValueCutLength());
+						}
+					}
+					secValue = productCodeService.joinPreffixAndSuffix(item,secValue);
+					secWidth.append(secValue.length()).append("#");
+					break;
+				case "codedatesec":
+					String dateFormatStr = item.getCodeDateFormatStr();
+					if(Func.isNotEmpty(dateFormatStr)) {
+						// 鑾峰彇褰撳墠鏃堕棿
+						Date currentDate = new Date();
+						// 鎸囧畾鏃ユ湡鏍煎紡
+						SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatStr);
+						// 灏嗗綋鍓嶆椂闂磋浆鎹负鎸囧畾鏃ユ湡鏍煎紡
+						// 浣跨敤姝e垯琛ㄨ揪寮忓幓鎺夐櫎鏁板瓧浠ュ鐨勬墍鏈夊瓧绗︿覆
+						String cleanedDate = dateFormat.format(currentDate).replaceAll("[^0-9]", "");
+						int width = cleanedDate.length();
+						if (Func.isNotEmpty(item.getPrefixCode())) {
+							width += item.getPrefixCode().length();
+						}
+						if (Func.isNotEmpty(item.getSuffixCode())) {
+							width += item.getSuffixCode().length();
+						}
+						secWidth.append(width).append("#");
+					}
+					break;
+			}
+		});
 		return secWidth.toString().substring(0, secWidth.length() - 1);
+	}
+
+	/**
+	 * 璁$畻鐮佹闀垮害鍔犲墠鍚庣紑鐨勯暱搴�
+	 * @param codeBasicSecVO
+	 * @param secWidth
+	 */
+	private void countSecWith(CodeBasicSecVO codeBasicSecVO,StringBuffer secWidth){
+		if(Func.isNotEmpty(codeBasicSecVO.getCodeSecLength())){
+			int width = VciBaseUtil.getInt(codeBasicSecVO.getCodeSecLength());
+			if(Func.isNotEmpty(codeBasicSecVO.getPrefixCode())){
+				width += codeBasicSecVO.getPrefixCode().length();
+			}
+			if(Func.isNotEmpty(codeBasicSecVO.getSuffixCode())){
+				width += codeBasicSecVO.getSuffixCode().length();
+			}
+			secWidth.append(width).append("#");
+		}else {
+			secWidth.append(0).append("#");
+		}
 	}
 
 	/**
@@ -775,7 +874,7 @@
 			//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 			List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->
 				!DEFAULT_ATTR_LIST.contains(s.getId()) &&
-					(Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 			).collect(Collectors.toList());
 
 			Map<String/**妯℃澘灞炴�у瓧娈祇id**/, String /**妯℃澘灞炴�у閮ㄥ悕绉�**/> fieldNameMap =attrVOS.stream().collect(Collectors.toMap(CodeClassifyTemplateAttrVO::getId,s->s.getName()));
@@ -1588,7 +1687,7 @@
 			//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 			List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->
 				!DEFAULT_ATTR_LIST.contains(s.getId()) &&
-					(Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 			).collect(Collectors.toList());
 			Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap = new HashMap<>();
 			List<String> titleRowData = dataSet.getColName();
@@ -1837,7 +1936,6 @@
 			" and lastr = '1'" +
 			" and lastv='1'" +
 			" and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%'";
-
 		//鍏堟煡璇㈡�绘暟
 		int total = 0;
 		if(exportAttrDTO.getEndPage()!=null && exportAttrDTO.getEndPage()>0
@@ -2053,7 +2151,7 @@
 			//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 			List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes().stream().filter(s ->
 				!DEFAULT_ATTR_LIST.contains(s.getId()) &&
-					(Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 			).collect(Collectors.toList());
 			String fullPath = getFullPath(classifyFullInfo);
 			excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList, codeClassifyTemplateVO,cboList,fullPath,!isImprot);
@@ -2261,7 +2359,7 @@
 		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁鍏锋湁鍒嗙被娉ㄥ叆鐨勬墠杩囨护鍑烘潵
 		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())
+				((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 		).collect(Collectors.toList());
 		Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap = new HashMap<>();
 		List<String> titleRowData = dataObjectVO.getColName();
@@ -2408,10 +2506,10 @@
 						if (!CollectionUtils.isEmpty(newCboList)) {
 							//澶勭悊鍏抽敭灞炴�ф煡鍑哄鏉$殑璇濓紝鏍规嵁闆嗘垚璋冪敤鐨勫綋鍓嶅垎绫讳唬鍙峰彇褰撳墠鍒嗙被鐨勭爜鍊笺��
 							Map<String/**缂栫爜**/, BaseModel/**閲嶅缂栫爜鏁版嵁**/> classOidTOBaseModelMap = new HashMap<>();
-								newCboList.stream().forEach(baseModel->{
-									String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase(Locale.ROOT));
-									classOidTOBaseModelMap.put(codeclsfid,baseModel);
-								});
+							newCboList.stream().forEach(baseModel->{
+								String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toLowerCase(Locale.ROOT));
+								classOidTOBaseModelMap.put(codeclsfid,baseModel);
+							});
 							String codeclsfid= classifyFullInfo.getCurrentClassifyVO().getOid();
 							if(classOidTOBaseModelMap.containsKey(codeclsfid)){
 								BaseModel newCbo= classOidTOBaseModelMap.get(codeclsfid);
@@ -2448,7 +2546,7 @@
 						}
 					}
 				});
-				//鍏抽敭鐔熸倝鏇存敼
+				//鍏抽敭灞炴�ф洿鏀�
 				if (!CollectionUtils.isEmpty(editBoList)) {
 					engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),editBoList);//淇濆瓨鏁版嵁
 				}
@@ -2632,7 +2730,7 @@
 		//checkTemplateSync(sheetDataSetList,templateVO);
 		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 		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())
+			((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 		).collect(Collectors.toList());
 		Map<Integer/**鍒楀彿**/, String/**瀛楁鐨勫悕绉�**/> fieldIndexMap = new HashMap<>();
 		List<String> titleRowData = dataObjectVO.getColName();
@@ -2684,6 +2782,7 @@
 		}
 
 		List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
+		DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
 		List<ClientBusinessObject> cboList=	ChangeMapTOClientBusinessObjects(dataMapList);
 		Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
 		Map<String, String> errorMap = new HashMap<>();
@@ -3861,7 +3960,8 @@
 						String sql = "select " + valueField + "," + showText.toLowerCase(Locale.ROOT) +" from " + table + "  where " + showText + " in (%s)";
 						valueCollections.stream().forEach(values->{
 							List<Map<String,String>> dataMapList = commonsMapper.queryByOnlySqlForMap(String.format(sql, VciBaseUtil.toInSql(values.toArray(new String[0]))));
-							List<ClientBusinessObject> cbos=	ChangeMapTOClientBusinessObjects(dataMapList);
+							DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
+							List<ClientBusinessObject> cbos=ChangeMapTOClientBusinessObjects(dataMapList);
 							if(!CollectionUtils.isEmpty(cbos)){
 								valueOidTextMap.putAll(cbos.stream().collect(Collectors.toMap(s->s.getAttributeValue(valueField),t->t.getAttributeValue(showText))));
 							}
@@ -4305,11 +4405,12 @@
 				List<String> repeatData = commonsMapper.selectList(sqlBO.getSqlId());
 				if(!repeatData.isEmpty()){
 					final List<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
+					DefaultAttrAssimtUtil.mapToLowerCase(newDataList,true);
 					//List<ClientBusinessObject> newCboList=ChangeMapTOClientBusinessObjects(newDataList);
 					List<BaseModel> newCboList = new ArrayList<>();
 					newDataList.stream().forEach(stringStringMap -> {
 						BaseModel baseModel=new BaseModel();
-						DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel,false);
+						DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel,false,user);
 						baseModel.setData(stringStringMap);
 						newCboList.add(baseModel);
 					});
@@ -4533,9 +4634,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,true);
+			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());
@@ -4631,7 +4734,7 @@
 		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 		List<CodeClassifyTemplateAttrVO> attrVOS = newTemplateVO.getAttributes().stream().filter(s ->
 			!DEFAULT_ATTR_LIST.contains(s.getId()) &&
-				(Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+				((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 		).collect(Collectors.toList());
 		Map<String/**涓枃鍚嶇О**/, String/**鑻辨枃鍚嶇О**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId()));
 		List<String> fields=new ArrayList<>();
@@ -4826,6 +4929,7 @@
 					pageHelper.addDefaultDesc("id");
 					CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(btmtypeid, templateVO, conditionMap, pageHelper);
 					List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
+					DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
 					List<ClientBusinessObject> resembleCboList=	ChangeMapTOClientBusinessObjects(dataMapList);
 					if(!CollectionUtils.isEmpty(resembleCboList)) {
 						List<Map<String, String>> finalDataMap = dataMap;
@@ -5113,7 +5217,7 @@
 		//鑾峰彇鏈�鏂扮殑妯℃澘
 		CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid);		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 		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())
+			((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 		).collect(Collectors.toList());
 		ExecGroupCodePortDataDTO execGroupCodePortDataDTO=new ExecGroupCodePortDataDTO();
 		createExportGroupCodeMapConfig(templateVO,execGroupCodePortDataDTO);//缁勭粐鏁版嵁
@@ -5191,10 +5295,10 @@
 				// 淇敼鐗堟鍙�
 				engineService.updateBatchByBaseModel(btmTypeId,oldCbos);
 				List<CodeAllCode> codeAllCodeList=new ArrayList<>();
-
+				final BladeUser user = AuthUtil.getUser();
 				cboList.stream().forEach(clientBusinessObject -> {
 					BaseModel newBaseModel=new BaseModel();
-					DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,true);
+					DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,false,user);
 					newCbos.add(newBaseModel);
 				});
 				// 鎻掑叆鏂扮殑鏁版嵁
@@ -5226,19 +5330,20 @@
 	public void batchSwitchCheckExist(Map<String,String> errorMap,List<ClientBusinessObject> cboList,CodeClassifyFullInfoBO classifyFullInfo,CodeClassifyTemplateVO templateVO,ExecGroupCodePortDataDTO execGroupCodePortDataDTO,Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap){
 		List<BaseModel> oldBaseModelList=new ArrayList<>();
 		List<CodeAllCode> codeAllCodeList=new ArrayList<>();
+		final BladeUser user = AuthUtil.getUser();
 		cboList.stream().forEach(clientBusinessObject -> {
 			String code=clientBusinessObject.getId();
 			String rowIndex=clientBusinessObject.getAttributeValue(IMPORT_ROW_INDEX);
 			List<Map<String,String>>dataList=new ArrayList<>();
 			List<String> fieldList= execGroupCodePortDataDTO.getFieldList();
 			getDatas(classifyFullInfo,templateVO,execGroupCodePortDataDTO.getFieldList(),dataList,Arrays.asList(code));
+			DefaultAttrAssimtUtil.mapToLowerCase(dataList,true);
 			if(!CollectionUtils.isEmpty(dataList)){
 				Map<String,String> newDataMap=new HashMap<>();//灏嗘柊瀵硅薄灞炴�ф殏鏃跺瓨鍌ㄥ湪Map<>
 				newDataMap.putAll(clientBusinessObject.getData());
 				Map<String,String> dataMap=dataList.get(0);
 				BaseModel oldBaseModel=new BaseModel();
-
-				DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,oldBaseModel,false);
+				DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,oldBaseModel,false,user);
 				String oldOid=oldBaseModel.getOid();
 
 				clientBusinessObject.setCopyFromVersion(oldOid);
@@ -5324,7 +5429,7 @@
 				}
 				//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
 				List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->!fieldIndexMap.containsValue(s.getId()) &&
-					(Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+					((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
 				).collect(Collectors.toList());
 				attrVOS.stream().forEach(codeClassifyTemplateAttrVO -> {//灏嗕笉闇�瑕佹洿鏀圭殑榛樿瀛楁鎴栬�呬笉鏇存敼鐨勫睘鎬у鍒跺埌鏂扮殑鐗堟湰涓�
 					String arrtibuteKey=codeClassifyTemplateAttrVO.getId();

--
Gitblit v1.9.3