From c9b9b7ec0b9a342dfcf0bea60c20765192b1db16 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 16 六月 2026 11:32:51 +0800
Subject: [PATCH] ai自动化数据
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 4 ++
src/main/java/com/ruoyi/mock/prompt/MockDataPrompt.java | 14 ++++++
src/main/java/com/ruoyi/mock/service/impl/DataGenerateServiceImpl.java | 44 ++++++++++++++++++++++
3 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/mock/prompt/MockDataPrompt.java b/src/main/java/com/ruoyi/mock/prompt/MockDataPrompt.java
index e52ab8e..f37b56e 100644
--- a/src/main/java/com/ruoyi/mock/prompt/MockDataPrompt.java
+++ b/src/main/java/com/ruoyi/mock/prompt/MockDataPrompt.java
@@ -78,7 +78,13 @@
"contactPerson": "寮犱笁",
"contactPhone": "13800138000",
"companyAddress": "XX鐪乆X甯俋X鍖篨X璺疿X鍙�",
- "taxpayerIdentificationNumber": "91110108XXXXXXXXXX"
+ "companyPhone": "0513-XXXXXXXX",
+ "taxpayerIdentificationNumber": "91110108XXXXXXXXXX",
+ "maintainer": "鏉庡洓",
+ "maintenanceTime": "2026-06-01",
+ "bankAccount": "622202XXXXXXXXXXXX",
+ "basicBankAccount": "XX閾惰XX鏀",
+ "bankCode": "308100XXXXXX"
}
{
"entity": "salesLedger",
@@ -86,6 +92,7 @@
"salesContractNo": "XS-20260601-001",
"projectName": "XX椤圭洰",
"entryDate": "2026-06-01",
+ "entryPerson": "寮犱笁",
"salesman": "閿�鍞憳濮撳悕",
"contractAmount": 50000.00,
"paymentMethod": "鏈堢粨30澶�",
@@ -99,6 +106,7 @@
"quantity": 100,
"taxInclusiveUnitPrice": 500.00,
"taxInclusiveTotalPrice": 50000.00,
+ "taxExclusiveTotalPrice": 44247.79,
"taxRate": 13.00,
"unit": "浠�",
"type": 1
@@ -106,6 +114,7 @@
]
}
瀹㈡埛鍚嶇О瑕佸儚鎸囧畾琛屼笟鐨勫叕鍙革紝鍚堝悓缂栧彿鏍煎紡XS-骞存湀鏃�-搴忓彿锛岄噾棰濆悎鐞嗐��
+ 娉ㄦ剰 taxExclusiveTotalPrice 鏄笉鍚◣鎬讳环锛岄渶瑕佹牴鎹惈绋庢�讳环鍜岀◣鐜囪绠楋紙=鍚◣鎬讳环/(1+绋庣巼/100)锛夈��
鏃ユ湡鑼冨洿: %s ~ %s锛屾瘡绉嶅疄浣撶敓鎴�%d-%d鏉°��
""".formatted(dateStart, dateEnd, min, max);
}
@@ -120,6 +129,7 @@
"contactUserName": "鏉庡洓",
"contactUserPhone": "13900139000",
"companyAddress": "XX鐪乆X甯俋X鍖篨X璺疿X鍙�",
+ "companyPhone": "0513-XXXXXXXX",
"taxpayerIdentificationNum": "91110108XXXXXXXXXX",
"bankAccountName": "XX閾惰XX鏀",
"bankAccountNum": "622202XXXXXXXXXXXX",
@@ -141,6 +151,7 @@
"quantity": 50,
"taxInclusiveUnitPrice": 600.00,
"taxInclusiveTotalPrice": 30000.00,
+ "taxExclusiveTotalPrice": 26548.67,
"taxRate": 13.00,
"unit": "浠�",
"type": 2
@@ -148,6 +159,7 @@
]
}
渚涘簲鍟嗗悕绉拌鍍忔寚瀹氳涓氱殑渚涘簲鍟嗭紝鍚堝悓缂栧彿鏍煎紡CG-骞存湀鏃�-搴忓彿銆�
+ 娉ㄦ剰 taxExclusiveTotalPrice 鏄笉鍚◣鎬讳环锛岄渶瑕佹牴鎹惈绋庢�讳环鍜岀◣鐜囪绠楋紙=鍚◣鎬讳环/(1+绋庣巼/100)锛夈��
鏃ユ湡鑼冨洿: %s ~ %s锛屾瘡绉嶅疄浣撶敓鎴�%d-%d鏉°��
""".formatted(dateStart, dateEnd, min, max);
}
diff --git a/src/main/java/com/ruoyi/mock/service/impl/DataGenerateServiceImpl.java b/src/main/java/com/ruoyi/mock/service/impl/DataGenerateServiceImpl.java
index 34567d3..c414da5 100644
--- a/src/main/java/com/ruoyi/mock/service/impl/DataGenerateServiceImpl.java
+++ b/src/main/java/com/ruoyi/mock/service/impl/DataGenerateServiceImpl.java
@@ -34,6 +34,8 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
@@ -208,7 +210,23 @@
c.setContactPerson(item.getString("contactPerson"));
c.setContactPhone(item.getString("contactPhone"));
c.setCompanyAddress(item.getString("companyAddress"));
+ c.setCompanyPhone(item.getString("companyPhone"));
c.setTaxpayerIdentificationNumber(item.getString("taxpayerIdentificationNumber"));
+ c.setMaintainer(item.getString("maintainer"));
+ if (item.containsKey("maintenanceTime")) {
+ c.setMaintenanceTime(java.sql.Date.valueOf(item.getString("maintenanceTime")));
+ } else {
+ c.setMaintenanceTime(new java.sql.Date(System.currentTimeMillis()));
+ }
+ if (item.containsKey("bankAccount")) {
+ c.setBankAccount(item.getString("bankAccount"));
+ }
+ if (item.containsKey("basicBankAccount")) {
+ c.setBasicBankAccount(item.getString("basicBankAccount"));
+ }
+ if (item.containsKey("bankCode")) {
+ c.setBankCode(item.getString("bankCode"));
+ }
customerService.insertCustomer(c);
if (c.getId() != null) {
nameToId.put(c.getCustomerName(), c.getId());
@@ -232,6 +250,7 @@
s.setContactUserName(item.getString("contactUserName"));
s.setContactUserPhone(item.getString("contactUserPhone"));
s.setCompanyAddress(item.getString("companyAddress"));
+ s.setCompanyPhone(item.getString("companyPhone"));
s.setTaxpayerIdentificationNum(item.getString("taxpayerIdentificationNum"));
s.setBankAccountName(item.getString("bankAccountName"));
s.setBankAccountNum(item.getString("bankAccountNum"));
@@ -286,6 +305,10 @@
dto.setSalesman(item.getString("salesman"));
dto.setPaymentMethod(item.getString("paymentMethod"));
dto.setType(item.getInteger("type"));
+ // 褰曞叆浜猴細浼樺厛浣跨敤AI鎻愪緵鐨勬暟鎹紝鍚﹀垯鐢ㄥ綋鍓嶇櫥褰曠敤鎴�
+ if (item.containsKey("entryPerson")) {
+ dto.setEntryPerson(item.getString("entryPerson"));
+ }
if (item.containsKey("entryDate")) {
dto.setEntryDate(java.sql.Date.valueOf(item.getString("entryDate")));
}
@@ -309,6 +332,17 @@
slp.setTaxRate(pd.getBigDecimal("taxRate"));
slp.setUnit(pd.getString("unit"));
slp.setType(pd.getInteger("type"));
+ if (pd.containsKey("taxExclusiveTotalPrice")) {
+ slp.setTaxExclusiveTotalPrice(pd.getBigDecimal("taxExclusiveTotalPrice"));
+ } else if (pd.getBigDecimal("taxInclusiveTotalPrice") != null && pd.getBigDecimal("taxRate") != null) {
+ // 涓嶅惈绋庢�讳环 = 鍚◣鎬讳环 / (1 + 绋庣巼/100)
+ slp.setTaxExclusiveTotalPrice(
+ pd.getBigDecimal("taxInclusiveTotalPrice").divide(
+ BigDecimal.ONE.add(pd.getBigDecimal("taxRate").divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)),
+ 2, RoundingMode.HALF_UP));
+ } else {
+ slp.setTaxExclusiveTotalPrice(BigDecimal.ZERO);
+ }
products.add(slp);
}
dto.setProductData(products);
@@ -357,6 +391,16 @@
slp.setTaxRate(pd.getBigDecimal("taxRate"));
slp.setUnit(pd.getString("unit"));
slp.setType(2);
+ if (pd.containsKey("taxExclusiveTotalPrice")) {
+ slp.setTaxExclusiveTotalPrice(pd.getBigDecimal("taxExclusiveTotalPrice"));
+ } else if (pd.getBigDecimal("taxInclusiveTotalPrice") != null && pd.getBigDecimal("taxRate") != null) {
+ slp.setTaxExclusiveTotalPrice(
+ pd.getBigDecimal("taxInclusiveTotalPrice").divide(
+ BigDecimal.ONE.add(pd.getBigDecimal("taxRate").divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)),
+ 2, RoundingMode.HALF_UP));
+ } else {
+ slp.setTaxExclusiveTotalPrice(BigDecimal.ZERO);
+ }
products.add(slp);
}
dto.setProductData(products);
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 7b71ef3..b3a7727 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -571,6 +571,10 @@
SalesLedger salesLedger = convertToEntity(salesLedgerDto);
salesLedger.setCustomerName(customer.getCustomerName());
salesLedger.setTenantId(customer.getTenantId());
+ // 褰曞叆浜猴細濡傛灉鏈紶鍒欎娇鐢ㄥ綋鍓嶇櫥褰曠敤鎴�
+ if (StringUtils.isEmpty(salesLedger.getEntryPerson())) {
+ salesLedger.setEntryPerson(String.valueOf(SecurityUtils.getUserId()));
+ }
// 3. 鏂板鎴栨洿鏂颁富琛�
if (salesLedger.getId() == null) {
String contractNo = salesLedger.getSalesContractNo();
--
Gitblit v1.9.3