From 69066c59f899aaa035492b712045d66df65d39bb Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期五, 25 八月 2023 14:57:08 +0800
Subject: [PATCH] 处理basemodel,bean里面遇到字段相同且map里面数据为空,则使用bean里面的值

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
index a598e4f..4ccbc9b 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -19,6 +19,7 @@
 import com.vci.ubcs.starter.web.wrapper.VciQueryWrapperForDO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ResourceUtils;
 
@@ -1318,7 +1319,7 @@
 				}
 			}
 		}
-
+		Map mapData = new HashMap<>();
 		for (int i = 0, n = propertyDescriptors.length; i <n ; i++) {
 			PropertyDescriptor descriptor = propertyDescriptors[i];
 			String propertyName = descriptor.getName();
@@ -1330,24 +1331,27 @@
 
 				if (result != null) {
 					if ("data".equals(propertyName)){
-						if(existFild == null){
-							returnMap.putAll((Map) result);
-						}else{
-							Map resulMap = (Map) result;
-							for (Object o : resulMap.keySet()) {
-								if(existFild.contains(o)){
-									returnMap.put(o,resulMap.get(o));
-								}
-							}
-						}
+						mapData = (Map) result;
 					}else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){
-						returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName, result);
+						returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName).toLowerCase():propertyName.toLowerCase(), result);
 					}
 				} else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){
-					returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName, "");
+					returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName).toLowerCase():propertyName.toLowerCase(), "");
 				}
 			}
 		}
+		//浣滅敤涓昏鐢ㄤ簬宸睲AP涓殑鏁版嵁涓哄噯锛宐ean閲岄潰閬囧埌瀛楁鐩稿悓涓攎ap閲岄潰鏁版嵁涓虹┖锛屽垯浣跨敤bean閲岄潰鐨勫��,
+//		Map resulMapChild = (Map) mapData;
+		for (Object o : mapData.keySet()) {
+			if(existFild == null || existFild.contains(String.valueOf(o).toLowerCase())){
+				if((Func.isNotBlank(String.valueOf(returnMap.get(String.valueOf(o).toLowerCase())))
+					&& returnMap.get(String.valueOf(o).toLowerCase()) !=null)
+					&& Func.isBlank(String.valueOf(mapData.get(o)))){
+					continue;
+				}
+				returnMap.put(String.valueOf(o).toLowerCase(),mapData.get(o));
+			}
+		}
 		return returnMap;
 	}
 

--
Gitblit v1.9.3