From 0f1a0887db74631c151f2f241c3ff1ceef2656e6 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 24 三月 2026 17:30:46 +0800
Subject: [PATCH] feat(sales): 优化发货和销售台账相关功能
---
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 5 +++--
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 10 +++++++++-
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 4 ++++
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 7 ++++++-
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 1 +
src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java | 9 +++++++++
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java | 5 +++++
7 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 58810c9..0595e0b 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -191,6 +191,11 @@
LoginUser loginUser = SecurityUtils.getLoginUser();
Long tenantId = loginUser.getTenantId();
customer.setTenantId(tenantId);
+ customer.setTaxpayerIdentificationNumber("");
+ customer.setCompanyAddress("");
+ customer.setCompanyPhone("");
+ customer.setMaintainer("");
+ customer.setMaintenanceTime(new Date());
return customerMapper.insert(customer);
}
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index db3c5b9..5ac9f57 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -37,6 +37,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 1bf9aa2..14f388c 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -243,4 +243,8 @@
// 鍙敤鏁伴噺 quantity - returnQuality
@TableField(exist = false)
private BigDecimal availableQuality;
+
+ @TableField(exist = false)
+ // 閮ㄥ垎鍙戣揣鏁伴噺
+ private BigDecimal partSendAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
index 82a657c..8b5fc76 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -7,6 +7,7 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
@@ -88,4 +89,12 @@
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
+ @TableField(value = "is_all_send")
+ @ApiModelProperty(value = "鏄惁鍏ㄩ儴鍙戣揣 1鍏ㄩ儴鍙戣揣 0涓嶅叏閮ㄥ彂璐�")
+ private Integer isAllSend;
+
+ @ApiModelProperty(value = "閮ㄥ垎鍙戣揣鏁伴噺")
+ @TableField(value = "part_send_amount")
+ private BigDecimal partSendAmount;
+
}
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 71ad49f..57d804a 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -64,7 +64,7 @@
DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
CASE
WHEN shipping_status_counts.total_count = 0 THEN false
- WHEN shipping_status_counts.unshipped_count = 0 THEN true
+ WHEN shipping_status_counts.shipped_type = 0 THEN true
ELSE false
END AS is_fh
FROM sales_ledger T1
@@ -72,7 +72,8 @@
LEFT JOIN (
SELECT sales_ledger_id,
COUNT(*) as total_count,
- SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) as unshipped_count
+ SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) as shipped_type,
+ sum(part_send_amount) as part_send_amount
FROM shipping_info
GROUP BY sales_ledger_id
) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 712124a..e729339 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -10,10 +10,18 @@
CASE
WHEN (IFNULL(t2.qualitity, 0) - IFNULL(t2.locked_quantity, 0)) >= IFNULL(T1.quantity, 0) THEN 1
ELSE 0
- END as has_sufficient_stock
+ END as has_sufficient_stock,
+ t3.part_send_amount
FROM
sales_ledger_product T1
LEFT JOIN stock_inventory t2 ON T1.product_model_id = t2.product_model_id
+
+ LEFT JOIN (
+ SELECT sales_ledger_id,
+ sum(part_send_amount) as part_send_amount
+ FROM shipping_info
+ GROUP BY sales_ledger_id
+ ) as t3 on t3.sales_ledger_id = T1.sales_ledger_id
<where>
<if test="salesLedgerProduct.salesLedgerId != null">
AND T1.sales_ledger_id = #{salesLedgerProduct.salesLedgerId}
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 82c67b2..e56c572 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -21,7 +21,9 @@
sl.sales_contract_no,
slp.specification_model,
p.product_name,
- sl.customer_name
+ sl.customer_name,
+ s.is_all_send,
+ s.part_send_amount
FROM shipping_info s
LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1
@@ -31,6 +33,9 @@
<if test="req.salesContractNo != null and req.salesContractNo != ''">
AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
</if>
+ <if test="req.salesLedgerId != null">
+ AND s.sales_ledger_id = #{req.salesLedgerId}
+ </if>
<if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
</if>
--
Gitblit v1.9.3