From aac591782bef5f9eedbd96ed3de8c4c7a0967776 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 09 三月 2026 17:26:26 +0800
Subject: [PATCH] 报工bug修改

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |   37 +++++++++++++++++++++++++------------
 1 files changed, 25 insertions(+), 12 deletions(-)

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 e805784..9139554 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -7,6 +7,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.production.mapper.*;
 import com.ruoyi.production.pojo.*;
@@ -32,6 +34,7 @@
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.function.Function;
@@ -98,10 +101,10 @@
                         if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){
                             invoiceNum =  invoiceNum.add(registrationProductDto.getInvoiceNum());
                             invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount());
-                            noInvoiceNum = ledgerProduct.getQuantity().subtract(invoiceNum);
-                            noInvoiceAmount = ledgerProduct.getTaxInclusiveTotalPrice().subtract(invoiceAmount);
                         }
                     }
+                    noInvoiceNum = ledgerProduct.getQuantity().subtract(invoiceNum);
+                    noInvoiceAmount = ledgerProduct.getTaxInclusiveTotalPrice().subtract(invoiceAmount);
                     ledgerProduct.setInvoiceNum(invoiceNum);
                     ledgerProduct.setInvoiceAmount(invoiceAmount);
                     ledgerProduct.setNoInvoiceNum(noInvoiceNum);
@@ -213,18 +216,18 @@
         Long salesLedgerId = salesLedgerProduct.getSalesLedgerId();
         if (salesLedgerProduct.getId() == null) {
             result = salesLedgerProductMapper.insert(salesLedgerProduct);
-            addProductionData(salesLedgerProduct);
+//            addProductionData(salesLedgerProduct,2);
         } else {
             //鏌ヨ鍘熸湰鐨勪骇鍝佸瀷鍙穒d
             salesLedgerProduct.setFutureTickets(salesLedgerProduct.getQuantity());
             result = salesLedgerProductMapper.updateById(salesLedgerProduct);
             /*鍒犻櫎瀵瑰簲鐨勭敓浜ф暟鎹苟閲嶆柊鏂板*/
-            deleteProductionData(Arrays.asList(salesLedgerProduct.getId()));
-            // 鍒犻櫎鐢熶骇鏍哥畻鏁版嵁
-            LambdaQueryWrapper<SalesLedgerProductionAccounting> reportWrapper = new LambdaQueryWrapper<>();
-            reportWrapper.in(SalesLedgerProductionAccounting::getSalesLedgerId, salesLedgerId);
-            salesLedgerProductionAccountingMapper.delete(reportWrapper);
-            addProductionData(salesLedgerProduct);
+//            deleteProductionData(Arrays.asList(salesLedgerProduct.getId()));
+//            // 鍒犻櫎鐢熶骇鏍哥畻鏁版嵁
+//            LambdaQueryWrapper<SalesLedgerProductionAccounting> reportWrapper = new LambdaQueryWrapper<>();
+//            reportWrapper.in(SalesLedgerProductionAccounting::getSalesLedgerId, salesLedgerId);
+//            salesLedgerProductionAccountingMapper.delete(reportWrapper);
+//            addProductionData(salesLedgerProduct,2);
         }
 
         // 濡傛灉鎻掑叆鎴栨洿鏂版垚鍔燂紝骞朵笖鏈� salesLedgerId锛屾墠缁х画鏇存柊涓昏〃閲戦
@@ -259,12 +262,21 @@
 
     /**
      * 鏂板鐢熶骇鏁版嵁
+     * @param salesLedgerProduct
+     * @param type 1=鐢熶骇 2=閿�鍞�
      */
+    @Transactional(rollbackFor = Exception.class)
     public void addProductionData(SalesLedgerProduct salesLedgerProduct) {
+        // 鍥犱负鐢熶骇闇�姹傛敼鍔紝闇�瑕侀澶栫粰sales_ledger_product鏂板鏁版嵁锛宼ype锛�3
+        salesLedgerProduct.setType(3);
+        salesLedgerProduct.setRegister(SecurityUtils.getLoginUser().getNickName());
+        salesLedgerProduct.setRegisterDate(LocalDateTime.now());
+
+        salesLedgerProductMapper.insert(salesLedgerProduct);
         ProductOrder productOrder = new ProductOrder();
         productOrder.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
         productOrder.setProductModelId(salesLedgerProduct.getId());
-        productOrder.setNpsNo("SC" + String.format("%08d", salesLedgerProduct.getId()));
+        productOrder.setNpsNo(OrderUtils.countTodayByCreateTime(productOrderMapper, "SC"));
         productOrder.setQuantity(salesLedgerProduct.getQuantity());//闇�姹傛暟閲�
         productOrder.setCompleteQuantity(BigDecimal.ZERO);//瀹屾垚鏁伴噺
         productOrderMapper.insert(productOrder);
@@ -291,6 +303,7 @@
                 productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
                 productProcessRouteItem.setProductOrderId(productOrder.getId());
                 productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
+                productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
                 int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
                 if (insert > 0) {
                     // 鏌ヨ浠婃棩宸插瓨鍦ㄧ殑鏈�澶у伐鍗曞彿
@@ -421,9 +434,9 @@
         salesLedgerProductDtoIPage.getRecords().forEach(item -> {
             // 鍒ゆ柇鐘舵��
             if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
-                item.setStatusName("宸插畬鎴愪粯娆�");
+                item.setStatusName("宸插畬鎴愬洖娆�");
             }else{
-                item.setStatusName("鏈畬鎴愪粯娆�");
+                item.setStatusName("鏈畬鎴愬洖娆�");
             }
         });
         return salesLedgerProductDtoIPage;

--
Gitblit v1.9.3