From 0a3eed02e78dfeeb7763a4b62992eefcd1f5a0ca Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 23 十二月 2025 23:33:34 +0800
Subject: [PATCH] feat: 优化状态变更时实时推送
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 deletions(-)
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 8f437dd..461aae1 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
@@ -101,6 +101,10 @@
@Autowired
private ISysTaskVehicleService sysTaskVehicleService;
+ @Autowired
+ private ISysTaskAssigneeService assigneeService;
+
+
@Override
public Boolean dispatchSyncEvent(Long taskId) {
SysTask task= sysTaskMapper.selectSysTaskByTaskId(taskId);
@@ -124,7 +128,7 @@
public SysTask selectSysTaskByTaskId(Long taskId) {
SysTask task = sysTaskMapper.selectSysTaskByTaskId(taskId);
if (task != null) {
-
+ bindTaskAssign(task);
// 鍔犺浇鎬ユ晳杞繍鎵╁睍淇℃伅
if ("EMERGENCY_TRANSFER".equals(task.getTaskType())) {
SysTaskEmergency emergencyInfo = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
@@ -139,6 +143,13 @@
return task;
}
+
+ private void bindTaskAssign(SysTask task){
+ List<SysTaskAssignee> assignees= assigneeService.getAssigneesByTaskId(task.getTaskId());
+ if(assignees!=null && !assignees.isEmpty()) {
+ task.setAssignees(assignees);
+ }
+ }
/**
* 鏌ヨ浠诲姟绠$悊鍒楄〃
*
@@ -149,7 +160,7 @@
public List<SysTask> selectSysTaskList(TaskQueryVO queryVO) {
List<SysTask> tasks= sysTaskMapper.selectSysTaskList(queryVO);
tasks.forEach(task -> {
-
+ bindTaskAssign( task);
if ("EMERGENCY_TRANSFER".equals(task.getTaskType())) {
SysTaskEmergency emergencyInfo = sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(task.getTaskId());
task.setEmergencyInfo(emergencyInfo);
@@ -220,6 +231,7 @@
if (task.getTaskCode() != null && task.getTaskCode().contains(taskCode)) {
return true;
}
+ bindTaskAssign(task);
if ("EMERGENCY_TRANSFER".equals(task.getTaskType()) && task.getEmergencyInfo() != null) {
String dispatchCode = task.getEmergencyInfo().getDispatchCode();
@@ -344,7 +356,6 @@
* @return 缁撴灉
*/
@Override
- @Transactional
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){
@@ -446,10 +457,10 @@
private void sendTaskAssigneeEvent(TaskCreateVO createVO,SysTask task,Long userId,String userName){
List<Long> assigneeIds = createVO.getAssignees().stream()
- .map(assignee -> assignee.getUserId())
+ .map(TaskCreateVO.AssigneeInfo::getUserId)
.collect(Collectors.toList());
List<String> assigneeNames = createVO.getAssignees().stream()
- .map(assignee -> assignee.getUserName())
+ .map(TaskCreateVO.AssigneeInfo::getUserName)
.collect(Collectors.toList());
eventPublisher.publishEvent(new TaskAssignedEvent(
@@ -712,13 +723,6 @@
task.setTaskCode(updateVO.getTaskCode());
}
-
-
-
-// task.setDepartureLongitude(updateVO.getDepartureLongitude());
-// task.setDepartureLatitude(updateVO.getDepartureLatitude());
-// task.setDestinationLongitude(updateVO.getDestinationLongitude());
-// task.setDestinationLatitude(updateVO.getDestinationLatitude());
Boolean modifyOutLongLat = false;
// 鑷姩鑾峰彇鍑哄彂鍦癎PS鍧愭爣锛堝鏋滃湴鍧�鍙樻洿涓旂己澶卞潗鏍囷級
if (task != null && updateVO.getDepartureAddress() != null
@@ -1190,7 +1194,7 @@
public List<SysTask> selectMyTasks(Long userId) {
List<SysTask> list = sysTaskMapper.selectMyTasks(userId);
list.stream().forEach(task -> {
-
+ bindTaskAssign(task);
if(task.getTaskType().equals("EMERGENCY_TRANSFER")){
task.setEmergencyInfo(sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(task.getTaskId()));
}
--
Gitblit v1.9.1