From 1e48c6297625c22677634b9144383dd95ded511e Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期五, 15 十一月 2024 16:36:20 +0800
Subject: [PATCH] 设备预警提醒频率

---
 src/main/java/com/product/administration/service/EarlyWarningServer.java |  610 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 432 insertions(+), 178 deletions(-)

diff --git a/src/main/java/com/product/administration/service/EarlyWarningServer.java b/src/main/java/com/product/administration/service/EarlyWarningServer.java
index 8061dfe..a93fc4b 100644
--- a/src/main/java/com/product/administration/service/EarlyWarningServer.java
+++ b/src/main/java/com/product/administration/service/EarlyWarningServer.java
@@ -1,14 +1,18 @@
 package com.product.administration.service;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 import com.google.common.collect.Sets;
 import com.product.administration.config.SystemCode;
 import com.product.common.collect.SetUtils;
 import com.product.util.SystemParamReplace;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
 import com.product.administration.config.CmnConst;
@@ -32,8 +36,11 @@
 	BaseDao baseDao;
 	
 	@Autowired
+	private ApplicationContext applicationContext;
+
+	@Autowired
 	FlowService flowService;
-	
+
 
 	public BaseDao getBaseDao() {
 		return baseDao;
@@ -60,6 +67,7 @@
 
 	/**
 	 * 棰勮-缁欏畾uuid鍗曚釜棰勮锛岄�氬父涓哄畾鏃朵换鍔¤Е鍙�
+	 *
 	 * @param uuid
 	 */
 	public void triggerSingleWarningTask(String uuid) {
@@ -73,9 +81,200 @@
 			SpringMVCContextHolder.getSystemLogger().error(e);
 		}
 	}
+	
+	/**
+	 * 鐗规畩棰勮
+	 * 棰勮鏁版嵁鏉ユ簮浜庡叾瀹冧笟鍔★紙瀵硅薄鏂规硶璋冪敤锛夛紝楠岃瘉鏉′欢鏉ユ簮浜庡叾瀹冧笟鍔★紙bean璋冪敤锛�
+	 * 鏁版嵁鏇挎崲渚濈劧鏉ユ簮浜庨厤缃〃
+	 *
+	 * @param configUuid
+	 * @param dtService 棰勮鐨勪笟鍔℃暟鎹紝鍏宠仈璁惧鏁版嵁
+	 */
+	public void warningCreate(String configUuid, DataTableEntity dtServiceData, Map<String, String> mapFields) {
+		
+		FieldSetEntity fseWarningConfig = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_EARLY_WARNING, configUuid, false);
+		if (!"1".equals(fseWarningConfig.getString(CmnConst.CONFIG_STATUS))) {
+			throw new BaseException(SystemCode.WARN_NO_NORMAL_STATUS_RECORD);
+		}
+		String mainTableName = fseWarningConfig.getString(CmnConst.SOURCE_TABLE);              //涓昏〃鍚�
 
+		String warnContent = fseWarningConfig.getString(CmnConst.WARNING_CONTENT_HIDE);        //鎻愰啋鍐呭
+		String warnMethod = fseWarningConfig.getString(CmnConst.WARNING_METHOD);               //棰勮鏂瑰紡
+
+		String serviceReceiver = fseWarningConfig.getString(CmnConst.BUSINESS_RELATED_PERSON); //涓氬姟鐩稿叧浜哄憳(琛ㄥ悕.瀛楁鍚�)
+		String fixedReceiver = fseWarningConfig.getString(CmnConst.FIXED_RECEIVER);            //鍥哄畾鎺ユ敹浜�
+		
+		//鑾峰彇鍙戦�佹秷鎭鐜�
+		Double cronExpression = fseWarningConfig.getDouble("reminder_frequency");
+
+		//鍙戦�佹秷鎭殑棰戠巼 1.23 灏忔暟鐐瑰墠闈唬琛ㄥぉ 灏忔暟鐐瑰悗闈唬琛ㄥ皬鏃�
+		double seconds = 0;
+		if (cronExpression != null && cronExpression > 0) {
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负灏忔椂
+			double hours = cronExpression * 24;
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负鍒嗛挓
+			double minutes = hours * 60;
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负绉�
+			seconds = minutes * 60;
+		}
+
+		Map<String, String> tableNameAndAlias = new HashMap<>();//鐩稿叧琛ㄥ悕-->琛ㄥ埆鍚�,tableName-->tableName1
+		Map<String, String> fieldAndAlias = new HashMap<>();    //鐩稿叧瀛楁-->瀛楁鍒悕,tableName.fieldName-->tableName1fieldName
+		Map<String, String> fieldReference = new HashMap<>();   //缁勫悎鐩稿叧瀛楁鐨勫弬鐓�,tableName1fieldName-->referenceName
+		StringBuilder concatField = new StringBuilder();        //缁勫悎鐩稿叧瀛楁,tableName1.fieldName tableName1fieldName
+		//瑙f瀽涓氬姟鐩稿叧浜哄憳
+		if (!StringUtils.isEmpty(serviceReceiver)) {
+			parseWarningContent(serviceReceiver, concatField, tableNameAndAlias, fieldAndAlias, fieldReference);
+		}
+		//瑙f瀽棰勮鍐呭
+		if (!StringUtils.isEmpty(warnContent)) {
+			parseWarningContent(warnContent, concatField, tableNameAndAlias, fieldAndAlias, fieldReference);
+		}
+		
+		DataTableEntity dtParmFault = null;
+		String beanAndMehtod = fseWarningConfig.getString("bean");
+		Object bean = applicationContext.getBean(beanAndMehtod.split("\\.")[0]);
+		try {
+			Method method = bean.getClass().getMethod(beanAndMehtod.split("\\.")[1], DataTableEntity.class, Map.class);
+			dtParmFault = (DataTableEntity)method.invoke(bean, dtServiceData, mapFields);
+		} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+			e.printStackTrace();
+		} catch (NoSuchMethodException e) {
+			e.printStackTrace();
+		} catch (SecurityException e) {
+			e.printStackTrace();
+		}
+		if (!BaseUtil.dataTableIsEmpty(dtParmFault)) {
+			// 鑾峰彇鐩稿叧璁惧鍘嗗彶鏈�鏂伴璀�
+			Object[] limitParam = dtParmFault.getFieldAllValues("unique_key");
+			StringBuilder sqlWarnHistory = new StringBuilder();
+			sqlWarnHistory.append("SELECT e.* \n");
+			sqlWarnHistory.append("FROM product_sys_early_warning_info e \n");
+			sqlWarnHistory.append("JOIN ( \n");
+			sqlWarnHistory.append(" SELECT data_uuid, MAX(early_warning_datetime) AS latest_datetime \n");
+			sqlWarnHistory.append(" FROM product_sys_early_warning_info ");
+			sqlWarnHistory.append(" WHERE early_warning_uuid=? and (").append(BaseUtil.buildQuestionMarkFilter("data_uuid", limitParam, true)).append(") \n");
+			sqlWarnHistory.append(" GROUP BY data_uuid \n");
+			sqlWarnHistory.append(") AS latest ON e.data_uuid = latest.data_uuid AND e.early_warning_datetime = latest.latest_datetime");
+			DataTableEntity dtLastWarn = baseDao.listTable(sqlWarnHistory.toString(), new Object[] {configUuid});
+			Map<String, FieldSetEntity> mapLastWarn = new HashMap<>();
+			if (!DataTableEntity.isEmpty(dtLastWarn)) {
+				for (int j = 0; j < dtLastWarn.getRows(); j++) {
+					FieldSetEntity fse = dtLastWarn.getFieldSetEntity(j);
+					mapLastWarn.put(fse.getString("data_uuid"), fse);
+				}
+			}
+			// 閬嶅巻棰勮鏁版嵁
+			for (int j = 0; j < dtParmFault.getRows(); j++) {
+				FieldSetEntity fseParamFault = dtParmFault.getFieldSetEntity(j);
+				String deviceUUID = fseParamFault.getString(mapFields.get("device_code_field"));
+				String paramType = fseParamFault.getString(mapFields.get("param_type_field"));
+				String faultGrade = fseParamFault.getString("fault_grade_uuid");
+
+				// 涓氬姟uuid锛堣鏁版嵁鐗规寚锛氳澶�,鍙傛暟锛�
+				String uniqueKey = fseParamFault.getString("unique_key");
+
+				// 鍒ゆ柇鏄惁棰勮
+				if (mapLastWarn.containsKey(uniqueKey) && !StringUtils.isEmpty(cronExpression)) {
+					//濡傛灉宸茬粡瀛樺湪棰勮淇℃伅 鏍规嵁cron琛ㄨ揪寮忓垽鏂槸鍚﹂渶瑕佸啀娆¢璀�
+					Date lastWarnTime = mapLastWarn.get(uniqueKey).getDate("early_warning_datetime");
+					if (lastWarnTime != null) {
+						long time = new Date().getTime() - lastWarnTime.getTime();
+						if (time < seconds * 1000) {
+							continue;
+						}
+					}
+				}
+				
+				// 鑾峰彇瑙嗗浘鏁版嵁
+				StringBuilder sqlData = new StringBuilder();
+				sqlData.append("SELECT ").append(concatField.subSequence(1, concatField.length())).append(" \n");
+				sqlData.append("FROM ").append(mainTableName).append(" " + tableNameAndAlias.get(mainTableName)).append(" \n");
+				sqlData.append("WHERE ").append("device_number = ? AND param_config_uuid = ? AND uuid = ?");
+				FieldSetEntity fseService = baseDao.getFieldSetEntityBySQL(sqlData.toString(),
+						new Object[] {deviceUUID, paramType, faultGrade}, false);
+				
+				//淇℃伅鎺ユ敹浜�
+				Set<String> receiverSet = Sets.newTreeSet();
+
+				//瑁呰浇涓氬姟鎺ユ敹浜�
+				String tempStr;
+				if (!StringUtils.isEmpty(serviceReceiver)) {
+					String[] splitReceiver = serviceReceiver.replace("{#", "").replace("#}", "").split(",");
+					for (int k = 0; k < splitReceiver.length; k++) {
+						tempStr = fseService.getString(fieldAndAlias.get(splitReceiver[k]));
+						if (!StringUtils.isEmpty(tempStr)) {
+							for (String singlePerson : tempStr.split(",")) {
+								receiverSet.add(singlePerson);
+							}
+						}
+					}
+				}
+
+				// 鑻ユ槸鍕鹃�変簡鐩村睘棰嗗锛岄偅涔堜竴骞舵坊鍔犱笂 6c 2022骞�3鏈�22鏃� 09:25:43
+				if ("1".equals(fseWarningConfig.getString(CmnConst.DIRECT_LEADER_FLAG)) && !receiverSet.isEmpty()) {
+					StringBuilder directLeaderSql = new StringBuilder(256);
+					directLeaderSql.append("SELECT l.user_id,l.show_name,l.direct_leader_code,l.tricode \n");
+					directLeaderSql.append("FROM product_sys_staffs l \n");
+					directLeaderSql.append("INNER JOIN ( \n");
+					directLeaderSql.append(" SELECT user_id,show_name,direct_leader_code,tricode \n");
+					directLeaderSql.append(" FROM product_sys_staffs \n");
+					directLeaderSql.append(" WHERE ").append(BaseUtil.buildQuestionMarkFilter("user_id", receiverSet.size(), true));
+					directLeaderSql.append("\n) p ON l.tricode=p.direct_leader_code");
+					DataTableEntity directLeaderDte = baseDao.listTable(directLeaderSql.toString(), receiverSet.toArray());
+					FieldSetEntity directLeaderFse;
+					for (int k = 0; k < directLeaderDte.getRows(); k++) {
+						directLeaderFse = directLeaderDte.getFieldSetEntity(k);
+						receiverSet.add(directLeaderFse.getString(CmnConst.USER_ID));
+					}
+				}
+
+				//瑁呰浇鍥哄畾鎺ユ敹浜�
+				if (!StringUtils.isEmpty(fixedReceiver)) {
+					String[] splitReceiver = fixedReceiver.split(",");
+					for (int k = 0; k < splitReceiver.length; k++) {
+						FieldSetEntity fseStaff = baseDao.getFieldSetEntityByFilter("product_sys_users", "user_id=?", new Object[]{splitReceiver[k]}, false);
+						receiverSet.add(fseStaff.getString(CmnConst.USER_ID));
+					}
+				}
+
+				//鏆傛椂鏇挎崲鎻愰啋鍐呭
+				warnContent = SystemParamReplace.replaceParams(warnContent, fseService);
+				String content = getContentByTableSource(fseService, warnContent, fieldReference);
+//				content = content.replace("銆愬弬鏁板�笺��", fseParamFault.getString(fseParamFault.getString("target_value_field")));
+				
+				String allReceiver = SetUtils.set2String(receiverSet, ",");
+				
+				//鑷姩鐢熸垚棰勮鏃ュ織淇℃伅
+				FieldSetEntity fseWarnLog = new FieldSetEntity(CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO);
+				fseWarnLog.setValue(CmnConst.EARLY_WARNING_DATETIME, new Date());
+				fseWarnLog.setValue(CmnConst.EARLY_WARNING_UUID, configUuid);
+				fseWarnLog.setValue(CmnConst.DATA_UUID, uniqueKey);
+//				fse.setValue(CmnConst.DATA_UUID, serviceId);
+				fseWarnLog.setValue(CmnConst.WARNING_CONTENT, content);
+				fseWarnLog.setValue(CmnConst.RECEIVER, allReceiver);
+				fseWarnLog.setValue(CmnConst.WARNING_METHOD, warnMethod);
+				baseDao.add(fseWarnLog);
+				
+				//鍙戦�佷俊鎭�
+				if (!StringUtils.isEmpty(warnMethod)) {
+					String[] send_method = warnMethod.split(",");
+					for (int k = 0; k < send_method.length; k++) {
+						if ("1".equals(send_method[k])) {    //绯荤粺娑堟伅
+							WebsocketMesssageServiceThread.getInstance().appendMessage(allReceiver, content, "棰勮娑堟伅", 1, "31", CmnConst.BUTTON_URL_WARN_MESSAGE_INFO + "?uuid=" + fseWarnLog.getUUID(), CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, fseWarnLog.getUUID(), 1, 0, 0);
+						} else if ("2".equals(send_method[k])) {    //鐢靛瓙閭欢
+							parseMail(content, allReceiver);
+						} else if ("3".equals(send_method[k])) {    //鐭俊娑堟伅
+							parseSMS(content, allReceiver);
+						}
+					}
+				}
+			}
+		}
+	}
 	/**
 	 * 鍗曚釜棰勮
+	 *
 	 * @param fseWarningConfig
 	 */
 	private void singleWarningTask(FieldSetEntity fseWarningConfig) {
@@ -95,6 +294,22 @@
 
 		String flowCode = fseWarningConfig.getString(CmnConst.FLOW_CODE);                        //娴佺▼type_code
 		String flowParam = fseWarningConfig.getString(CmnConst.FLOW_PARAM);                        //娴佺▼鍙傛暟杞崲
+
+		//鑾峰彇鍙戦�佹秷鎭鐜�
+		Double cronExpression = fseWarningConfig.getDouble("reminder_frequency");
+
+		//鍙戦�佹秷鎭殑棰戠巼 1.23 灏忔暟鐐瑰墠闈唬琛ㄥぉ 灏忔暟鐐瑰悗闈唬琛ㄥ皬鏃�
+		double seconds = 0;
+		if (cronExpression != null && cronExpression > 0) {
+
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负灏忔椂
+			double hours = cronExpression * 24;
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负鍒嗛挓
+			double minutes = hours * 60;
+			//灏嗗彂閫佹秷鎭鐜囪浆鎹负绉�
+			seconds = minutes * 60;
+		}
+
 
 		Map<String, String> tableNameAndAlias = new HashMap<>();    //鐩稿叧琛ㄥ悕-->琛ㄥ埆鍚�,tableName-->tableName1
 		Map<String, String> fieldAndAlias = new HashMap<>();        //鐩稿叧瀛楁-->瀛楁鍒悕,tableName.fieldName-->tableName1fieldName
@@ -140,13 +355,43 @@
 		//鏌ヨ绗﹀悎棰勮鐨勬暟鎹�
 		DataTableEntity dtService = baseDao.listTable(serviceSQL.toString(), new Object[]{});
 		if (!BaseUtil.dataTableIsEmpty(dtService)) {
+			Object[] serviceCollect = dtService.getFieldAllValues(mainTableAlias + "uuid");
+			
+			StringBuilder sql = new StringBuilder();
+			//鏌ヨ鏄惁宸茬粡瀛樺湪棰勮濡傛湁鐩稿悓data_uuid鐨勬暟鎹煡璇㈠嚭鏈�杩戠殑涓�鏉℃牴鎹璀︽椂闂村瓧娈� early_warning_datetime
+			sql.append("SELECT e.* \n");
+			sql.append("FROM product_sys_early_warning_info e \n");
+			sql.append("JOIN ( \n");
+			sql.append(" SELECT data_uuid, MAX(early_warning_datetime) AS latest_datetime \n");
+			sql.append(" FROM product_sys_early_warning_info \n");
+			sql.append(" WHERE early_warning_uuid=? and (").append(BaseUtil.buildQuestionMarkFilter("data_uuid", serviceCollect, true)).append(") \n");
+			sql.append(" GROUP BY data_uuid \n");
+			sql.append(") AS latest ON e.data_uuid = latest.data_uuid AND e.early_warning_datetime = latest.latest_datetime");
+			DataTableEntity dtLastWarn = baseDao.listTable(sql.toString(), new Object[] {fseWarningConfig.getUUID()});
+
+			Map<String, FieldSetEntity> mapListWarn = new HashMap<>();
+			if (!DataTableEntity.isEmpty(dtLastWarn)) {
+				for (int j = 0; j < dtLastWarn.getRows(); j++) {
+					FieldSetEntity fse = dtLastWarn.getFieldSetEntity(j);
+					mapListWarn.put(fse.getString("data_uuid"), fse);
+				}
+			}
+
+			//浠ata_uuid 杩涜鍒嗙粍
 			for (int j = 0; j < dtService.getRows(); j++) {
 				FieldSetEntity fseService = dtService.getFieldSetEntity(j);
-
 				//涓氬姟uuid
 				String serviceId = fseService.getString(mainTableAlias + "uuid");
-				//棰勮uuid
-				String warnUUID = fseWarningConfig.getUUID();
+				if (mapListWarn.containsKey(serviceId) && !StringUtils.isEmpty(cronExpression)) {
+					//濡傛灉宸茬粡瀛樺湪棰勮淇℃伅 鏍规嵁cron琛ㄨ揪寮忓垽鏂槸鍚﹂渶瑕佸啀娆¢璀�
+					Date preTime = mapListWarn.get(serviceId).getDate("early_warning_datetime");
+					if (preTime != null) {
+						long time = new Date().getTime() - preTime.getTime();
+						if (time < seconds * 1000) {
+							continue;
+						}
+					}
+				}
 
 				//淇℃伅鎺ユ敹浜�
 				Set<String> receiverSet = Sets.newTreeSet();
@@ -209,7 +454,7 @@
 				FieldSetEntity fse = new FieldSetEntity();
 				fse.setTableName(CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO);
 				fse.setValue(CmnConst.EARLY_WARNING_DATETIME, new Date());
-				fse.setValue(CmnConst.EARLY_WARNING_UUID, warnUUID);
+				fse.setValue(CmnConst.EARLY_WARNING_UUID, fseWarningConfig.getUUID());
 				fse.setValue(CmnConst.DATA_UUID, serviceId);
 				fse.setValue(CmnConst.WARNING_CONTENT, content);
 				fse.setValue(CmnConst.RECEIVER, allReceiver);
@@ -241,177 +486,181 @@
 			}
 		}
 	}
-	
-	
+
+
 	/**
-	 * 	鏍规嵁鎻愰啋鍐呭涓殑琛ㄥ睘鎬э紝杩涜鎷兼帴鎴愭爣鍑嗘牸寮�
-	 * @param content				棰勮鍐呭
-	 * @param concatField			缁勫悎瀛楁
-	 * @param tableNameAndAlias		琛ㄥ悕鍙婂埆鍚�
-	 * @param fieldAndAlias			瀛楁鍚嶅強鍒悕
-	 * @param fieldReference		瀛楁鍙婂弬鐓�
+	 * 鏍规嵁鎻愰啋鍐呭涓殑琛ㄥ睘鎬э紝杩涜鎷兼帴鎴愭爣鍑嗘牸寮�
+	 *
+	 * @param content           棰勮鍐呭
+	 * @param concatField       缁勫悎瀛楁
+	 * @param tableNameAndAlias 琛ㄥ悕鍙婂埆鍚�
+	 * @param fieldAndAlias     瀛楁鍚嶅強鍒悕
+	 * @param fieldReference    瀛楁鍙婂弬鐓�
 	 * @return
 	 */
-	public Object[] parseWarningContent(String warnContent, StringBuilder concatField, Map<String, String> tableNameAndAlias, Map<String, String>fieldAndAlias, Map<String, String> fieldReference) {
+	public Object[] parseWarningContent(String warnContent, StringBuilder concatField, Map<String, String> tableNameAndAlias, Map<String, String> fieldAndAlias, Map<String, String> fieldReference) {
 		int s = 0;
-		String tableAndField=null;
+		String tableAndField = null;
 		while (s >= 0) {
 			int c = warnContent.indexOf("{#", s);
 			if (c == -1) {
-				concatField.append(" uuid ");
+				concatField.append(", uuid ");
 				break;
 			}
 			int m = warnContent.indexOf("#}", c);
 			s = c + 2;
-			
+
 			//琛ㄥ悕.瀛楁鍚�
-			tableAndField=warnContent.substring(s, m);
-			
+			tableAndField = warnContent.substring(s, m);
+
 			//鑾峰彇琛ㄥ悕
-			String relationTable=tableAndField.split("\\.")[0];
+			String relationTable = tableAndField.split("\\.")[0];
 			//琛ㄥ埆鍚�
-			String relationTableAlias=relationTable+"1";
+			String relationTableAlias = relationTable + "1";
 			//瀛楁鍚�
-			String fieldName=tableAndField.split("\\.")[1];
-			
-			if (tableNameAndAlias.get(relationTable)==null) {
+			String fieldName = tableAndField.split("\\.")[1];
+
+			if (tableNameAndAlias.get(relationTable) == null) {
 				concatField.append(",");
 				concatField.append(relationTableAlias);
 				concatField.append(".uuid ");
 				concatField.append(relationTableAlias);
 				concatField.append("uuid");
-				fieldAndAlias.put(relationTable+".uuid", relationTable+"1uuid");
+				fieldAndAlias.put(relationTable + ".uuid", relationTable + "1uuid");
 				tableNameAndAlias.put(relationTable, relationTableAlias);
 			}
-			
+
 			//鐢熸垚瀛楁鍒悕-->琛ㄥ悕1瀛楁鍚�
-			String tableFieldAlias=tableAndField.replace(".", "1");
-			
-			if (fieldAndAlias.get(tableAndField)==null) {
-				fieldAndAlias.put(tableAndField,tableFieldAlias);
+			String tableFieldAlias = tableAndField.replace(".", "1");
+
+			if (fieldAndAlias.get(tableAndField) == null) {
+				fieldAndAlias.put(tableAndField, tableFieldAlias);
 				concatField.append(",");
-				concatField.append(relationTableAlias+"."+fieldName);
+				concatField.append(relationTableAlias + "." + fieldName);
 				concatField.append(" ");
 				concatField.append(tableFieldAlias);
 				fieldReference.put(tableFieldAlias, getReferenceByField(tableAndField));
 			}
 		}
-		return new Object[]{concatField,tableNameAndAlias,fieldAndAlias,fieldReference};
+		return new Object[]{concatField, tableNameAndAlias, fieldAndAlias, fieldReference};
 	}
-	
+
 	/**
-	 * 	鏍规嵁鎻愰啋鍐呭涓殑琛ㄥ睘鎬э紝杩涜鎷兼帴鎴愭爣鍑嗘牸寮�
-	 * @param flowParam				棰勮鍐呭
-	 * @param concatField			缁勫悎瀛楁
-	 * @param tableNameAndAlias		琛ㄥ悕鍙婂埆鍚�
-	 * @param fieldAndAlias			瀛楁鍚嶅強鍒悕
-	 * @param fieldReference		瀛楁鍙婂弬鐓�
+	 * 鏍规嵁鎻愰啋鍐呭涓殑琛ㄥ睘鎬э紝杩涜鎷兼帴鎴愭爣鍑嗘牸寮�
+	 *
+	 * @param flowParam         棰勮鍐呭
+	 * @param concatField       缁勫悎瀛楁
+	 * @param tableNameAndAlias 琛ㄥ悕鍙婂埆鍚�
+	 * @param fieldAndAlias     瀛楁鍚嶅強鍒悕
+	 * @param fieldReference    瀛楁鍙婂弬鐓�
 	 * @return
 	 */
-	public Object[] parseFlowParam(String flowParam, StringBuilder concatField, Map<String, String> tableNameAndAlias, Map<String, String>fieldAndAlias, Map<String, String> fieldReference) {
-		
-		String[] warnAndFlows=flowParam.split(",");
+	public Object[] parseFlowParam(String flowParam, StringBuilder concatField, Map<String, String> tableNameAndAlias, Map<String, String> fieldAndAlias, Map<String, String> fieldReference) {
+
+		String[] warnAndFlows = flowParam.split(",");
 		for (int i = 0; i < warnAndFlows.length; i++) {
-			String[] warnAndFlow=warnAndFlows[i].split("=");
-			String tableAndField=warnAndFlow[0];
-			
+			String[] warnAndFlow = warnAndFlows[i].split("=");
+			String tableAndField = warnAndFlow[0];
+
 			//鑾峰彇琛ㄥ悕
-			String relationTable=tableAndField.split("\\.")[0];
+			String relationTable = tableAndField.split("\\.")[0];
 			//琛ㄥ埆鍚�
-			String relationTableAlias=relationTable+"1";
+			String relationTableAlias = relationTable + "1";
 			//瀛楁鍚�
-			String fieldName=tableAndField.split("\\.")[1];
-			
-			if (tableNameAndAlias.get(relationTable)==null) {
+			String fieldName = tableAndField.split("\\.")[1];
+
+			if (tableNameAndAlias.get(relationTable) == null) {
 				concatField.append(",");
 				concatField.append(relationTableAlias);
 				concatField.append(".uuid ");
 				concatField.append(relationTableAlias);
 				concatField.append("uuid");
-				fieldAndAlias.put(relationTable+".uuid", relationTable+"1uuid");
+				fieldAndAlias.put(relationTable + ".uuid", relationTable + "1uuid");
 				tableNameAndAlias.put(relationTable, relationTableAlias);
 			}
-			
+
 			//鐢熸垚瀛楁鍒悕-->琛ㄥ悕1瀛楁鍚�
-			String tableFieldAlias=tableAndField.replace(".", "1");
-			
-			if (fieldAndAlias.get(tableAndField)==null) {
-				fieldAndAlias.put(tableAndField,tableFieldAlias);
+			String tableFieldAlias = tableAndField.replace(".", "1");
+
+			if (fieldAndAlias.get(tableAndField) == null) {
+				fieldAndAlias.put(tableAndField, tableFieldAlias);
 				concatField.append(",");
-				concatField.append(relationTableAlias+"."+fieldName);
+				concatField.append(relationTableAlias + "." + fieldName);
 				concatField.append(" ");
 				concatField.append(tableFieldAlias);
 				fieldReference.put(tableFieldAlias, getReferenceByField(tableAndField));
 			}
 		}
-		return new Object[]{concatField,tableNameAndAlias,fieldAndAlias,fieldReference};
+		return new Object[]{concatField, tableNameAndAlias, fieldAndAlias, fieldReference};
 	}
-	
+
 	/**
-	 * 	鏍规嵁琛ㄥ悕鍜屽瓧娈电殑鑾峰彇瀵瑰簲鍙傜収
-	 * @param tableAndField	琛ㄥ埆鍚�.瀛楁鍚�
+	 * 鏍规嵁琛ㄥ悕鍜屽瓧娈电殑鑾峰彇瀵瑰簲鍙傜収
+	 *
+	 * @param tableAndField 琛ㄥ埆鍚�.瀛楁鍚�
 	 * @return 鍙傜収鍚�
 	 */
 	public String getReferenceByField(String tableAndField) {
-		String [] tableField=tableAndField.replace("1.", ".").split("\\.");
-		String tableName=tableField[0];
-		String fieldName=tableField[1];
-		FieldSetEntity fseTableInfo=baseDao.getFieldSetEntityByFilter("product_sys_datamodel_table", "table_name=?",new Object[] {tableName}, false);
-		FieldSetEntity fseFieldInfo=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATAMODEL_FIELD, "table_uuid=? and field_name=?", new Object[] {fseTableInfo.getUUID(),fieldName}, false);
-		if (fseFieldInfo==null) {
+		String[] tableField = tableAndField.replace("1.", ".").split("\\.");
+		String tableName = tableField[0];
+		String fieldName = tableField[1];
+		FieldSetEntity fseTableInfo = baseDao.getFieldSetEntityByFilter("product_sys_datamodel_table", "table_name=?", new Object[]{tableName}, false);
+		FieldSetEntity fseFieldInfo = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATAMODEL_FIELD, "table_uuid=? and field_name=?", new Object[]{fseTableInfo.getUUID(), fieldName}, false);
+		if (fseFieldInfo == null) {
 			throw new BaseException("", "", this.getClass(), "");
 		}
-		String fieldType=fseFieldInfo.getString(CmnConst.FIELD_TYPE);
+		String fieldType = fseFieldInfo.getString(CmnConst.FIELD_TYPE);
 		if (CmnConst.USERID.equals(fieldType)) {
 			return CmnConst.USERID;
-		}else {
+		} else {
 			return fseFieldInfo.getString(CmnConst.FIELD_REFERENCE);
 		}
 	}
-	
+
 	/**
-	 * 	鐢熸垚鍏宠仈SQL
+	 * 鐢熸垚鍏宠仈SQL
+	 *
 	 * @param tableNameAndAlias
-	 * @param subTable	褰撳墠琛�
+	 * @param subTable          褰撳墠琛�
 	 * @return
 	 */
-	public String createTableRelation(Map<String,String>tableNameAndAlias, String subTable) {
+	public String createTableRelation(Map<String, String> tableNameAndAlias, String subTable) {
 		//鍏宠仈SQL
-		StringBuilder relationSql=new StringBuilder();
-		relationSql.append(subTable+" ");
-		relationSql.append(subTable+"1");
-		
+		StringBuilder relationSql = new StringBuilder();
+		relationSql.append(subTable + " ");
+		relationSql.append(subTable + "1");
+
 		//鍒ゆ柇鏄惁浣跨敤瀛愯〃
-		if (tableNameAndAlias!=null) {
+		if (tableNameAndAlias != null) {
 			//鏍规嵁鍏宠仈瀛愯〃鐢熸垚鍏宠仈SQL
 			for (String mainTableName : tableNameAndAlias.keySet()) {
 				//鑾峰彇澶栭敭瀛楁
-				String foreignKey=baseDao.getSubTableRelation(mainTableName, subTable);
+				String foreignKey = baseDao.getSubTableRelation(mainTableName, subTable);
 				if (!StringUtils.isEmpty(foreignKey)) {
 					relationSql.append(" LEFT JOIN ");
-					relationSql.append(mainTableName+" ");
-					relationSql.append(mainTableName+"1");
+					relationSql.append(mainTableName + " ");
+					relationSql.append(mainTableName + "1");
 					relationSql.append(" ON ");
-					relationSql.append(mainTableName+"1.uuid=");
-					relationSql.append(subTable+"1."+foreignKey);
+					relationSql.append(mainTableName + "1.uuid=");
+					relationSql.append(subTable + "1." + foreignKey);
 				}
 			}
 		}
 		return relationSql.toString();
 	}
-	
-	
-	public String getContentByTableSource(FieldSetEntity fse,String content, Map<String, String> concatFieldReference) {
-		if (content.indexOf("{#")==-1) {
+
+
+	public String getContentByTableSource(FieldSetEntity fse, String content, Map<String, String> concatFieldReference) {
+		if (content.indexOf("{#") == -1) {
 			return content;
 		}
-		content=content.replace(".", "1");
+		content = content.replace(".", "1");
 		return replaceParamText(content, fse, concatFieldReference);
 	}
-	
+
 	/**
 	 * 鏇挎崲鏂囨湰鍙傛暟
-	 * 
+	 *
 	 * @param paramText 鍘熸枃鏈�
 	 * @param fseData   涓氬姟鏁版嵁
 	 * @return 鏂版枃鏈�
@@ -428,8 +677,8 @@
 		Matcher m = p3.matcher(str);
 		while (m.find()) {
 			String group = m.group(2);
-			String replaceValue= SystemParamReplace.replaceSystemParameter(group);
-			if(StringUtils.isEmpty(replaceValue)) {
+			String replaceValue = SystemParamReplace.replaceSystemParameter(group);
+			if (StringUtils.isEmpty(replaceValue)) {
 				continue;
 			}
 			m.appendReplacement(sb1, replaceValue);
@@ -445,8 +694,8 @@
 				if (null != value) {
 					if (StringUtils.isEmpty(concatFieldReference.get(group))) {
 						m.appendReplacement(sb2, value);
-					}else {
-						m.appendReplacement(sb2, parseReference(concatFieldReference.get(group),value,fseData));
+					} else {
+						m.appendReplacement(sb2, parseReference(concatFieldReference.get(group), value, fseData));
 					}
 				}
 			}
@@ -454,136 +703,140 @@
 		}
 		return sb2.toString();
 	}
-	
+
 	/**
-	 * 	鍙傜収鏇挎崲
+	 * 鍙傜収鏇挎崲
+	 *
 	 * @param referenceName
 	 * @param originValue
 	 * @param fseData
 	 * @return
 	 */
 	public String parseReference(String referenceName, String originValue, FieldSetEntity fseData) {
-		if (CmnConst.USERID.equals(referenceName)) {	//浜哄憳
-			FieldSetEntity fseUser=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_USERS, "user_id=?", new Object[] {originValue}, false);
-			if (fseUser==null) {
+		if (CmnConst.USERID.equals(referenceName)) {    //浜哄憳
+			FieldSetEntity fseUser = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_USERS, "user_id=?", new Object[]{originValue}, false);
+			if (fseUser == null) {
 				throw new BaseException("", "", this.getClass(), "");
-			}else {
+			} else {
 				return fseUser.getString(CmnConst.USER_NAME);
 			}
-		}else if (referenceName.indexOf("銆�")>-1) {	//鏁版嵁瀛楀吀
+		} else if (referenceName.indexOf("銆�") > -1) {    //鏁版嵁瀛楀吀
 			referenceName.replace("銆�", "").replace("銆�", "");
-			FieldSetEntity fseDict=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DICT, "dict_name=? AND dict_value=?", new Object[] {referenceName, originValue}, false);
-			if (fseDict==null) {
+			FieldSetEntity fseDict = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DICT, "dict_name=? AND dict_value=?", new Object[]{referenceName, originValue}, false);
+			if (fseDict == null) {
 				throw new BaseException("", "", this.getClass(), "");
-			}else {
+			} else {
 				return fseDict.getString(CmnConst.DICT_LABEL);
 			}
-		}else {	//楂樼骇鍙傜収
-			FieldSetEntity fsePrompt=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_PROMPT, "prompt_name=?", new Object[] {referenceName}, false);
-			if (fsePrompt==null) {
-				throw new BaseException("", "",this.getClass(),"");
-			}else {
-				String valueField=fsePrompt.getString("value_field");
-				String viewField=fsePrompt.getString("view_fields");
-				String sourceTable=fsePrompt.getString("source_table");
-				FieldSetEntity fsePromptData=baseDao.getFieldSetEntityByFilter(sourceTable, valueField+"=?", new Object[] {originValue}, false);
-				if (fsePromptData!=null) {
+		} else {    //楂樼骇鍙傜収
+			FieldSetEntity fsePrompt = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_PROMPT, "prompt_name=?", new Object[]{referenceName}, false);
+			if (fsePrompt == null) {
+				throw new BaseException("", "", this.getClass(), "");
+			} else {
+				String valueField = fsePrompt.getString("value_field");
+				String viewField = fsePrompt.getString("view_fields");
+				String sourceTable = fsePrompt.getString("source_table");
+				FieldSetEntity fsePromptData = baseDao.getFieldSetEntityByFilter(sourceTable, valueField + "=?", new Object[]{originValue}, false);
+				if (fsePromptData != null) {
 					return fsePromptData.getString(viewField);
 				}
 			}
 		}
-		
+
 		return originValue;
 	}
-	
+
 	/**
-	 * 	瑙f瀽鏉′欢琛ㄨ揪寮�
+	 * 瑙f瀽鏉′欢琛ㄨ揪寮�
+	 *
 	 * @param warnCOnditon
 	 * @param tableNameAndAlias
 	 * @return
 	 */
 	public String parseWarnCondition(String warnConditon, Map<String, String> tableNameAndAlias) {
 		for (String tableName : tableNameAndAlias.keySet()) {
-			if (warnConditon.indexOf(tableName)>-1) {
-				warnConditon=warnConditon.replace(tableName, tableNameAndAlias.get(tableName));
+			if (warnConditon.indexOf(tableName) > -1) {
+				warnConditon = warnConditon.replace(tableName, tableNameAndAlias.get(tableName));
 			}
 		}
-		warnConditon=warnConditon.replace("{#", "").replace("#}", "");
-		warnConditon=warnConditon.replace("{%", "").replace("%}", "");
+		warnConditon = warnConditon.replace("{#", "").replace("#}", "");
+		warnConditon = warnConditon.replace("{%", "").replace("%}", "");
 		return warnConditon;
 	}
-	
+
 	/**
-	 * 	棰勮鍙戦偖浠惰В鏋�
+	 * 棰勮鍙戦偖浠惰В鏋�
+	 *
 	 * @param content
 	 * @param receiver
 	 */
-	public void parseMail(String content,String receiver) {
-		String[] user_ids=receiver.split(",");
+	public void parseMail(String content, String receiver) {
+		String[] user_ids = receiver.split(",");
 		for (int i = 0; i < user_ids.length; i++) {
-			FieldSetEntity fseStaff=baseDao.getFieldSetEntityByFilter("product_sys_staffs", "user_id=?", new Object[] {user_ids[i]}, false);
-			if (fseStaff==null) {
+			FieldSetEntity fseStaff = baseDao.getFieldSetEntityByFilter("product_sys_staffs", "user_id=?", new Object[]{user_ids[i]}, false);
+			if (fseStaff == null) {
 				continue;
 			}
-			String org_level_uuid=fseStaff.getString(CmnConst.ORG_LEVEL_UUID);
-			String userEmail=fseStaff.getString("staff_email");
-			FieldSetEntity fseCompanySmtp=baseDao.getFieldSetEntityByFilter("product_sys_company_email_smtp", "org_level_uuid=?", new Object[] {org_level_uuid}, false);
-			
-			FieldSetEntity fseMailInfo=new FieldSetEntity();
+			String org_level_uuid = fseStaff.getString(CmnConst.ORG_LEVEL_UUID);
+			String userEmail = fseStaff.getString("staff_email");
+			FieldSetEntity fseCompanySmtp = baseDao.getFieldSetEntityByFilter("product_sys_company_email_smtp", "org_level_uuid=?", new Object[]{org_level_uuid}, false);
+
+			FieldSetEntity fseMailInfo = new FieldSetEntity();
 			fseMailInfo.setTableName(CmnConst.PRODUCT_SYS_MAIL_SEND);
 			fseMailInfo.setValue(CmnConst.ORG_LEVEL_UUID, org_level_uuid);
 			fseMailInfo.setValue(CmnConst.ADDRESSEE, userEmail);
 			fseMailInfo.setValue(CmnConst.MAIL_TITLE, "棰勮淇℃伅");
 			fseMailInfo.setValue(CmnConst.MAIL_CONTENT, content);
-			if (fseCompanySmtp!=null) {
+			if (fseCompanySmtp != null) {
 				fseMailInfo.setValue(CmnConst.SMTP_SERVER_HOST, fseCompanySmtp.getString(CmnConst.SMTP_SERVER_HOST));
 				fseMailInfo.setValue(CmnConst.SMTP_SERVER_PORT, fseCompanySmtp.getString(CmnConst.SMTP_SERVER_PORT));
 				fseMailInfo.setValue(CmnConst.SMTP_USERNAME, fseCompanySmtp.getString(CmnConst.SMTP_USERNAME));
 				fseMailInfo.setValue(CmnConst.SMTP_LICENSE_CODE, fseCompanySmtp.getString(CmnConst.SMTP_LICENSE_CODE));
-			}else {
-				fseMailInfo.setValue(CmnConst.SMTP_SERVER_HOST, Global.getSystemConfig("spring.mail.host",""));
-				fseMailInfo.setValue(CmnConst.SMTP_SERVER_PORT, Global.getSystemConfig("spring.mail.port",""));
-				fseMailInfo.setValue(CmnConst.SMTP_USERNAME, Global.getSystemConfig("spring.mail.username",""));
-				fseMailInfo.setValue(CmnConst.SMTP_LICENSE_CODE, Global.getSystemConfig("spring.mail.password",""));
+			} else {
+				fseMailInfo.setValue(CmnConst.SMTP_SERVER_HOST, Global.getSystemConfig("spring.mail.host", ""));
+				fseMailInfo.setValue(CmnConst.SMTP_SERVER_PORT, Global.getSystemConfig("spring.mail.port", ""));
+				fseMailInfo.setValue(CmnConst.SMTP_USERNAME, Global.getSystemConfig("spring.mail.username", ""));
+				fseMailInfo.setValue(CmnConst.SMTP_LICENSE_CODE, Global.getSystemConfig("spring.mail.password", ""));
 			}
 			fseMailInfo.setValue("send_mode", "smtp");
-			SmtpSendMail.sendMail(fseMailInfo,null);
+			SmtpSendMail.sendMail(fseMailInfo, null);
 
 			//鍒涘缓浜哄拰鍒涘缓鏃堕棿
-			if (SpringMVCContextHolder.getCurrentUser()!=null) {
+			if (SpringMVCContextHolder.getCurrentUser() != null) {
 				fseMailInfo.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());
 			}
-			fseMailInfo.setValue(CmnConst.CREATED_UTC_DATETIME,new Date());
+			fseMailInfo.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
 			baseDao.add(fseMailInfo);
 		}
 	}
-	
+
 	/**
-	 * 	棰勮鍙戠煭淇¤В鏋�
+	 * 棰勮鍙戠煭淇¤В鏋�
+	 *
 	 * @param content
 	 * @param receiver
 	 */
-	public void parseSMS(String content,String receiver) {
-		String[] user_ids=receiver.split(",");
+	public void parseSMS(String content, String receiver) {
+		String[] user_ids = receiver.split(",");
 		for (int i = 0; i < user_ids.length; i++) {
-			FieldSetEntity fseuser=baseDao.getFieldSetEntityByFilter("product_sys_users", "user_id=?", new Object[] {user_ids[i]}, false);
-			FieldSetEntity fseStaff=baseDao.getFieldSetEntityByFilter("product_sys_staffs", "user_id=?", new Object[] {user_ids[i]}, false);
-			if (fseStaff==null) {
+			FieldSetEntity fseuser = baseDao.getFieldSetEntityByFilter("product_sys_users", "user_id=?", new Object[]{user_ids[i]}, false);
+			FieldSetEntity fseStaff = baseDao.getFieldSetEntityByFilter("product_sys_staffs", "user_id=?", new Object[]{user_ids[i]}, false);
+			if (fseStaff == null) {
 				continue;
 			}
-			String org_level_uuid=fseStaff.getString(CmnConst.ORG_LEVEL_UUID);
-			String userPhone=fseuser.getString("user_phone_number");
-			
-			FieldSetEntity fseMessageInfo=new FieldSetEntity();
+			String org_level_uuid = fseStaff.getString(CmnConst.ORG_LEVEL_UUID);
+			String userPhone = fseuser.getString("user_phone_number");
+
+			FieldSetEntity fseMessageInfo = new FieldSetEntity();
 			fseMessageInfo.setTableName(CmnConst.PRODUCT_SYS_MESSAGE_SEND);
 			fseMessageInfo.setValue(CmnConst.ORG_LEVEL_UUID, org_level_uuid);
 			fseMessageInfo.setValue("send_user", "2");
-			fseMessageInfo.setValue("receive_user",userPhone);
+			fseMessageInfo.setValue("receive_user", userPhone);
 			fseMessageInfo.setValue("content", content);
-			
-			
-			FieldSetEntity fseCompanyMessage=baseDao.getFieldSetEntityByFilter("product_sys_company_email_smtp", "org_level_uuid=?", new Object[] {org_level_uuid}, false);
-			if (fseCompanyMessage!=null) {
+
+
+			FieldSetEntity fseCompanyMessage = baseDao.getFieldSetEntityByFilter("product_sys_company_email_smtp", "org_level_uuid=?", new Object[]{org_level_uuid}, false);
+			if (fseCompanyMessage != null) {
 				fseMessageInfo.setValue(CmnConst.USER_ACCOUNT, fseCompanyMessage.getString(CmnConst.USER_ACCOUNT));
 				fseMessageInfo.setValue(CmnConst.SECRETKEY, fseCompanyMessage.getString(CmnConst.SECRETKEY));
 				fseMessageInfo.setValue(CmnConst.ECNAME, fseCompanyMessage.getString(CmnConst.ECNAME));
@@ -591,7 +844,7 @@
 				fseMessageInfo.setValue(CmnConst.ADDSERIAL, fseCompanyMessage.getString(CmnConst.ADDSERIAL));
 				fseMessageInfo.setValue(CmnConst.URL, fseCompanyMessage.getString(CmnConst.URL));
 				fseMessageInfo.setValue(CmnConst.TREATY, fseCompanyMessage.getString(CmnConst.TREATY));
-			}else {
+			} else {
 				fseMessageInfo.setValue(CmnConst.USER_ACCOUNT, "zgctjt");
 				fseMessageInfo.setValue(CmnConst.SECRETKEY, "zgctjt2019");
 				fseMessageInfo.setValue(CmnConst.ECNAME, "鑷础甯傚煄甯傚缓璁炬姇璧勫紑鍙戦泦鍥㈡湁闄愬叕鍙�");
@@ -601,43 +854,44 @@
 				fseMessageInfo.setValue(CmnConst.TREATY, "HTTP");
 			}
 			fseMessageInfo.setValue("send_mode", "smtp");
-			
+
 			HttpSmsSendUtil.sendMsg(fseMessageInfo);
 			fseMessageInfo.setValue(CmnConst.CREATED_BY, 1);
-			fseMessageInfo.setValue(CmnConst.CREATED_UTC_DATETIME,new Date());
+			fseMessageInfo.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
 			baseDao.add(fseMessageInfo);
 		}
 	}
-	
-	
+
+
 	/**
-	 * 	鑷姩鍙戣捣娴佺▼
+	 * 鑷姩鍙戣捣娴佺▼
+	 *
 	 * @param flowCode
 	 * @param flowParam
 	 * @param fseService
 	 * @param fieldAndAlias
 	 */
-	public void autoStartFlow(String warnName,String flowCode, String flowParam, FieldSetEntity fseService, Map<String, String>fieldAndAlias, Integer createdBy) {
-		
-		if (flowCode==null) {
-			return ;
+	public void autoStartFlow(String warnName, String flowCode, String flowParam, FieldSetEntity fseService, Map<String, String> fieldAndAlias, Integer createdBy) {
+
+		if (flowCode == null) {
+			return;
 		}
-		
-		FieldSetEntity fseFlowService=new FieldSetEntity();
-		
-		String [] warnAndFlows=flowParam.split(",");
+
+		FieldSetEntity fseFlowService = new FieldSetEntity();
+
+		String[] warnAndFlows = flowParam.split(",");
 		for (int i = 0; i < warnAndFlows.length; i++) {
-			String [] warnAndFlow=warnAndFlows[i].split("=");
-			String warnField=warnAndFlow[0];
-			String flowField=warnAndFlow[1];
-			
+			String[] warnAndFlow = warnAndFlows[i].split("=");
+			String warnField = warnAndFlow[0];
+			String flowField = warnAndFlow[1];
+
 			fseFlowService.setTableName(flowField.split("\\.")[0]);
 			fseFlowService.setValue(flowField.split("\\.")[1], fseService.getObject(fieldAndAlias.get(warnField.replace("{#", "").replace("#}", ""))));
 		}
-		
+
 		baseDao.add(fseFlowService);
-		
-		FieldSetEntity fseFLow=new FieldSetEntity();
+
+		FieldSetEntity fseFLow = new FieldSetEntity();
 		fseFLow.setTableName(fseFlowService.getTableName());
 		fseFLow.setValue("flow_title", warnName);
 		fseFLow.setValue("uuid", fseFlowService.getUUID());

--
Gitblit v1.9.2