From 054625ce1c40468d0d052369d1de6e0edb8d7ce8 Mon Sep 17 00:00:00 2001
From: shichongfu <shi_chongfu@163.com>
Date: 星期四, 13 七月 2023 17:51:39 +0800
Subject: [PATCH] Merge branch 'master' of http://nonxin.cn:8090/r/product/product-server-administration/V2.0.0

---
 src/main/java/com/product/administration/service/CustomerInfoService.java       |   27 
 src/main/java/com/product/administration/config/CmnConst.java                   |    4 
 src/main/java/com/product/administration/controller/AnnouncementController.java |  564 +++++++++++++++++++++++++++++++++++++
 src/main/java/com/product/administration/config/SystemCode.java                 |   20 
 src/main/java/com/product/administration/service/AnnouncementService.java       |  238 +++++++++++++++
 5 files changed, 832 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/product/administration/config/CmnConst.java b/src/main/java/com/product/administration/config/CmnConst.java
index 1d62154..1f6f64e 100644
--- a/src/main/java/com/product/administration/config/CmnConst.java
+++ b/src/main/java/com/product/administration/config/CmnConst.java
@@ -101,6 +101,9 @@
     public static final String PRODUCT_OA_SIGN_CERTIFICATE = "product_oa_sign_certificate";// 绛剧珷-璇佷功
     public static final String PRODUCT_OA_SIGN_SEAL = "product_oa_sign_seal";// 绛剧珷-鍗扮珷
     public static final String PRODUCT_SYS_ATTACHMENTS = "product_sys_attachments";// 闄勪欢
+    
+    public static final String product_oa_ANNOUNCEMENT = "product_oa_announcement"; 
+	public static final String product_oa_ANNOUNCEMENT_ROLE = "product_oa_announcement_role"; 
 
     public static final String COMPARE_TYPE = "compare_type";
 
@@ -260,6 +263,7 @@
     public static final String NAME = "name";
     public static final String IMAGE = "image";
     public static final String TITLE = "title";
+    public static final String ANNOUNCEMENT_TYPE = "announcement_type"; 
 
     // 缂撳瓨
     public static final String CACHE_ALL_TABLE_INFO = "鎵�鏈夎〃淇℃伅";
diff --git a/src/main/java/com/product/administration/config/SystemCode.java b/src/main/java/com/product/administration/config/SystemCode.java
index d89bce9..b998ed0 100644
--- a/src/main/java/com/product/administration/config/SystemCode.java
+++ b/src/main/java/com/product/administration/config/SystemCode.java
@@ -260,18 +260,24 @@
     
     COMPANY_PUNCH_TIME_NOT_CONFIG("鍏徃鎵撳崱鏃堕棿鏈厤缃�", ModuleEnum.ADMINISTRAT.getValue()+"185"),
 
-    KNOWLEDGE_SHARING_LIST_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鍒楄〃澶辫触", ModuleEnum.ORGCOMMON.getValue() + "186"),
-    KNOWLEDGE_SHARING_SAVE_FAIL("鐭ヨ瘑鍏变韩淇濆瓨澶辫触", ModuleEnum.ORGCOMMON.getValue() + "187"),
-    KNOWLEDGE_SHARING_DELETE_FAIL("鐭ヨ瘑鍏变韩鍒犻櫎澶辫触", ModuleEnum.ORGCOMMON.getValue() + "188"),
-    KNOWLEDGE_SHARING_GET_INFO_FAIL("鑾峰彇鐭ヨ瘑鍏变韩璇︽儏澶辫触", ModuleEnum.ORGCOMMON.getValue() + "189"),
-    KNOWLEDGE_SHARING_GET_TYPE_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鍒嗙被澶辫触", ModuleEnum.ORGCOMMON.getValue() + "190"),
-    KNOWLEDGE_SHARING_GET_TAG_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鏍囩澶辫触", ModuleEnum.ORGCOMMON.getValue() + "191"),
-    KNOWLEDGE_SHARING_GET_IMAGE_FAIL("鑾峰彇鍥剧墖澶辫触", ModuleEnum.ORGCOMMON.getValue() + "192"),
+    KNOWLEDGE_SHARING_LIST_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鍒楄〃澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "186"),
+    KNOWLEDGE_SHARING_SAVE_FAIL("鐭ヨ瘑鍏变韩淇濆瓨澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "187"),
+    KNOWLEDGE_SHARING_DELETE_FAIL("鐭ヨ瘑鍏变韩鍒犻櫎澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "188"),
+    KNOWLEDGE_SHARING_GET_INFO_FAIL("鑾峰彇鐭ヨ瘑鍏变韩璇︽儏澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "189"),
+    KNOWLEDGE_SHARING_GET_TYPE_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鍒嗙被澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "190"),
+    KNOWLEDGE_SHARING_GET_TAG_FAIL("鑾峰彇鐭ヨ瘑鍏变韩鏍囩澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "191"),
+    KNOWLEDGE_SHARING_GET_IMAGE_FAIL("鑾峰彇鍥剧墖澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "192"),
 
 
     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"),
+    
     EXPORT_FILE_FAIL("瀵煎嚭鏂囦欢澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "998"),
     IMPORT_FILE_FAIL("瀵煎叆鏂囦欢澶辫触", ModuleEnum.ADMINISTRAT.getValue() + "999"),
 
diff --git a/src/main/java/com/product/administration/controller/AnnouncementController.java b/src/main/java/com/product/administration/controller/AnnouncementController.java
new file mode 100644
index 0000000..f2bf66a
--- /dev/null
+++ b/src/main/java/com/product/administration/controller/AnnouncementController.java
@@ -0,0 +1,564 @@
+package com.product.administration.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+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.AnnouncementService;
+import com.product.core.config.CoreConst;
+import com.product.core.controller.support.AbstractBaseController;
+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 com.product.util.ResultInfo;
+
+@RestController
+@RequestMapping("/api/announcement")
+public class AnnouncementController extends AbstractBaseController {
+	@Autowired
+	AnnouncementService announcementService;
+
+	/**
+	 * 鏆傚瓨鍒楄〃
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/list-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String announcementList(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+
+			return OK_List(announcementService.listAnnouncement(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+
+	/**
+	 * 鍙戝竷鍒楄〃
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/list-announcement-release/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String announcementListRelease(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+
+			return OK_List(announcementService.listAnnouncementRelease(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+	/**
+	 * 鎴戠殑鍏憡鍒楄〃
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/list-announcement-receive/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String announcementListReceive(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			return OK_List(announcementService.listAnnouncementReceive(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+	/**
+	 * 鎴戠殑鍏憡鍒楄〃
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/tree-announcement-type/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String treeAnnouncementType(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			return ResultInfo.success(announcementService.treeAnnouncementType(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+
+	/**
+	 * 鏉冮檺鍒楄〃
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/list-announcement-role/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String announcementRoleList(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+
+			return OK_List(announcementService.listAnnouncementRelease(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+
+	/**
+	 * 宸茶鎻愰啋
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/read-announcement-remind/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String readAnnouncementRemind(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			// 鍒ゆ柇uuid鏄惁涓虹┖
+			if (com.alibaba.druid.util.StringUtils.isEmpty(fse.getString("uuid"))) {
+				SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_COUNT.getValue(),
+						SystemCode.SYSTEM_FORM_COUNT.getText());
+				return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+			}
+			boolean update = announcementService.readAnnouncementRemind(fse);
+			return update ? OK_Add(fse.getUUID())
+					: error(SystemCode.ANNOUNCEMENT_REMIND.getValue(), SystemCode.ANNOUNCEMENT_REMIND.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			return this.error(e.getMessage());
+		}
+	}
+
+	@RequestMapping(value = "/get-announcement-find/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String findAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			// 鍒ゆ柇uuid鏄惁涓虹┖
+			if (com.alibaba.druid.util.StringUtils.isEmpty(fse.getString("uuid"))) {
+				SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_COUNT.getValue(),
+						SystemCode.SYSTEM_FORM_COUNT.getText());
+				return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+			}
+
+			FieldSetEntity findDict = announcementService.findAnnouncement(fse);
+			return OK_List(findDict);
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_FAIL.getValue(),
+					SystemCode.ANNOUNCEMENT_FAIL.getText() + e.getMessage());
+		}
+	}
+
+	/**
+	 * 鍏憡鏆傚瓨
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/add-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String addAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+			String addRole = announcementService.addAnnouncement(fse);
+			return addRole != null ? OK_Add(addRole)
+					: error(SystemCode.ANNOUNCEMENT_ADD.getValue(), SystemCode.ANNOUNCEMENT_ADD.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_ADD.getValue(),
+					SystemCode.ANNOUNCEMENT_ADD.getText() + e.getMessage());
+		}
+	}
+
+	/**
+	 * 鍏憡鍙戝竷
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/release-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String releaseAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+			boolean addRole = announcementService.releaseAnnouncement(fse);
+			return addRole ? OK()
+					: error(SystemCode.ANNOUNCEMENT_ADD.getValue(), SystemCode.ANNOUNCEMENT_ADD.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_ADD.getValue(),
+					SystemCode.ANNOUNCEMENT_ADD.getText() + e.getMessage());
+		}
+	}
+	/**
+	 * 鎻愰啋鏌ョ湅鍏憡
+	 * 
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/remind-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String remindAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			
+			boolean addRole = announcementService.remindAnnouncement(fse);
+			return addRole ? OK()
+					: error(SystemCode.ANNOUNCEMENT_ADD.getValue(), SystemCode.ANNOUNCEMENT_ADD.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_ADD.getValue(),
+					SystemCode.ANNOUNCEMENT_ADD.getText() + e.getMessage());
+		}
+	}
+
+	@RequestMapping(value = "/update-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String updateAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			// 鍒ゆ柇uuid鏄惁涓虹┖
+			if (com.alibaba.druid.util.StringUtils.isEmpty(fse.getString("uuid"))) {
+				SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_COUNT.getValue(),
+						SystemCode.SYSTEM_FORM_COUNT.getText());
+				return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+			}
+			boolean updateRole = announcementService.updateAnnouncement(fse);
+			return updateRole ? OK()
+					: error(SystemCode.ANNOUNCEMENT_UPDATE.getValue(), SystemCode.ANNOUNCEMENT_UPDATE.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_UPDATE.getValue(),
+					SystemCode.ANNOUNCEMENT_UPDATE.getText() + e.getMessage());
+		}
+	}
+
+	/**
+	 * 鍒犻櫎鍔熻兘鏉冮檺
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/delect-announcement/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String delectAnnouncement(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			// 鍒ゆ柇uuid鏄惁涓虹┖
+			if (com.alibaba.druid.util.StringUtils.isEmpty(fse.getString("uuid"))) {
+				SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_COUNT.getValue(),
+						SystemCode.SYSTEM_FORM_COUNT.getText());
+				return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+			}
+			boolean delectRole = announcementService.delAnnouncement(fse);
+			return delectRole ? OK()
+					: error(SystemCode.ANNOUNCEMENT_DELECT.getValue(), SystemCode.ANNOUNCEMENT_DELECT.getText());
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_DELECT.getValue(),
+					SystemCode.ANNOUNCEMENT_DELECT.getText() + e.getMessage());
+		}
+	}
+	/**
+	 * 娑堟伅闂ㄦ埛鍒楄〃
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/list-announcement-gateway/{version}", method = RequestMethod.POST)
+	@ApiVersion(1)
+	public String listAnnouncementGateway(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());
+			}
+			// 鍒ゆ柇琛ㄥ悕鏄惁姝e父
+			if (!CmnConst.product_oa_ANNOUNCEMENT.equals(fse.getTableName())) {
+				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());
+			}
+			return OK_List(announcementService.listAnnouncementGateway(fse));
+		} catch (BaseException e) {
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return this.error(e.getCode(), e.getMessageInfo());
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			return error(SystemCode.ANNOUNCEMENT_DELECT.getValue(),
+					SystemCode.ANNOUNCEMENT_DELECT.getText() + e.getMessage());
+		}
+	}
+}
diff --git a/src/main/java/com/product/administration/service/AnnouncementService.java b/src/main/java/com/product/administration/service/AnnouncementService.java
new file mode 100644
index 0000000..1990dfa
--- /dev/null
+++ b/src/main/java/com/product/administration/service/AnnouncementService.java
@@ -0,0 +1,238 @@
+package com.product.administration.service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.alibaba.druid.util.StringUtils;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.product.administration.config.CmnConst;
+import com.product.core.config.CoreConst;
+import com.product.core.dao.BaseDao;
+import com.product.core.entity.DataTableEntity;
+import com.product.core.entity.FieldMetaEntity;
+import com.product.core.entity.FieldSetEntity;
+import com.product.core.exception.BaseException;
+import com.product.core.service.support.AbstractBaseService;
+import com.product.core.service.support.QueryFilterService;
+import com.product.core.spring.context.SpringMVCContextHolder;
+import com.product.core.websocket.service.WebsocketMesssageServiceThread;
+import com.product.util.BaseUtil;
+
+@Component
+public class AnnouncementService extends AbstractBaseService {
+    @Autowired
+    public QueryFilterService queryFilterService;
+    @Autowired
+    public BaseDao baseDao;
+    private final String COOPERATE_URL = "16209107146651641w21286";
+
+    public String addAnnouncement(FieldSetEntity fse) throws BaseException {
+        fse.setValue("publish_status", 0);
+        fse.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());
+        fse.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
+        return baseDao.add(fse);
+    }
+
+    public boolean releaseAnnouncement(FieldSetEntity fse) throws BaseException {
+        fse.setValue("publish_status", 1);
+        int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+        String user_name = SpringMVCContextHolder.getCurrentUser().getUser_name();
+        fse.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());
+        fse.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
+        String[] extentArr = fse.getString("extent").split(",");
+        DataTableEntity dt = new DataTableEntity();
+        for (int i = 0; i < extentArr.length; i++) {
+            FieldSetEntity fs = new FieldSetEntity();
+            FieldMetaEntity metaEntity = new FieldMetaEntity();
+            metaEntity.setTableName(new Object[]{CmnConst.product_oa_ANNOUNCEMENT_ROLE});
+            fs.setMeta(metaEntity);
+            fs.setValue("user_id", extentArr[i]);
+            fs.setValue("status", 0);
+            fs.setValue("announcement_uuid", fse.getString("uuid"));
+            dt.addFieldSetEntity(fs);
+        }
+        fse.addSubDataTable(dt);
+        String uuid = "";
+        if (StringUtils.isEmpty(fse.getUUID())) {
+            uuid = baseDao.add(fse);
+        } else {
+            boolean update = baseDao.update(fse);
+            if (update) {
+                uuid = fse.getUUID();
+            }
+        }
+        WebsocketMesssageServiceThread.getInstance().appendMessage(fse.getString("extent"), "[鍏憡]" + user_name + "鍙戝竷浜嗐��" + fse.getString("title") + "銆嬪叕鍛�", "[鍏憡]" + user_name + "鍙戝竷浜嗐��" + fse.getString("title") + "銆嬪叕鍛�",
+                user_id, "1", COOPERATE_URL + "?" + CoreConst.UUID + "=" + uuid + "&news=1", CmnConst.product_oa_ANNOUNCEMENT, fse.getUUID(), user_id, 0, 0);
+
+        return !StringUtils.isEmpty(uuid);
+    }
+
+    public boolean remindAnnouncement(FieldSetEntity fs) throws BaseException {
+        FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.product_oa_ANNOUNCEMENT, fs.getUUID(), false);
+        String user_name = SpringMVCContextHolder.getCurrentUser().getUser_name();
+        int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+        WebsocketMesssageServiceThread.getInstance().appendMessage(fs.getString("extent"), "[鍏憡]" + user_name + "鎻愰啋浣犳煡鐪嬪叕鍛娿��" + fse.getString("title") + "銆�", "[鍏憡]" + user_name + "鎻愰啋浣犳煡鐪嬪叕鍛娿��" + fse.getString("title") + "銆�",
+                user_id, "1", COOPERATE_URL + "?" + CoreConst.UUID + "=" + fs.getUUID() + "&news=1", CmnConst.product_oa_ANNOUNCEMENT, fse.getUUID(), user_id, 0, 0);
+
+        return !StringUtils.isEmpty(fs.getUUID());
+    }
+
+    public boolean updateAnnouncement(FieldSetEntity fse) throws BaseException {
+        fse.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());
+        fse.setValue(CmnConst.UPDATED_UTC_DATETIME, new Date());
+        return baseDao.update(fse);
+    }
+
+    public FieldSetEntity getAnnouncement(FieldSetEntity fse) throws BaseException {
+        return baseDao.getFieldSetEntity(CmnConst.product_oa_ANNOUNCEMENT, fse.getString("uuid"), false);
+    }
+
+    public DataTableEntity listAnnouncement(FieldSetEntity fse) throws BaseException {
+        String queryFilter = "";
+        if (!BaseUtil.dataTableIsEmpty(fse.getSubDataTable("systemSeniorQueryString"))) {
+            queryFilter = " and " + queryFilterService.getQueryFilter(fse);
+        }
+        DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT, "publish_status=0 " + queryFilter, new Object[]{},
+                new Object[]{}, " created_utc_datetime desc ", fse.getInteger("pagesize"), fse.getInteger("cpage"));
+        baseDao.loadPromptData(dt);
+        return dt;
+    }
+
+    public DataTableEntity listAnnouncementRelease(FieldSetEntity fse) throws BaseException {
+        String queryFilter = "";
+        if (!BaseUtil.dataTableIsEmpty(fse.getSubDataTable("systemSeniorQueryString"))) {
+            queryFilter = " and " + queryFilterService.getQueryFilter(fse);
+        }
+        DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT, "publish_status=1" + queryFilter, new Object[]{},
+                new Object[]{}, " created_utc_datetime desc ", fse.getInteger("pagesize"), fse.getInteger("cpage"));
+        baseDao.loadPromptData(dt);
+        return dt;
+    }
+
+    public DataTableEntity listAnnouncementReceive(FieldSetEntity fse) throws BaseException {
+        String queryFilter = "";
+        if (!BaseUtil.dataTableIsEmpty(fse.getSubDataTable("systemSeniorQueryString"))) {
+            queryFilter = " and " + queryFilterService.getQueryFilter(fse);
+        }
+        int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+        String id = "," + user_id + ",";
+        String type = "";
+        if (!StringUtils.isEmpty(fse.getString("type"))) {
+            type = " and type='" + fse.getString("type") + "'";
+        }
+        DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT,
+                "publish_status=1 and concat(',',extent,',') like '%" + id + "%'" + type + queryFilter, new Object[]{},
+                new Object[]{}, CmnConst.CREATED_UTC_DATETIME + " desc", fse.getInteger("pagesize"), fse.getInteger("cpage"));
+        baseDao.loadPromptData(dt);
+
+        return dt;
+    }
+
+    public JSONArray treeAnnouncementType(FieldSetEntity fse) throws BaseException {
+
+        //灏佽鍏憡绫诲埆鏍戠粨鏋�
+        DataTableEntity dictDt = baseDao.listTable(CmnConst.PRODUCT_SYS_DICT, "dict_name='" + CmnConst.ANNOUNCEMENT_TYPE + "'");
+        JSONArray menus = new JSONArray();
+        JSONObject parent_menu = new JSONObject();
+        parent_menu.put("dict_label", "鍏憡绫诲埆");
+        parent_menu.put("dict_value", "0");
+        JSONArray sub = new JSONArray();
+        for (int i = 0; i < dictDt.getRows(); i++) {
+            FieldSetEntity fs = dictDt.getFieldSetEntity(i);
+            JSONObject submen = BaseUtil.fieldSetEntityToJson(fs);
+            sub.add(submen);
+        }
+        parent_menu.put("children", sub);
+        menus.add(parent_menu);
+        return menus;
+    }
+//	public DataTableEntity announcementRoleList(FieldSetEntity fse) throws BaseException {
+//		int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+//		String id = "," + user_id + ",";
+//		DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT,
+//				"WHERE concat(',',extent,',') like '%" + id + "%'");
+//		baseDao.loadPromptData(dt);
+//		return dt;
+//	}
+
+    public boolean delAnnouncement(FieldSetEntity fse) throws BaseException {
+        String[] uuid = fse.getString("uuid").split(",");
+        return baseDao.delete(CmnConst.product_oa_ANNOUNCEMENT, uuid);
+    }
+
+    public FieldSetEntity findAnnouncement(FieldSetEntity fse) throws BaseException {
+//		FieldSetEntity fs = baseDao.getFieldSetEntity(CmnConst.product_oa_ANNOUNCEMENT, fse.getString("uuid"), false);
+        String sqlfs = "SELECT *,(SELECT user_name FROM " + CmnConst.PRODUCT_SYS_USERS + " WHERE user_id=a.created_by)created_by_save,(SELECT user_name FROM " + CmnConst.PRODUCT_SYS_USERS + " WHERE user_id=a.updated_by)updated_by_save from " + CmnConst.product_oa_ANNOUNCEMENT + " a WHERE uuid=?";
+        FieldSetEntity fs = baseDao.getFieldSetEntityBySQL(sqlfs, new String[]{fse.getString("uuid")}, false);
+        String sql = "SELECT b.user_id user_id,b.show_name show_name,c.org_level_name,a.status FROM " + CmnConst.product_oa_ANNOUNCEMENT_ROLE + " a LEFT JOIN product_sys_staffs b on a.user_id=b.user_id LEFT JOIN product_sys_org_levels c on b.dept_uuid=c.uuid WHERE a.announcement_uuid=?";
+        DataTableEntity dt = baseDao.listTable(sql, new String[]{fs.getUUID()});
+        fs.addSubDataTable(dt);
+        fs.setValue("number", dt.getRows());
+        int a = 0;
+        for (int i = 0; i < dt.getRows(); i++) {
+            if (dt.getInt(i, "status") == 1) {
+                a++;
+            }
+        }
+        fs.setValue("readNum", a);
+        return fs;
+    }
+
+    public boolean readAnnouncementRemind(FieldSetEntity fs) throws BaseException {
+        FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.product_oa_ANNOUNCEMENT, fs.getUUID(), false);
+        String expiration_date = fse.getString("expiration_date");
+
+        SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd");
+        String current_time = tempDate.format(new Date());
+        int compareTo = 0;
+        if (expiration_date != null) {
+            compareTo = current_time.compareTo(expiration_date);
+        }
+        String user_name = SpringMVCContextHolder.getCurrentUser().getUser_name();
+        int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+        if (compareTo <= 0 && fse.getInteger("status") == 1) {
+            WebsocketMesssageServiceThread.getInstance().appendMessage(fse.getString("created_by"), "[鎻愰啋]" + user_name + "宸茶浜嗐��" + fse.getString("title") + "銆嬪叕鍛�", "[鎻愰啋]" + user_name + "宸茶浜嗐��" + fse.getString("title") + "銆嬪叕鍛�",
+                    user_id, "1", null, null, null, user_id, 0, 0);
+        }
+        return baseDao.executeUpdate("update product_oa_announcement_role set status=1 where user_id=? and announcement_uuid=?",
+                new String[]{"" + user_id, fse.getString("uuid")});
+
+    }
+
+    public DataTableEntity listAnnouncementGateway(FieldSetEntity fs) throws BaseException {
+        //褰撳墠浜簎uid
+        int user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
+        String id = "," + user_id + ",";
+        DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT,
+                "publish_status=1 and concat(',',extent,',') like '%" + id + "%'", new Object[]{},
+                new Object[]{},  CmnConst.CREATED_UTC_DATETIME + " desc", 5, 1);
+        baseDao.loadPromptData(dt);
+//        DataTableEntity dt = baseDao.listTable(CmnConst.product_oa_ANNOUNCEMENT, "publish_status=1 and created_by=?", new Object[]{user_id}, new Object[]{}, CmnConst.CREATED_UTC_DATETIME + " desc", 5, 1);
+//        baseDao.loadPromptData(dt);
+        return dt;
+    }
+//	public static String emojiConvert1(String str)
+//			throws UnsupportedEncodingException {
+//			String patternString = "([\\x{10000}-\\x{10ffff}\ud800-\udfff])";
+//			Pattern pattern = Pattern.compile(patternString);
+//			Matcher matcher = pattern.matcher(str);
+//			StringBuffer sb = new StringBuffer();
+//			while(matcher.find()) {
+//			try {
+//			matcher.appendReplacement(
+//			sb,
+//			"[["
+//			+ URLEncoder.encode(matcher.group(1),
+//			"UTF-8") + "]]");
+//			} catch(UnsupportedEncodingException e) {
+//			throw e;
+//			}
+//			}
+//			matcher.appendTail(sb);
+//			return sb.toString();
+//			}
+}
diff --git a/src/main/java/com/product/administration/service/CustomerInfoService.java b/src/main/java/com/product/administration/service/CustomerInfoService.java
index be0dc83..6895dd1 100644
--- a/src/main/java/com/product/administration/service/CustomerInfoService.java
+++ b/src/main/java/com/product/administration/service/CustomerInfoService.java
@@ -40,23 +40,21 @@
 	 */
 	public DataTableEntity listCustomerInfo(Integer cpage,Integer pageSize,FieldSetEntity fse) {
 		//鏁版嵁鏉冮檺
-		/*
-		String dataFilter=permissionService.getDataFilter(CmnConst.CREATED_BY) ;
+//		String dataFilter=permissionService.getDataFilter(CmnConst.CREATED_BY) ;
 		//楂樼骇鏌ヨ
 		String searchFilter=queryFilterService.getQueryFilter(fse);
 		
-		if(!StringUtils.isEmpty(dataFilter)) {
-			if (!StringUtils.isEmpty(searchFilter)) {
-				dataFilter+=" AND "+ searchFilter;
-			}
-		}else {
-			if (!StringUtils.isEmpty(searchFilter)) {
-				dataFilter=searchFilter;
-			}
-		}
-		*/
+//		if(!StringUtils.isEmpty(dataFilter)) {
+//			if (!StringUtils.isEmpty(searchFilter)) {
+//				dataFilter+=" AND "+ searchFilter;
+//			}
+//		}else {
+//			if (!StringUtils.isEmpty(searchFilter)) {
+//				dataFilter=searchFilter;
+//			}
+//		}
         
-		DataTableEntity dt=baseDao.listTable(CmnConst.product_project_CUSTOMER, null, null, null, null, pageSize, cpage);
+		DataTableEntity dt=baseDao.listTable(CmnConst.product_project_CUSTOMER, searchFilter, null, null, null, pageSize, cpage);
 		baseDao.loadPromptData(dt);
 		return dt;
 	}
@@ -217,6 +215,7 @@
 	 */
 	@Transactional
 	public boolean deleteCustomerInfo(String uuid) throws BaseException{
-		return baseDao.delete(CmnConst.product_project_CUSTOMER, "uuid=?", new Object[] {uuid});
+		String[] uuids = uuid.split(",");
+        return baseDao.delete(CmnConst.product_project_CUSTOMER, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids);
 	}
 }

--
Gitblit v1.9.2