From 8cb5d3440208a3be3e772e65f1bd0ec63031ba62 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 17 十二月 2025 08:37:14 +0800
Subject: [PATCH] feat: 增加服务单派发通知
---
ruoyi-ui/src/views/system/notify/channelConfig.vue | 21 -
ruoyi-common/src/main/java/com/ruoyi/common/utils/BigDecimalUtil.java | 9
ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java | 114 ++++++++++
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 17 +
sql/sys_notify_send_log.sql | 22 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java | 6
ruoyi-common/src/main/java/com/ruoyi/common/utils/DeptUtil.java | 13 +
ruoyi-system/src/main/java/com/ruoyi/system/domain/NotifyTask.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/event/TaskServiceOrderSyncEvent.java | 8
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java | 64 ++--
ruoyi-admin/src/main/resources/application.yml | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java | 51 ++-
ruoyi-ui/src/views/system/notify/log/index.vue | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 133 ++++--------
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java | 84 +++----
ruoyi-system/src/main/java/com/ruoyi/system/service/ILegacyTransferSyncService.java | 6
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 20 +
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysEmergencyTaskService.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 10
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/event/TaskOnlyServerOrderSyncEvent.java | 12 +
ruoyi-system/src/main/java/com/ruoyi/system/mapper/LegacyTransferSyncMapper.java | 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/LongUtil.java | 17 +
sql/update_sys_notify_send_log.sql | 5
24 files changed, 388 insertions(+), 240 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 4219d2c..105bc73 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -58,7 +58,7 @@
basename: i18n/messages
profiles:
# 鐜 dev|test|prod
- active: prod
+ active: dev
# 鏂囦欢涓婁紶
servlet:
multipart:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BigDecimalUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BigDecimalUtil.java
new file mode 100644
index 0000000..f7c2216
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BigDecimalUtil.java
@@ -0,0 +1,9 @@
+package com.ruoyi.common.utils;
+
+import java.math.BigDecimal;
+
+public class BigDecimalUtil {
+ public static Boolean isZero(BigDecimal bigDecimal) {
+ return bigDecimal.compareTo(BigDecimal.ZERO) == 0;
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DeptUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DeptUtil.java
new file mode 100644
index 0000000..f9d2e63
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DeptUtil.java
@@ -0,0 +1,13 @@
+package com.ruoyi.common.utils;
+
+public class DeptUtil {
+
+ /**
+ * 鎬诲叕鍙搁儴闂↖D
+ */
+ public static Long ROOT_DEPT_ID=100L;
+ /**
+ * 骞垮窞鎬婚儴閮ㄩ棬ID
+ */
+ public static Long GUANGZHOU_DEPT_ID=101L;
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LongUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LongUtil.java
new file mode 100644
index 0000000..4fe173e
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LongUtil.java
@@ -0,0 +1,17 @@
+package com.ruoyi.common.utils;
+
+/**
+ * Long宸ュ叿绫�
+ */
+public class LongUtil {
+ public static Boolean isEmpty(Long value) {
+ if(value==null || value<=0)return true;
+ return false;
+ }
+
+ public static Boolean isNotEmpty(Long value) {
+ return !isEmpty(value);
+ }
+}
+
+
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/NotifyTask.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/NotifyTask.java
index 6f7682a..349b1c7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/NotifyTask.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/NotifyTask.java
@@ -19,6 +19,10 @@
// ==================== 閫氱煡绫诲瀷甯搁噺 ====================
/** 閫氱煡绫诲瀷锛氫换鍔″垎閰� */
public static final String NOTIFY_TYPE_TASK_ASSIGN = "TASK_ASSIGN";
+ /**
+ * 閫氱煡绫诲瀷锛氭湇鍔″崟閫氱煡锛屾病鏈夌敓鎴愯皟搴︾殑鏈嶅姟鍗曪紝鍜ㄨ鍗�
+ */
+ public static final String NOTIFY_TASK_UNASSIGN = "TASK_UNASSIGN";
/** 閫氱煡绫诲瀷锛氱姸鎬佸彉鏇� */
public static final String NOTIFY_TYPE_STATUS_CHANGE = "STATUS_CHANGE";
/** 閫氱煡绫诲瀷锛氫换鍔″垱寤� */
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskOnlyServerOrderSyncEvent.java b/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskOnlyServerOrderSyncEvent.java
new file mode 100644
index 0000000..9ad37e5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskOnlyServerOrderSyncEvent.java
@@ -0,0 +1,12 @@
+package com.ruoyi.system.event;
+
+/**
+ * 骞垮窞鎬婚儴涔嬪鐨勬湇鍔″崟浜嬩欢娲惧彂 鏃х郴缁熷悓姝ュ埌鏂扮郴缁熻繃鏉ョ殑鏈嶅姟鍗曪紝鍜ㄨ鍗�
+ */
+public class TaskOnlyServerOrderSyncEvent extends TaskEvent{
+
+
+ public TaskOnlyServerOrderSyncEvent(Object source, Long taskId, String taskCode) {
+ super(source, taskId, taskCode);
+ }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskServiceOrderSyncEvent.java b/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskServiceOrderSyncEvent.java
index 16231ef..29ba4e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskServiceOrderSyncEvent.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/event/TaskServiceOrderSyncEvent.java
@@ -9,6 +9,14 @@
public Long getServiceOrderId(){
return this.serviceOrderId;
}
+
+ /**
+ * 鏈嶅姟鍗曞悓姝ュ埌鏃х郴缁熸垚鍔熷悗瑙﹀彂浜嬩欢
+ * @param source
+ * @param taskId
+ * @param taskCode
+ * @param serviceOrderId
+ */
public TaskServiceOrderSyncEvent(Object source, Long taskId, String taskCode,Long serviceOrderId) {
super(source, taskId, taskCode);
this.serviceOrderId=serviceOrderId;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java b/ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java
index e847ee4..8cc98ed 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/listener/TaskMessageListener.java
@@ -1,7 +1,10 @@
package com.ruoyi.system.listener;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.utils.DeptUtil;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.event.TaskDispatchSyncEvent;
+import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysTaskAssigneeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -78,7 +81,8 @@
List<SysTaskAssignee> assignees=taskAssigneeService.getAssigneesByTaskId(emergency.getTaskId());
if(assignees!=null && !assignees.isEmpty()){
List<Long> assigneeIds=assignees.stream().map(SysTaskAssignee::getUserId).collect(Collectors.toList());
- sendDispatchNotify(assigneeIds, task.getCreatorId(), event.getTaskId(), task.getTaskCode(), buildNotifyContent(task, emergency));
+ task.setEmergencyInfo( emergency);
+ sendDispatchNotify(assigneeIds, task.getCreatorId(), event.getTaskId(),task.getShowTaskCode(), buildNotifyContent(task, emergency));
}
}
@@ -129,6 +133,93 @@
}
+ @Autowired
+ private ISysDeptService sysDeptService;
+ /**
+ * 鍙湁鏈嶅姟鍗曪紝涓斿彧鍦ㄥ箍宸炲鐨勬湇鍔″崟锛屾病鏈夎皟搴﹀崟
+ * @param event
+ */
+ @Async
+ @EventListener
+ public void handleTaskOnlyServiceSync(TaskDispatchSyncEvent event){
+ //缁欒礋璐d汉鍙戦�佹秷鎭�
+ Long taskId= event.getTaskId();
+ SysTask task=sysTaskMapper.selectSysTaskByTaskId(taskId);
+ SysTaskEmergency emergency = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
+ if(emergency != null){
+ task.setEmergencyInfo( emergency);
+ Long deptId=task.getDeptId();
+ if(!deptId.equals(DeptUtil.GUANGZHOU_DEPT_ID)){
+ //鎵惧埌璇ラ儴闂ㄧ殑璐熻矗浜�
+ SysDept dept= sysDeptService.selectDeptById(deptId);
+ if(dept!=null){
+ String serviceOrdClass= dept.getServiceOrderClass();
+ String dispatchOrdClass= dept.getDispatchOrderClass();
+ List<SysUser> user=sysUserMapper.selectUsersByOrderClassAndCanViewAllConsult(serviceOrdClass);
+ if(user!=null && !user.isEmpty()){
+ List<NotifyTask> tasks=new ArrayList<>();
+ String buildNotifyContent = buildUnAssignNotifyContent(task, emergency);
+ for(SysUser u:user){
+ NotifyTask notifyTask= this.sendTaskUnAssignNotify(u.getUserId(),u.getNickName(),u.getPhonenumber(),taskId,task.getShowTaskCode(),"鏈嶅姟鍗曟淳鍙�",buildNotifyContent);
+ tasks.add(notifyTask);
+ }
+ if(!tasks.isEmpty()){
+ int successCount = notifyDispatchService.dispatchNotifies(tasks);
+ log.info("浠诲姟鏈垎閰嶆秷鎭凡鍙戦�侊紝鍙戦�佹垚鍔熸暟閲忥細{}", successCount);
+ }
+ }
+ }
+ }
+
+
+
+ }
+ }
+
+ private String buildUnAssignNotifyContent(SysTask task, SysTaskEmergency emergency){
+ //娲惧彂鍗曞彿
+ String dispatchCode=emergency.getDispatchCode();
+ String taskCode=task.getTaskCode();
+ String orderCode=dispatchCode;
+ if(dispatchCode==null){
+ orderCode=taskCode;
+ }
+ Date dispatchTime=task.getPlanedStartTime();
+
+ StringBuilder content = new StringBuilder();
+ content.append("鎮ㄦ湁鏂扮殑鏈嶅姟鍗曪紝浠诲姟鍗曞彿:"+orderCode);
+ // 娣诲姞鍑哄彂鍦颁俊鎭�
+ String departure = null;
+ if (emergency != null && StringUtils.isNotEmpty(emergency.getHospitalOutName())) {
+ departure = emergency.getHospitalOutName();
+ } else if (StringUtils.isNotEmpty(task.getDepartureAddress())) {
+ departure = task.getDepartureAddress();
+ }
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ content.append("锛屽嚭鍙戞椂闂�:").append(df.format(dispatchTime));
+
+ // 娣诲姞鐩殑鍦颁俊鎭�
+ String destination = null;
+ if (emergency != null && StringUtils.isNotEmpty(emergency.getHospitalInName())) {
+ destination = emergency.getHospitalInName();
+ } else if (StringUtils.isNotEmpty(task.getDestinationAddress())) {
+ destination = task.getDestinationAddress();
+ }
+
+ if (departure != null || destination != null) {
+ if (departure != null) {
+ content.append("鍑哄彂鍦帮細").append(departure);
+ }
+ if (destination != null) {
+ if (content.length() > 0) content.append("锛�");
+ content.append("鐩殑鍦帮細").append(destination);
+ }
+ content.append("锛岃鍙婃椂澶勭悊銆�");
+ }
+
+ return content.toString();
+ }
+
/**
* 鐩戝惉浠诲姟鍒嗛厤浜嬩欢
@@ -161,7 +252,7 @@
Long creatorId = task.getCreatorId();
String taskStatus = task.getTaskStatus();
-
+ task.setEmergencyInfo(emergency);
// 浠呭湪寰呭噯澶囩姸鎬佷笅鍙戦�侀�氱煡
if (!TASK_STATUS_PENDING.equals(taskStatus) && !TASK_STATUS_PREPARING.equals(taskStatus)) {
log.info("浠诲姟鐘舵��({})闈炲緟鍑嗗鐘舵�侊紝璺宠繃閫氱煡锛宼askId={}", taskStatus, event.getTaskId());
@@ -170,7 +261,7 @@
// 鏋勫缓閫氱煡鍐呭
String notifyContent = buildNotifyContent(task, emergency);
- this.sendDispatchNotify(event.getAssigneeIds(), creatorId, event.getTaskId(), event.getTaskCode(), notifyContent);
+ this.sendDispatchNotify(event.getAssigneeIds(), creatorId, event.getTaskId(),task.getShowTaskCode(), notifyContent);
} catch (Exception e) {
@@ -237,6 +328,23 @@
taskId, createdTasks.size(), successCount);
}
}
+
+ private NotifyTask sendTaskUnAssignNotify(Long userId,String nickName,String phone,
+ Long taskId,String taskCode,String title,String notifyContent) {
+ NotifyTask notifyTask = new NotifyTask();
+ notifyTask.setTaskId(taskId);
+ notifyTask.setTaskCode(taskCode);
+ notifyTask.setNotifyType(NotifyTask.NOTIFY_TASK_UNASSIGN);
+ notifyTask.setUserId(userId);
+ notifyTask.setUserName(nickName);
+ notifyTask.setUserPhone(phone);
+ notifyTask.setTitle(title);
+ notifyTask.setContent(notifyContent);
+ notifyTask.setCreateBy( "绯荤粺");
+
+ NotifyTask created = notifyTaskService.createNotifyTask(notifyTask);
+ return created;
+ }
/**
* 鏋勫缓閫氱煡鍐呭
*/
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/LegacyTransferSyncMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/LegacyTransferSyncMapper.java
index 3e0d220..66d1c8d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/LegacyTransferSyncMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/LegacyTransferSyncMapper.java
@@ -53,7 +53,7 @@
* @param serviceOrdID 鏈嶅姟鍗旾D
* @return 鐥呮儏ID鍒楄〃
*/
- List<String> selectDiseaseIdsByServiceOrdID(@Param("serviceOrdID") String serviceOrdID);
+ List<String> selectDiseaseIdsByServiceOrdID(@Param("serviceOrdID") Long serviceOrdID);
/**
* 鏍规嵁璋冨害鍗旾D鏌ヨ鎵ц浜轰俊鎭�
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 4811f42..221f042 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -167,4 +167,12 @@
* @return 鐢ㄦ埛鍒楄〃
*/
public List<SysUser> selectUsersByBranchDeptIds(@Param("branchDeptIds") List<Long> branchDeptIds);
-}
+
+ /**
+ * 鏍规嵁serviceOrderClass鎴杁ispatchOrderClass鏌ヨ鍏锋湁canViewAllConsult鏉冮檺鐨勭敤鎴�
+ *
+ * @param orderClass serviceOrderClass鎴杁ispatchOrderClass
+ * @return 鐢ㄦ埛鍒楄〃
+ */
+ public List<SysUser> selectUsersByOrderClassAndCanViewAllConsult(@Param("orderClass") String orderClass);
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ILegacyTransferSyncService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ILegacyTransferSyncService.java
index 70e578c..38a4962 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ILegacyTransferSyncService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ILegacyTransferSyncService.java
@@ -30,7 +30,7 @@
* @param dispatchOrdID 璋冨害鍗旾D
* @return 鏄惁鍚屾鎴愬姛
*/
- boolean syncSingleTransferOrder(String serviceOrdID, String dispatchOrdID);
+ boolean syncSingleTransferOrder(Long serviceOrdID, Long dispatchOrdID);
/**
* 妫�鏌ヨ浆杩愬崟鏄惁宸插悓姝�
@@ -39,7 +39,7 @@
* @param dispatchOrdID 璋冨害鍗旾D
* @return 鏄惁宸插悓姝�
*/
- boolean isTransferOrderSynced(String serviceOrdID, String dispatchOrdID);
+ boolean isTransferOrderSynced(Long serviceOrdID, Long dispatchOrdID);
/**
* 鏋勯�燭askCreateVO瀵硅薄鐢ㄤ簬鍒涘缓浠诲姟
@@ -49,5 +49,5 @@
* @param order 杞繍鍗曡缁嗕俊鎭�
* @return TaskCreateVO瀵硅薄
*/
- TaskCreateVO buildCreateTaskVo(String serviceOrdID, String dispatchOrdID, Map<String, Object> order);
+ TaskCreateVO buildCreateTaskVo(Long serviceOrdID, Long dispatchOrdID, Map<String, Object> order);
}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysEmergencyTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysEmergencyTaskService.java
index f58c998..e8f2ade 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysEmergencyTaskService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysEmergencyTaskService.java
@@ -8,7 +8,7 @@
public interface ISysEmergencyTaskService {
void saveEmergencyInfo(Long taskId, String createUserName, TaskCreateVO createVO,
- String serviceOrderId, String dispatchOrderId, String serviceOrdNo);
+ Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo);
void updateEmergencyInfoFromUpdateVO(SysTaskEmergency oldEmergency, TaskUpdateVO updateVO, String userName);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
index 38d32fe..a5a2a26 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
@@ -63,7 +63,7 @@
* @param updateTime 鏇存柊鏃堕棿
* @return 缁撴灉
*/
- public int insertTask(TaskCreateVO createVO,String serviceOrderId,String dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
+ public int insertTask(TaskCreateVO createVO,Long serviceOrderId,Long dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
/**
* 淇敼浠诲姟绠$悊
@@ -86,7 +86,7 @@
* @param updateTime
* @return
*/
- public int updateTask(TaskUpdateVO updateVO, String serviceOrderId, String dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
+ public int updateTask(TaskUpdateVO updateVO, Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
/**
* 鎵归噺鍒犻櫎浠诲姟绠$悊
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 7f7dcb0..233bf16 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -104,23 +104,23 @@
* @param user 鐢ㄦ埛淇℃伅
* @return 缁撴灉
*/
- public boolean checkUserNameUnique(SysUser user);
+ public Boolean checkUserNameUnique(SysUser user);
/**
* 鏍¢獙鎵嬫満鍙风爜鏄惁鍞竴
- *
+ *
* @param user 鐢ㄦ埛淇℃伅
* @return 缁撴灉
*/
- public boolean checkPhoneUnique(SysUser user);
+ public Boolean checkPhoneUnique(SysUser user);
/**
* 鏍¢獙email鏄惁鍞竴
- *
+ *
* @param user 鐢ㄦ埛淇℃伅
* @return 缁撴灉
*/
- public boolean checkEmailUnique(SysUser user);
+ public Boolean checkEmailUnique(SysUser user);
/**
* 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔
@@ -243,4 +243,12 @@
* @return 鐢ㄦ埛鍒楄〃
*/
public List<SysUser> selectUsersByBranchDeptIds(List<Long> branchDeptIds);
-}
+
+ /**
+ * 鏍规嵁serviceOrderClass鎴杁ispatchOrderClass鏌ヨ鍏锋湁canViewAllConsult鏉冮檺鐨勭敤鎴�
+ *
+ * @param orderClass serviceOrderClass鎴杁ispatchOrderClass
+ * @return 鐢ㄦ埛鍒楄〃
+ */
+ public List<SysUser> selectUsersByOrderClassAndCanViewAllConsult(String orderClass);
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
index 32708d8..d871794 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
@@ -149,7 +149,7 @@
// 濡傛灉宸茬粡鍚屾杩囷紝涓嶅啀閲嶅鍚屾
if (emergency.getLegacyServiceOrdId() != null && emergency.getLegacyServiceOrdId() > 0) {
- log.info("浠诲姟宸插悓姝ヨ繃锛屼换鍔D: {}, ServiceOrdID: {}", taskId, emergency.getLegacyServiceOrdId());
+// log.info("浠诲姟宸插悓姝ヨ繃锛屼换鍔D: {}, ServiceOrdID: {}", taskId, emergency.getLegacyServiceOrdId());
return emergency.getLegacyServiceOrdId();
}
@@ -192,7 +192,7 @@
sysTaskMapper.updateSysTask(task);
eventPublisher.publishEvent(new TaskServiceOrderSyncEvent(this, taskId, task.getTaskCode(), serviceOrdId));
- log.info("浠诲姟鍚屾鎴愬姛锛屼换鍔D: {}, ServiceOrdID: {}", taskId, serviceOrdId);
+// log.info("浠诲姟鍚屾鎴愬姛锛屼换鍔D: {}, ServiceOrdID: {}", taskId, serviceOrdId);
return serviceOrdId;
} else {
// 鍚屾澶辫触
@@ -228,7 +228,7 @@
//鍦ㄨ繖閲岀洃鍚淳鍙戠殑浜嬩欢
@EventListener
public void handleTaskServiceOrderSyncEvent(TaskServiceOrderSyncEvent event) {
- log.info("鏀跺埌浠诲姟鏈嶅姟鍗曞悓姝ヤ簨浠讹紝浠诲姟ID锛歿}锛屼换鍔$紪鍙凤細{}锛屾湇鍔″崟ID锛歿}", event.getTaskId(), event.getTaskCode(), event.getServiceOrderId());
+// log.info("鏀跺埌浠诲姟鏈嶅姟鍗曞悓姝ヤ簨浠讹紝浠诲姟ID锛歿}锛屼换鍔$紪鍙凤細{}锛屾湇鍔″崟ID锛歿}", event.getTaskId(), event.getTaskCode(), event.getServiceOrderId());
syncDispatchOrderToLegacy(event.getTaskId());
}
/**
@@ -256,7 +256,7 @@
break; // 娌℃湁鏇村鏁版嵁锛岄��鍑哄惊鐜�
}
- log.info("寮�濮嬪悓姝ョ {} 椤碉紝浠诲姟鏁伴噺: {}", (offset / pageSize) + 1, pendingTasks.size());
+// log.info("寮�濮嬪悓姝ョ {} 椤碉紝浠诲姟鏁伴噺: {}", (offset / pageSize) + 1, pendingTasks.size());
int pageSuccessCount = 0;
for (SysTaskEmergency emergency : pendingTasks) {
@@ -276,19 +276,19 @@
}
totalSuccessCount += pageSuccessCount;
- log.info("绗� {} 椤靛悓姝ュ畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
- (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount);
+// log.info("绗� {} 椤靛悓姝ュ畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
+// (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount);
// 濡傛灉鏈〉鏁版嵁灏戜簬姣忛〉澶у皬锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤�
if (pendingTasks.size() < pageSize) {
- log.info("宸插埌杈炬渶鍚庝竴椤碉紝鍚屾缁撴潫");
+// log.info("宸插埌杈炬渶鍚庝竴椤碉紝鍚屾缁撴潫");
break;
}
offset += pageSize; // 涓嬩竴椤�
}
- log.info("鎵归噺鍚屾瀹屾垚锛屾�绘垚鍔熸暟: {}", totalSuccessCount);
+// log.info("鎵归噺鍚屾瀹屾垚锛屾�绘垚鍔熸暟: {}", totalSuccessCount);
return totalSuccessCount;
} catch (Exception e) {
@@ -375,7 +375,7 @@
// 濡傛灉宸茬粡鍚屾杩囷紝涓嶅啀閲嶅鍚屾
if (emergency.getLegacyDispatchOrdId() != null && emergency.getLegacyDispatchOrdId() > 0) {
- log.info("璋冨害鍗曞凡鍚屾杩囷紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
+// log.info("璋冨害鍗曞凡鍚屾杩囷紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
return emergency.getLegacyDispatchOrdId();
}
@@ -487,7 +487,7 @@
eventPublisher.publishEvent(new TaskDispatchSyncEvent(this, taskId, task.getTaskCode(),serviceOrdId, dispatchOrdId, oaUserID));
- log.info("璋冨害鍗曞悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId);
+// log.info("璋冨害鍗曞悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId);
return dispatchOrdId;
} else {
// 鍚屾澶辫触
@@ -579,19 +579,19 @@
}
totalSuccessCount += pageSuccessCount;
- log.info("璋冨害鍗曠 {} 椤靛悓姝ュ畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
- (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount);
+// log.info("璋冨害鍗曠 {} 椤靛悓姝ュ畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
+// (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount);
// 濡傛灉鏈〉鏁版嵁灏戜簬姣忛〉澶у皬锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤�
if (pendingTasks.size() < pageSize) {
- log.info("宸插埌杈炬渶鍚庝竴椤碉紝璋冨害鍗曞悓姝ョ粨鏉�");
+// log.info("宸插埌杈炬渶鍚庝竴椤碉紝璋冨害鍗曞悓姝ョ粨鏉�");
break;
}
offset += pageSize; // 涓嬩竴椤�
}
- log.info("鎵归噺鍚屾璋冨害鍗曞畬鎴愶紝鎬绘垚鍔熸暟: {}", totalSuccessCount);
+// log.info("鎵归噺鍚屾璋冨害鍗曞畬鎴愶紝鎬绘垚鍔熸暟: {}", totalSuccessCount);
return totalSuccessCount;
} catch (Exception e) {
@@ -617,7 +617,7 @@
SysDept dept = sysDeptMapper.selectDeptById(task.getDeptId());
if (dept != null && StringUtils.isNotEmpty(dept.getDispatchOrderClass())) {
dispatchOrdClass = dept.getDispatchOrderClass();
- log.info("鑾峰彇浠诲姟鎵�灞為儴闂ㄧ殑璋冨害鍗曠紪鐮佹垚鍔燂紝閮ㄩ棬ID: {}, 璋冨害鍗曠紪鐮�: {}", task.getDeptId(), dispatchOrdClass);
+// log.info("鑾峰彇浠诲姟鎵�灞為儴闂ㄧ殑璋冨害鍗曠紪鐮佹垚鍔燂紝閮ㄩ棬ID: {}, 璋冨害鍗曠紪鐮�: {}", task.getDeptId(), dispatchOrdClass);
}
} catch (Exception e) {
log.error("鏌ヨ浠诲姟鎵�灞為儴闂ㄤ俊鎭紓甯革紝閮ㄩ棬ID: {}", task.getDeptId(), e);
@@ -865,8 +865,8 @@
// params.put("Entourage_3", doctorOaId); // 鍖荤敓
// params.put("Entourage_4", nurseOaId); // 鎶ゅ+
- log.info("浠诲姟鎵ц浜哄憳鍚屾鎴愬姛锛屼换鍔D: {}, 棰嗛槦ID: {}, 鍙告満: {}, 鍖荤敓: {}, 鎶ゅ+: {}",
- task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId);
+// log.info("浠诲姟鎵ц浜哄憳鍚屾鎴愬姛锛屼换鍔D: {}, 棰嗛槦ID: {}, 鍙告満: {}, 鍖荤敓: {}, 鎶ゅ+: {}",
+// task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId);
} catch (Exception e) {
log.error("鍚屾浠诲姟鎵ц浜哄憳寮傚父锛屼换鍔D: {}", task.getTaskId(), e);
@@ -906,7 +906,7 @@
}
// 濡傛灉鏁版嵁搴撲腑娌℃湁鎵ц浜哄憳淇℃伅锛屽皾璇曚粠浠诲姟鐨勪富瑕佹墽琛屼汉鑾峰彇
- log.warn("鏁版嵁搴撲腑鏈壘鍒版墽琛屼汉鍛樹俊鎭紝灏濊瘯浠庝换鍔′富瑕佹墽琛屼汉鑾峰彇锛屼换鍔D: {}", taskId);
+// log.warn("鏁版嵁搴撲腑鏈壘鍒版墽琛屼汉鍛樹俊鎭紝灏濊瘯浠庝换鍔′富瑕佹墽琛屼汉鑾峰彇锛屼换鍔D: {}", taskId);
SysTask task = sysTaskMapper.selectSysTaskByTaskId(taskId);
if (task != null && task.getAssigneeId() != null) {
SysUser user = sysUserMapper.selectUserById(task.getAssigneeId());
@@ -1033,8 +1033,8 @@
if (dept != null && StringUtils.isNotEmpty(dept.getServiceOrderClass())) {
// 浣跨敤閮ㄩ棬鐨勬湇鍔″崟缂栫爜浣滀负ServiceOrdClass
serviceOrdClass = dept.getServiceOrderClass();
- log.info("鑾峰彇浠诲姟鎵�灞為儴闂ㄧ殑鏈嶅姟鍗曠紪鐮佹垚鍔燂紝閮ㄩ棬ID: {}, 閮ㄩ棬鍚嶇О: {}, 鏈嶅姟鍗曠紪鐮�: {}",
- task.getDeptId(), dept.getDeptName(), serviceOrdClass);
+// log.info("鑾峰彇浠诲姟鎵�灞為儴闂ㄧ殑鏈嶅姟鍗曠紪鐮佹垚鍔燂紝閮ㄩ棬ID: {}, 閮ㄩ棬鍚嶇О: {}, 鏈嶅姟鍗曠紪鐮�: {}",
+// task.getDeptId(), dept.getDeptName(), serviceOrdClass);
} else {
log.warn("浠诲姟鎵�灞為儴闂ㄦ湭閰嶇疆鏈嶅姟鍗曠紪鐮侊紝閮ㄩ棬ID: {}銆侀儴闂ㄥ悕绉�: {}锛屼娇鐢ㄩ粯璁ゅ��",
task.getDeptId(), dept != null ? dept.getDeptName() : "null");
@@ -1050,7 +1050,7 @@
String serviceOrdAreaType = "1"; // 榛樿鍊�
if (StringUtils.isNotEmpty(emergency.getDocumentTypeId())) {
serviceOrdAreaType = emergency.getDocumentTypeId();
- log.info("鑾峰彇鍗曟嵁绫诲瀷ID鎴愬姛锛屼换鍔D: {}, 鍗曟嵁绫诲瀷ID: {}", task.getTaskId(), serviceOrdAreaType);
+// log.info("鑾峰彇鍗曟嵁绫诲瀷ID鎴愬姛锛屼换鍔D: {}, 鍗曟嵁绫诲瀷ID: {}", task.getTaskId(), serviceOrdAreaType);
} else {
log.warn("浠诲姟鏈厤缃崟鎹被鍨婭D锛屼换鍔D: {}锛屼娇鐢ㄩ粯璁ゅ��", task.getTaskId());
}
@@ -1063,7 +1063,7 @@
String serviceOrdType = "1"; // 榛樿鍊�
if (StringUtils.isNotEmpty(emergency.getTaskTypeId())) {
serviceOrdType = emergency.getTaskTypeId();
- log.info("鑾峰彇浠诲姟绫诲瀷ID鎴愬姛锛屼换鍔D: {}, 浠诲姟绫诲瀷ID: {}", taskId, serviceOrdType);
+// log.info("鑾峰彇浠诲姟绫诲瀷ID鎴愬姛锛屼换鍔D: {}, 浠诲姟绫诲瀷ID: {}", taskId, serviceOrdType);
} else {
log.warn("浠诲姟鏈厤缃换鍔$被鍨婭D锛屼换鍔D: {}锛屼娇鐢ㄩ粯璁ゅ��", taskId);
}
@@ -1169,7 +1169,7 @@
HttpsURLConnection httpsConn = (HttpsURLConnection) conn;
httpsConn.setSSLSocketFactory(createTrustAllSSLContext().getSocketFactory());
httpsConn.setHostnameVerifier((hostname, session) -> true); // 淇′换鎵�鏈変富鏈哄悕
- log.debug("閰嶇疆HTTPS杩炴帴锛屼俊浠绘墍鏈塖SL璇佷功锛孶RL: {}", urlString);
+// log.debug("閰嶇疆HTTPS杩炴帴锛屼俊浠绘墍鏈塖SL璇佷功锛孶RL: {}", urlString);
}
try {
@@ -1468,7 +1468,7 @@
log.info("閲嶆柊鍚屾璋冨害鍗曞埌鏃х郴缁熻姹傚弬鏁�: {}", params);
// 鍙戦�丠TTP璇锋眰鍒版棫绯荤粺锛堜娇鐢╝dmin_save_25.asp鎺ュ彛锛�
String response = sendHttpPost(legacyConfig.getDispatchUpdateUrl(), params);
- log.info("閲嶆柊鍚屾璋冨害鍗曞埌鏃х郴缁熷搷搴�: ServiceOrdID:{},DispatchOrdId:{},Result: {}",emergency.getLegacyServiceOrdId(),emergency.getLegacyDispatchOrdId(), response);
+// log.info("閲嶆柊鍚屾璋冨害鍗曞埌鏃х郴缁熷搷搴�: ServiceOrdID:{},DispatchOrdId:{},Result: {}",emergency.getLegacyServiceOrdId(),emergency.getLegacyDispatchOrdId(), response);
// 瑙f瀽鍝嶅簲
// Long dispatchOrdId = parseResponse(response);
@@ -1479,7 +1479,7 @@
emergency.setDispatchSyncErrorMsg(null);
sysTaskEmergencyService.updateSysTaskEmergency(emergency);
- log.info("璋冨害鍗曢噸鏂板悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
+// log.info("璋冨害鍗曢噸鏂板悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
return true;
} else {
// 閲嶆柊鍚屾澶辫触
@@ -1527,17 +1527,17 @@
// 鍒嗛〉鏌ヨ闇�瑕侀噸鏂板悓姝ョ殑浠诲姟
List<SysTaskEmergency> needResyncTasks = sysTaskEmergencyMapper.selectNeedResyncTasks(offset, pageSize);
- log.info("鏌ヨ鍒伴渶瑕侀噸鏂板悓姝ョ殑浠诲姟鏁伴噺: {}", needResyncTasks.size());
+// log.info("鏌ヨ鍒伴渶瑕侀噸鏂板悓姝ョ殑浠诲姟鏁伴噺: {}", needResyncTasks.size());
if (needResyncTasks == null || needResyncTasks.isEmpty()) {
log.info("娌℃湁鏇村闇�瑕侀噸鏂板悓姝ョ殑浠诲姟锛宱ffset: {}", offset);
break; // 娌℃湁鏇村鏁版嵁锛岄��鍑哄惊鐜�
}
- log.info("寮�濮嬮噸鏂板悓姝ヨ皟搴﹀崟绗� {} 椤碉紝浠诲姟鏁伴噺: {}", (offset / pageSize) + 1, needResyncTasks.size());
+// log.info("寮�濮嬮噸鏂板悓姝ヨ皟搴﹀崟绗� {} 椤碉紝浠诲姟鏁伴噺: {}", (offset / pageSize) + 1, needResyncTasks.size());
int pageSuccessCount = 0;
for (SysTaskEmergency emergency : needResyncTasks) {
- log.info("寮�濮嬮噸鏂板悓姝ヨ皟搴﹀崟锛屼换鍔D: {}", emergency.getTaskId());
+// log.info("寮�濮嬮噸鏂板悓姝ヨ皟搴﹀崟锛屼换鍔D: {}", emergency.getTaskId());
boolean success = resyncDispatchOrderToLegacy(emergency.getTaskId());
if (success) {
@@ -1555,19 +1555,19 @@
}
totalSuccessCount += pageSuccessCount;
- log.info("璋冨害鍗曢噸鏂板悓姝ョ {} 椤靛畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
- (offset / pageSize) + 1, needResyncTasks.size(), pageSuccessCount);
+// log.info("璋冨害鍗曢噸鏂板悓姝ョ {} 椤靛畬鎴愶紝鎬绘暟: {}, 鎴愬姛: {}",
+// (offset / pageSize) + 1, needResyncTasks.size(), pageSuccessCount);
// 濡傛灉鏈〉鏁版嵁灏戜簬姣忛〉澶у皬锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤�
if (needResyncTasks.size() < pageSize) {
- log.info("宸插埌杈炬渶鍚庝竴椤碉紝璋冨害鍗曢噸鏂板悓姝ョ粨鏉�");
+// log.info("宸插埌杈炬渶鍚庝竴椤碉紝璋冨害鍗曢噸鏂板悓姝ョ粨鏉�");
break;
}
offset += pageSize; // 涓嬩竴椤�
}
- log.info("鎵归噺閲嶆柊鍚屾璋冨害鍗曞畬鎴愶紝鎬绘垚鍔熸暟: {}", totalSuccessCount);
+// log.info("鎵归噺閲嶆柊鍚屾璋冨害鍗曞畬鎴愶紝鎬绘垚鍔熸暟: {}", totalSuccessCount);
return totalSuccessCount;
} catch (Exception e) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
index 03102dd..7bdf8a6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
@@ -108,11 +108,11 @@
for (Map<String, Object> order : transferOrders) {
processedCount++;
try {
- String serviceOrdID = MapValueUtils.getStringValue(order, "ServiceOrdID");
- String dispatchOrdID = MapValueUtils.getStringValue(order, "DispatchOrdID");
+ Long serviceOrdID = MapValueUtils.getLongValue(order, "ServiceOrdID");
+ Long dispatchOrdID = MapValueUtils.getLongValue(order, "DispatchOrdID");
// 妫�鏌ュ弬鏁版湁鏁堟��
- if (StringUtils.isEmpty(serviceOrdID)) {
+ if (serviceOrdID==null || serviceOrdID<=0) {
log.warn("绗瑊}鏉℃暟鎹湇鍔″崟ID涓虹┖锛岃烦杩囧鐞�", processedCount);
continue;
}
@@ -164,41 +164,25 @@
* @return 鏄惁鍚屾鎴愬姛
*/
@Override
- public boolean syncSingleTransferOrder(String serviceOrdID, String dispatchOrdID) {
- log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ public boolean syncSingleTransferOrder(Long serviceOrdID, Long dispatchOrdID) {
+// log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
- if (StringUtils.isEmpty(serviceOrdID)) {
+ if (serviceOrdID == null || serviceOrdID <= 0) {
log.error("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
return false;
}
- // 鐩存帴鏌ヨ鎸囧畾鐨勮浆杩愬崟淇℃伅
- Long serviceOrdIdLong = null;
- Long dispatchOrdIdLong = null;
+
+
- try {
- serviceOrdIdLong = Long.valueOf(serviceOrdID);
- } catch (NumberFormatException e) {
- log.error("鏈嶅姟鍗旾D涓嶆槸鏈夋晥鏁板瓧: {}", serviceOrdID);
- return false;
- }
-
- if (StringUtils.isNotEmpty(dispatchOrdID)) {
- try {
- dispatchOrdIdLong = Long.valueOf(dispatchOrdID);
- } catch (NumberFormatException e) {
- log.warn("璋冨害鍗旾D涓嶆槸鏈夋晥鏁板瓧: {}", dispatchOrdID);
- }
- }
-
- List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrdersByIDs(serviceOrdIdLong, dispatchOrdIdLong);
+ List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrdersByIDs(serviceOrdID, dispatchOrdID);
Map<String, Object> order = transferOrders.get(0);
// 妫�鏌ユ槸鍚﹀凡鍚屾
if (isTransferOrderSynced(serviceOrdID, dispatchOrdID)) {
- log.info("杞繍鍗曞凡鍚屾锛岃烦杩�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+// log.info("杞繍鍗曞凡鍚屾锛岃烦杩�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
updateTransferOrder(serviceOrdID, dispatchOrdID, order);
return true;
}
@@ -226,11 +210,11 @@
* @param order
* @return
*/
- private boolean updateTransferOrder(String serviceOrdID, String dispatchOrdID, Map<String, Object> order){
- log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ private boolean updateTransferOrder(Long serviceOrdID, Long dispatchOrdID, Map<String, Object> order){
+// log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
String sysTaskCode="";
try {
- SysTaskEmergency emergency=sysTaskEmergencyMapper.selectByLegacyServiceOrdId(Long.parseLong(serviceOrdID));
+ SysTaskEmergency emergency=sysTaskEmergencyMapper.selectByLegacyServiceOrdId(serviceOrdID);
if(emergency.getNeedResync().equals(1)){
log.info("鏂扮郴缁熼渶瑕佸悓姝ュ埌鏃х郴缁熼偅閲岋紝鎵�浠ヤ笉瑕佸悓姝ユ棫鏁版嵁鍒版柊绯荤粺,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
return false;
@@ -275,12 +259,12 @@
Long deptId=dept==null?null:dept.getDeptId();
TaskUpdateVO updateTaskVo = new TaskUpdateVO();
BeanUtils.copyProperties(createTaskVo, updateTaskVo);
- log.info("寮�濮嬩繚瀛樿浆杩愪换鍔�,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+// log.info("寮�濮嬩繚瀛樿浆杩愪换鍔�,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
int result = sysTaskService.updateTask(updateTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
if (result > 0) {
- log.info("杞繍鍗曞悓姝ユ垚鍔�: ServiceOrdID={}, DispatchOrdID={}, 鍒涘缓鐨勪换鍔D={}", serviceOrdID, dispatchOrdID, result);
+// log.info("杞繍鍗曞悓姝ユ垚鍔�: ServiceOrdID={}, DispatchOrdID={}, 鍒涘缓鐨勪换鍔D={}", serviceOrdID, dispatchOrdID, result);
try {
notifyTransferOrderByWechat((long) result, serviceOrdID, dispatchOrdID, serviceOrdNo, ServiceOrd_CC_Time, dept, order);
@@ -307,8 +291,8 @@
* @param order 杞繍鍗曡缁嗕俊鎭�
* @return 鏄惁鍚屾鎴愬姛
*/
- private boolean syncSingleTransferOrder(String serviceOrdID, String dispatchOrdID, Map<String, Object> order) {
- log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ private boolean syncSingleTransferOrder(Long serviceOrdID, Long dispatchOrdID, Map<String, Object> order) {
+// log.info("寮�濮嬪悓姝ュ崟涓浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
String sysTaskCode="";
try {
// 鏋勯�燭askCreateVO瀵硅薄
@@ -355,7 +339,7 @@
int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
if (result > 0) {
- log.info("杞繍鍗曞悓姝ユ垚鍔�: ServiceOrdID={}, DispatchOrdID={}, 鍒涘缓鐨勪换鍔D={}", serviceOrdID, dispatchOrdID, result);
+// log.info("杞繍鍗曞悓姝ユ垚鍔�: ServiceOrdID={}, DispatchOrdID={}, 鍒涘缓鐨勪换鍔D={}", serviceOrdID, dispatchOrdID, result);
try {
notifyTransferOrderByWechat((long) result, serviceOrdID, dispatchOrdID, serviceOrdNo, ServiceOrd_CC_Time, dept, order);
@@ -383,10 +367,10 @@
* @return 鏄惁宸插悓姝�
*/
@Override
- public boolean isTransferOrderSynced(String serviceOrdID, String dispatchOrdID) {
+ public boolean isTransferOrderSynced(Long serviceOrdID, Long dispatchOrdID) {
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
- if (StringUtils.isEmpty(serviceOrdID)) {
+ if (serviceOrdID == null || serviceOrdID<=0) {
log.warn("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
return false;
}
@@ -395,7 +379,7 @@
// 鏉′欢锛歭egacy_service_ord_id = serviceOrdID 鎴� legacy_dispatch_ord_id = dispatchOrdID
try {
- SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyServiceOrdId(Long.valueOf(serviceOrdID));
+ SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyServiceOrdId(serviceOrdID);
if (emergency != null) {
return true;
}
@@ -403,9 +387,9 @@
log.warn("鏈嶅姟鍗旾D涓嶆槸鏈夋晥鏁板瓧: {}", serviceOrdID);
}
- if (StringUtils.isNotEmpty(dispatchOrdID)) {
+ if (dispatchOrdID>0) {
try {
- SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyDispatchOrdId(Long.valueOf(dispatchOrdID));
+ SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyDispatchOrdId(dispatchOrdID);
if (emergency != null) {
return true;
}
@@ -441,7 +425,7 @@
* @return TaskCreateVO瀵硅薄
*/
@Override
- public TaskCreateVO buildCreateTaskVo(String serviceOrdID, String dispatchOrdID, Map<String, Object> order) {
+ public TaskCreateVO buildCreateTaskVo(Long serviceOrdID, Long dispatchOrdID, Map<String, Object> order) {
// log.info("鏋勯�燭askCreateVO: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
try {
@@ -451,7 +435,7 @@
return null;
}
- if (StringUtils.isEmpty(serviceOrdID)) {
+ if (serviceOrdID==null || serviceOrdID<=0) {
log.error("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
return null;
}
@@ -730,11 +714,11 @@
* @param dispatchOrdID 璋冨害鍗旾D
* @return 鎵ц浜轰俊鎭垪琛�
*/
- private List<TaskCreateVO.AssigneeInfo> queryAssignees(String dispatchOrdID) {
+ private List<TaskCreateVO.AssigneeInfo> queryAssignees(Long dispatchOrdID) {
long startTime = System.currentTimeMillis();
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
- if (StringUtils.isEmpty(dispatchOrdID)) {
+ if (dispatchOrdID==null || dispatchOrdID <= 0) {
log.warn("璋冨害鍗旾D涓嶈兘涓虹┖");
return new ArrayList<>();
}
@@ -813,10 +797,10 @@
* @param serviceOrdID 鏈嶅姟鍗旾D
* @return 鐥呮儏ID鍒楄〃
*/
- private String queryDiseaseIds(String serviceOrdID) {
+ private String queryDiseaseIds(Long serviceOrdID) {
try {
// 妫�鏌ュ弬鏁版湁鏁堟��
- if (StringUtils.isEmpty(serviceOrdID)) {
+ if (serviceOrdID==null || serviceOrdID <= 0) {
log.warn("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
return null;
}
@@ -840,8 +824,8 @@
private void notifyTransferOrderByWechat(Long taskId,
- String serviceOrdID,
- String dispatchOrdID,
+ Long serviceOrdID,
+ Long dispatchOrdID,
String serviceOrdNo,
Date serviceOrdCcTime,
SysDept dept,
@@ -850,7 +834,7 @@
// 鑾峰彇閫氱煡鎺ユ敹浜哄垪琛�
List<SysUser> receivers = getWechatNotifyUsers(dispatchOrdID, dept);
if (receivers == null || receivers.isEmpty()) {
- log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟鏃犲彲鐢ㄥ井淇℃帴鏀朵汉锛宼askId={}", taskId);
+// log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟鏃犲彲鐢ㄥ井淇℃帴鏀朵汉锛宼askId={}", taskId);
return;
}
@@ -864,13 +848,13 @@
// 璋冪敤缁熶竴鐨勫井淇¢�氱煡鏈嶅姟
int successCount = wechatTaskNotifyService.sendTaskNotifyMessage(taskId, userIds);
- log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟寰俊閫氱煡鍙戦�佸畬鎴愶紝taskId={}, 鎴愬姛={}", taskId, successCount);
+// log.info("鏃х郴缁熷悓姝ヨ浆杩愬崟寰俊閫氱煡鍙戦�佸畬鎴愶紝taskId={}, 鎴愬姛={}", taskId, successCount);
} catch (Exception e) {
log.error("notifyTransferOrderByWechat鍙戠敓寮傚父, serviceOrdID={}, dispatchOrdID={}", serviceOrdID, dispatchOrdID, e);
}
}
- private List<SysUser> getWechatNotifyUsers(String dispatchOrdID, SysDept dept) {
+ private List<SysUser> getWechatNotifyUsers(Long dispatchOrdID, SysDept dept) {
try {
List<SysUser> result = new ArrayList<>();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
index f85f37b..ceac8fb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysEmergencyTaskServiceImpl.java
@@ -41,7 +41,7 @@
@Override
public void saveEmergencyInfo(Long taskId, String createUserName, TaskCreateVO createVO,
- String serviceOrderId, String dispatchOrderId, String serviceOrdNo) {
+ Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo) {
SysTaskEmergency emergencyInfo = new SysTaskEmergency();
emergencyInfo.setTaskId(taskId);
@@ -123,13 +123,13 @@
}
if (serviceOrderId != null) {
- emergencyInfo.setLegacyServiceOrdId(Long.parseLong(serviceOrderId));
+ emergencyInfo.setLegacyServiceOrdId(serviceOrderId);
emergencyInfo.setSyncStatus(2);
emergencyInfo.setSyncTime(DateUtils.getNowDate());
emergencyInfo.setSyncErrorMsg("鏃х郴缁熷悓姝ヨ繃鏉�");
}
if (dispatchOrderId != null) {
- emergencyInfo.setLegacyDispatchOrdId(Long.parseLong(dispatchOrderId));
+ emergencyInfo.setLegacyDispatchOrdId(dispatchOrderId);
emergencyInfo.setDispatchSyncStatus(2);
emergencyInfo.setDispatchSyncTime(DateUtils.getNowDate());
emergencyInfo.setDispatchSyncErrorMsg("鏃х郴缁熷悓姝ヨ繃鏉�");
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
index 8ea35df..3caf8c5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
@@ -9,8 +9,9 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.*;
import com.ruoyi.system.domain.vo.*;
-import com.ruoyi.system.event.TaskDispatchSyncEvent;
+import com.ruoyi.system.event.*;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.TaskCodeGenerator;
@@ -19,10 +20,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.GpsDistanceUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.system.domain.SysTask;
@@ -34,9 +31,6 @@
import com.ruoyi.system.domain.SysTaskAssignee;
import com.ruoyi.system.domain.enums.TaskStatus;
import com.ruoyi.system.domain.VehicleInfo;
-import com.ruoyi.system.event.TaskCreatedEvent;
-import com.ruoyi.system.event.TaskAssignedEvent;
-import com.ruoyi.system.event.TaskStatusChangedEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -317,7 +311,7 @@
*/
@Override
@Transactional
- public int insertTask(TaskCreateVO createVO,String serviceOrderId,String dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime) {
+ public int insertTask(TaskCreateVO createVO,Long serviceOrderId,Long dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime) {
SysTask task = new SysTask();
if(createVO.getTaskCode()!=null){
task.setTaskCode(createVO.getTaskCode());
@@ -411,8 +405,9 @@
}
-
-
+ if(result>0) {
+ this.sendEmeryTaskProcess(task, dispatchOrderId);
+ }
return result;
}
@@ -613,11 +608,11 @@
* @return 缁撴灉
*/
@Override
- public int updateTask(TaskUpdateVO updateVO, String serviceOrderId, String dispatchOrderId, String serviceOrdNo,
+ public int updateTask(TaskUpdateVO updateVO, Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo,
Long userId, String userName, Long deptId, Date createTime, Date updateTime) {
// log.info("寮�濮嬫洿鏂颁换鍔� ServiceOrdID: {} , dispatchOrdId:{}", serviceOrderId,dispatchOrderId);
// 閫氳繃鏃х郴缁熸湇鍔″崟ID鏌ユ壘浠诲姟
- SysTaskEmergency taskEmergency = sysTaskEmergencyMapper.selectByLegacyServiceOrdId(Long.parseLong(serviceOrderId));
+ SysTaskEmergency taskEmergency = sysTaskEmergencyMapper.selectByLegacyServiceOrdId(serviceOrderId);
Long taskId = taskEmergency.getTaskId();
updateVO.setTaskId(taskId);
SysTask task = new SysTask();
@@ -722,14 +717,14 @@
// log.info("鏇存柊鎵ц浜哄憳 ServiceOrdID:{},dispatchOrderId:{}",serviceOrderId,dispatchOrderId);
sysTaskAssigneeService.updateTaskAssignees(taskId, updateVO.getAssignees(), userName);
}
- Long dispatchOrderIdLong = 0L;
+
// 鏇存柊鎬ユ晳杞繍鎵╁睍淇℃伅
if (result > 0) {
// 鏇存柊鏃х郴缁烮D
- taskEmergency.setLegacyServiceOrdId(Long.parseLong(serviceOrderId));
- if (dispatchOrderId != null) {
- dispatchOrderIdLong = Long.parseLong(dispatchOrderId);
- taskEmergency.setLegacyDispatchOrdId(dispatchOrderIdLong);
+ taskEmergency.setLegacyServiceOrdId(serviceOrderId);
+ if (LongUtil.isNotEmpty(dispatchOrderId)) {
+
+ taskEmergency.setLegacyDispatchOrdId(dispatchOrderId);
taskEmergency.setDispatchSyncStatus(2);
taskEmergency.setDispatchSyncTime(new Date());
taskEmergency.setDispatchSyncErrorMsg("鏃х郴缁熷悓姝ヨ繃鏉�");
@@ -747,16 +742,30 @@
sysEmergencyTaskService.updateEmergencyInfoFromCreateVO(taskEmergency, updateVO, userName);
}
SysTaskEmergency emergency= sysEmergencyTaskService.selectSysTaskEmergencyByTaskId(taskId);
- dispatchOrderIdLong = emergency.getLegacyDispatchOrdId();
+ dispatchOrderId = emergency.getLegacyDispatchOrdId();
}
- if(updateVO.getTaskStatus()!=null && updateVO.getTaskStatus().equals(TaskStatus.PENDING.getCode()) && updateVO.getAssignees()!=null && !updateVO.getAssignees().isEmpty() && dispatchOrderIdLong>0L){
+ if(updateVO.getTaskStatus()!=null && updateVO.getTaskStatus().equals(TaskStatus.PENDING.getCode()) && updateVO.getAssignees()!=null && !updateVO.getAssignees().isEmpty() && dispatchOrderId>0L){
this.sendTaskAssigneeEvent(updateVO,task,userId,userName);
}
-
+
return result;
}
+ private void sendEmeryTaskProcess(SysTask task,Long dispatchOrderId){
+ Long taskId = task.getTaskId();
+ String taskCode = task.getShowTaskCode();
+ if(task.getTaskStatus()!=null && task.getTaskStatus().equals(TaskStatus.PENDING.getCode())){
+ //濡傛灉娌℃湁鍒嗛厤浜哄憳锛屼笖娌℃湁璋冨害鍗曪紝涓嶆槸骞垮窞鎬诲叕鍙哥殑灏遍渶瑕佸彂閫侀�氱煡璺熻繘
+ if(LongUtil.isEmpty(dispatchOrderId)){
+ if(!task.getDeptId().equals(DeptUtil.GUANGZHOU_DEPT_ID) && task.getAssignees().isEmpty()){
+ //鍙戦�侀�氱煡
+ eventPublisher.publishEvent(new TaskOnlyServerOrderSyncEvent(this, taskId, taskCode));
+
+ }
+ }
+ }
+ }
/**
* 鎵归噺鍒犻櫎浠诲姟绠$悊
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index ddc34de..e94af7a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -28,7 +28,6 @@
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
/**
@@ -58,9 +57,6 @@
@Autowired
private ISysConfigService configService;
-
- @Autowired
- private ISysDeptService deptService;
@Autowired
protected Validator validator;
@@ -127,18 +123,6 @@
{
return userMapper.selectUserByPhonenumber(phonenumber);
}
-
- /**
- * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛
- *
- * @param userId 鐢ㄦ埛ID
- * @return 鐢ㄦ埛瀵硅薄淇℃伅
- */
- @Override
- public SysUser selectUserById(Long userId)
- {
- return userMapper.selectUserById(userId);
- }
/**
* 閫氳繃寰俊OpenID鏌ヨ鐢ㄦ埛
@@ -177,6 +161,18 @@
}
/**
+ * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛
+ *
+ * @param userId 鐢ㄦ埛ID
+ * @return 鐢ㄦ埛瀵硅薄淇℃伅
+ */
+ @Override
+ public SysUser selectUserById(Long userId)
+ {
+ return userMapper.selectUserById(userId);
+ }
+
+ /**
* 鏌ヨ鐢ㄦ埛鎵�灞炶鑹茬粍
*
* @param userName 鐢ㄦ埛鍚�
@@ -190,7 +186,7 @@
{
return StringUtils.EMPTY;
}
- return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
+ return list.stream().map(SysRole::getRoleName).reduce((x, y) -> x + "," + y).orElse(StringUtils.EMPTY);
}
/**
@@ -217,7 +213,7 @@
* @return 缁撴灉
*/
@Override
- public boolean checkUserNameUnique(SysUser user)
+ public Boolean checkUserNameUnique(SysUser user)
{
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkUserNameUnique(user.getUserName());
@@ -235,7 +231,7 @@
* @return
*/
@Override
- public boolean checkPhoneUnique(SysUser user)
+ public Boolean checkPhoneUnique(SysUser user)
{
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
@@ -253,7 +249,7 @@
* @return
*/
@Override
- public boolean checkEmailUnique(SysUser user)
+ public Boolean checkEmailUnique(SysUser user)
{
Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
SysUser info = userMapper.checkEmailUnique(user.getEmail());
@@ -445,10 +441,10 @@
public void insertUserPost(SysUser user)
{
Long[] posts = user.getPostIds();
- if (StringUtils.isNotEmpty(posts))
+ if (StringUtils.isNotNull(posts))
{
// 鏂板鐢ㄦ埛涓庡矖浣嶇鐞�
- List<SysUserPost> list = new ArrayList<SysUserPost>(posts.length);
+ List<SysUserPost> list = new ArrayList<SysUserPost>();
for (Long postId : posts)
{
SysUserPost up = new SysUserPost();
@@ -456,7 +452,10 @@
up.setPostId(postId);
list.add(up);
}
- userPostMapper.batchUserPost(list);
+ if (list.size() > 0)
+ {
+ userPostMapper.batchUserPost(list);
+ }
}
}
@@ -468,10 +467,10 @@
*/
public void insertUserRole(Long userId, Long[] roleIds)
{
- if (StringUtils.isNotEmpty(roleIds))
+ if (StringUtils.isNotNull(roleIds))
{
// 鏂板鐢ㄦ埛涓庤鑹茬鐞�
- List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
+ List<SysUserRole> list = new ArrayList<SysUserRole>();
for (Long roleId : roleIds)
{
SysUserRole ur = new SysUserRole();
@@ -479,7 +478,10 @@
ur.setRoleId(roleId);
list.add(ur);
}
- userRoleMapper.batchUserRole(list);
+ if (list.size() > 0)
+ {
+ userRoleMapper.batchUserRole(list);
+ }
}
}
@@ -513,7 +515,6 @@
for (Long userId : userIds)
{
checkUserAllowed(new SysUser(userId));
- checkUserDataScope(userId);
}
// 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱�
userRoleMapper.deleteUserRole(userIds);
@@ -541,6 +542,7 @@
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
+ String password = configService.selectConfigByKey("sys.user.initPassword");
for (SysUser user : userList)
{
try
@@ -550,73 +552,18 @@
if (StringUtils.isNull(u))
{
BeanValidators.validateWithException(validator, user);
- deptService.checkDeptDataScope(user.getDeptId());
-
- // 鏍¢獙鎵嬫満鍙峰敮涓�鎬�
- if (StringUtils.isNotEmpty(user.getPhonenumber()))
- {
- SysUser phoneCheck = userMapper.checkPhoneUnique(user.getPhonenumber());
- if (StringUtils.isNotNull(phoneCheck))
- {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆澶辫触锛氭墜鏈哄彿鐮� " + user.getPhonenumber() + " 宸茶鐢ㄦ埛 " + phoneCheck.getUserName() + " 浣跨敤");
- continue;
- }
- }
-
- // 鏍¢獙閭鍞竴鎬�
- if (StringUtils.isNotEmpty(user.getEmail()))
- {
- SysUser emailCheck = userMapper.checkEmailUnique(user.getEmail());
- if (StringUtils.isNotNull(emailCheck))
- {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆澶辫触锛氶偖绠� " + user.getEmail() + " 宸茶鐢ㄦ埛 " + emailCheck.getUserName() + " 浣跨敤");
- continue;
- }
- }
-
- String password = configService.selectConfigByKey("sys.user.initPassword");
user.setPassword(SecurityUtils.encryptPassword(password));
user.setCreateBy(operName);
- userMapper.insertUser(user);
+ this.insertUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆鎴愬姛");
}
else if (isUpdateSupport)
{
BeanValidators.validateWithException(validator, user);
- checkUserAllowed(u);
- checkUserDataScope(u.getUserId());
- deptService.checkDeptDataScope(user.getDeptId());
-
- // 鏍¢獙鎵嬫満鍙峰敮涓�鎬э紙鎺掗櫎鑷繁锛�
- if (StringUtils.isNotEmpty(user.getPhonenumber()))
- {
- SysUser phoneCheck = userMapper.checkPhoneUnique(user.getPhonenumber());
- if (StringUtils.isNotNull(phoneCheck) && !phoneCheck.getUserId().equals(u.getUserId()))
- {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊澶辫触锛氭墜鏈哄彿鐮� " + user.getPhonenumber() + " 宸茶鐢ㄦ埛 " + phoneCheck.getUserName() + " 浣跨敤");
- continue;
- }
- }
-
- // 鏍¢獙閭鍞竴鎬э紙鎺掗櫎鑷繁锛�
- if (StringUtils.isNotEmpty(user.getEmail()))
- {
- SysUser emailCheck = userMapper.checkEmailUnique(user.getEmail());
- if (StringUtils.isNotNull(emailCheck) && !emailCheck.getUserId().equals(u.getUserId()))
- {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊澶辫触锛氶偖绠� " + user.getEmail() + " 宸茶鐢ㄦ埛 " + emailCheck.getUserName() + " 浣跨敤");
- continue;
- }
- }
-
user.setUserId(u.getUserId());
user.setUpdateBy(operName);
- userMapper.updateUser(user);
+ this.updateUser(user);
successNum++;
successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊鎴愬姛");
}
@@ -655,10 +602,18 @@
@Override
public List<SysUser> selectUsersByBranchDeptIds(List<Long> branchDeptIds)
{
- if (branchDeptIds == null || branchDeptIds.isEmpty()) {
- return new ArrayList<>();
- }
-
return userMapper.selectUsersByBranchDeptIds(branchDeptIds);
}
-}
+
+ /**
+ * 鏍规嵁serviceOrderClass鎴杁ispatchOrderClass鏌ヨ鍏锋湁canViewAllConsult鏉冮檺鐨勭敤鎴�
+ *
+ * @param orderClass serviceOrderClass鎴杁ispatchOrderClass
+ * @return 鐢ㄦ埛鍒楄〃
+ */
+ @Override
+ public List<SysUser> selectUsersByOrderClassAndCanViewAllConsult(String orderClass)
+ {
+ return userMapper.selectUsersByOrderClassAndCanViewAllConsult(orderClass);
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index bdd74b3..c0abc50 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -300,4 +300,19 @@
ORDER BY u.create_time DESC
</select>
-</mapper>
\ No newline at end of file
+ <!-- 鏍规嵁serviceOrderClass鎴杁ispatchOrderClass鏌ヨ鍏锋湁canViewAllConsult鏉冮檺鐨勭敤鎴� -->
+ <select id="selectUsersByOrderClassAndCanViewAllConsult" resultMap="SysUserResult">
+ SELECT DISTINCT
+ u.user_id, u.dept_id, u.user_name, u.nick_name, u.email,
+ u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.create_time,
+ u.can_view_all_consult,u.oa_order_class
+
+ FROM sys_user u
+ WHERE u.del_flag = '0'
+ AND u.status = '0'
+ AND u.can_view_all_consult = '1'
+ AND u.oa_order_class like concat('%', #{orderClass}, '%')
+ ORDER BY u.create_time DESC
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/notify/channelConfig.vue b/ruoyi-ui/src/views/system/notify/channelConfig.vue
index 5e13fa6..855f979 100644
--- a/ruoyi-ui/src/views/system/notify/channelConfig.vue
+++ b/ruoyi-ui/src/views/system/notify/channelConfig.vue
@@ -3,17 +3,14 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="閫氱煡绫诲瀷" prop="notifyType">
<el-select v-model="queryParams.notifyType" placeholder="璇烽�夋嫨閫氱煡绫诲瀷" clearable>
- <el-option label="浠诲姟鍒嗛厤" value="TASK_ASSIGN" />
- <el-option label="鐘舵�佸彉鏇�" value="STATUS_CHANGE" />
- <el-option label="浠诲姟鍒涘缓" value="TASK_CREATE" />
+ <el-option v-for="dict in dict.type.sys_notify_type" :key="dict.value" :label="dict.label" :value="dict.value" />
+
</el-select>
</el-form-item>
<el-form-item label="娓犻亾" prop="channel">
<el-select v-model="queryParams.channel" placeholder="璇烽�夋嫨娓犻亾" clearable>
- <el-option label="寰俊璁㈤槄娑堟伅" value="WECHAT" />
- <el-option label="鐭俊" value="SMS" />
- <el-option label="绔欏唴娑堟伅" value="SITE_MSG" />
- <el-option label="APP鎺ㄩ��" value="APP_PUSH" />
+ <el-option v-for="dict in dict.type.sys_notify_channel" :key="dict.value" :label="dict.label" :value="dict.value" />
+
</el-select>
</el-form-item>
<el-form-item label="鏄惁鍚敤" prop="enabled">
@@ -121,18 +118,12 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="閫氱煡绫诲瀷" prop="notifyType">
<el-select v-model="form.notifyType" placeholder="璇烽�夋嫨閫氱煡绫诲瀷" style="width: 100%">
- <el-option label="浠诲姟鍒嗛厤" value="TASK_ASSIGN" />
- <el-option label="鐘舵�佸彉鏇�" value="STATUS_CHANGE" />
- <el-option label="浠诲姟鍒涘缓" value="TASK_CREATE" />
+ <el-option v-for="dict in dict.type.sys_notify_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="娓犻亾" prop="channel">
<el-select v-model="form.channel" placeholder="璇烽�夋嫨娓犻亾" style="width: 100%">
- <el-option label="寰俊璁㈤槄娑堟伅" value="WECHAT" />
- <el-option label="鐭俊" value="SMS" />
- <el-option label="绔欏唴娑堟伅" value="SITE_MSG" />
- <el-option label="APP鎺ㄩ��" value="APP_PUSH" />
- <el-option label="浼佷笟寰俊" value="QY_WECHAT" />
+ <el-option v-for="dict in dict.type.sys_notify_channel" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="鏄惁鍚敤" prop="enabled">
diff --git a/ruoyi-ui/src/views/system/notify/log/index.vue b/ruoyi-ui/src/views/system/notify/log/index.vue
index e7079b9..071381b 100644
--- a/ruoyi-ui/src/views/system/notify/log/index.vue
+++ b/ruoyi-ui/src/views/system/notify/log/index.vue
@@ -88,7 +88,7 @@
<el-table v-loading="loading" :data="notifySendLogList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
- <el-table-column label="ID" align="center" prop="id" />
+
<el-table-column label="閫氱煡浠诲姟ID" align="center" prop="notifyTaskId" />
<el-table-column label="浠诲姟ID" align="center" prop="taskId" />
<el-table-column label="鐢ㄦ埛ID" align="center" prop="userId" />
diff --git a/sql/sys_notify_send_log.sql b/sql/sys_notify_send_log.sql
index c415448..3335ee4 100644
--- a/sql/sys_notify_send_log.sql
+++ b/sql/sys_notify_send_log.sql
@@ -3,34 +3,36 @@
-- 鐢ㄤ簬璁板綍鍚勭被閫氱煡娑堟伅鐨勫彂閫佽褰曪紝瀹炵幇闃查噸鏈哄埗
-- 纭繚鍚屼竴浠诲姟鍚屼竴浜哄悓涓�閫氱煡绫诲瀷鍙彂閫佷竴娆�
-- ===========================================
-
DROP TABLE IF EXISTS `sys_notify_send_log`;
CREATE TABLE `sys_notify_send_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
- `task_id` bigint(20) NOT NULL COMMENT '浠诲姟ID',
- `user_id` bigint(20) NOT NULL COMMENT '鎺ユ敹鐢ㄦ埛ID',
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '涓婚敭ID',
+ `notify_task_id` bigint DEFAULT NULL COMMENT '鍏宠仈鐨勯�氱煡浠诲姟ID',
+ `task_id` bigint NOT NULL COMMENT '浠诲姟ID',
+ `user_id` bigint NOT NULL COMMENT '鎺ユ敹鐢ㄦ埛ID',
`user_name` varchar(64) DEFAULT NULL COMMENT '鎺ユ敹鐢ㄦ埛濮撳悕',
`notify_type` varchar(32) NOT NULL COMMENT '閫氱煡绫诲瀷锛歍ASK_ASSIGN-浠诲姟鍒嗛厤, STATUS_CHANGE-鐘舵�佸彉鏇�, TASK_CREATE-浠诲姟鍒涘缓',
`channel` varchar(32) NOT NULL COMMENT '閫氱煡娓犻亾锛歐ECHAT-寰俊璁㈤槄娑堟伅, SMS-鐭俊, APP_PUSH-APP鎺ㄩ��, SITE_MSG-绔欏唴娑堟伅',
+ `send_content` text,
`send_status` char(1) DEFAULT '0' COMMENT '鍙戦�佺姸鎬侊細0-寰呭彂閫�, 1-鍙戦�佹垚鍔�, 2-鍙戦�佸け璐�',
- `send_content` text COMMENT '鍙戦�佺殑鍐呭',
`send_time` datetime DEFAULT NULL COMMENT '鍙戦�佹椂闂�',
- `send_result` text DEFAULT NULL COMMENT '鍙戦�佺粨鏋�/閿欒淇℃伅',
- `retry_count` int(11) DEFAULT 0 COMMENT '閲嶈瘯娆℃暟',
+ `send_result` varchar(500) DEFAULT NULL COMMENT '鍙戦�佺粨鏋�/閿欒淇℃伅',
+ `retry_count` int DEFAULT '0' COMMENT '閲嶈瘯娆℃暟',
`create_time` datetime NOT NULL COMMENT '鍒涘缓鏃堕棿',
`create_by` varchar(64) DEFAULT '' COMMENT '鍒涘缓鑰�',
`update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
`update_by` varchar(64) DEFAULT '' COMMENT '鏇存柊鑰�',
`remark` varchar(500) DEFAULT NULL COMMENT '澶囨敞',
+ `response_msg` text COMMENT '鍝嶅簲娑堟伅',
PRIMARY KEY (`id`),
- UNIQUE KEY `uk_task_user_type_channel` (`task_id`, `user_id`, `notify_type`, `channel`) COMMENT '鍚屼竴浠诲姟鍚屼竴鐢ㄦ埛鍚屼竴绫诲瀷鍚屼竴娓犻亾鍙兘鏈変竴鏉¤褰�',
+ UNIQUE KEY `uk_task_user_type_channel` (`task_id`,`user_id`,`notify_type`,`channel`) COMMENT '鍚屼竴浠诲姟鍚屼竴鐢ㄦ埛鍚屼竴绫诲瀷鍚屼竴娓犻亾鍙兘鏈変竴鏉¤褰�',
KEY `idx_task_id` (`task_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_notify_type` (`notify_type`),
KEY `idx_send_status` (`send_status`),
- KEY `idx_create_time` (`create_time`)
-) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='閫氱煡鍙戦�佽褰曡〃';
+ KEY `idx_create_time` (`create_time`),
+ KEY `idx_notify_task_id` (`notify_task_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='閫氱煡鍙戦�佽褰曡〃';
-- ===========================================
-- 浣跨敤璇存槑锛�
diff --git a/sql/update_sys_notify_send_log.sql b/sql/update_sys_notify_send_log.sql
new file mode 100644
index 0000000..4c9c770
--- /dev/null
+++ b/sql/update_sys_notify_send_log.sql
@@ -0,0 +1,5 @@
+-- 涓� sys_notify_send_log 琛ㄦ坊鍔� response_msg 瀛楁
+-- 璇ヨ剼鏈敤浜庝慨澶嶅洜瀛楁缂哄け瀵艰嚧鐨� SQL 璇硶閿欒
+
+ALTER TABLE `sys_notify_send_log`
+ADD COLUMN `response_msg` text DEFAULT NULL COMMENT '鍝嶅簲娑堟伅';
\ No newline at end of file
--
Gitblit v1.9.1