From 99e26030611fdc06ee3dd523072fe5516b78dc5b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 11 五月 2026 13:05:38 +0800
Subject: [PATCH] feat(sales): 添加销售订单和产品相关字段
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 1
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 10 +
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 9 +
src/main/java/com/ruoyi/sales/dto/SalesLedgerImportDto.java | 14 ++
doc/销售订单模块-前端联调文档-20260511.md | 108 ++++++++++++++++++
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 23 +++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 16 ++
doc/20260511_sales_ledger_add_fields.sql | 128 +++++++++++++++++++++
src/main/java/com/ruoyi/sales/dto/SalesLedgerProductImportDto.java | 26 +++
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 15 ++
src/main/resources/static/销售台账导入模板.xlsx | 0
11 files changed, 341 insertions(+), 9 deletions(-)
diff --git a/doc/20260511_sales_ledger_add_fields.sql b/doc/20260511_sales_ledger_add_fields.sql
new file mode 100644
index 0000000..9cda123
--- /dev/null
+++ b/doc/20260511_sales_ledger_add_fields.sql
@@ -0,0 +1,128 @@
+-- 閿�鍞鍗曟ā鍧楁柊澧炲瓧娈碉紙2026-05-11锛�
+-- 璇存槑锛�
+-- 1) 鑴氭湰鎸夆�滃瓨鍦ㄥ垯璺宠繃锛屼笉瀛樺湪鍒欐柊澧炩�濇墽琛岋紝鍙噸澶嶆墽琛屻��
+-- 2) 鐗╂枡鍙风粺涓�瀛楁涓� material_no锛涜嫢鍘嗗彶瀛樺湪 material锛屼細鍥炲~鍒� material_no銆�
+
+SET @db_name = DATABASE();
+
+-- ----------------------------
+-- sales_ledger 鏂板瀛楁
+-- ----------------------------
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger'
+ AND COLUMN_NAME = 'order_type';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger ADD COLUMN order_type VARCHAR(64) NULL COMMENT ''璁㈠崟绫诲瀷''',
+ 'SELECT ''skip: sales_ledger.order_type exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger'
+ AND COLUMN_NAME = 'order_line';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger ADD COLUMN order_line VARCHAR(64) NULL COMMENT ''璁㈠崟琛�''',
+ 'SELECT ''skip: sales_ledger.order_line exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger'
+ AND COLUMN_NAME = 'demand_date';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger ADD COLUMN demand_date DATE NULL COMMENT ''闇�姹傛棩鏈�''',
+ 'SELECT ''skip: sales_ledger.demand_date exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+-- ----------------------------
+-- sales_ledger_product 鏂板瀛楁
+-- ----------------------------
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'delivery_quantity';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN delivery_quantity DECIMAL(18,6) NULL COMMENT ''浜よ揣鏁伴噺''',
+ 'SELECT ''skip: sales_ledger_product.delivery_quantity exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'remaining_quantity';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN remaining_quantity DECIMAL(18,6) NULL COMMENT ''鍓╀綑鏁伴噺''',
+ 'SELECT ''skip: sales_ledger_product.remaining_quantity exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'sub_inventory';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN sub_inventory VARCHAR(128) NULL COMMENT ''瀛愬簱瀛�''',
+ 'SELECT ''skip: sales_ledger_product.sub_inventory exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'location';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN location VARCHAR(128) NULL COMMENT ''璐т綅''',
+ 'SELECT ''skip: sales_ledger_product.location exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'is_spray';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN is_spray TINYINT(1) NULL COMMENT ''鏄惁鍠风爞''',
+ 'SELECT ''skip: sales_ledger_product.is_spray exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+SELECT COUNT(*) INTO @cnt
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'material_no';
+SET @sql = IF(@cnt = 0,
+ 'ALTER TABLE sales_ledger_product ADD COLUMN material_no VARCHAR(128) NULL COMMENT ''鐗╂枡鍙�''',
+ 'SELECT ''skip: sales_ledger_product.material_no exists''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+-- ----------------------------
+-- 鍘嗗彶鏁版嵁鍏煎锛歮aterial -> material_no
+-- ----------------------------
+SELECT COUNT(*) INTO @has_old_material
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'material';
+
+SELECT COUNT(*) INTO @has_new_material_no
+FROM information_schema.COLUMNS
+WHERE TABLE_SCHEMA = @db_name
+ AND TABLE_NAME = 'sales_ledger_product'
+ AND COLUMN_NAME = 'material_no';
+
+SET @sql = IF(@has_old_material = 1 AND @has_new_material_no = 1,
+ 'UPDATE sales_ledger_product
+ SET material_no = material
+ WHERE (material_no IS NULL OR material_no = '''')
+ AND material IS NOT NULL',
+ 'SELECT ''skip: material -> material_no backfill''');
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
+
+-- 鍙�夛細纭鍓嶇/鍚庣閮藉凡鍒囨崲鍚庯紝鍐嶈瘎浼版槸鍚﹀垹闄ゆ棫鍒� material
+-- ALTER TABLE sales_ledger_product DROP COLUMN material;
diff --git "a/doc/\351\224\200\345\224\256\350\256\242\345\215\225\346\250\241\345\235\227-\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-20260511.md" "b/doc/\351\224\200\345\224\256\350\256\242\345\215\225\346\250\241\345\235\227-\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-20260511.md"
new file mode 100644
index 0000000..8205f06
--- /dev/null
+++ "b/doc/\351\224\200\345\224\256\350\256\242\345\215\225\346\250\241\345\235\227-\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-20260511.md"
@@ -0,0 +1,108 @@
+# 閿�鍞鍗曟ā鍧楀墠绔仈璋冩枃妗o紙2026-05-11锛�
+
+## 1. 鏈鍙樻洿鑼冨洿
+
+- 妯″潡锛歚閿�鍞鍗� / 閿�鍞骇鍝乣
+- 鐩稿叧鎺ュ彛鍓嶇紑锛歚/sales/ledger`銆乣/sales/product`
+- 鏈鏍稿績鍙e緞锛歚鍗曚环 = 鍚◣鍗曚环`锛宍鎬讳环 = 鍚◣鎬讳环`
+
+## 2. 鏂板/璋冩暣瀛楁
+
+### 2.1 閿�鍞富琛紙sales_ledger锛�
+
+1. `orderType`锛氳鍗曠被鍨嬶紙`VARCHAR`锛�
+2. `orderLine`锛氳鍗曡锛坄VARCHAR`锛�
+3. `demandDate`锛氶渶姹傛棩鏈燂紙`yyyy-MM-dd`锛�
+
+### 2.2 閿�鍞骇鍝佽〃锛坰ales_ledger_product锛�
+
+1. `deliveryQuantity`锛氫氦璐ф暟閲忥紙`DECIMAL`锛�
+2. `remainingQuantity`锛氬墿浣欐暟閲忥紙`DECIMAL`锛�
+3. `subInventory`锛氬瓙搴撳瓨锛坄VARCHAR`锛�
+4. `location`锛氳揣浣嶏紙`VARCHAR`锛�
+5. `isSpray`锛氭槸鍚﹀柗鐮傦紙`Boolean`锛�
+6. `materialNo`锛氱墿鏂欏彿锛坄VARCHAR`锛�
+
+## 3. 鎺ュ彛鑱旇皟娓呭崟
+
+### 3.1 鏂板/缂栬緫閿�鍞鍗�
+
+- `POST /sales/ledger/addOrUpdateSalesLedger`
+- `Content-Type: application/json`
+
+璇锋眰绀轰緥锛�
+
+```json
+{
+ "id": null,
+ "salesContractNo": "XS20260511001",
+ "customerId": 10001,
+ "customerName": "鍗楅�氭煇瀹㈡埛",
+ "projectName": "XX椤圭洰",
+ "entryDate": "2026-05-11",
+ "salesman": "寮犱笁",
+ "paymentMethod": "鏈堢粨30澶�",
+ "orderType": "甯歌璁㈠崟",
+ "orderLine": "10",
+ "demandDate": "2026-05-25",
+ "deliveryDate": "2026-05-30",
+ "type": 1,
+ "productData": [
+ {
+ "productCategory": "鎴愬搧A",
+ "specificationModel": "A-001",
+ "unit": "浠�",
+ "quantity": 100,
+ "taxRate": 13,
+ "taxInclusiveUnitPrice": 11.30,
+ "taxInclusiveTotalPrice": 1130.00,
+ "invoiceType": "澧炲�肩◣涓撶エ",
+ "materialNo": "MAT-001",
+ "deliveryQuantity": 60,
+ "remainingQuantity": 40,
+ "subInventory": "FG",
+ "location": "A-01-01",
+ "isSpray": false
+ }
+ ]
+}
+```
+
+### 3.2 閿�鍞鍗曡鎯咃紙涓诲瓙锛�
+
+- `GET /sales/ledger/getSalesLedgerWithProducts?id={id}`
+- 杩斿洖涓細鍖呭惈涓昏〃鏂板瀛楁锛歚orderType/orderLine/demandDate`
+- `productData` 涓細鍖呭惈浜у搧鏂板瀛楁锛歚materialNo/deliveryQuantity/remainingQuantity/subInventory/location/isSpray`
+
+### 3.3 閿�鍞鍗曞垎椤靛垪琛�
+
+- `GET /sales/ledger/listPage`
+- 鍗曟潯璁板綍杩斿洖鏂板瀛楁锛歚orderType/orderLine/demandDate`
+
+### 3.4 閿�鍞骇鍝佸垪琛�
+
+- `GET /sales/product/list?salesLedgerId={id}&type=1`
+- 鍗曟潯璁板綍杩斿洖鏂板瀛楁锛歚materialNo/deliveryQuantity/remainingQuantity/subInventory/location/isSpray`
+
+### 3.5 Excel 瀵煎叆
+
+- `POST /sales/ledger/import`锛坄form-data`锛屽弬鏁板悕锛歚file`锛�
+- 瀵煎叆妯℃澘涓攢鍞骇鍝侀〉瀛楁鍙e緞锛�
+ 1. `鍗曚环` -> `taxInclusiveUnitPrice`
+ 2. `鎬讳环` -> `taxInclusiveTotalPrice`
+
+鍚庣瀵煎叆閫昏緫鍙e緞宸茬粺涓�涓哄惈绋庯細
+
+1. `noInvoiceAmount = taxInclusiveTotalPrice`
+2. `pendingInvoiceTotal = taxInclusiveTotalPrice`
+
+## 4. 鍓嶇鑱旇皟娉ㄦ剰鐐�
+
+1. 鏃ユ湡瀛楁缁熶竴浼� `yyyy-MM-dd`锛坄demandDate`銆乣deliveryDate`锛夈��
+2. `isSpray` 鎸夊竷灏斿�间紶閫掞紙`true/false`锛夈��
+3. `deliveryQuantity`銆乣remainingQuantity`銆乣quantity`銆乣taxInclusiveUnitPrice`銆乣taxInclusiveTotalPrice` 寤鸿缁熶竴 `Number` 绮惧害澶勭悊銆�
+4. 椤甸潰灞曠ず鈥滃崟浠�/鎬讳环鈥濇椂锛岀洿鎺ヤ娇鐢� `taxInclusiveUnitPrice/taxInclusiveTotalPrice`銆�
+
+## 5. 鏈瀵瑰簲 SQL
+
+- 瑙佹枃浠讹細`doc/20260511_sales_ledger_add_fields.sql`
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 05bd888..14cbefb 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -56,6 +56,16 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "璁㈠崟绫诲瀷")
+ private String orderType;
+
+ @ApiModelProperty(value = "璁㈠崟琛�")
+ private String orderLine;
+
+ @ApiModelProperty(value = "闇�姹傛棩鏈�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date demandDate;
+
@ApiModelProperty(value = "浜よ揣鏃ユ湡")
private LocalDate deliveryDate;
}
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerImportDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerImportDto.java
index a4c585b..731d7cc 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerImportDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerImportDto.java
@@ -47,5 +47,19 @@
@Excel(name = "浠樻鏂瑰紡")
private String paymentMethod;
+ @Excel(name = "璁㈠崟绫诲瀷")
+ private String orderType;
+
+ @Excel(name = "璁㈠崟琛�")
+ private String orderLine;
+
+ @Excel(name = "闇�姹傛棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date demandDate;
+
+ @Excel(name = "浜よ揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date deliveryDate;
+
}
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductImportDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductImportDto.java
index 2c95909..e2b5dde 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductImportDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductImportDto.java
@@ -22,13 +22,13 @@
/**
* 浜у搧澶х被
*/
- @Excel(name = "浜у搧澶х被")
+ @Excel(name = "浜у搧鍚嶇О")
private String productCategory;
/**
* 瑙勬牸鍨嬪彿
*/
- @Excel(name = "瑙勬牸鍨嬪彿")
+ @Excel(name = "鍥剧焊缂栧彿")
private String specificationModel;
/**
@@ -52,13 +52,13 @@
/**
* 鍚◣鍗曚环
*/
- @Excel(name = "鍚◣鍗曚环")
+ @Excel(name = "鍗曚环")
private BigDecimal taxInclusiveUnitPrice;
/**
* 鍚◣鎬讳环
*/
- @Excel(name = "鍚◣鎬讳环")
+ @Excel(name = "鎬讳环")
private BigDecimal taxInclusiveTotalPrice;
/**
@@ -73,6 +73,24 @@
@Excel(name = "鏄惁璐ㄦ", readConverterExp = "0=鍚�,1=鏄�")
private Boolean isChecked;
+ @Excel(name = "鐗╂枡鍙�")
+ private String materialNo;
+
+ @Excel(name = "浜よ揣鏁伴噺")
+ private BigDecimal deliveryQuantity;
+
+ @Excel(name = "鍓╀綑鏁伴噺")
+ private BigDecimal remainingQuantity;
+
+ @Excel(name = "瀛愬簱瀛�")
+ private String subInventory;
+
+ @Excel(name = "璐т綅")
+ private String location;
+
+ @Excel(name = "鏄惁鍠风爞")
+ private Boolean isSpray;
+
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 672fe75..cc89584 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -127,6 +127,21 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "璁㈠崟绫诲瀷")
+ @Excel(name = "璁㈠崟绫诲瀷")
+ private String orderType;
+
+ @ApiModelProperty(value = "璁㈠崟琛�")
+ @Excel(name = "璁㈠崟琛�")
+ private String orderLine;
+
+ @ApiModelProperty(value = "闇�姹傛棩鏈�")
+ @Excel(name = "闇�姹傛棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @TableField(value = "demand_date")
+ private Date demandDate;
+
@TableField(exist = false)
@ApiModelProperty(value = "鐢熶骇鐘舵��")
private String productionStatus = "鏈紑濮�";
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 7515c2a..07f6cdb 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -96,6 +96,26 @@
@Excel(name = "鍚◣鎬讳环")
private BigDecimal taxInclusiveTotalPrice;
+ @ApiModelProperty(value = "浜よ揣鏁伴噺")
+ @Excel(name = "浜よ揣鏁伴噺")
+ private BigDecimal deliveryQuantity;
+
+ @ApiModelProperty(value = "鍓╀綑鏁伴噺")
+ @Excel(name = "鍓╀綑鏁伴噺")
+ private BigDecimal remainingQuantity;
+
+ @ApiModelProperty(value = "瀛愬簱瀛�")
+ @Excel(name = "瀛愬簱瀛�")
+ private String subInventory;
+
+ @ApiModelProperty(value = "璐т綅")
+ @Excel(name = "璐т綅")
+ private String location;
+
+ @ApiModelProperty(value = "鏄惁鍠风爞")
+ @Excel(name = "鏄惁鍠风爞")
+ private Boolean isSpray;
+
/**
* 涓嶅惈绋庢�讳环
*/
@@ -250,5 +270,6 @@
private BigDecimal returnNum;
@ApiModelProperty(value = "鐗╂枡鍙�")
- private String material;
+ @Excel(name = "鐗╂枡鍙�")
+ private String materialNo;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index f7d9382..c08250a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -317,6 +317,7 @@
productStructures.forEach(item ->{
ProductStructureRecord item1 = new ProductStructureRecord();
BeanUtils.copyProperties(item, item1);
+ item1.setId( null);
item1.setProductOrderId(productOrder.getId());
item1.setDemandedQuantity(item.getUnitQuantity().multiply(productOrder.getQuantity()));
item1.setBomId(Long.valueOf(productBom.getId()));
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 86e560c..d5a383c 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -412,9 +412,19 @@
salesLedgerProduct.setSalesLedgerId(salesLedger.getId());
salesLedgerProduct.setType(1);
// 璁$畻涓嶅惈绋庢�讳环
- salesLedgerProduct.setTaxExclusiveTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice().divide(new BigDecimal(1).add(salesLedgerProduct.getTaxRate().divide(new BigDecimal(100))), 2, RoundingMode.HALF_UP));
+ if (salesLedgerProduct.getTaxInclusiveTotalPrice() != null && salesLedgerProduct.getTaxRate() != null) {
+ salesLedgerProduct.setTaxExclusiveTotalPrice(
+ salesLedgerProduct.getTaxInclusiveTotalPrice().divide(
+ new BigDecimal(1).add(salesLedgerProduct.getTaxRate().divide(new BigDecimal(100))),
+ 2,
+ RoundingMode.HALF_UP
+ )
+ );
+ } else {
+ salesLedgerProduct.setTaxExclusiveTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice());
+ }
salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
- salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxExclusiveTotalPrice());
+ salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
list.stream()
.filter(map -> map.get("productName").equals(salesLedgerProduct.getProductCategory()) && map.get("model").equals(salesLedgerProduct.getSpecificationModel()))
.findFirst()
@@ -435,7 +445,7 @@
salesLedgerProduct.setRegister(loginUser.getNickName());
salesLedgerProduct.setRegisterDate(LocalDateTime.now());
salesLedgerProduct.setApproveStatus(0);
- salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProductImportDto.getTaxInclusiveTotalPrice());
+ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
// 娣诲姞鐢熶骇鏁版嵁
salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index c5d7aed..66b260b 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -31,6 +31,10 @@
T1.execution_date,
T2.nick_name AS entry_person_name,
T1.payment_method,
+ T1.order_type,
+ T1.order_line,
+ T1.demand_date,
+ T1.delivery_date,
DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff
FROM
sales_ledger T1
@@ -60,6 +64,9 @@
T1.execution_date,
T2.nick_name AS entry_person_name,
T1.payment_method,
+ T1.order_type,
+ T1.order_line,
+ T1.demand_date,
T1.delivery_date,
DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
CASE
@@ -111,4 +118,4 @@
FROM sales_ledger
GROUP BY customer_name
</select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
index 9558711..2bed14a 100644
--- "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
+++ "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ
--
Gitblit v1.9.3