From 5abcde36961125cbf436f91b8c17610a6b5f8308 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期三, 15 四月 2026 12:15:08 +0800
Subject: [PATCH] 修改调度单必填校验
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java | 90 +++++++++++++++++++++++++++++++++-----------
1 files changed, 67 insertions(+), 23 deletions(-)
diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
index c2c1f2e..f1982db 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
@@ -20,6 +20,8 @@
import com.ruoyi.tms.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.task.AsyncTaskExecutor;
+import org.springframework.core.task.SimpleAsyncTaskExecutor;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
@@ -32,6 +34,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.annotation.DataSource;
@@ -276,7 +279,10 @@
tmsApBill.setSettleAmount(BigDecimal.ZERO);
tmsPayableFeeList.forEach(item ->{
-
+ List<TmsPayableFeeItem> tmsPayableFeeItems = tmsPayableFeeItemMapper.selectTmsPayableFeeItemList(new TmsPayableFeeItem() {{
+ setHeadId(item.getId());
+ }});
+ item.setPayableFeeItems(tmsPayableFeeItems);
BigDecimal rmbAmount = item.getPayableHkbAmount()
.multiply(exchangeRate)
.setScale(2, RoundingMode.HALF_UP);
@@ -297,6 +303,7 @@
tmsApBill.setSettledAmount(BigDecimal.ZERO);
tmsApBill.setInvoiceStatus(0);
tmsApBill.setStatus(0);
+ tmsApBill.setPushStatus(0); // 鍒濆鎺ㄩ�佺姸鎬侊細鏈帹閫�
tmsApBill.setCreateBy(SecurityUtils.getUsername());
tmsApBillMapper.insertTmsApBill(tmsApBill);
@@ -324,9 +331,10 @@
tmsApBillItemMapper.insertTmsApBillItemBatch(rmb);
}
- //todo 鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
-// pushPayableToExternalSystem(tmsApBill, tmsPayableFeeList);
-
+ //鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
+ AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
+ executor.execute(() -> pushPayableToExternalSystem(tmsApBill, tmsPayableFeeList));
+
return AjaxResult.success();
}
@@ -348,7 +356,7 @@
billMap.put("supplierName", tmsApBill.getServiceProviderName());
billMap.put("totalAmount", tmsApBill.getSettleAmount());
billMap.put("currency", "RMB");
- billMap.put("status", "draft");
+ billMap.put("status", "0");
billMap.put("isInternalSettlement", "0");
billMap.put("internalSettlementUnit", tmsApBill.getServiceProviderName());
billMap.put("documentCount", tmsPayableFeeList.size());
@@ -375,34 +383,50 @@
feeMap.put("sourceSystem", "TMS");
feeMap.put("documentNo", fee.getDispatchNo() != null ? fee.getDispatchNo() : "");
feeMap.put("supplierName", tmsApBill.getServiceProviderName());
- feeMap.put("payableAmount", fee.getPayableRmbSumAmount());
+ feeMap.put("payableAmount", fee.getPayableRmbAmount().add(fee.getPayableHkbAmount()));
+ BigDecimal rmbAmount = fee.getPayableRmbAmount();
+ BigDecimal hkbAmount = fee.getPayableHkbAmount();
+ StringBuilder amountStr = new StringBuilder();
+ if (rmbAmount.compareTo(BigDecimal.ZERO) > 0) {
+ amountStr.append(rmbAmount).append("浜烘皯甯�");
+ }
+ if (hkbAmount.compareTo(BigDecimal.ZERO) > 0) {
+ if (amountStr.length() > 0) {
+ amountStr.append(" ");
+ }
+ amountStr.append(hkbAmount).append("娓竵");
+ }
+ feeMap.put("payableAmountStr", amountStr.toString());
feeMap.put("serialNumber", String.format("%03d", i + 1));
feeMap.put("relatedBillNo", "");
- feeMap.put("businessSector", "");
- feeMap.put("documentType", "");
+ feeMap.put("businessSector", "0");
+ feeMap.put("documentType", "0");
feeMap.put("isInternalSettlement", "0");
feeMap.put("internalSettlementUnit", "");
feeMap.put("projectName", fee.getProjectName() != null ? fee.getProjectName() : "");
feeMap.put("businessTime", fee.getDispatchConfirmTime());
feeMap.put("payableConfirmTime", fee.getDispatchConfirmTime());
- feeMap.put("status", "confirmed");
+ feeMap.put("status", "1");
feeMap.put("remark", "");
// 鏋勫缓feeDetails閮ㄥ垎
List<java.util.Map<String, Object>> feeDetailsList = new java.util.ArrayList<>();
- java.util.Map<String, Object> feeDetailMap = new java.util.HashMap<>();
- feeDetailMap.put("feeType", "杩愯緭璐�");
- feeDetailMap.put("feeName", "骞茬嚎杩愯緭璐�");
- feeDetailMap.put("unitPrice", 1200.00);
- feeDetailMap.put("billingQuantity", 5.00);
- feeDetailMap.put("billingAmount", fee.getPayableRmbSumAmount());
- feeDetailMap.put("serialNumber", String.format("%03d-01", i + 1));
- feeDetailMap.put("billingUnit", "杞︽");
- feeDetailMap.put("actualAmount", fee.getPayableRmbSumAmount());
- feeDetailMap.put("currency", "RMB");
- feeDetailMap.put("feeRegTime", "");
- feeDetailMap.put("remark", "");
- feeDetailsList.add(feeDetailMap);
+ List<TmsPayableFeeItem> payableFeeItems = fee.getPayableFeeItems();
+ for (TmsPayableFeeItem payableFeeItem : payableFeeItems) {
+ java.util.Map<String, Object> feeDetailMap = new java.util.HashMap<>();
+ feeDetailMap.put("feeType", payableFeeItem.getFeeType());
+ feeDetailMap.put("feeName", payableFeeItem.getFeeName());
+ feeDetailMap.put("unitPrice", payableFeeItem.getRegisterAmount());
+ feeDetailMap.put("billingQuantity", payableFeeItem.getRegisterAmount());
+ feeDetailMap.put("billingAmount", payableFeeItem.getRegisterAmount());
+ feeDetailMap.put("billingUnit", "娆�");
+ feeDetailMap.put("actualAmount", payableFeeItem.getRegisterAmount());
+ feeDetailMap.put("currency", payableFeeItem.getCurrency());
+ feeDetailMap.put("feeRegTime",payableFeeItem.getRegisterTime());
+ feeDetailMap.put("remark", "");
+ feeDetailsList.add(feeDetailMap);
+ }
+
feeMap.put("feeDetails", feeDetailsList);
feesList.add(feeMap);
@@ -420,11 +444,31 @@
// 鍙戦�丄PI璇锋眰
ResponseEntity<String> response = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
logger.info("鎺ㄩ�佸簲浠樻暟鎹埌澶栭儴绯荤粺鎴愬姛锛屽搷搴�: {}", response.getBody());
+
+
+ // 瑙f瀽鍝嶅簲锛岃幏鍙杝ourceSystemId
+ try {
+ JSONObject result = JSONObject.parseObject(response.getBody());
+ String sourceSystemId = result.getString("sourceSystemId");
+ if (sourceSystemId != null) {
+ tmsApBill.setSourceSystemId(Integer.parseInt(sourceSystemId));
+ }
+ } catch (Exception e) {
+ logger.error("瑙f瀽澶栭儴绯荤粺鍝嶅簲澶辫触: {}", e.getMessage());
+ }
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负鎴愬姛
+ tmsApBill.setPushStatus(2);
+ tmsApBill.setPushTime(DateUtils.getNowDate());
+ tmsApBillMapper.updateTmsApBill(tmsApBill);
} catch (Exception e) {
logger.error("鎺ㄩ�佸簲浠樻暟鎹埌澶栭儴绯荤粺澶辫触锛岃处鍗旾D: {}, 渚涘簲鍟�: {}",
tmsApBill.getId(), tmsApBill.getServiceProviderName(), e);
logger.debug("鎺ㄩ�佸け璐ョ殑璇锋眰鏁版嵁: {}", JSON.toJSONString(requestBody));
- // 鎺ㄩ�佸け璐ヤ笉褰卞搷涓绘祦绋嬶紝璁板綍鏃ュ織鍗冲彲
+
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负澶辫触
+ tmsApBill.setPushStatus(3);
+ tmsApBill.setPushTime(DateUtils.getNowDate());
+ tmsApBillMapper.updateTmsApBill(tmsApBill);
}
}
--
Gitblit v1.8.0