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 |   77 ++++++++++++++++++++++++++++++++------
 1 files changed, 65 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 9ac0ec8..9139554 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -3,8 +3,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+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.*;
 import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
@@ -12,6 +17,7 @@
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.dto.SalesLedgerProductDto;
 import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -28,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;
@@ -192,25 +199,35 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addOrUpdateSalesLedgerProduct(SalesLedgerProduct salesLedgerProduct) {
-        //鏈紑绁ㄦ暟閲�+閲戦
-        salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
-        salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
+        // 寰呭洖娆撅紝浠樻
+        if(salesLedgerProduct.getType().equals(1)){
+            salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+            //鏈紑绁ㄦ暟閲�+閲戦
+            salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
+            salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
+        }else{
+            salesLedgerProduct.setPendingTicketsTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getTicketsTotal()));
+            // 鏈潵绁ㄦ暟閲�+閲戦
+            salesLedgerProduct.setFutureTickets(salesLedgerProduct.getQuantity());
+            salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
+        }
+
         int result;
         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锛屾墠缁х画鏇存柊涓昏〃閲戦
@@ -245,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);
@@ -275,7 +301,6 @@
                 ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
                 productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
                 productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
-                productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
                 productProcessRouteItem.setProductOrderId(productOrder.getId());
                 productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
                 productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
@@ -403,6 +428,34 @@
         }
     }
 
+    @Override
+    public IPage<SalesLedgerProductDto> listPage(Page page, SalesLedgerProductDto salesLedgerProduct) {
+        IPage<SalesLedgerProductDto> salesLedgerProductDtoIPage = salesLedgerProductMapper.listPage(page, salesLedgerProduct);
+        salesLedgerProductDtoIPage.getRecords().forEach(item -> {
+            // 鍒ゆ柇鐘舵��
+            if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
+                item.setStatusName("宸插畬鎴愬洖娆�");
+            }else{
+                item.setStatusName("鏈畬鎴愬洖娆�");
+            }
+        });
+        return salesLedgerProductDtoIPage;
+    }
+
+    @Override
+    public IPage<SalesLedgerProductDto> listPagePurchaseLedger(Page page, SalesLedgerProductDto salesLedgerProduct) {
+        IPage<SalesLedgerProductDto> salesLedgerProductDtoIPage = salesLedgerProductMapper.listPagePurchaseLedger(page, salesLedgerProduct);
+        salesLedgerProductDtoIPage.getRecords().forEach(item -> {
+            // 鍒ゆ柇鐘舵��
+            if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
+                item.setStatusName("宸插畬鎴愪粯娆�");
+            }else{
+                item.setStatusName("鏈畬鎴愪粯娆�");
+            }
+        });
+        return salesLedgerProductDtoIPage;
+    }
+
     /**
      * 閫氱敤鏂规硶锛氭牴鎹富琛↖D鍜屽瓙琛ㄥ垪琛紝鏇存柊涓昏〃鐨勫悎鍚岄噾棰�
      */

--
Gitblit v1.9.3