wlzboy
2025-12-23 0a3eed02e78dfeeb7763a4b62992eefcd1f5a0ca
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();
@@ -267,7 +279,6 @@
        task.setRemark(createVO.getRemark());
        task.setDelFlag("0");
//        task.setIsHeadPush(isTaskHeaderPush(userId,task.getDeptId())?"1":"0");
        
        // 设置地址和坐标信息
        setAddressAndCoordinatesFromVO(task, createVO);
@@ -345,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){
@@ -371,15 +381,6 @@
        task.setUpdateBy(userName);
        task.setRemark(createVO.getRemark());
        task.setDelFlag("0");
//        Boolean isHeadPush=this.isTaskHeaderPush(userId, deptId);
//        if(isHeadPush){
//            task.setIsHeadPush("1");
//        }else{
//            task.setIsHeadPush("0");
//        }
        
        // 设置地址和坐标信息
        setAddressAndCoordinatesFromVO(task, createVO);
@@ -456,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(
@@ -480,7 +481,6 @@
     * @return 结果
     */
    @Override
    @Transactional
    public int updateSysTask(TaskUpdateVO updateVO, Boolean updateFromLegacy) {
        SysTask task = sysTaskMapper.selectSysTaskByTaskId(updateVO.getTaskId());
        if (task == null) {
@@ -520,7 +520,7 @@
        }
        Boolean hasSetDepartureFlag=false;
        //设置总部推送
//        task.setIsHeadPush(this.isTaskHeaderPush(task.getCreatorId(), task.getDeptId())?"1":"0");
        // 自动获取出发地GPS坐标(如果更新了地址但缺失坐标)
        if (updateVO.getDepartureAddress() != null && 
            (updateVO.getDepartureLongitude() == null || updateVO.getDepartureLatitude() == null) && 
@@ -723,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;
        // 自动获取出发地GPS坐标(如果地址变更且缺失坐标)
        if (task != null && updateVO.getDepartureAddress() != null
@@ -820,7 +813,8 @@
            Boolean hasEmergencyInfo = updateVO.getHospitalOut() != null || updateVO.getHospitalIn() != null || updateVO.getPatient() != null
                    || updateVO.getPrice() != null || updateVO.getDistance() != null;
//            Boolean isHeadPush=isTaskHeaderPush(task.getCreatorId(),task.getDeptId());
//            updateVO.setFromHQ2_is(isHeadPush?"1":"0");
            // 使用TaskCreateVO的字段来更新急救转运信息
            if (hasEmergencyInfo) {
@@ -1200,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()));
            }