From 08d025f05576294faca59fb3e2b2925dd60e8205 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期五, 18 十月 2024 16:58:07 +0800
Subject: [PATCH] defaultValue 被覆盖

---
 src/main/java/com/product/mobile/core/service/FaceMobileService.java |  122 ++++++++++++++++++++++++++++++++--------
 1 files changed, 96 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/product/mobile/core/service/FaceMobileService.java b/src/main/java/com/product/mobile/core/service/FaceMobileService.java
index cc5c151..96acaea 100644
--- a/src/main/java/com/product/mobile/core/service/FaceMobileService.java
+++ b/src/main/java/com/product/mobile/core/service/FaceMobileService.java
@@ -11,6 +11,7 @@
 import com.google.common.collect.Sets;
 import com.product.common.lang.StringUtils;
 import com.product.core.cache.DataPoolCacheImpl;
+import com.product.core.dao.BaseDao;
 import com.product.core.entity.DataTableEntity;
 import com.product.core.entity.FieldSetEntity;
 import com.product.core.exception.BaseException;
@@ -21,6 +22,8 @@
 import com.product.tool.flow.config.CmnConst;
 import com.product.tool.flow.service.FlowDetailService;
 import com.product.util.BaseUtil;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -39,8 +42,12 @@
 	@Resource
 	FlowDetailService flowDetailService;
 
+	@Autowired
+	public BaseDao baseDao;
+
 	///鑾峰彇琛ㄥ崟鎬诲叆鍙�
 	/**
+	 *
 	 * @param fse浼犲叆琛ㄥ悕锛屾垨 琛║UID
 	 * @return
 	 */
@@ -66,7 +73,7 @@
 			}
 		}
 
-		if (tableUuid != null) {
+		if (tableUuid != null && fse.getString("table_name") == null) {
 
 			FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅(uuid)", new String[]{tableUuid});
 			if (!FieldSetEntity.isEmpty(tableInfo)) {
@@ -76,7 +83,7 @@
 		}
 
 		List<FaceFieldEntity> ls = getFaceFieldByTable(fse);
-
+		if (ls == null) ls = new ArrayList<FaceFieldEntity>();
 		addproperty(tableUuid, fse.getString("table_name"), ls);
 		//鎵�鏈夎〃鍗晆uid鑷姩娣诲姞锛屽苟涓篽idden
 		return ls;
@@ -85,13 +92,11 @@
 	//閫掑綊鎶婁富琛ㄥ拰瀛愯〃鐨勫瓧娈靛睘鎬ф坊鍔犺繘鍘伙紝濡傛灉娌℃湁閰嶈〃鍗曪紝鍒欏彇琛ㄦ暟鎹粨鏋勮繘琛屽睍绀�
 
 	/**
+	 *
 	 * @param ls鏌ュ嚭鏉ョ殑琛ㄥ崟淇℃伅
-	 * @param tables     璁板綍鐨勬墍鏈夎〃锛屽搴旂殑琛ㄥ崟淇℃伅
+	 * @param tables 璁板綍鐨勬墍鏈夎〃锛屽搴旂殑琛ㄥ崟淇℃伅
 	 */
 	private void addproperty(String table_uuid, String table_name, List<FaceFieldEntity> ls) {
-		if (ls == null) {
-			ls = new ArrayList<FaceFieldEntity>();
-		}
 		if (ls.size() > 0) {
 			for (int i = 0; i < ls.size(); i++) {
 				String subTableName = ls.get(i).getSubTableName();///鍙兘鏄瓙琛�
@@ -130,34 +135,78 @@
 			DataTableEntity dt = DataPoolCacheImpl.getInstance().getCacheData("琛ㄥ瓧娈典俊鎭�", new String[]{table_uuid, "uuid"});
 			if (!DataTableEntity.isEmpty(dt)) {
 				FaceFieldEntity uuid = new FaceFieldEntity();
+				uuid.setComponentType("uuid");
 				uuid.setField("uuid");
+				uuid.setName("缂�  鐮�");
 				uuid.setType("String");
 				uuid.setTable(table_name);
-				uuid.setDisabled("0");
+				uuid.setHidden("1");
 				ls.add(uuid);
 			}
 
 		} else {///浠ヨ〃鍗曡璁′负鍑嗭紝濡傛灉娌℃湁閰嶇疆琛ㄥ崟锛屽垯浠ユ暟鎹〃涓哄噯锛屽叏閮ㄤ繚鐣�
-			DataTableEntity dte = DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夊瓧娈典俊鎭苟鎸夎〃鍒嗙粍", new String[]{table_uuid});
-			for (int j = 0; j < dte.getRows(); j++) {
-				FaceFieldEntity uuid = new FaceFieldEntity();
-				FieldSetEntity f = dte.getFieldSetEntity(j);
-				if ("pk".equals(f.getString("field_type"))
-						|| "updated_by".equals(f.getString("field_name"))
-						|| "uuid".equals(f.getString("field_name"))
-						|| "updated_utc_datetime".equals(f.getString("field_name"))) {
-					continue;
+			toConvertFace(table_uuid, table_name, ls, null);
+			//杩斿洖瀛愯〃
+			Object[][] sub = baseDao.getSubTableName(table_name);
+			if (sub != null && sub.length > 0 && sub[0].length > 0) {
+				for (int i = 0; i < sub[0].length; i++) {
+					toConvertFace(sub[0][i].toString(), sub[1][i].toString(), new ArrayList<FaceFieldEntity>(), ls);
 				}
-				uuid.setPrompt(f.getString("field_reference"));
-				uuid.setName(f.getString("field_show_name"));
-				uuid.setField(f.getString("field_name"));
-				uuid.setType(f.getString("field_type"));
-				uuid.setTable(table_name);
-				ls.add(uuid);
 			}
+
 		}
 	}
 
+	/**
+	 * 鏁版嵁搴撹〃瀛楁瀹氫箟杞崲鎴愯〃鍗曞畾涔�
+	 * @param table_uuid
+	 * @param table_name
+	 * @param ls
+	 * @param pls 鐖剁晫闈�
+	 */
+	private void toConvertFace(String table_uuid, String table_name, List<FaceFieldEntity> ls, List<FaceFieldEntity> pls) {
+		if (ls == null) {
+			ls = new ArrayList<FaceFieldEntity>();
+		}
+		DataTableEntity dte = DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夊瓧娈典俊鎭苟鎸夎〃鍒嗙粍", new String[]{table_uuid});
+		for (int j = 0; j < dte.getRows(); j++) {
+			FaceFieldEntity uuid = new FaceFieldEntity();
+			FieldSetEntity f = dte.getFieldSetEntity(j);
+			if ("pk".equals(f.getString("field_type"))
+					|| "updated_by".equals(f.getString("field_name"))
+					|| "updated_utc_datetime".equals(f.getString("field_name"))) {
+				continue;
+			}
+			if ("uuid".equals(f.getString("field_name"))) {
+				uuid.setHidden("1");
+			}
+			if ("userids".equals(f.getString("field_type")) || "orgUuids".equals(f.getString("field_type"))) {
+				uuid.setMultiple("1");
+			} else {
+				uuid.setMultiple("0");
+			}
+
+			uuid.setComponentType("");
+			uuid.setPrompt(f.getString("field_reference"));
+			uuid.setName(f.getString("field_show_name"));
+			uuid.setField(f.getString("field_name"));
+			uuid.setType(f.getString("field_type"));
+			uuid.setTable(table_name);
+			ls.add(uuid);
+		}
+		if (pls != null) {
+			FaceFieldEntity uuid = new FaceFieldEntity();
+			uuid.setHidden("");
+			uuid.setComponentType("subTable");
+			uuid.setPrompt("");
+			uuid.setName("");
+			uuid.setField("");
+			uuid.setType("");
+			uuid.setSubField(ls);
+			uuid.setSubTableName(table_name);
+			pls.add(uuid);
+		}
+	}
 
 	public List<FaceFieldEntity> getFaceFieldByTable(FieldSetEntity fse) {
 		String tableUuid = fse.getString("table_uuid");
@@ -214,7 +263,8 @@
 
 	private List<FaceFieldEntity> getFaceField(FieldSetEntity faceFse) {
 		if (FieldSetEntity.isEmpty(faceFse) || DataTableEntity.isEmpty(faceFse.getSubDataTable("product_sys_face_control_property"))) {
-			throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL);
+			return null;
+//			throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL);
 		}
 
 		DataTableEntity productSysFaceControlProperty = faceFse.getSubDataTable("product_sys_face_control_property");
@@ -365,7 +415,7 @@
 				map.put(split1[0].trim(), value);
 
 			}
-			lines.set(i, lines.get(i).substring(0, lines.get(i).indexOf("WHERE")) + " WHERE `uuid`=" + map.get("uuid")+";");
+			lines.set(i, lines.get(i).substring(0, lines.get(i).indexOf("WHERE")) + " WHERE `uuid`=" + map.get("uuid") + ";");
 		}
 		FileUtil.writeLines(lines, textFilePath, CharsetUtil.defaultCharset());
 	}
@@ -385,6 +435,9 @@
 			for (FieldSetEntity setEntity : parentGroup) {
 				//鎵惧埌灞炴�у悕绉�= __vModel__
 				String propertyName = setEntity.getString("property_name");
+				if ("componentType".equals(propertyName) || "prompt".equals(propertyName)) {
+					continue;
+				}
 				if ("parentType".equals(propertyName) && "subTable".equals(setEntity.getString("property_value")) && subTableField != null) {
 					//瀛愯〃瀛楁
 					subTableField.add(parentGroup);
@@ -394,6 +447,10 @@
 				if ("__vModel__".equals(setEntity.getString("property_name"))) {
 					result.add(faceFieldEntity);
 					propertyName = "field";
+				} else if ("label".equals(setEntity.getString("property_name"))) {
+					propertyName = "name";
+				} else if ("advanceName".equals(setEntity.getString("property_name"))) {
+					propertyName = "prompt";
 				} else if ("__config__".equals(propertyName)) {
 					__config__ = setEntity.getUUID();
 				}
@@ -404,7 +461,10 @@
 					}
 				}
 				propertyName = StrUtil.toCamelCase(propertyName);
-				if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName)) {
+				if ("defaultValue".equals(propertyName) && !"0".equals(setEntity.getString("property_value")) && !"1".equals(setEntity.getString("property_value"))) {
+					continue;
+				}
+				if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName) && !"field".equals(setEntity.getString("property_name")) && !"prompt".equals(setEntity.getString("property_name"))) {
 					ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
 
 				} else if (!StringUtils.isEmpty(setEntity.getObject("property_value"))) {
@@ -439,15 +499,25 @@
 		for (FieldSetEntity setEntity : configGroup) {
 			//鎵惧埌灞炴�у悕绉�= __vModel__
 			String propertyName = setEntity.getString("property_name");
+			if ("componentType".equals(propertyName) || "prompt".equals(propertyName)) {
+				continue;
+			}
 			if ("tag".equals(propertyName)) {
 				propertyName = "component_type";
 			} else if ("field".equals(propertyName)) {
 				propertyName = "fileField";
 			} else if ("tableName".equals(propertyName)) {
 				propertyName = "fileTableName";
+			} else if ("label".equals(setEntity.getString("property_name"))) {
+				propertyName = "name";
+			} else if ("advanceName".equals(setEntity.getString("property_name"))) {
+				propertyName = "prompt";
 			}
 			propertyName = StrUtil.toCamelCase(propertyName);
-			if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName)) {
+			if ("defaultValue".equals(propertyName) && !"0".equals(setEntity.getString("property_value")) && !"1".equals(setEntity.getString("property_value"))) {
+				continue;
+			}
+			if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName) && !"field".equals(setEntity.getString("property_name")) && !"prompt".equals(setEntity.getString("property_name"))) {
 				ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
 			}
 		}

--
Gitblit v1.9.2