| | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.domain.SysTaskEmergency; |
| | | import com.ruoyi.system.service.*; |
| | | import com.ruoyi.system.service.ILegacySystemSyncService; |
| | | import com.ruoyi.system.service.ITaskDispatchSyncService; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Autowired |
| | | @Qualifier("tiandituMapService") |
| | | private IMapService mapService; |
| | | |
| | | @Autowired |
| | | private ILegacySystemSyncService legacySystemSyncService; |
| | | |
| | | @Autowired |
| | | private ITaskDispatchSyncService taskDispatchSyncService; |
| | | |
| | | @Autowired |
| | | private ITaskStatusPushService taskStatusPushService; |
| | | |
| | | /** |
| | | * 查询任务管理列表(后台管理端) |
| | |
| | | @Log(title = "任务管理", businessType = BusinessType.INSERT) |
| | | @PostMapping("/admin") |
| | | public AjaxResult adminAdd(@RequestBody TaskCreateVO createVO) { |
| | | return toAjax(sysTaskService.insertSysTask(createVO)); |
| | | Long taskId = sysTaskService.insertSysTask(createVO); |
| | | return taskId > 0 ? AjaxResult.success("新增成功").put("taskId", taskId) : AjaxResult.error("新增失败"); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 新增任务(APP端) |
| | |
| | | @Log(title = "任务创建", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | public AjaxResult appAdd(@RequestBody TaskCreateVO createVO) { |
| | | return toAjax(sysTaskService.insertSysTask(createVO)); |
| | | Long taskId = sysTaskService.insertSysTask(createVO); |
| | | return taskId > 0 ? AjaxResult.success("新增成功").put("taskId", taskId) : AjaxResult.error("新增失败"); |
| | | } |
| | | |
| | | /** |
| | |
| | | this.actualEndTime = actualEndTime; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 手动同步服务单到旧系统 |
| | | * 当服务单同步失败或未同步时,可以通过此接口手动触发同步 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "手动同步服务单", businessType = BusinessType.UPDATE) |
| | | @PostMapping("/syncServiceOrder/{taskId}") |
| | | public AjaxResult syncServiceOrder(@PathVariable Long taskId) { |
| | | try { |
| | | // 查询任务信息 |
| | | SysTask task = sysTaskService.selectSysTaskByTaskId(taskId); |
| | | if (task == null) { |
| | | return error("任务不存在"); |
| | | } |
| | | |
| | | // 只支持急救转运任务 |
| | | if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) { |
| | | return error("只有急救转运任务才能同步到旧系统"); |
| | | } |
| | | |
| | | // 调用同步服务 |
| | | Long serviceOrdId = legacySystemSyncService.syncEmergencyTaskToLegacy(taskId); |
| | | |
| | | if (serviceOrdId != null && serviceOrdId > 0) { |
| | | return success("服务单同步成功,ServiceOrdID: " + serviceOrdId); |
| | | } else { |
| | | return error("服务单同步失败,请查看同步错误信息"); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("手动同步服务单异常,taskId: {}", taskId, e); |
| | | return error("同步异常: " + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 手动同步调度单到旧系统 |
| | | * 当调度单同步失败或未同步时,可以通过此接口手动触发同步 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "手动同步调度单", businessType = BusinessType.UPDATE) |
| | | @PostMapping("/syncDispatchOrder/{taskId}") |
| | | public AjaxResult syncDispatchOrder(@PathVariable Long taskId) { |
| | | try { |
| | | // 查询任务信息 |
| | | SysTask task = sysTaskService.selectSysTaskByTaskId(taskId); |
| | | if (task == null) { |
| | | return error("任务不存在"); |
| | | } |
| | | |
| | | // 只支持急救转运任务 |
| | | if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) { |
| | | return error("只有急救转运任务才能同步到旧系统"); |
| | | } |
| | | |
| | | // 查询急救转运扩展信息 |
| | | SysTaskEmergency emergency = sysTaskEmergencyService.selectSysTaskEmergencyByTaskId(taskId); |
| | | if (emergency == null) { |
| | | return error("急救转运扩展信息不存在"); |
| | | } |
| | | |
| | | // 必须先有服务单 |
| | | if (emergency.getLegacyServiceOrdId() == null || emergency.getLegacyServiceOrdId() <= 0) { |
| | | return error("请先同步服务单"); |
| | | } |
| | | |
| | | // 调用同步服务 |
| | | Long dispatchOrdId = taskDispatchSyncService.syncDispatch(taskId); |
| | | |
| | | if (dispatchOrdId != null && dispatchOrdId > 0) { |
| | | return success("调度单同步成功,DispatchOrdID: " + dispatchOrdId); |
| | | } else { |
| | | return error("调度单同步失败,请查看同步错误信息"); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("手动同步调度单异常,taskId: {}", taskId, e); |
| | | return error("同步异常: " + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 手动同步任务状态到旧系统 |
| | | * 当任务状态变更后由于网络等原因未同步到旧系统时,可以通过此接口手动触发同步 |
| | | */ |
| | | // @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "手动同步任务状态", businessType = BusinessType.UPDATE) |
| | | @PostMapping("/syncTaskStatus/{taskId}") |
| | | public AjaxResult syncTaskStatus(@PathVariable Long taskId) { |
| | | try { |
| | | // 查询任务信息 |
| | | SysTask task = sysTaskService.selectSysTaskByTaskId(taskId); |
| | | if (task == null) { |
| | | return error("任务不存在"); |
| | | } |
| | | |
| | | // 只支持急救转运任务 |
| | | if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) { |
| | | return error("只有急救转运任务才能同步到旧系统"); |
| | | } |
| | | |
| | | // 查询急救转运扩展信息 |
| | | SysTaskEmergency emergency = sysTaskEmergencyService.selectSysTaskEmergencyByTaskId(taskId); |
| | | if (emergency == null) { |
| | | return error("急救转运扩展信息不存在"); |
| | | } |
| | | |
| | | // 必须先有调度单 |
| | | if (emergency.getLegacyDispatchOrdId() == null || emergency.getLegacyDispatchOrdId() <= 0) { |
| | | return error("请先同步调度单,任务状态信息同步到旧系统的调度单中"); |
| | | } |
| | | |
| | | // 调用状态同步服务 |
| | | boolean success = taskStatusPushService.pushTaskStatusToLegacy(taskId); |
| | | |
| | | if (success) { |
| | | return success("任务状态同步成功"); |
| | | } else { |
| | | return error("任务状态同步失败,请查看日志获取详细信息"); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | logger.error("手动同步任务状态异常,taskId: {}", taskId, e); |
| | | return error("同步异常: " + e.getMessage()); |
| | | } |
| | | } |
| | | } |