From 2578d8ab90ee81344437e0720931d7af3a3a8e7c Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期三, 16 八月 2023 16:16:38 +0800 Subject: [PATCH] 定时任务执行失败发送系统消息 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentShiftStatisticalProcessJob.java | 6 lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java | 363 ++++++++++++++++++++++++--------------- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/GenerateWeekDaysJob.java | 6 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentStatisticalProcessJob.java | 6 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java | 66 +++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java | 5 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentTraceProcessJob.java | 6 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml | 12 + 11 files changed, 348 insertions(+), 140 deletions(-) diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java index 7b6fb1d..0287694 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java @@ -6,133 +6,155 @@ */ public interface CommonConstant { - /** - * 姝e父鐘舵�� - */ - Integer STATUS_NORMAL = 0; + /** + * 姝e父鐘舵�� + */ + Integer STATUS_NORMAL = 0; - /** - * 绂佺敤鐘舵�� - */ - Integer STATUS_DISABLE = -1; + /** + * 绂佺敤鐘舵�� + */ + Integer STATUS_DISABLE = -1; - /** - * 鍒犻櫎鏍囧織 - */ - Integer DEL_FLAG_1 = 1; + /** + * 鍒犻櫎鏍囧織 + */ + Integer DEL_FLAG_1 = 1; - /** - * 鏈垹闄� - */ - Integer DEL_FLAG_0 = 0; + /** + * 鏈垹闄� + */ + Integer DEL_FLAG_0 = 0; - /** - * 绯荤粺鏃ュ織绫诲瀷锛� 鐧诲綍 - */ - int LOG_TYPE_1 = 1; - - /** - * 绯荤粺鏃ュ織绫诲瀷锛� 鎿嶄綔 - */ - int LOG_TYPE_2 = 2; + /** + * 绯荤粺鏃ュ織绫诲瀷锛� 鐧诲綍 + */ + int LOG_TYPE_1 = 1; - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 鏌ヨ - */ - int OPERATE_TYPE_1 = 1; - - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 娣诲姞 - */ - int OPERATE_TYPE_2 = 2; - - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 鏇存柊 - */ - int OPERATE_TYPE_3 = 3; - - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 鍒犻櫎 - */ - int OPERATE_TYPE_4 = 4; - - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 鍊掑叆 - */ - int OPERATE_TYPE_5 = 5; - - /** - * 鎿嶄綔鏃ュ織绫诲瀷锛� 瀵煎嚭 - */ - int OPERATE_TYPE_6 = 6; - - - /** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */ + /** + * 绯荤粺鏃ュ織绫诲瀷锛� 鎿嶄綔 + */ + int LOG_TYPE_2 = 2; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 鏌ヨ + */ + int OPERATE_TYPE_1 = 1; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 娣诲姞 + */ + int OPERATE_TYPE_2 = 2; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 鏇存柊 + */ + int OPERATE_TYPE_3 = 3; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 鍒犻櫎 + */ + int OPERATE_TYPE_4 = 4; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 鍊掑叆 + */ + int OPERATE_TYPE_5 = 5; + + /** + * 鎿嶄綔鏃ュ織绫诲瀷锛� 瀵煎嚭 + */ + int OPERATE_TYPE_6 = 6; + + + /** + * {@code 500 Server Error} (HTTP/1.0 - RFC 1945) + */ Integer SC_INTERNAL_SERVER_ERROR_500 = 500; - /** {@code 200 OK} (HTTP/1.0 - RFC 1945) */ + /** + * {@code 200 OK} (HTTP/1.0 - RFC 1945) + */ Integer SC_OK_200 = 200; - - /**璁块棶鏉冮檺璁よ瘉鏈�氳繃 510*/ - Integer SC_JEECG_NO_AUTHZ=510; - /** 鐧诲綍鐢ㄦ埛Shiro鏉冮檺缂撳瓨KEY鍓嶇紑 */ - public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:"; - /** 鐧诲綍鐢ㄦ埛Token浠ょ墝缂撳瓨KEY鍓嶇紑 */ - String PREFIX_USER_TOKEN = "prefix_user_token_"; + /** + * 璁块棶鏉冮檺璁よ瘉鏈�氳繃 510 + */ + Integer SC_JEECG_NO_AUTHZ = 510; + + /** + * 鐧诲綍鐢ㄦ埛Shiro鏉冮檺缂撳瓨KEY鍓嶇紑 + */ + public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:"; + /** + * 鐧诲綍鐢ㄦ埛Token浠ょ墝缂撳瓨KEY鍓嶇紑 + */ + String PREFIX_USER_TOKEN = "prefix_user_token_"; // /** Token缂撳瓨鏃堕棿锛�3600绉掑嵆涓�灏忔椂 */ // int TOKEN_EXPIRE_TIME = 3600; - /** 鐧诲綍浜岀淮鐮� */ - String LOGIN_QRCODE_PRE = "QRCODELOGIN:"; - String LOGIN_QRCODE = "LQ:"; - /** 鐧诲綍浜岀淮鐮乼oken */ - String LOGIN_QRCODE_TOKEN = "LQT:"; + /** + * 鐧诲綍浜岀淮鐮� + */ + String LOGIN_QRCODE_PRE = "QRCODELOGIN:"; + String LOGIN_QRCODE = "LQ:"; + /** + * 鐧诲綍浜岀淮鐮乼oken + */ + String LOGIN_QRCODE_TOKEN = "LQT:"; /** - * 0锛氫竴绾ц彍鍗� + * 0锛氫竴绾ц彍鍗� */ - Integer MENU_TYPE_0 = 0; - /** - * 1锛氬瓙鑿滃崟 - */ - Integer MENU_TYPE_1 = 1; + Integer MENU_TYPE_0 = 0; /** - * 2锛氭寜閽潈闄� + * 1锛氬瓙鑿滃崟 */ - Integer MENU_TYPE_2 = 2; + Integer MENU_TYPE_1 = 1; + /** + * 2锛氭寜閽潈闄� + */ + Integer MENU_TYPE_2 = 2; - /**閫氬憡瀵硅薄绫诲瀷锛圲SER:鎸囧畾鐢ㄦ埛锛孉LL:鍏ㄤ綋鐢ㄦ埛锛�*/ - String MSG_TYPE_UESR = "USER"; - String MSG_TYPE_ALL = "ALL"; - - /**鍙戝竷鐘舵�侊紙0鏈彂甯冿紝1宸插彂甯冿紝2宸叉挙閿�锛�*/ - String NO_SEND = "0"; - String HAS_SEND = "1"; - String HAS_CANCLE = "2"; - - /**闃呰鐘舵�侊紙0鏈锛�1宸茶锛�*/ - String HAS_READ_FLAG = "1"; - String NO_READ_FLAG = "0"; - - /**浼樺厛绾э紙L浣庯紝M涓紝H楂橈級*/ - String PRIORITY_L = "L"; - String PRIORITY_M = "M"; - String PRIORITY_H = "H"; - + /** + * 閫氬憡瀵硅薄绫诲瀷锛圲SER:鎸囧畾鐢ㄦ埛锛孉LL:鍏ㄤ綋鐢ㄦ埛锛� + */ + String MSG_TYPE_UESR = "USER"; + String MSG_TYPE_ALL = "ALL"; + + /** + * 鍙戝竷鐘舵�侊紙0鏈彂甯冿紝1宸插彂甯冿紝2宸叉挙閿�锛� + */ + String NO_SEND = "0"; + String HAS_SEND = "1"; + String HAS_CANCLE = "2"; + + /** + * 闃呰鐘舵�侊紙0鏈锛�1宸茶锛� + */ + String HAS_READ_FLAG = "1"; + String NO_READ_FLAG = "0"; + + /** + * 浼樺厛绾э紙L浣庯紝M涓紝H楂橈級 + */ + String PRIORITY_L = "L"; + String PRIORITY_M = "M"; + String PRIORITY_H = "H"; + /** * 鐭俊妯℃澘鏂瑰紡 0 .鐧诲綍妯℃澘銆�1.娉ㄥ唽妯℃澘銆�2.蹇樿瀵嗙爜妯℃澘 */ - String SMS_TPL_TYPE_0 = "0"; - String SMS_TPL_TYPE_1 = "1"; - String SMS_TPL_TYPE_2 = "2"; - + String SMS_TPL_TYPE_0 = "0"; + String SMS_TPL_TYPE_1 = "1"; + String SMS_TPL_TYPE_2 = "2"; + /** * 鐘舵��(0鏃犳晥1鏈夋晥) */ String STATUS_0 = "0"; String STATUS_1 = "1"; - + /** * 鍚屾宸ヤ綔娴佸紩鎿�1鍚屾0涓嶅悓姝� */ @@ -144,7 +166,7 @@ */ String MSG_CATEGORY_1 = "1"; String MSG_CATEGORY_2 = "2"; - + /** * 鏄惁閰嶇疆鑿滃崟鐨勬暟鎹潈闄� 1鏄�0鍚� */ @@ -156,8 +178,10 @@ */ Integer USER_UNFREEZE = 1; Integer USER_FREEZE = 2; - - /**瀛楀吀缈昏瘧鏂囨湰鍚庣紑*/ + + /** + * 瀛楀吀缈昏瘧鏂囨湰鍚庣紑 + */ String DICT_TEXT_SUFFIX = "_dictText"; /** @@ -233,26 +257,46 @@ Integer USER_IDENTITY_1 = 1; Integer USER_IDENTITY_2 = 2; - /** sys_user 琛� username 鍞竴閿储寮� */ + /** + * sys_user 琛� username 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_SYS_USER_USERNAME = "uniq_sys_user_username"; - /** sys_user 琛� work_no 鍞竴閿储寮� */ + /** + * sys_user 琛� work_no 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_SYS_USER_WORK_NO = "uniq_sys_user_work_no"; - /** sys_user 琛� phone 鍞竴閿储寮� */ + /** + * sys_user 琛� phone 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_SYS_USER_PHONE = "uniq_sys_user_phone"; - /** 杈炬ⅵ鏁版嵁搴撳崌鎻愮ず銆傝繚鍙嶈〃[SYS_USER]鍞竴鎬х害鏉� */ + /** + * 杈炬ⅵ鏁版嵁搴撳崌鎻愮ず銆傝繚鍙嶈〃[SYS_USER]鍞竴鎬х害鏉� + */ String SQL_INDEX_UNIQ_SYS_USER = "鍞竴鎬х害鏉�"; - /** sys_user 琛� email 鍞竴閿储寮� */ + /** + * sys_user 琛� email 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_SYS_USER_EMAIL = "uniq_sys_user_email"; - /** sys_quartz_job 琛� job_class_name 鍞竴閿储寮� */ + /** + * sys_quartz_job 琛� job_class_name 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_JOB_CLASS_NAME = "uniq_job_class_name"; - /** sys_position 琛� code 鍞竴閿储寮� */ + /** + * sys_position 琛� code 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_CODE = "uniq_code"; - /** sys_role 琛� code 鍞竴閿储寮� */ + /** + * sys_role 琛� code 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code"; - /** sys_depart 琛� code 鍞竴閿储寮� */ + /** + * sys_depart 琛� code 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code"; - /** sys_category 琛� code 鍞竴閿储寮� */ + /** + * sys_category 琛� code 鍞竴閿储寮� + */ String SQL_INDEX_UNIQ_CATEGORY_CODE = "idx_sc_code"; /** * 鍦ㄧ嚎鑱婂ぉ 鏄惁涓洪粯璁ゅ垎缁� @@ -292,7 +336,7 @@ * 鍏枃鏂囨。涓婁紶鑷畾涔夎矾寰� */ String UPLOAD_CUSTOM_PATH_OFFICIAL = "officialdoc"; - /** + /** * 鍏枃鏂囨。涓嬭浇鑷畾涔夎矾寰� */ String DOWNLOAD_CUSTOM_PATH_OFFICIAL = "officaldown"; @@ -300,11 +344,11 @@ /** * WPS瀛樺偍鍊肩被鍒�(1 code鏂囧彿 2 text锛圵PS妯℃澘杩樻槸鍏枃鍙戞枃妯℃澘锛�) */ - String WPS_TYPE_1="1"; - String WPS_TYPE_2="2"; + String WPS_TYPE_1 = "1"; + String WPS_TYPE_2 = "2"; - String YN_Y="Y"; - String YN_N="N"; + String YN_Y = "Y"; + String YN_N = "N"; /**===============================================================================================*/ @@ -315,9 +359,13 @@ String X_ACCESS_TOKEN = "X-Access-Token"; String X_SIGN = "X-Sign"; String X_TIMESTAMP = "X-TIMESTAMP"; - /** 绉熸埛 璇锋眰澶�*/ + /** + * 绉熸埛 璇锋眰澶� + */ String TENANT_ID = "tenant-id"; - /**===============================================================================================*/ + /** + * =============================================================================================== + */ String TOKEN_IS_INVALID_MSG = "Token澶辨晥锛岃閲嶆柊鐧诲綍!"; String X_FORWARDED_SCHEME = "X-Forwarded-Scheme"; @@ -342,39 +390,63 @@ */ String THIRD_SYNC_TO_LOCAL = "SYNC_TO_LOCAL"; - /** 绯荤粺閫氬憡娑堟伅鐘舵�侊細0=鏈彂甯� */ + /** + * 绯荤粺閫氬憡娑堟伅鐘舵�侊細0=鏈彂甯� + */ String ANNOUNCEMENT_SEND_STATUS_0 = "0"; - /** 绯荤粺閫氬憡娑堟伅鐘舵�侊細1=宸插彂甯� */ + /** + * 绯荤粺閫氬憡娑堟伅鐘舵�侊細1=宸插彂甯� + */ String ANNOUNCEMENT_SEND_STATUS_1 = "1"; - /** 绯荤粺閫氬憡娑堟伅鐘舵�侊細2=宸叉挙閿� */ + /** + * 绯荤粺閫氬憡娑堟伅鐘舵�侊細2=宸叉挙閿� + */ String ANNOUNCEMENT_SEND_STATUS_2 = "2"; - /**ONLINE 鎶ヨ〃鏉冮檺鐢� 浠巖equest涓幏鍙栧湴鍧�鏍忓悗鐨勫弬鏁�*/ - String ONL_REP_URL_PARAM_STR="onlRepUrlParamStr"; + /** + * ONLINE 鎶ヨ〃鏉冮檺鐢� 浠巖equest涓幏鍙栧湴鍧�鏍忓悗鐨勫弬鏁� + */ + String ONL_REP_URL_PARAM_STR = "onlRepUrlParamStr"; - /**POST璇锋眰*/ + /** + * POST璇锋眰 + */ String HTTP_POST = "POST"; - /**PUT璇锋眰*/ + /** + * PUT璇锋眰 + */ String HTTP_PUT = "PUT"; - /**PATCH璇锋眰*/ + /** + * PATCH璇锋眰 + */ String HTTP_PATCH = "PATCH"; - /**鏈煡鐨�*/ + /** + * 鏈煡鐨� + */ String UNKNOWN = "unknown"; - /**瀛楃涓瞙ttp*/ + /** + * 瀛楃涓瞙ttp + */ String STR_HTTP = "http"; - /**String 绫诲瀷鐨勭┖鍊�*/ + /** + * String 绫诲瀷鐨勭┖鍊� + */ String STRING_NULL = "null"; - /**鍓嶇vue3鐗堟湰Header鍙傛暟鍚�*/ - String VERSION="X-Version"; + /** + * 鍓嶇vue3鐗堟湰Header鍙傛暟鍚� + */ + String VERSION = "X-Version"; - /**瀛樺偍鍦ㄧ嚎绋嬪彉閲忛噷鐨勫姩鎬佽〃鍚�*/ - String DYNAMIC_TABLE_NAME="DYNAMIC_TABLE_NAME"; + /** + * 瀛樺偍鍦ㄧ嚎绋嬪彉閲忛噷鐨勫姩鎬佽〃鍚� + */ + String DYNAMIC_TABLE_NAME = "DYNAMIC_TABLE_NAME"; /** * http:// http鍗忚 */ @@ -384,10 +456,14 @@ * https:// https鍗忚 */ String HTTPS_PROTOCOL = "https://"; - - /** 閮ㄩ棬琛ㄥ敮涓�key锛宨d */ + + /** + * 閮ㄩ棬琛ㄥ敮涓�key锛宨d + */ String DEPART_KEY_ID = "id"; - /** 閮ㄩ棬琛ㄥ敮涓�key锛宱rgCode */ + /** + * 閮ㄩ棬琛ㄥ敮涓�key锛宱rgCode + */ String DEPART_KEY_ORG_CODE = "orgCode"; /** @@ -420,7 +496,9 @@ */ String DATA_LOG_TYPE_JSON = "json"; - /** 娑堟伅妯℃澘锛歮arkdown */ + /** + * 娑堟伅妯℃澘锛歮arkdown + */ String MSG_TEMPLATE_TYPE_MD = "5"; /** @@ -428,4 +506,9 @@ */ String PHONE_REDIS_KEY_PRE = "phone_msg"; + /** + * 瀹氭椂浠诲姟澶辫触鎺ユ敹瑙掕壊瀛楀吀缂栧彿 + */ + String JOB_SEND_MSG = "job_fail_send_msg_role"; + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/GenerateWeekDaysJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/GenerateWeekDaysJob.java index 86c61b1..fad6945 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/GenerateWeekDaysJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/GenerateWeekDaysJob.java @@ -8,6 +8,7 @@ import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -33,6 +34,9 @@ @Resource private IQuartzJobService quartzJobService; + @Resource + private ISysAnnouncementService sysAnnouncementService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -48,6 +52,8 @@ } catch (Exception e) { quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂鐢熸垚鍙屼紤鏃ヤ换鍔�", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentShiftStatisticalProcessJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentShiftStatisticalProcessJob.java index 4f57a4f..6b9e3ac 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentShiftStatisticalProcessJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentShiftStatisticalProcessJob.java @@ -8,6 +8,7 @@ import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; import org.quartz.*; import javax.annotation.Resource; @@ -41,6 +42,9 @@ @Resource private IQuartzJobService quartzJobService; + @Resource + private ISysAnnouncementService sysAnnouncementService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -57,6 +61,8 @@ } catch (Exception e) { quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂缁熻鍗曟棩鐝鏁版嵁浠诲姟", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentStatisticalProcessJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentStatisticalProcessJob.java index 1f2dd6a..090a6ac 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentStatisticalProcessJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentStatisticalProcessJob.java @@ -8,6 +8,7 @@ import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; import org.quartz.*; import javax.annotation.Resource; @@ -41,6 +42,9 @@ @Resource private IQuartzJobService quartzJobService; + @Resource + private ISysAnnouncementService sysAnnouncementService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -57,6 +61,8 @@ } catch (Exception e) { quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂缁熻鍗曟棩鏁版嵁浠诲姟", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentTraceProcessJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentTraceProcessJob.java index 6ac4170..fb6f753 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentTraceProcessJob.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningAllEquipmentTraceProcessJob.java @@ -8,6 +8,7 @@ import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; import org.quartz.*; import javax.annotation.Resource; @@ -32,6 +33,9 @@ @Resource private IQuartzJobService quartzJobService; + @Resource + private ISysAnnouncementService sysAnnouncementService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); @@ -47,6 +51,8 @@ } catch (Exception e) { quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂缁熻娈垫椂闂翠换鍔�", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java index 4bbaf0a..701c355 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java @@ -163,4 +163,9 @@ * 鏍规嵁鐢ㄦ埛Ids,鏌ヨ鐢ㄦ埛鎵�灞炰骇绾垮悕绉颁俊鎭� */ List<MdcUserProVo> getProNamesByUserIds(@Param("userIds") List<String> userIds); + + /** + * 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 + */ + List<String> getUserByRoleCode(@Param("roleCode") String roleCode); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index 1480980..4729e32 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -190,4 +190,16 @@ #{id} </foreach> </select> + + <!--鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎--> + <select id="getUserByRoleCode" resultType="java.lang.String"> + SELECT + su.id + FROM + sys_user su + LEFT JOIN sys_user_role sur ON su.id = sur.user_id + LEFT JOIN sys_role sr ON sur.role_id = sr.id + WHERE + sr.role_code = #{ roleCode } + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java index bf0ea45..a9314bb 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementService.java @@ -61,5 +61,10 @@ */ void updateReaded(List<String> annoceIdList); + /** + * 瀹氭椂浠诲姟澶辫触鍙戦�佺郴缁熸秷鎭� + */ + void jobSendMessage(String jobDescription, String exceptionDetail); + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 7632e37..b6076a1 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -308,4 +308,9 @@ * 鏍规嵁 userIds鏌ヨ锛屾煡璇㈢敤鎴锋墍灞炰骇绾跨殑鍚嶇О锛堝涓骇绾垮悕閫楀彿闅斿紑锛� */ Map<String, String> getProNamesByUserIds(List<String> userIds); + + /** + * 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 + */ + List<String> getUserByRoleCode(String roleCode); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java index 0934d2e..783aa0c 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java @@ -1,18 +1,25 @@ package org.jeecg.modules.system.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.CommonSendStatus; +import org.jeecg.common.constant.WebsocketConst; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.message.websocket.WebSocket; import org.jeecg.modules.system.entity.SysAnnouncement; import org.jeecg.modules.system.entity.SysAnnouncementSend; import org.jeecg.modules.system.mapper.SysAnnouncementMapper; import org.jeecg.modules.system.mapper.SysAnnouncementSendMapper; import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.util.XssUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +44,15 @@ @Resource private SysAnnouncementSendMapper sysAnnouncementSendMapper; + + @Resource + private ISysDictService sysDictService; + + @Resource + private ISysUserService sysUserService; + + @Resource + private WebSocket webSocket; @Transactional(rollbackFor = Exception.class) @Override @@ -185,4 +201,54 @@ sysAnnouncementSendMapper.updateReaded(sysUser.getId(), annoceIdList); } + @Override + public void jobSendMessage(String jobDescription, String exceptionDetail) { + SysAnnouncement sysAnnouncement = new SysAnnouncement(); + String title = XssUtils.scriptXss(jobDescription + "澶辫触锛�"); + // 鏍囬 + sysAnnouncement.setTitile(title); + // 娑堟伅绫诲瀷 + sysAnnouncement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); + // 浼樺厛绾� + sysAnnouncement.setPriority(CommonConstant.PRIORITY_H); + // 閫氬憡瀵硅薄绫诲瀷 + sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR); + // 鍒犻櫎鐘舵�� + sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); + // 鍙戝竷鐘舵�� + sysAnnouncement.setSendStatus(CommonSendStatus.PUBLISHED_STATUS_1); + // 鍙戝竷鏃堕棿 + sysAnnouncement.setSendTime(new Date()); + // 鍙戝竷浜� + sysAnnouncement.setSender("admin"); + // 娑堟伅鍐呭 + sysAnnouncement.setMsgContent(exceptionDetail); + // 鑾峰彇鐢ㄦ埛 + // step1. 浠庡瓧鍏告暟鎹腑鏌ヨ闇�瑕佸彂閫佺殑瑙掕壊缂栫爜 + String roleCode = sysDictService.queryDictTextByKey(CommonConstant.JOB_SEND_MSG, CommonConstant.STATUS_NORMAL.toString()); + // step2. 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 + List<String> userIds = sysUserService.getUserByRoleCode(roleCode); + if (userIds != null && !userIds.isEmpty()) { + sysAnnouncement.setUserIds(String.join(",", userIds)); + sysAnnouncementMapper.insert(sysAnnouncement); + String anntId = sysAnnouncement.getId(); + Date refDate = new Date(); + for (String userId : userIds) { + SysAnnouncementSend announcementSend = new SysAnnouncementSend(); + announcementSend.setAnntId(anntId); + announcementSend.setUserId(userId); + announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG); + announcementSend.setReadTime(refDate); + sysAnnouncementSendMapper.insert(announcementSend); + } + // 鍙戦�佹秷鎭� + JSONObject obj = new JSONObject(); + obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER); + obj.put(WebsocketConst.MSG_ID, sysAnnouncement.getId()); + obj.put(WebsocketConst.MSG_TXT, sysAnnouncement.getTitile()); + webSocket.sendMessage(sysAnnouncement.getUserIds().split(","), obj.toJSONString()); + } + + } + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index be754a9..8b66895 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -652,4 +652,12 @@ }); return res; } + + /** + * 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 + */ + @Override + public List<String> getUserByRoleCode(String roleCode) { + return this.baseMapper.getUserByRoleCode(roleCode); + } } -- Gitblit v1.9.3