From 23b349e9e8ac448b507c3f286483ac06a47e5ea4 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 23 六月 2026 11:56:02 +0800
Subject: [PATCH] fix: 额外加工费用可以自定义

---
 doc/sales_ledger_add_other_amount.sql                                                    |    1 +
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java                    |    4 ++++
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java                   |    9 ++++++++-
 src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml                  |    1 +
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java |    2 ++
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java                        |    5 +----
 6 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/doc/sales_ledger_add_other_amount.sql b/doc/sales_ledger_add_other_amount.sql
new file mode 100644
index 0000000..510e458
--- /dev/null
+++ b/doc/sales_ledger_add_other_amount.sql
@@ -0,0 +1 @@
+ALTER TABLE sales_ledger_product_process_bind ADD COLUMN amount decimal(10,2) COMMENT '閲戦';
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java
index de0bd6f..9a29144 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcess.java
@@ -12,7 +12,6 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 /**
@@ -47,6 +46,4 @@
     private String code;
 
     private LocalDateTime createTime;
-
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java
index 36f4381..d7152b9 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.math.BigDecimal;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -39,5 +41,7 @@
     @ApiModelProperty(value = "鍔犲伐鏁伴噺")
     private Integer quantity;
 
+    @ApiModelProperty(value = "閲戦")
+    private BigDecimal amount;
 
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java
index 5f67b2f..8948396 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java
@@ -34,8 +34,10 @@
                 salesLedgerProductProcessBind.setSalesLedgerProductId(salesLedgerProductId);
                 salesLedgerProductProcessBind.setSalesLedgerProductProcessId(s.getId());
                 salesLedgerProductProcessBind.setQuantity(s.getQuantity());
+                salesLedgerProductProcessBind.setAmount(s.getUnitPrice());
                 baseMapper.insert(salesLedgerProductProcessBind);
             });
         }
     }
 }
+
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 faaae71..4ed1bed 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -274,8 +274,12 @@
             if (!bindList.isEmpty()) {
                 List<Integer> processIds = bindList.stream().map(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId).collect(Collectors.toList());
                 Map<Integer, Integer> processQuantityMap = bindList.stream().collect(Collectors.toMap(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, SalesLedgerProductProcessBind::getQuantity, (a, b) -> a));
+                Map<Integer, BigDecimal> processAmountMap = bindList.stream().collect(Collectors.toMap(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, SalesLedgerProductProcessBind::getAmount, (a, b) -> a));
                 List<SalesLedgerProductProcess> processList = salesLedgerProductProcessService.listByIds(processIds);
-                processList.forEach(p -> p.setQuantity(processQuantityMap.get(p.getId())));
+                processList.forEach(p -> {
+                    p.setQuantity(processQuantityMap.get(p.getId()));
+                    if (processAmountMap.get(p.getId()) != null) p.setUnitPrice(processAmountMap.get(p.getId()));
+                });
                 product.setSalesProductProcessList(processList);
             }
             ProductModel productModel = productModelMap.get(product.getProductModelId());
@@ -652,6 +656,7 @@
                                         SalesLedgerProductProcess p = new SalesLedgerProductProcess();
                                         p.setId(process.getId());
                                         p.setQuantity(processQty.intValue());
+                                        p.setUnitPrice(process.getUnitPrice());
                                         processList.add(p);
                                         extraProcessAmountPerPiece = extraProcessAmountPerPiece.add(defaultDecimal(process.getUnitPrice()).multiply(processQty));
                                     }
@@ -3090,6 +3095,7 @@
             SalesLedgerProductProcess bind = new SalesLedgerProductProcess();
             bind.setId(process.getId());
             bind.setQuantity(entry.getValue());
+            bind.setUnitPrice(process.getUnitPrice());
             result.add(bind);
         }
         return result;
@@ -4675,3 +4681,4 @@
     }
 
 }
+
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml
index fc3b992..1564259 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductProcessBindMapper.xml
@@ -8,6 +8,7 @@
         <result column="sales_ledger_product_id" property="salesLedgerProductId" />
         <result column="sales_ledger_product_process_id" property="salesLedgerProductProcessId" />
         <result column="quantity" property="quantity" />
+        <result column="amount" property="amount" />
     </resultMap>
 
 </mapper>

--
Gitblit v1.9.3