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/UniversalInterfaceImpl.java   |    4 +++-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java         |   23 ++++++++++++++---------
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java |   24 ++++++++++++++++++++----
 3 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
index 83d0d13..59caa32 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -9,9 +9,7 @@
 import org.springblade.core.tool.utils.Func;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 鏂板鏃堕粯璁ゅ�煎睘鎬ц祴鍊�
@@ -221,7 +219,7 @@
 
 			baseModel.setRevisionOid(dataMap.getOrDefault(isCase?"REVISIONOID":"revisionoid",""));
 			baseModel.setRevisionValue(dataMap.getOrDefault(isCase?"REVISIONVALUE":"revisionvalue",""));
-			baseModel.setLastModifier(AuthUtil.getUser().getAccount());
+			baseModel.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUser().getAccount());
 			baseModel.setLcStatus(dataMap.getOrDefault(isCase?"LCSTATUS":"lcstatus",""));
 			baseModel.setName(dataMap.getOrDefault(isCase?"NAME":"name",""));
 			baseModel.setTenantId(dataMap.getOrDefault(isCase?"TENANT_ID":"tenant_id",""));
@@ -259,4 +257,22 @@
 		return date;
 	}
 
+	/**
+	 * map瀵硅薄杞崲涓哄皬鍐�
+	 * @param dataMapList
+	 * @param isLowerCase
+	 */
+	public static void mapToLowerCase(List<Map<String,String>> dataMapList, boolean isLowerCase){
+		// 閬嶅巻List涓殑姣忎釜Map
+		for (Map<String, String> map : dataMapList) {
+			Map<String, String> newMap = new HashMap<>();
+			// 閬嶅巻姣忎釜Map涓殑key锛屽苟灏嗗叾杞崲涓哄皬鍐�
+			for (String key : map.keySet()) {
+				newMap.put(isLowerCase ? key.toLowerCase():key.toLowerCase(Locale.ROOT), map.get(key));
+			}
+			// 鐢ㄦ柊鐨凪ap鏇挎崲鏃х殑Map
+			dataMapList.set(dataMapList.indexOf(map), newMap);
+		}
+	}
+
 }
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 06872ec..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
@@ -2506,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);
@@ -2546,7 +2546,7 @@
 						}
 					}
 				});
-				//鍏抽敭鐔熸倝鏇存敼
+				//鍏抽敭灞炴�ф洿鏀�
 				if (!CollectionUtils.isEmpty(editBoList)) {
 					engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),editBoList);//淇濆瓨鏁版嵁
 				}
@@ -2782,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<>();
@@ -3959,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))));
 							}
@@ -4403,6 +4405,7 @@
 				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 -> {
@@ -4631,10 +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,user);
+			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());
@@ -4925,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;
@@ -5293,7 +5298,7 @@
 				final BladeUser user = AuthUtil.getUser();
 				cboList.stream().forEach(clientBusinessObject -> {
 					BaseModel newBaseModel=new BaseModel();
-					DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,true,user);
+					DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,false,user);
 					newCbos.add(newBaseModel);
 				});
 				// 鎻掑叆鏂扮殑鏁版嵁
@@ -5332,12 +5337,12 @@
 			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,user);
 				String oldOid=oldBaseModel.getOid();
 
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 b9ad0fa..7c8b17a 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
@@ -568,6 +568,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();
@@ -2306,10 +2307,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,user);
+			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());

--
Gitblit v1.9.3