From 7a30e9d5c7e42202fab42af727c9821472d0da84 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期四, 15 八月 2024 18:37:26 +0800
Subject: [PATCH] commit udpate

---
 src/main/java/com/product/mobile/core/entity/FaceFieldEntity.java          |   72 ++++++++++++
 src/main/java/com/product/mobile/core/config/MobileCoreCode.java           |   60 +++++----
 src/main/java/com/product/mobile/core/service/FaceMobileService.java       |  147 ++++++++++++++++++++++++
 pom.xml                                                                    |    8 +
 src/main/java/com/product/mobile/core/controller/FaceMobileController.java |   50 ++++++++
 5 files changed, 309 insertions(+), 28 deletions(-)

diff --git a/pom.xml b/pom.xml
index db82c22..97bbcd5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,14 @@
             <groupId>com.lx</groupId>
             <artifactId>product-server-admin</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.lx</groupId>
+            <artifactId>product-server-tool-flow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.lx</groupId>
+            <artifactId>product-server-tool-face</artifactId>
+        </dependency>
         <!--releases  -->
         <dependency>
             <groupId>com.lx</groupId>
diff --git a/src/main/java/com/product/mobile/core/config/MobileCoreCode.java b/src/main/java/com/product/mobile/core/config/MobileCoreCode.java
index 668965a..e904129 100644
--- a/src/main/java/com/product/mobile/core/config/MobileCoreCode.java
+++ b/src/main/java/com/product/mobile/core/config/MobileCoreCode.java
@@ -10,39 +10,43 @@
  * @Desc 閿欒鏋氫妇
  */
 public enum MobileCoreCode implements IEnum {
-    SYSTEM_OPERATION_SUCCESS("鎴愬姛", "200"),
-    SYSTEM_FORM_NODATA("璇锋眰鍙傛暟涓虹┖", "999"),
-    SYSTEM_FORM_COUNT("璇锋眰鍙傛暟鏈夎", "998"),
-    SYSTEM_TABLE_NODATA("璇锋眰琛ㄥ悕鏈夎", "997"),
-    SYSTEM_ACQUIRE_PARAM_FAIL("鑾峰彇鍙傛暟澶辫触", "996"),
-    SYSTEM_CPAGES_NOT_NULL("鍒嗛〉鍙傛暟涓嶈兘涓虹┖", "995"),
-    FIND_NAV_BAR_CONFIG_FAIL("鏌ヨ瀵艰埅鏍忛厤缃鎯呭け璐�", "001"),
-    SAVE_NAV_BAR_CONFIG_FAIL("淇濆瓨瀵艰埅鏍忛厤缃け璐�", "002"),
-    GET_NAV_BAR_CONFIG_LIST_FAIL("鏌ヨ瀵艰埅鏍忛厤缃垪琛ㄥけ璐�", "003"),
-    DEL_NAV_BAR_CONFIG_FAIL("鍒犻櫎瀵艰埅鏍忛厤缃け璐�", "004"),
-    GET_NAV_BAR_TREE_LIST_FAIL("鑾峰彇瀵艰埅鏍忓け璐�", "005"),
+	SYSTEM_OPERATION_SUCCESS("鎴愬姛", "200"),
+	SYSTEM_FORM_NODATA("璇锋眰鍙傛暟涓虹┖", "999"),
+	SYSTEM_FORM_COUNT("璇锋眰鍙傛暟鏈夎", "998"),
+	SYSTEM_TABLE_NODATA("璇锋眰琛ㄥ悕鏈夎", "997"),
+	SYSTEM_ACQUIRE_PARAM_FAIL("鑾峰彇鍙傛暟澶辫触", "996"),
+	SYSTEM_CPAGES_NOT_NULL("鍒嗛〉鍙傛暟涓嶈兘涓虹┖", "995"),
+	FIND_NAV_BAR_CONFIG_FAIL("鏌ヨ瀵艰埅鏍忛厤缃鎯呭け璐�", "001"),
+	SAVE_NAV_BAR_CONFIG_FAIL("淇濆瓨瀵艰埅鏍忛厤缃け璐�", "002"),
+	GET_NAV_BAR_CONFIG_LIST_FAIL("鏌ヨ瀵艰埅鏍忛厤缃垪琛ㄥけ璐�", "003"),
+	DEL_NAV_BAR_CONFIG_FAIL("鍒犻櫎瀵艰埅鏍忛厤缃け璐�", "004"),
+	GET_NAV_BAR_TREE_LIST_FAIL("鑾峰彇瀵艰埅鏍忓け璐�", "005"),
 
-    GET_ROUTER_FAIL("鑾峰彇璺敱澶辫触", "006"),
+	GET_ROUTER_FAIL("鑾峰彇璺敱澶辫触", "006"),
 
-    LIST_READ_MESSAGE_FAIL("鑾峰彇宸茶娑堟伅鍒楄〃澶辫触", "007"),
-    ;
+	LIST_READ_MESSAGE_FAIL("鑾峰彇宸茶娑堟伅鍒楄〃澶辫触", "007"),
 
-    MobileCoreCode(String text, String code) {
-        this.code = code;
-        this.text = text;
-    }
+	GET_FACE_FIELD_FAIL("鑾峰彇琛ㄥ崟瀛楁澶辫触", "008"),
 
-    private String code;
+	GET_FACE_CONFIG_FAIL("鑾峰彇琛ㄥ崟閰嶇疆澶辫触", "009"),
+	;
 
-    private String text;
+	MobileCoreCode(String text, String code) {
+		this.code = code;
+		this.text = text;
+	}
 
-    @Override
-    public String getText() {
-        return this.text;
-    }
+	private String code;
 
-    @Override
-    public String getValue() {
-        return ModuleEnum.MOBILE.getValue() + this.code;
-    }
+	private String text;
+
+	@Override
+	public String getText() {
+		return this.text;
+	}
+
+	@Override
+	public String getValue() {
+		return ModuleEnum.MOBILE.getValue() + this.code;
+	}
 }
diff --git a/src/main/java/com/product/mobile/core/controller/FaceMobileController.java b/src/main/java/com/product/mobile/core/controller/FaceMobileController.java
new file mode 100644
index 0000000..660f11f
--- /dev/null
+++ b/src/main/java/com/product/mobile/core/controller/FaceMobileController.java
@@ -0,0 +1,50 @@
+package com.product.mobile.core.controller;
+
+import com.product.core.entity.FieldSetEntity;
+import com.product.core.exception.BaseException;
+import com.product.mobile.core.config.MobileCoreCode;
+import com.product.mobile.core.service.FaceMobileService;
+import com.product.module.sys.version.ApiVersion;
+import com.product.util.BaseUtil;
+import com.product.util.support.AbstractBaseController;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @Author cheng
+ * @Date 2024/8/15 10:19
+ * @Desc
+ */
+@RequestMapping("/mobile-face/")
+@RestController
+public class FaceMobileController extends AbstractBaseController {
+
+	@Resource
+	FaceMobileService faceMobileService;
+
+	/**
+	 * 鑾峰彇琛ㄥ崟鎵�鏈夌粍浠剁殑瀛楁鏍规嵁flow_task 琛� uuid 鎴栬�� flow_detail 琛� uuid
+	 *
+	 * @param request
+	 * @return
+	 */
+	@PostMapping("/get-face-field/{version}")
+	@ApiVersion(1)
+	public String getFaceField(HttpServletRequest request) {
+		try {
+			//涓嶉獙璇佷紶鍏ョ殑琛ㄥ悕 鍙兘浼氭槸 product_sys_flow_task/product_sys_flow_detail
+			FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
+			return BaseUtil.success(faceMobileService.getFaceField(fse));
+		} catch (BaseException e) {
+			e.printStackTrace();
+			return error(e);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return error(MobileCoreCode.GET_FACE_FIELD_FAIL, e);
+		}
+	}
+}
diff --git a/src/main/java/com/product/mobile/core/entity/FaceFieldEntity.java b/src/main/java/com/product/mobile/core/entity/FaceFieldEntity.java
new file mode 100644
index 0000000..0e31fae
--- /dev/null
+++ b/src/main/java/com/product/mobile/core/entity/FaceFieldEntity.java
@@ -0,0 +1,72 @@
+package com.product.mobile.core.entity;
+
+/**
+ * @Author cheng
+ * @Date 2024/8/15 11:12
+ * @Desc
+ */
+public class FaceFieldEntity {
+
+	/**
+	 * 鏄惁蹇呭~
+	 */
+	private String required;
+	/**
+	 * 鏄剧ず鍚嶇О
+	 */
+	private String label;
+
+	/**
+	 * 鍙傜収鍚嶇О
+	 */
+	private String advanceName;
+
+	/**
+	 * 缁勪欢绫诲瀷
+	 */
+	private String componentType;
+
+	/**
+	 * 鏄惁澶氶��
+	 */
+	private String multiple;
+
+	/**
+	 * 绂佺敤
+	 */
+	private String disabled;
+	/**
+	 * 榛樿鍊�
+	 */
+	private String defaultValue;
+
+	/**
+	 * 鎻愮ず淇℃伅
+	 */
+	private String placeholder;
+	/**
+	 * 闄勪欢缁戝畾琛ㄥ悕
+	 */
+	private String fileTableName;
+
+	/**
+	 * 闄勪欢缁戝畾瀛楁
+	 */
+	private String fileField;
+
+	/**
+	 * 鎺т欢鎺掑簭
+	 */
+	private Integer controlSequence;
+	/**
+	 * 楂樼骇鍙傜収鍏宠仈璁剧疆
+	 */
+	private String promptSetting;
+
+	/**
+	 * 娴佹按鍙烽厤缃�
+	 */
+	private String serialNumber;
+
+
+}
diff --git a/src/main/java/com/product/mobile/core/service/FaceMobileService.java b/src/main/java/com/product/mobile/core/service/FaceMobileService.java
new file mode 100644
index 0000000..310b02f
--- /dev/null
+++ b/src/main/java/com/product/mobile/core/service/FaceMobileService.java
@@ -0,0 +1,147 @@
+package com.product.mobile.core.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ReflectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.product.common.lang.StringUtils;
+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.util.FaceUtil;
+import com.product.mobile.core.config.MobileCoreCode;
+import com.product.mobile.core.entity.FaceFieldEntity;
+import com.product.tool.flow.config.CmnConst;
+import com.product.tool.flow.config.FlowCode;
+import com.product.tool.flow.service.FlowDetailService;
+import com.product.util.BaseUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @Author cheng
+ * @Date 2024/8/15 10:21
+ * @Desc
+ */
+@Service
+public class FaceMobileService extends AbstractBaseService {
+
+	@Resource
+	FlowDetailService flowDetailService;
+
+	public List<FaceFieldEntity> getFaceField(FieldSetEntity fse) throws BaseException {
+		String flowBusinessForm = flowDetailService.getFlowBusinessForm(fse);
+		JSONObject jsonObject = JSON.parseObject(flowBusinessForm);
+		JSONObject data = jsonObject.getJSONObject("data");
+		FieldSetEntity faceFse = null;
+		if (data != null && !StringUtils.isEmpty(data.getString("face_number"))) {
+			if (!StringUtils.isEmpty(data.getString("face_number"))) {
+				faceFse = getBaseDao().getFieldSetEntityByFilter("product_sys_face", "face_number=?", new Object[]{data.getString("face_number")}, true);
+			}
+		} else {
+			do {
+				//鏍规嵁娴佺▼鑾峰彇琛ㄥ悕
+				FieldSetEntity detailFse;
+				if (CmnConst.TABLE_FLOW_TASK.equals(fse.getTableName())) {
+					detailFse = getBaseDao().getFieldSetEntityByFilter(CmnConst.TABLE_FLOW_DETAIL, "task_uuid=? and source_uuid is null", new Object[]{fse.getUUID()}, false);
+				} else {
+					detailFse = getBaseDao().getFieldSetEntity(CmnConst.TABLE_FLOW_DETAIL, fse.getString(CmnConst.FIELD_UUID), false);
+				}
+				if (FieldSetEntity.isEmpty(detailFse)) {
+					break;
+				}
+				//鑾峰彇琛ㄥ悕
+				String tableName = detailFse.getString("table_name");
+				FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅", new String[]{tableName});
+				if (FieldSetEntity.isEmpty(tableInfo)) {
+					break;
+				}
+				String tableUuid = tableInfo.getString("uuid");
+				faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", "table_uuid=?", new Object[]{tableUuid}, true);
+			} while (false);
+
+		}
+
+		if (FieldSetEntity.isEmpty(faceFse) || DataTableEntity.isEmpty(faceFse.getSubDataTable("product_sys_face_control_property"))) {
+			throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL);
+		}
+
+		DataTableEntity productSysFaceControlProperty = faceFse.getSubDataTable("product_sys_face_control_property");
+		List<FieldSetEntity> tagFieldSetEntityList = new ArrayList<>();
+		//鏍规嵁group_uuid 鍒嗙粍
+		Map<String, List<FieldSetEntity>> groupMap = new HashMap<>();
+		for (FieldSetEntity fieldSetEntity : productSysFaceControlProperty.getData()) {
+			String groupUuid = fieldSetEntity.getString("group_uuid");
+			if ("tag".equals(fieldSetEntity.getString("property_name"))) {
+				tagFieldSetEntityList.add(fieldSetEntity);
+			}
+			if (StringUtils.isEmpty(groupUuid)) {
+				continue;
+			}
+			if (!groupMap.containsKey(groupUuid)) {
+				groupMap.put(groupUuid, new ArrayList<>());
+			}
+			groupMap.get(groupUuid).add(fieldSetEntity);
+		}
+
+		if (CollectionUtil.isEmpty(groupMap)) {
+			throw new BaseException(MobileCoreCode.GET_FACE_CONFIG_FAIL);
+		}
+
+		List<FaceFieldEntity> result = new ArrayList<>();
+		for (FieldSetEntity fs : tagFieldSetEntityList) {
+			String groupUuid = fs.getString("group_uuid");
+			String parentUuid = fs.getString("parent_uuid");
+			if (StringUtils.isEmpty(groupUuid) || StringUtils.isEmpty(parentUuid)) {
+				continue;
+			}
+			List<FieldSetEntity> fieldSetEntity = productSysFaceControlProperty.getFieldSetEntity(parentUuid);
+			if (CollectionUtil.isEmpty(fieldSetEntity)) {
+				continue;
+			}
+			FieldSetEntity parent = fieldSetEntity.get(0);
+			String groupUuid1 = parent.getString("group_uuid");
+			if (StringUtils.isEmpty(groupUuid1)) {
+				continue;
+			}
+			List<FieldSetEntity> parentGroup = groupMap.get(groupUuid1);
+			FaceFieldEntity faceFieldEntity = new FaceFieldEntity();
+			for (FieldSetEntity setEntity : parentGroup) {
+				//鎵惧埌灞炴�у悕绉�= __vModel__
+				String propertyName = setEntity.getString("property_name");
+				if ("__vModel__".equals(setEntity.getString("property_name"))) {
+					result.add(faceFieldEntity);
+					propertyName = "fieldName";
+				}
+				propertyName = StrUtil.toCamelCase(propertyName);
+				if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName)) {
+					ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
+				}
+			}
+			List<FieldSetEntity> configGroup = groupMap.get(groupUuid);
+			for (FieldSetEntity setEntity : configGroup) {
+				//鎵惧埌灞炴�у悕绉�= __vModel__
+				String propertyName = setEntity.getString("property_name");
+				if ("tag".equals(propertyName)) {
+					result.add(faceFieldEntity);
+					propertyName = "component_type";
+				} else if ("field".equals(propertyName)) {
+					propertyName = "fileField";
+				} else if ("tableName".equals(propertyName)) {
+					propertyName = "fileTableName";
+				}
+				propertyName = StrUtil.toCamelCase(propertyName);
+				if (ReflectUtil.hasField(FaceFieldEntity.class, propertyName)) {
+					ReflectUtil.setFieldValue(faceFieldEntity, propertyName, setEntity.getObject("property_value"));
+				}
+			}
+
+		}
+
+		return result;
+	}
+}

--
Gitblit v1.9.2