From 78a2270a9f47b0143474ff800d6a69f8d72a17dd Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期四, 01 八月 2024 09:17:52 +0800
Subject: [PATCH] 预警转发

---
 src/main/java/com/product/administration/controller/EarlyWarningManagerController.java |   60 ++++++++++++++++---
 src/main/java/com/product/administration/config/SystemCode.java                        |   15 +++--
 src/main/java/com/product/administration/service/EarlyWarningManagerService.java       |   31 ++++++++++
 src/main/java/com/product/administration/service/ide/IEarlyWarningManager.java         |   22 ++++--
 4 files changed, 104 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/product/administration/config/SystemCode.java b/src/main/java/com/product/administration/config/SystemCode.java
index b998ed0..4ec5ef5 100644
--- a/src/main/java/com/product/administration/config/SystemCode.java
+++ b/src/main/java/com/product/administration/config/SystemCode.java
@@ -247,17 +247,17 @@
     TEAM_MANAGER_DELETE_FAIL_HAS_SUB_TEAM("鍥㈤槦鍒犻櫎澶辫触,鍖呭惈瀛愬洟闃�", ModuleEnum.ADMINISTRAT.getValue() + "176"),
     TEAM_MANAGER_DELETE_FAIL_HAS_STAFF_REFERED("鍥㈤槦鍒犻櫎澶辫触,鍛樺伐宸茬粡鍏宠仈", ModuleEnum.ADMINISTRAT.getValue() + "177"),
     TEAM_SAVE_FAIL_DUPLICATE_NAME("淇濆瓨澶辫触,鍥㈤槦鍚嶇О閲嶅", ModuleEnum.ADMINISTRAT.getValue() + "178"),
-	
+
 	COMPANY_NOT_CONFIG_PUNCH_TIME("鍏徃鏈厤缃墦鍗℃椂闂�", ModuleEnum.ADMINISTRAT.getValue() + "179"),
 
     LIST_COOPERATES_MODEL_FAIL("鍗忓悓妯℃澘鍒楄〃鑾峰彇澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "180"),
     FIND_COOPERATES_MODEL_FAIL("鍗忓悓妯℃澘鑾峰彇澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "181"),
-    
+
     ATTENDANCE_LOCATION_SAVE_FAIL("鑰冨嫟鐐逛繚瀛樺け璐�", ModuleEnum.ADMINISTRAT.getValue() + "182"),
     ATTENDANCE_LOCATION_LIST_FAIL("鑰冨嫟鐐规煡璇㈠け璐�", ModuleEnum.ADMINISTRAT.getValue() + "183"),
 
     WARN_NO_NORMAL_STATUS_RECORD("涓鸿幏鍙栧埌鍚敤鐨勯璀﹁褰�", ModuleEnum.ADMINISTRAT.getValue() + "184"),
-    
+
     COMPANY_PUNCH_TIME_NOT_CONFIG("鍏徃鎵撳崱鏃堕棿鏈厤缃�", ModuleEnum.ADMINISTRAT.getValue()+"185"),
 
     KNOWLEDGE_SHARING_LIST_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鍒楄〃澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "186"),
@@ -271,13 +271,16 @@
 
     CONFERENCE_ROOM_SAVE_FIAL_DUPLICATE_NAME("浼氳瀹や繚瀛樺け璐�,宸插瓨鍦ㄥ悓鍚嶇О浼氳瀹�", ModuleEnum.ADMINISTRAT.getValue() + "193"),
     WORK_ATTENDANCE_REPORT_FAIL("鑰冨嫟鎶ヨ〃鑾峰彇澶辫触锛�", ModuleEnum.ADMINISTRAT.getValue() + "194"),
-    
+
     ANNOUNCEMENT_FAIL("鍏憡璇︽儏", ModuleEnum.ADMINISTRAT.getValue() + "195"),
 	ANNOUNCEMENT_ADD("鍏憡鏂板", ModuleEnum.ADMINISTRAT.getValue() + "196"),
 	ANNOUNCEMENT_UPDATE("鍏憡淇敼", ModuleEnum.ADMINISTRAT.getValue() + "197"),
 	ANNOUNCEMENT_DELECT("鍏憡鍒犻櫎", ModuleEnum.ADMINISTRAT.getValue() + "198"),
-	ANNOUNCEMENT_REMIND("宸茶鎻愰啋澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "199"),
-    
+    ANNOUNCEMENT_REMIND("宸茶鎻愰啋澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "199"),
+
+    WARN_TRANSMIT_USER_IS_NULL("棰勮杞彂浜哄憳涓虹┖", ModuleEnum.ADMINISTRAT.getValue() + "200"),
+    WARN_TRANSMIT_USER_REPEAT("棰勮杞彂浜哄憳閲嶅", ModuleEnum.ADMINISTRAT.getValue() + "201"),
+
     EXPORT_FILE_FAIL("瀵煎嚭鏂囦欢澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "998"),
     IMPORT_FILE_FAIL("瀵煎叆鏂囦欢澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "999"),
 
diff --git a/src/main/java/com/product/administration/controller/EarlyWarningManagerController.java b/src/main/java/com/product/administration/controller/EarlyWarningManagerController.java
index b6ddbfe..4343718 100644
--- a/src/main/java/com/product/administration/controller/EarlyWarningManagerController.java
+++ b/src/main/java/com/product/administration/controller/EarlyWarningManagerController.java
@@ -1,17 +1,7 @@
 package com.product.administration.controller;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import com.product.admin.service.PublicService;
 import com.product.admin.service.idel.IPublicService;
-import com.product.core.spring.context.SpringMVCContextHolder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.product.administration.config.CmnConst;
 import com.product.administration.config.SystemCode;
 import com.product.administration.service.EarlyWarningManagerService;
@@ -25,7 +15,16 @@
 import com.product.core.entity.FieldSetEntity;
 import com.product.core.entity.RequestParameterEntity;
 import com.product.core.exception.BaseException;
+import com.product.core.spring.context.SpringMVCContextHolder;
 import com.product.module.sys.version.ApiVersion;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 
 /**
@@ -589,4 +588,45 @@
             return this.error(SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getValue(), SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getText() + e.getMessage());
         }
     }
+
+
+    /**
+     * 鎵归噺淇敼棰勮鏃堕棿
+     *
+     * @param request
+     * @return
+     */
+    @PostMapping("/transmit/{version}")
+    @ApiVersion(1)
+    public String transmit(HttpServletRequest request) {
+        try {
+            //鑾峰彇鍙傛暟
+            FieldSetEntity fse = null;
+            Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+            if (bean != null) {
+                RequestParameterEntity reqp = (RequestParameterEntity) bean;
+                fse = reqp.getFormData();
+            }
+            //鍒ゆ柇鍙傛暟鏄惁涓虹┖
+            if (bean == null || fse == null) {
+                SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
+                return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
+            }
+            if (fse.getTableName() == null) {
+                SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
+                return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
+            }
+            IEarlyWarningManager service = (IEarlyWarningManager) getProxyInstance(earlyWarningManagerService);
+            service.transmit(fse);
+            return OK();
+        } catch (BaseException e) {
+            e.printStackTrace();
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            return this.error(SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getValue(), SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getText() + e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            return this.error(SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getValue(), SystemCode.SYSTEM_EARLY_WARNING_UPDATE_FAIL.getText() + e.getMessage());
+        }
+    }
 }
diff --git a/src/main/java/com/product/administration/service/EarlyWarningManagerService.java b/src/main/java/com/product/administration/service/EarlyWarningManagerService.java
index b3c34e0..7556d25 100644
--- a/src/main/java/com/product/administration/service/EarlyWarningManagerService.java
+++ b/src/main/java/com/product/administration/service/EarlyWarningManagerService.java
@@ -492,4 +492,35 @@
         }
         return dte;
     }
+
+    /**
+     * 杞彂
+     * @param fse
+     */
+    @Override
+    public void transmit(FieldSetEntity fse) {
+        String uuid = fse.getUUID();
+        String messageAccepter = fse.getString("user");
+        FieldSetEntity warnMsgFse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, uuid, false);
+        String preReceiver = warnMsgFse.getString(CmnConst.RECEIVER);
+        Set<String> preReceiverSet = Sets.newHashSet(preReceiver.split(","));
+        if (StringUtils.isEmpty(messageAccepter)) {
+            throw new BaseException(SystemCode.WARN_TRANSMIT_USER_IS_NULL);
+        }
+        Set<String> transmitUserSet = Sets.newHashSet(messageAccepter.split(","));
+        transmitUserSet.forEach(transmitUser -> {
+            if (preReceiverSet.contains(transmitUser)) {
+                FieldSetEntity transmitUserFse = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_USERS, "user_id=?", new Object[]{transmitUser}, false);
+                throw new BaseException(SystemCode.WARN_TRANSMIT_USER_REPEAT.getValue(), String.format("%s:%s", SystemCode.WARN_TRANSMIT_USER_REPEAT.getText(), transmitUserFse.getString(CmnConst.USER_NAME)));
+            }
+        });
+        warnMsgFse.setValue(CmnConst.RECEIVER, preReceiver + "," + messageAccepter);
+        SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+        FieldSetEntity msgFse = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_MESSAGE, "source_table=? and source_uuid=?", new Object[]{CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, uuid}, false);
+        String title = String.format("%s鍚戞偍杞彂浜嗛璀︽秷鎭��%s銆�", curUser.getUser_name(), msgFse.getString(CmnConst.TITLE));
+        String content = msgFse.getString("content");
+        WebsocketMesssageServiceThread.getInstance().appendMessage(messageAccepter, content, title, curUser.getUser_id(),
+                "31", CmnConst.BUTTON_URL_WARN_MESSAGE_INFO + "?uuid=" + fse.getUUID(),
+                CmnConst.PRODUCT_SYS_EARLY_WARNING_INFO, fse.getUUID(), curUser.getUser_id(), 0, 0, null);
+    }
 }
diff --git a/src/main/java/com/product/administration/service/ide/IEarlyWarningManager.java b/src/main/java/com/product/administration/service/ide/IEarlyWarningManager.java
index 2a9a4b6..67cd05c 100644
--- a/src/main/java/com/product/administration/service/ide/IEarlyWarningManager.java
+++ b/src/main/java/com/product/administration/service/ide/IEarlyWarningManager.java
@@ -7,30 +7,30 @@
 import com.product.core.exception.BaseException;
 
 public interface IEarlyWarningManager {
-	
+
 	/**
 	 * 	棰勮閰嶇疆鏂板
 	 * @param fse
 	 * @return
 	 */
 	String addWarning(FieldSetEntity fse) throws BaseException, SchedulerException, TaskException;
-	
+
 	/**
 	 * 	棰勮閰嶇疆淇敼
 	 * @param fse
 	 * @return
-	 * @throws TaskException 
-	 * @throws SchedulerException 
-	 * @throws BaseException 
+	 * @throws TaskException
+	 * @throws SchedulerException
+	 * @throws BaseException
 	 */
 	boolean updateWarning(FieldSetEntity fse) throws BaseException, SchedulerException, TaskException;
-	
+
 	/**
 	 * 	棰勮閰嶇疆鍒犻櫎
 	 * @param uuid
 	 * @return
-	 * @throws SchedulerException 
-	 * @throws BaseException 
+	 * @throws SchedulerException
+	 * @throws BaseException
 	 */
 	boolean deleteWarning(String uuid) throws BaseException, SchedulerException;
 
@@ -42,4 +42,10 @@
 	 * @throws BaseException
 	 */
 	boolean updateEarlyWarningTime(FieldSetEntity fse)throws BaseException, SchedulerException, TaskException;
+
+	/**
+	 * 杞彂
+	 * @param fse
+	 */
+	void transmit(FieldSetEntity fse);
 }

--
Gitblit v1.9.2