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-system/src/main/java/com/ruoyi/system/service/impl/SysInvoiceServiceImpl.java | 84 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 84 insertions(+), 0 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysInvoiceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysInvoiceServiceImpl.java
index ee2c483..d655552 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysInvoiceServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysInvoiceServiceImpl.java
@@ -4,6 +4,10 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
+import com.ruoyi.common.utils.LongUtil;
+import com.ruoyi.system.domain.SysTaskEmergency;
+import com.ruoyi.system.mapper.SysTaskEmergencyMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +41,9 @@
@Autowired
private SysUserMapper sysUserMapper;
+
+ @Autowired
+ private SysTaskEmergencyMapper sysTaskEmergencyMapper;
/**
* 鏌ヨ鍙戠エ鐢宠
@@ -83,6 +90,16 @@
@Override
public int insertSysInvoice(SysInvoice sysInvoice)
{
+ Long taskId = sysInvoice.getServiceOrderId();
+ Long legacyServiceOrdId = sysInvoice.getLegacyServiceOrderId();
+ if(LongUtil.isNotEmpty(taskId) && LongUtil.isEmpty(legacyServiceOrdId)){
+ SysTaskEmergency taskEmergency= sysTaskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
+ if(taskEmergency!=null){
+ legacyServiceOrdId=taskEmergency.getLegacyServiceOrdId();
+ }
+
+ }
+ sysInvoice.setLegacyServiceOrderId(legacyServiceOrdId);
sysInvoice.setApplyTime(DateUtils.getNowDate());
sysInvoice.setStatus(0); // 寰呭鏍�
sysInvoice.setSyncStatus(0); // 鏈悓姝�
@@ -191,6 +208,73 @@
}
/**
+ * 缂栬緫鍚庡悓姝ユ洿鏂板埌鏃х郴缁�
+ * - 宸叉湁 legacyInvoiceId锛氱洿鎺� UPDATE 鏃х郴缁熻褰�
+ * - 鏃� legacyInvoiceId锛堝巻鍙插悓姝ュけ璐ワ級锛氶噸鏂� INSERT
+ */
+ @Override
+ public void syncUpdateToLegacySystem(Long invoiceId) {
+ SysInvoice invoice = sysInvoiceMapper.selectSysInvoiceByInvoiceId(invoiceId);
+ if (invoice == null) return;
+
+ Map<String, Object> params = new HashMap<>();
+ params.put("InvoiceType", invoice.getInvoiceType());
+ params.put("InvoiceName", invoice.getInvoiceName());
+ params.put("InvoiceMakeout", invoice.getInvoiceRemarks());
+ params.put("InvoiceCompanyPhone", invoice.getContactPhone());
+ params.put("InvoiceCompanyID", "");
+ params.put("InvoiceCompanyAdd", invoice.getCompanyAddress());
+ params.put("InvoiceCompanyBank", invoice.getCompanyBank());
+ params.put("InvoiceCompanyBankNo",invoice.getCompanyBankNo());
+ params.put("InvoiceZipCode", invoice.getZipCode());
+ params.put("Invoice_strAdd", invoice.getMailAddress());
+ params.put("Invoice_strName", invoice.getContactName());
+ params.put("Invoice_strPhone", invoice.getContactPhone());
+ params.put("Invoice_strEmail", invoice.getContactEmail());
+ params.put("ServiceOrderIDPK", invoice.getLegacyServiceOrderId());
+ params.put("InvoiceMoney", invoice.getInvoiceMoney());
+
+ Integer oaUserId = 0;
+ if (invoice.getApplyUserId() != null) {
+ SysUser user = sysUserMapper.selectUserById(invoice.getApplyUserId());
+ if (user != null && user.getOaUserId() != null) {
+ oaUserId = user.getOaUserId();
+ }
+ }
+ params.put("ApplyOAID", oaUserId);
+
+ try {
+ if (invoice.getLegacyInvoiceId() != null && invoice.getLegacyInvoiceId() > 0) {
+ // 鏃х郴缁熷凡鏈夎褰曪紝UPDATE
+ params.put("InvoiceID", invoice.getLegacyInvoiceId());
+ int rows = legacyInvoiceMapper.updateLegacyInvoice(params);
+ if (rows > 0) {
+ invoice.setSyncStatus(1);
+ sysInvoiceMapper.updateSysInvoice(invoice);
+ log.info("鍙戠エ缂栬緫鍚屾鏃х郴缁熸垚鍔�(UPDATE), invoiceId={}, legacyId={}", invoiceId, invoice.getLegacyInvoiceId());
+ }
+ } else {
+ // 鏃х郴缁熸棤璁板綍锛岄噸鏂� INSERT
+ params.put("ServiceOrderIDPK", invoice.getLegacyServiceOrderId());
+ int rows = legacyInvoiceMapper.insertLegacyInvoice(params);
+ if (rows > 0) {
+ Object legacyId = params.get("InvoiceID");
+ if (legacyId != null) {
+ invoice.setLegacyInvoiceId(Integer.valueOf(legacyId.toString()));
+ }
+ invoice.setSyncStatus(1);
+ sysInvoiceMapper.updateSysInvoice(invoice);
+ log.info("鍙戠エ缂栬緫鍚屾鏃х郴缁熸垚鍔�(INSERT), invoiceId={}", invoiceId);
+ }
+ }
+ } catch (Exception e) {
+ log.error("鍙戠エ缂栬緫鍚屾鏃х郴缁熷紓甯�, invoiceId={}: {}", invoiceId, e.getMessage());
+ invoice.setSyncStatus(2);
+ sysInvoiceMapper.updateSysInvoice(invoice);
+ }
+ }
+
+ /**
* 浠庢棫绯荤粺鍚屾鍙戠エ鐘舵�佸彉鍖�
*/
@Override
--
Gitblit v1.9.1