From 04345420e457ccffcfc94646fde4f5a2204164c3 Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期三, 15 十月 2025 10:31:18 +0800
Subject: [PATCH] 移动端加载mvc
---
src/main/java/com/product/mobile/core/service/FaceMobileService.java | 455 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 418 insertions(+), 37 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 d87f095..07f3484 100644
--- a/src/main/java/com/product/mobile/core/service/FaceMobileService.java
+++ b/src/main/java/com/product/mobile/core/service/FaceMobileService.java
@@ -1,28 +1,36 @@
package com.product.mobile.core.service;
import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.drew.metadata.Face;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
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;
import com.product.core.service.support.AbstractBaseService;
+import com.product.face.entity.FaceListEntity;
+import com.product.face.service.FaceApplyService;
+import com.product.face.util.FaceUtil;
import com.product.mobile.core.config.MobileCoreCode;
-import com.product.mobile.core.config.MobileCoreConst;
import com.product.mobile.core.entity.FaceFieldEntity;
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;
import java.util.*;
+import java.util.stream.Collectors;
/**
* @Author cheng
@@ -35,7 +43,220 @@
@Resource
FlowDetailService flowDetailService;
- public List<FaceFieldEntity> getFaceFieldByTable(FieldSetEntity fse) {
+ @Autowired
+ public BaseDao baseDao;
+ @Autowired
+ private FaceApplyService faceApplyService;
+
+ ///鑾峰彇琛ㄥ崟鎬诲叆鍙�
+ /**
+ *
+ * @param fse浼犲叆琛ㄥ悕锛屾垨 琛║UID
+ * @return
+ */
+ public Object getFaceConfig(FieldSetEntity fse) {
+
+ String tableUuid = fse.getString("table_uuid");
+ if (tableUuid == null && StringUtils.isNotEmpty(fse.getString("uuid"))
+ && StringUtils.isEmpty(fse.getString("table_name"))) {
+ //閫氳繃涓氬姟琛ㄤ俊鎭煡琛ㄥ崟淇℃伅
+ FieldSetEntity detailFse = getBaseDao().getFieldSetEntity(CmnConst.TABLE_FLOW_DETAIL, fse.getString(CmnConst.FIELD_UUID), false);
+ if (detailFse != null) {
+ //鑾峰彇琛ㄥ悕
+ fse.setValue("table_name", detailFse.getString("table_name"));
+ }
+
+ }
+ //閫氳繃瀹℃壒浠诲姟鐨剈uid鏉ユ煡琛ㄥ崟淇℃伅
+ if (tableUuid == null && StringUtils.isNotEmpty(fse.getString("table_name"))) {
+ FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅", new String[]{fse.getString("table_name")});
+ if (!FieldSetEntity.isEmpty(tableInfo)) {
+ tableUuid = tableInfo.getString("uuid");
+ fse.setValue("table_uuid", tableUuid);
+ }
+ }
+
+ if (tableUuid != null && fse.getString("table_name") == null) {
+
+ FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅(uuid)", new String[]{tableUuid});
+ if (!FieldSetEntity.isEmpty(tableInfo)) {
+ //鑾峰彇琛ㄥ悕
+ fse.setValue("table_name", tableInfo.getString("table_name"));
+ }
+ }
+
+ Object o = getFaceFieldByTable(fse);
+ if (o instanceof FaceListEntity) {
+ FaceListEntity faceListEntity = (FaceListEntity) o;
+ List<FaceListEntity.FaceField> faceFieldList = faceListEntity.getFaceFields();
+ List<JSONObject> objList = faceFieldList.stream().map(faceField -> {
+ JSONObject obj = JSONObject.parseObject(com.alibaba.fastjson.JSONObject.toJSONString(faceField));
+ obj.put("name", obj.getString("columnName"));
+ obj.put("field", obj.getString("fieldName"));
+ return obj;
+ }).collect(Collectors.toList());
+ return objList;
+ }
+ List<FaceFieldEntity> ls = (List<FaceFieldEntity>) o;
+ if (ls == null) ls = new ArrayList<FaceFieldEntity>();
+ addproperty(tableUuid, fse.getString("table_name"), ls);
+ //鎵�鏈夎〃鍗晆uid鑷姩娣诲姞锛屽苟涓篽idden
+
+ // 绉诲姩绔嫢鏄病鏈夐厤缃〃鍗曚俊鎭紝閭d箞灏辨渶澶氭樉绀�10涓瓧娈碉紝涓旈渶瑕佸墧闄ゅ埌閮ㄥ垎瀛楁
+ String clientType = fse.getString("client_type");
+ if ("app".equals(clientType)) {
+ List<String> exceptList = Arrays.asList("uuid", "org_level_uuid", "created_by", "created_utc_datetime");
+ ls = ls.stream().filter(obj -> !exceptList.contains(obj.getField())).collect(Collectors.toList());
+ if (ls.size() > 10) {
+ ls = ls.subList(0, 10);
+ }
+ }
+ return ls;
+
+ }
+ //閫掑綊鎶婁富琛ㄥ拰瀛愯〃鐨勫瓧娈靛睘鎬ф坊鍔犺繘鍘伙紝濡傛灉娌℃湁閰嶈〃鍗曪紝鍒欏彇琛ㄦ暟鎹粨鏋勮繘琛屽睍绀�
+
+ /**
+ *
+ * @param ls鏌ュ嚭鏉ョ殑琛ㄥ崟淇℃伅
+ * @param tables 璁板綍鐨勬墍鏈夎〃锛屽搴旂殑琛ㄥ崟淇℃伅
+ */
+ private void addproperty(String table_uuid, String table_name, List<FaceFieldEntity> ls) {
+ if (ls.size() > 0) {
+ for (int i = 0; i < ls.size(); i++) {
+ String subTableName = ls.get(i).getSubTableName();///鍙兘鏄瓙琛�
+ if (StringUtils.isEmpty(subTableName)) {///涓昏〃瀛楁
+ DataTableEntity dt = DataPoolCacheImpl.getInstance().getCacheData("琛ㄥ瓧娈典俊鎭�"
+ , new String[]{table_uuid, ls.get(i).getField()});
+
+ if (!DataTableEntity.isEmpty(dt)) {
+// if(StringUtils.isEmpty(ls.get(i).getType())) {
+// ls.get(i).setType(dt.getFieldSetEntity(0).getString("field_type"));
+// }
+ if (StringUtils.isEmpty(ls.get(i).getPrompt()) &&
+ !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("field_reference"))) {
+ ls.get(i).setPrompt(dt.getFieldSetEntity(0).getString("field_reference"));
+ }
+ if (StringUtils.isEmpty(ls.get(i).getRequired()) &&
+ !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("is_required"))) {
+ ls.get(i).setRequired(dt.getFieldSetEntity(0).getString("is_required"));
+ }
+ if (StringUtils.isEmpty(ls.get(i).getName()) &&
+ !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("field_show_name"))) {
+ ls.get(i).setName(dt.getFieldSetEntity(0).getString("field_show_name"));
+ }
+ if ("file".indexOf(ls.get(i).getComponentType()) != -1) {
+ //闄勪欢
+ //鑾峰彇瀛楁绫诲瀷
+ String fieldType = dt.getString(0, "field_type");
+ if ("file-image".equals(fieldType)) {
+ ls.get(i).putOtherParam("fieldType", "image");
+ } else {
+// ls.get(i).putOtherParam("fieldType", "file");
+ }
+ }
+ }
+ ls.get(i).setTable(table_name);
+ } else {
+ //============鎶婂瓙琛ㄥ瓧娈典篃澶勭悊涓�涓�
+ //瀛愯〃
+ FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅", new String[]{subTableName});
+ if (!FieldSetEntity.isEmpty(tableInfo)) {
+ addproperty(tableInfo.getString("uuid"), tableInfo.getString("table_name"), ls.get(i).getSubField());
+ }
+ }
+
+ }
+ 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.setHidden("1");
+ uuid.setDisabled("1");
+ ls.add(uuid);
+ }
+
+ } else {///浠ヨ〃鍗曡璁′负鍑嗭紝濡傛灉娌℃湁閰嶇疆琛ㄥ崟锛屽垯浠ユ暟鎹〃涓哄噯锛屽叏閮ㄤ繚鐣�
+ 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);
+ }
+ }
+
+ }
+ }
+
+ /**
+ * 鏁版嵁搴撹〃瀛楁瀹氫箟杞崲鎴愯〃鍗曞畾涔�
+ * @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"))
+// || "created_by".equals(f.getString("field_name"))
+// || "created_utc_datetime".equals(f.getString("field_name"))
+ || "updated_by".equals(f.getString("field_name"))
+ || "updated_utc_datetime".equals(f.getString("field_name"))
+ || "flowsign".equals(f.getString("field_type"))
+ ) {
+ continue;
+ }
+ if ("uuid".equals(f.getString("field_name"))) {
+ uuid.setHidden("1");
+ uuid.setDisabled("1");
+ }
+ if ("userids".equals(f.getString("field_type")) || "orgUuids".equals(f.getString("field_type"))) {
+ uuid.setMultiple("1");
+ } else {
+ uuid.setMultiple("0");
+ }
+
+ if ("userids".equals(f.getString("field_type")) || "userid".equals(f.getString("field_type"))) {
+ uuid.setOrganizationType("5");
+ } else if ("orgUuids".equals(f.getString("field_type")) || "orgUuid".equals(f.getString("field_type"))) {
+ uuid.setOrganizationType("2");
+ }
+
+ 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.setRequired(f.getString("is_required"));
+ 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 Object getFaceFieldByTable(FieldSetEntity fse) {
String tableUuid = fse.getString("table_uuid");
String tableName = fse.getString("table_name");
if (StringUtils.isEmpty(tableUuid) && !StringUtils.isEmpty(tableName)) {
@@ -47,7 +268,20 @@
if (StringUtils.isEmpty(tableUuid)) {
throw new BaseException(MobileCoreCode.SYSTEM_FORM_COUNT);
}
- FieldSetEntity faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", "table_uuid=?", new Object[]{tableUuid}, true);
+ String faceType = BaseUtil.ifNull(fse.getString("face_type"), "2");
+ String faceNumber = fse.getString("face_number");
+ String filter = "table_uuid=? and face_type=? AND LENGTH(IFNULL(face_number,''))>0";
+ Object[] paramArr = new Object[]{tableUuid, faceType};
+ if (!StringUtils.isEmpty(faceNumber)) {
+ filter = "face_number=?";
+ paramArr = new Object[]{faceNumber};
+ }
+ FieldSetEntity faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", filter, paramArr, true);
+ faceFse.setTableName(tableName);
+ if ("1".equals(faceType) && !FieldSetEntity.isEmpty(faceFse)) {
+ //鍒楄〃
+ return faceApplyService.getFaceListConf(faceFse);
+ }
return getFaceField(faceFse);
}
@@ -89,7 +323,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");
@@ -123,9 +358,9 @@
if (CollectionUtil.isEmpty(groupMap)) {
throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL);
}
-
+ Map<String, Map<String, Object>> group = new HashMap<>();
List<FaceFieldEntity> result = new ArrayList<>();
- List<List<FieldSetEntity>> subTableField = new ArrayList<>();
+ Map<String, List<FieldSetEntity>> subTableFieldMap = new HashMap<>();
for (FieldSetEntity fs : tagFieldSetEntityList) {
String groupUuid = fs.getString("group_uuid");
String parentUuid = fs.getString("parent_uuid");
@@ -133,16 +368,96 @@
continue;
}
List<FieldSetEntity> fieldSetEntity = productSysFaceControlProperty.getFieldSetEntity(parentUuid);
- if (CollectionUtil.isEmpty(fieldSetEntity)) {
- continue;
- }
+ int i = result.size();
+ to(groupMap, fieldSetEntity, subTableFieldMap, result, parentMap);
+ String parentUuid1 = fieldSetEntity.get(0).getString("parent_uuid");
+ if (!CollectionUtil.isEmpty(fieldSetEntity) && !StringUtils.isEmpty(parentUuid1)) {
+ if (i + 1 == result.size()) {
+ Map<String, Object> o = group.get(parentUuid1);
+ List<FieldSetEntity> configValueList = null;
+ if (o == null) {
+ List<FieldSetEntity> fieldSetEntity1 = productSysFaceControlProperty.getFieldSetEntity(parentUuid1);
+ List<FieldSetEntity> fieldSetEntity2 = productSysFaceControlProperty.getFieldSetEntity(fieldSetEntity1.get(0).getString("parent_uuid"));
+ List<FieldSetEntity> fieldSetEntities = groupMap.get(fieldSetEntity2.get(0).getString("group_uuid"));
+ //list杞琺ap
+ Map<String, Object> map = new HashMap<>();
+ String tabsChldren = null;
+ for (FieldSetEntity fieldSetEntity3 : fieldSetEntities) {
+ map.put(fieldSetEntity3.getString("property_name"), fieldSetEntity3.getString("property_value"));
+ if ("__config__".equals(fieldSetEntity3.getString("property_name"))) {
+ configValueList = parentMap.get(fieldSetEntity3.getString("uuid"));
+ map.put("__config__", configValueList);
+ }
+ if ("children".equals(fieldSetEntity3.getString("property_name"))) {
+ tabsChldren = fieldSetEntity3.getString("property_value");
+ }
+ }
+ if (map.get("tag") != null && "el-tabs".equals(map.get("tag"))) {
+ map.remove("label");
+ if (tabsChldren != null) {
- to(groupMap, fieldSetEntity, subTableField, result,parentMap);
+ }
+ }
+ group.put(parentUuid1, map);
+ o = map;
+
+ } else {
+ configValueList = (List<FieldSetEntity>) o.get("__config__");
+ }
+ result.get(i).putOtherParam("parentContainerName", BaseUtil.ifNull(o.get("title"), o.get("label")));
+ result.get(i).putOtherParam("parentContainer", parentUuid1);
+ Map<String, Object> configValueMap = null;
+ if (configValueList != null) {
+
+ //鑾峰彇property_name=showComponentFilter
+ Optional<FieldSetEntity> showComponentFilter = configValueList.stream().filter(fieldSetEntity1 -> "showComponentFilter".equals(fieldSetEntity1.getString("property_name"))).findFirst();
+ if (showComponentFilter.isPresent()) {
+ String u = showComponentFilter.get().getString("uuid");
+ List<FieldSetEntity> fieldSetEntities = parentMap.get(u);
+ JSONArray arrFilter = null;
+ if (fieldSetEntities != null && !fieldSetEntities.isEmpty()) {
+ JSONObject propertyJson = FaceUtil.getPropertyJson(Lists.newArrayList(showComponentFilter.get()), parentMap);
+ arrFilter = propertyJson.getJSONArray("showComponentFilter");
+ }
+ if (arrFilter != null) {
+ if (result.get(i).getShowComponentFilter() == null) {
+ result.get(i).setShowComponentFilter(arrFilter);
+ } else {
+ result.get(i).getShowComponentFilter().addAll(arrFilter);
+ }
+ }
+ }
+ }
+ if (o.get("configValue") != null) {
+ configValueMap = (Map<String, Object>) o.get("configValue");
+ }
+ if ((configValueList != null || configValueMap != null) && StringUtils.isEmpty(BaseUtil.ifNull(o.get("title"), o.get("label")))) {
+ if (configValueMap == null) {
+ configValueMap = new HashMap<>();
+ for (FieldSetEntity fieldSetEntity4 : configValueList) {
+ configValueMap.put(fieldSetEntity4.getString("property_name"), fieldSetEntity4.getString("property_value"));
+ }
+ }
+ //tag
+ String tag = (String) configValueMap.get("tag");
+ if ("el-card".equals(tag)) {
+ result.get(i).putOtherParam("parentContainerName", configValueMap.get("label"));
+ } else if ("el-tabs".equals(tag)) {
+ System.out.println(1);
+ } else {
+ System.out.println(2);
+ }
+ o.put("configValue", configValueMap);
+ }
+ }
+ }
}
- if (!CollectionUtil.isEmpty(subTableField)) {
+ //鏍规嵁group_uuid 灏嗗瓙琛ㄥ瓧娈靛垎缁�5
+ if (!CollectionUtil.isEmpty(subTableFieldMap)) {
//鏍规嵁瀛愯〃琛ㄥ悕瑁呰浇
Map<String, FaceFieldEntity> tableByFaceField = new HashMap<>();
- for (List<FieldSetEntity> fieldSetEntities : subTableField) {
+ for (Map.Entry<String, List<FieldSetEntity>> entry : subTableFieldMap.entrySet()) {
+ List<FieldSetEntity> fieldSetEntities = entry.getValue();
String parentUuid = fieldSetEntities.get(0).getString("parent_uuid");
//鍏堟壘鍒癱hildren
List<FieldSetEntity> fieldSetEntity = productSysFaceControlProperty.getFieldSetEntity(parentUuid);
@@ -188,6 +503,12 @@
//涓嶆槸瀛愯〃缁勪欢
continue;
}
+ List<FaceFieldEntity> fields = new ArrayList<>();
+ for (FieldSetEntity setEntity : fieldSetEntities) {
+ to(groupMap, Lists.newArrayList(setEntity), null, fields, parentMap);
+ }
+
+ faceFieldEntity.setSubField(fields);
for (FieldSetEntity setEntity : groupMap.get(groupUuid)) {
String propertyName = setEntity.getString("property_name");
if ("subTableName".equals(propertyName)) {
@@ -197,6 +518,21 @@
faceFieldEntity.setAllowAdd(setEntity.getBoolean("property_value"));
} else if ("delete".equals(propertyName)) {
faceFieldEntity.setAllowDelete(setEntity.getBoolean("property_value"));
+ } else if ("control_sequence".equals(propertyName)) {
+ faceFieldEntity.putOtherParam("controlSequence", setEntity.getInteger("property_value"));
+ } else if ("__config__".equals(propertyName)) {
+
+ String __config__ = setEntity.getUUID();
+ List<FieldSetEntity> fieldSetEntities2 = parentMap.get(__config__);
+ if (!CollectionUtil.isEmpty(fieldSetEntities2)) {
+ for (FieldSetEntity fieldSetEntity4 : fieldSetEntities2) {
+ if ("label".equals(fieldSetEntity4.getString("property_name"))) {
+ faceFieldEntity.setName(fieldSetEntity4.getString("property_value"));
+ } else if ("required".equals(fieldSetEntity4.getString("property_name"))) {
+ faceFieldEntity.setRequired(fieldSetEntity4.getBoolean("property_value") ? "1" : "0");
+ }
+ }
+ }
}
}
List<FaceFieldEntity> subFieldList = faceFieldEntity.getSubField();
@@ -204,69 +540,98 @@
subFieldList = new ArrayList<>();
faceFieldEntity.setSubField(subFieldList);
}
-
- for (List<FieldSetEntity> setEntities : subTableField) {
- to(groupMap, setEntities, null, subFieldList, parentMap);
- }
if (!tableByFaceField.containsKey(uuid)) {
tableByFaceField.put(uuid, faceFieldEntity);
result.add(faceFieldEntity);
}
- break;
-
}
+
}
+ result.sort((item, item2) -> {
+ Object o = item.getOtherParams().get("controlSequence");
+ if (o == null) {
+ return -1;
+ }
+ Object o1 = item2.getOtherParams().get("controlSequence");
+ if (o1 == null) {
+ return 1;
+ }
+ return NumberUtil.parseInt(item.getOtherParams().get("controlSequence").toString()) - NumberUtil.parseInt(item2.getOtherParams().get("controlSequence").toString());
+ });
return result;
}
-
- private void to(Map<String, List<FieldSetEntity>> groupMap, List<FieldSetEntity> fieldSetEntity, List<List<FieldSetEntity>> subTableField, List<FaceFieldEntity> result, Map<String, List<FieldSetEntity>> parentMap) {
+ private void to(Map<String, List<FieldSetEntity>> groupMap, List<FieldSetEntity> fieldSetEntity, Map<String, List<FieldSetEntity>> subTableField, List<FaceFieldEntity> result, Map<String, List<FieldSetEntity>> parentMap) {
FieldSetEntity parent = fieldSetEntity.get(0);
+ Map<String, List<FieldSetEntity>> oldParentMap = Maps.newHashMap(parentMap);
String groupUuid1 = parent.getString("group_uuid");
if (StringUtils.isEmpty(groupUuid1)) {
return;
}
List<FieldSetEntity> parentGroup = groupMap.get(groupUuid1);
FaceFieldEntity faceFieldEntity = new FaceFieldEntity();
- boolean parentType = false;
String __config__ = null;
List<FieldSetEntity> other = null;
do {
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);
+ String parentUuid = setEntity.getString("parent_uuid");
+ List<FieldSetEntity> fieldSetEntities = subTableField.get(parentUuid);
+ if (fieldSetEntities == null) {
+ fieldSetEntities = new ArrayList<>();
+ subTableField.put(parentUuid, fieldSetEntities);
+ }
+ fieldSetEntities.add(setEntity);
result.remove(faceFieldEntity);
break;
}
if ("__vModel__".equals(setEntity.getString("property_name"))) {
result.add(faceFieldEntity);
- propertyName = "fieldName";
- } else if ("defaultNow".equals(propertyName)) {
- propertyName = "defaultValue";
+ 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();
+ List<FieldSetEntity> fieldSetEntities = oldParentMap.get(__config__);
+ if (!CollectionUtil.isEmpty(fieldSetEntities)) {
+ //鏌ヨshowComponentFilter
+ Optional<FieldSetEntity> propertyName1 = fieldSetEntities.stream().filter(item -> "showComponentFilter".equals(item.getString("property_name"))).findFirst();
+ if (propertyName1.isPresent()) {
+ JSONObject propertyJson = FaceUtil.getPropertyJson(Lists.newArrayList(propertyName1.get()), oldParentMap);
+ if (propertyJson != null && propertyJson.get("showComponentFilter") != null) {
+ faceFieldEntity.addShowComponentFilter(propertyJson.getJSONArray("showComponentFilter"));
+ }
+ }
+ }
}
- if (!StringUtils.isAnyEmpty(__config__) ) {
+ if (!StringUtils.isAnyEmpty(__config__)) {
//璇诲彇瀛愯〃灞炴��
if (parentMap != null) {
other = parentMap.get(__config__);
}
}
propertyName = StrUtil.toCamelCase(propertyName);
- if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName)) {
- if ("defaultValue".equals(propertyName)) {
- ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getBoolean("property_value"));
- } else {
- ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
- }
+ 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"))) {
+ //鍒ゆ柇鏄惁
+ faceFieldEntity.putOtherParam(propertyName, setEntity.getObject("property_value"));
}
}
- if (StringUtils.isEmpty(faceFieldEntity.getFieldName())) {
+ if (StringUtils.isEmpty(faceFieldEntity.getField())) {
return;
}
if (parentGroup == other) {
@@ -293,19 +658,35 @@
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)) {
- ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
+ if ("defaultValue".equals(propertyName) && !"0".equals(setEntity.getString("property_value")) && !"1".equals(setEntity.getString("property_value"))) {
+ continue;
+ }
+ Object propertyValue = setEntity.getObject("property_value");
+ if (oldParentMap != null && propertyValue == null && StringUtils.equalsAny(setEntity.getString("property_type"), "2", "3", "4")) {
+ JSONObject propertyJson = FaceUtil.getPropertyJson(Lists.newArrayList(setEntity), oldParentMap);
+ if (propertyJson != null && propertyJson.get(setEntity.getString("property_name")) != null) {
+ propertyValue = propertyJson.get(setEntity.getString("property_name"));
+ }
+ }
+ if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName) && !"field".equals(setEntity.getString("property_name")) && !"prompt".equals(setEntity.getString("property_name"))) {
+ ReflectUtil.setFieldValue(faceFieldEntity, propertyName, propertyValue);
}
}
-
}
}
--
Gitblit v1.9.2