From 61c4c3f45e4257e2e7662f033e2719e62366c632 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 31 三月 2026 23:02:22 +0800
Subject: [PATCH] feat: 优化申请发票,还可以修改发票信息

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysInvoiceController.java |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysInvoiceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysInvoiceController.java
index 088027a..9db2197 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysInvoiceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysInvoiceController.java
@@ -4,6 +4,10 @@
 import java.util.Map;
 import java.util.HashMap;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.LongUtil;
+import com.ruoyi.system.domain.SysTaskEmergency;
+import com.ruoyi.system.service.ISysTaskEmergencyService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,6 +20,8 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -38,11 +44,17 @@
 @RequestMapping("/system/invoice")
 public class SysInvoiceController extends BaseController
 {
+    private static final Logger log = LoggerFactory.getLogger(SysInvoiceController.class);
+
     @Autowired
     private ISysInvoiceService sysInvoiceService;
     
     @Autowired
     private ISysDeptService sysDeptService;
+
+
+    @Autowired
+    private ISysTaskEmergencyService sysTaskEmergencyService;
 
     /**
      * 鏌ヨ鍙戠エ鐢宠鍒楄〃
@@ -182,6 +194,72 @@
     }
 
     /**
+     * App绔煡鐪嬫垜鐨勬煇鏉″彂绁ㄨ鎯咃紙鏃犻渶鍚庡彴鏉冮檺锛屼絾鍙兘鏌ョ湅鑷繁鐨勫彂绁級
+     */
+    @GetMapping("/myDetail/{invoiceId}")
+    public AjaxResult myDetail(@PathVariable("invoiceId") Long invoiceId)
+    {
+        Long currentUserId = SecurityUtils.getUserId();
+        SysInvoice invoice = sysInvoiceService.selectSysInvoiceByInvoiceId(invoiceId);
+        if (invoice == null) {
+            return AjaxResult.error("鍙戠エ涓嶅瓨鍦�");
+        }
+        if (!currentUserId.equals(invoice.getApplyUserId())) {
+            return AjaxResult.error("鏃犳潈闄愭煡鐪嬭鍙戠エ");
+        }
+        return AjaxResult.success(invoice);
+    }
+
+    /**
+     * App绔敤鎴风紪杈戣嚜宸辩殑鍙戠エ鐢宠锛堜粎寰呭鏍�/宸查┏鍥炲彲缂栬緫锛屼笉鍙洿鏀瑰叧鑱斾换鍔★級
+     */
+    @Log(title = "鍙戠エ鐢宠鑷姪淇敼", businessType = BusinessType.UPDATE)
+    @PutMapping("/myEdit")
+    public AjaxResult myEdit(@RequestBody SysInvoice sysInvoice)
+    {
+        Long currentUserId = SecurityUtils.getUserId();
+        if (sysInvoice.getInvoiceId() == null) {
+            return AjaxResult.error("鍙戠エID涓嶈兘涓虹┖");
+        }
+        SysInvoice exist = sysInvoiceService.selectSysInvoiceByInvoiceId(sysInvoice.getInvoiceId());
+        if (exist == null) {
+            return AjaxResult.error("鍙戠エ涓嶅瓨鍦�");
+        }
+        if (!currentUserId.equals(exist.getApplyUserId())) {
+            return AjaxResult.error("鏃犳潈闄愪慨鏀硅鍙戠エ");
+        }
+        if (exist.getStatus() != 0 && exist.getStatus() != 2) {
+            return AjaxResult.error("鍙湁寰呭鏍告垨宸查┏鍥炵殑鍙戠エ鍙互淇敼");
+        }
+        Long taskId = exist.getServiceOrderId();
+        Long legacyServiceOrdId = exist.getLegacyServiceOrderId();
+        if(LongUtil.isNotEmpty(taskId) && LongUtil.isEmpty(legacyServiceOrdId)){
+           SysTaskEmergency taskEmergency= sysTaskEmergencyService.selectSysTaskEmergencyByTaskId(taskId);
+           if(taskEmergency!=null){
+               legacyServiceOrdId=taskEmergency.getLegacyServiceOrdId();
+           }
+
+        }
+        // 淇濇寔鍏宠仈浠诲姟淇℃伅涓嶅彉锛屽彧鏇存柊鍙戠エ鍐呭瀛楁
+        sysInvoice.setServiceOrderId(exist.getServiceOrderId());
+        sysInvoice.setLegacyServiceOrderId(legacyServiceOrdId);
+        sysInvoice.setApplyUserId(exist.getApplyUserId());
+        sysInvoice.setApplyTime(exist.getApplyTime());
+        sysInvoice.setStatus(0); // 閲嶆柊缃负寰呭鏍�
+        int rows = sysInvoiceService.updateSysInvoice(sysInvoice);
+
+        if (rows > 0) {
+            // 寮傛鍚屾鍒版棫绯荤粺锛屽け璐ヤ笉褰卞搷涓绘祦绋�
+            try {
+                sysInvoiceService.syncUpdateToLegacySystem(sysInvoice.getInvoiceId());
+            } catch (Exception e) {
+                log.warn("鍙戠エ缂栬緫鍚屾鏃х郴缁熷け璐ワ紝涓嶅奖鍝嶄繚瀛樼粨鏋�: {}", e.getMessage());
+            }
+        }
+        return toAjax(rows);
+    }
+
+    /**
      * 鑾峰彇鍙敵璇峰彂绁ㄧ殑浠诲姟鍒楄〃
      * @param searchKeyword 鎼滅储鍏抽敭璇嶏紙鏀寔taskCode銆乻erviceCode銆乴egacyServiceOrdNo锛�
      * @param serviceOrdClass 鍒嗗叕鍙镐唬鐮侊紙鍙�夛紝榛樿浣跨敤鐢ㄦ埛鎵�灞炲垎鍏徃锛�

--
Gitblit v1.9.1