From 57e98ac3f59e9ca12d3fdbc6f89c9c0b1f86be4d Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 05 二月 2026 00:49:10 +0800
Subject: [PATCH] feat:增加发票申请
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java | 138 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 138 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
index 56ad818..bb566c9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
@@ -11,6 +11,8 @@
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;
@@ -70,6 +72,15 @@
@Autowired
@Qualifier("tiandituMapService")
private IMapService mapService;
+
+ @Autowired
+ private ILegacySystemSyncService legacySystemSyncService;
+
+ @Autowired
+ private ITaskDispatchSyncService taskDispatchSyncService;
+
+ @Autowired
+ private ITaskStatusPushService taskStatusPushService;
/**
* 鏌ヨ浠诲姟绠$悊鍒楄〃锛堝悗鍙扮鐞嗙锛�
@@ -615,4 +626,131 @@
this.actualEndTime = actualEndTime;
}
}
+
+ /**
+ * 鎵嬪姩鍚屾鏈嶅姟鍗曞埌鏃х郴缁�
+ * 褰撴湇鍔″崟鍚屾澶辫触鎴栨湭鍚屾鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+ */
+ @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());
+ }
+ }
+
+ /**
+ * 鎵嬪姩鍚屾璋冨害鍗曞埌鏃х郴缁�
+ * 褰撹皟搴﹀崟鍚屾澶辫触鎴栨湭鍚屾鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+ */
+ @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());
+ }
+ }
+
+ /**
+ * 鎵嬪姩鍚屾浠诲姟鐘舵�佸埌鏃х郴缁�
+ * 褰撲换鍔$姸鎬佸彉鏇村悗鐢变簬缃戠粶绛夊師鍥犳湭鍚屾鍒版棫绯荤粺鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+ */
+// @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());
+ }
+ }
}
--
Gitblit v1.9.1