wlzboy
2026-04-01 c459808efab29dc1b8439fbb90556bdb16f4c88b
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskDispatchSyncUtilService.java
@@ -15,6 +15,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@Slf4j
@@ -322,9 +323,10 @@
            // 获取任务的执行人员信息列表(包含角色类型) //TODO 如果有两个司机就要 设置 Entourage_1和Entourage_2
            //两个护士就要设置 Entourage_4和Entourage_6
            //两个医生要设置 Entourage_3和Entourage_5
            List<TaskCreateVO.AssigneeInfo> assignees = getTaskAssignees(task.getTaskId());
            if (assignees == null || assignees.isEmpty()) {
            List<TaskCreateVO.AssigneeInfo> assignees = getTaskAssignees(task.getTaskId());
            log.info("任务的执行人员:{}",assignees.stream().map(TaskCreateVO.AssigneeInfo::getUserName).collect(Collectors.joining(",")));
            if (assignees.isEmpty()) {
                log.warn("任务无执行人员,任务ID: {}", task.getTaskId());
                // 设置默认空值
                params.put("EntourageLeadID", "");
@@ -342,13 +344,16 @@
            String driverOaId = "";      // 司机的OA_UserID
            String doctorOaId = "";      // 医生的OA_UserID
            String nurseOaId = "";       // 护士的OA_UserID
            String driverOaId2="";
            String nurseOaId2="";
            String doctorOaId2="";
            // 遍历执行人员,根据角色类型分配到对应的Entourage参数
            for (int i = 0; i < assignees.size(); i++) {
                TaskCreateVO.AssigneeInfo assignee = assignees.get(i);
                Long userId = assignee.getUserId();
                String userType = assignee.getUserType(); // 直接使用前端传递的角色类型
                log.info("人员同步,用户ID:{},类型:{}",userId,userType);
                if (userId == null) {
                    continue;
                }
@@ -361,11 +366,15 @@
                }
                String oaUserId = user.getOaUserId().toString();
                log.info("人员同步 22222,用户ID:{},类型:{}",userId,userType);
                // 根据用户类型分配到对应的Entourage参数
                if ("driver".equals(userType)) {
                    if (driverOaId.isEmpty()) {
                        driverOaId = oaUserId;
                        if(driverOaId.isEmpty()){
                            driverOaId = oaUserId;
                        }
                        if(driverOaId2.isEmpty()){
                            driverOaId2 = oaUserId;
                        }
                        if(params.get("Entourage_1")==null) {
                            params.put("Entourage_1", oaUserId);
                        }else{
@@ -375,10 +384,14 @@
                        if (i == 0 && leadEntourageId.isEmpty()) {
                            leadEntourageId = "1"; // 司机对应Entourage_1
                        }
                    }
                } else if ("doctor".equals(userType)) {
                    if (doctorOaId.isEmpty()) {
                        doctorOaId = oaUserId;
                    }
                    if(doctorOaId2.isEmpty()){
                        doctorOaId2 = oaUserId;
                    }
                        if(params.get("Entourage_3")==null) {
                            params.put("Entourage_3", oaUserId);
                        }else{
@@ -388,10 +401,14 @@
                        if (i == 0 && leadEntourageId.isEmpty()) {
                            leadEntourageId = "3"; // 医生对应Entourage_3
                        }
                    }
                } else if ("nurse".equals(userType)) {
                    if (nurseOaId.isEmpty()) {
                        nurseOaId = oaUserId;
                    }
                    if(nurseOaId2.isEmpty()){
                        nurseOaId2 = oaUserId;
                    }
                        if(params.get("Entourage_4")==null) {
                            params.put("Entourage_4", oaUserId);
                        }else{
@@ -401,7 +418,7 @@
                        if (i == 0 && leadEntourageId.isEmpty()) {
                            leadEntourageId = "4"; // 护士对应Entourage_4
                        }
                    }
                }
            }
@@ -410,9 +427,9 @@
//            params.put("Entourage_1", driverOaId);  // 司机
//            params.put("Entourage_3", doctorOaId);  // 医生
//            params.put("Entourage_4", nurseOaId);   // 护士
//            log.info("任务执行人员同步成功,任务ID: {}, 领队ID: {}, 司机: {}, 医生: {}, 护士: {}",
//                task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId);
            log.info("执行人员:{}", params);
            log.info("任务执行人员同步成功,任务ID: {}, 领队ID: {}, 司机: {}, 医生: {}, 护士: {}",
                task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId);
        } catch (Exception e) {
            log.error("同步任务执行人员异常,任务ID: {}", task.getTaskId(), e);