From 7ed2a032d0724e68aec8af940f2ce0023a9f0eb7 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期三, 15 四月 2026 09:27:51 +0800
Subject: [PATCH] 修改调度单年月日
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsReceivableFeeServiceImpl.java | 125 +++++++++++++++++++++++++++++++++--------
1 files changed, 101 insertions(+), 24 deletions(-)
diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsReceivableFeeServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsReceivableFeeServiceImpl.java
index c7349d2..0eaae24 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsReceivableFeeServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsReceivableFeeServiceImpl.java
@@ -1,15 +1,34 @@
package com.ruoyi.tms.service.impl;
+import java.io.File;
+import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.stream.Collectors;
+import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.SystemDataNoEnum;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
+
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.config.RuoYiConfig;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.streaming.SXSSFSheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFColor;
import javax.annotation.Resource;
import com.ruoyi.common.utils.SecurityUtils;
@@ -27,6 +46,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.scheduling.annotation.Async;
+import org.springframework.core.task.AsyncTaskExecutor;
+import org.springframework.core.task.SimpleAsyncTaskExecutor;
import org.springframework.web.client.RestTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -71,7 +92,8 @@
@Value("${custom.cwxtApi.url}")
private String url;
-
+ @Autowired
+ private RedisCache redisCache;
/**
* 鏌ヨ搴旀敹璐圭敤
*
@@ -151,6 +173,16 @@
return selectTmsReceivableFeeList(tmsReceivableFee);
});
}
+
+
+
+
+
+
+
+
+
+
/**
@@ -271,7 +303,10 @@
tmsArBill.setSettleAmount(BigDecimal.ZERO);
tmsReceivableFees.forEach(item ->{
-
+ List<TmsReceivableFeeItem> tmsReceivableFeeItems = tmsReceivableFeeItemMapper.selectTmsReceivableFeeItemList(new TmsReceivableFeeItem() {{
+ setHeadId(item.getId());
+ }});
+ item.setItems(tmsReceivableFeeItems);
BigDecimal rmbAmount = item.getReceivableHKBAmount()
.multiply(exchangeRate)
.setScale(2, RoundingMode.HALF_UP);
@@ -296,6 +331,7 @@
tmsArBill.setSettledAmount(BigDecimal.ZERO);
tmsArBill.setInvoiceStatus(0);
tmsArBill.setStatus(0);
+ tmsArBill.setPushStatus(0); // 鍒濆鎺ㄩ�佺姸鎬侊細鏈帹閫�
tmsArBill.setCreateBy(SecurityUtils.getUsername());
tmsArBillMapper.insertTmsArBill(tmsArBill);
@@ -323,8 +359,9 @@
}).collect(Collectors.toList());
tmsArBillItemMapper.insertTmsArBillItemBatch(rmb);
- //todo 鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
-// pushToExternalSystem(tmsArBill, tmsReceivableFees);
+ // 鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
+ AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
+ executor.execute(() -> pushToExternalSystem(tmsArBill, tmsReceivableFees));
return AjaxResult.success();
}
@@ -371,7 +408,7 @@
billMap.put("billDueDate", "");
billMap.put("settlementCategory", "");
billMap.put("settlementPeriod", "");
- billMap.put("status", "draft");
+ billMap.put("status", "0");
billMap.put("remark", "");
// 鏋勫缓fees閮ㄥ垎
@@ -382,8 +419,8 @@
feeMap.put("serialNumber", String.format("%03d", i + 1));
feeMap.put("relatedBillNo", "");
feeMap.put("sourceSystem", "TMS");
- feeMap.put("businessSector", "");
- feeMap.put("documentType", "");
+ feeMap.put("businessSector", "0");
+ feeMap.put("documentType", "0");
feeMap.put("documentNo", fee.getDispatchNo() != null ? fee.getDispatchNo() : "");
feeMap.put("isInternalSettlement", "0");
feeMap.put("internalSettlementUnit", "");
@@ -391,26 +428,45 @@
feeMap.put("projectName", fee.getProjectName() != null ? fee.getProjectName() : "");
feeMap.put("businessTime", fee.getDispatchConfirmTime());
feeMap.put("receivableConfirmTime", fee.getDispatchConfirmTime());
- feeMap.put("receivableAmount", fee.getReceivableRmbSumAmount());
- feeMap.put("status", "confirmed");
+ feeMap.put("receivableAmount", fee.getReceivableRMBAmount().add(fee.getReceivableHKBAmount()));
+ // 鏋勫缓receivableAmountStr
+ BigDecimal rmbAmount = fee.getReceivableRMBAmount();
+ BigDecimal hkbAmount = fee.getReceivableHKBAmount();
+ 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("receivableAmountStr", amountStr.toString());
+ 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("serialNumber", String.format("%03d-01", i + 1));
- feeDetailMap.put("feeType", "");
- feeDetailMap.put("feeName", "");
- feeDetailMap.put("billingUnit", "");
- feeDetailMap.put("unitPrice", 0.00);
- feeDetailMap.put("billingQuantity", 0.00);
- feeDetailMap.put("billingAmount", fee.getReceivableRmbSumAmount());
- feeDetailMap.put("actualAmount", fee.getReceivableRmbSumAmount());
- feeDetailMap.put("currency", "RMB");
- feeDetailMap.put("feeRegTime", "");
- feeDetailMap.put("remark", "");
- feeDetailsList.add(feeDetailMap);
-
+ List<TmsReceivableFeeItem> items = fee.getItems();
+ for (int j = 0; j < items.size(); j++) {
+ TmsReceivableFeeItem item = items.get(j);
+ java.util.Map<String, Object> feeDetailMap = new java.util.HashMap<>();
+ feeDetailMap.put("serialNumber", String.format("%03d", j + 1));
+ feeDetailMap.put("feeType", item.getFeeType());
+ feeDetailMap.put("feeName", item.getFeeName());
+ feeDetailMap.put("billingUnit", "娆�");
+ feeDetailMap.put("unitPrice", item.getRegisterAmount());
+ feeDetailMap.put("billingQuantity", item.getRegisterAmount());
+ feeDetailMap.put("billingAmount", item.getRegisterAmount());
+ feeDetailMap.put("actualAmount", item.getRegisterAmount());
+ feeDetailMap.put("currency", item.getCurrency());
+ feeDetailMap.put("feeRegTime", item.getRegisterTime());
+ feeDetailMap.put("remark", "");
+ feeDetailsList.add(feeDetailMap);
+ }
+
+
feeMap.put("feeDetails", feeDetailsList);
feesList.add(feeMap);
}
@@ -427,11 +483,32 @@
// 鍙戦�丄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) {
+ tmsArBill.setSourceSystemId(Integer.parseInt(sourceSystemId));
+ }
+ } catch (Exception e) {
+ logger.error("瑙f瀽澶栭儴绯荤粺鍝嶅簲澶辫触: {}", e.getMessage());
+ }
+
+
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负鎴愬姛
+ tmsArBill.setPushStatus(2);
+ tmsArBill.setPushTime(DateUtils.getNowDate());
+ tmsArBillMapper.updateTmsArBill(tmsArBill);
} catch (Exception e) {
logger.error("鎺ㄩ�佹暟鎹埌澶栭儴绯荤粺澶辫触锛岃处鍗旾D: {}, 瀹㈡埛: {}",
tmsArBill.getId(), tmsArBill.getCustomerName(), e);
logger.debug("鎺ㄩ�佸け璐ョ殑璇锋眰鏁版嵁: {}", JSON.toJSONString(requestBody));
- // 鎺ㄩ�佸け璐ヤ笉褰卞搷涓绘祦绋嬶紝璁板綍鏃ュ織鍗冲彲
+
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负澶辫触
+ tmsArBill.setPushStatus(3);
+ tmsArBill.setPushTime(DateUtils.getNowDate());
+ tmsArBillMapper.updateTmsArBill(tmsArBill);
}
}
--
Gitblit v1.8.0