| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | */ |
| | | @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()); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | if(result>0) { |
| | | this.sendEmeryTaskProcess(task, dispatchOrderId); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | |
| | | * @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(); |
| | |
| | | // log.info("更新执行人员 ServiceOrdID:{},dispatchOrderId:{}",serviceOrderId,dispatchOrderId); |
| | | sysTaskAssigneeService.updateTaskAssignees(taskId, updateVO.getAssignees(), userName); |
| | | } |
| | | Long dispatchOrderIdLong = 0L; |
| | | |
| | | // 更新急救转运扩展信息 |
| | | if (result > 0) { |
| | | // 更新旧系统ID |
| | | 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("旧系统同步过来"); |
| | |
| | | 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)); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 批量删除任务管理 |
| | | * |