From cc0635fdc45d9b0e9396f76ed4074bdb1d81f9d3 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 11 十一月 2025 11:07:19 +0800
Subject: [PATCH] yys  优化仓储物流模块

---
 src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
index e565d49..d1aaae9 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
@@ -4,7 +4,14 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.Details;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordOutServiceImpl;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
 import com.ruoyi.production.dto.ProductionReportDto;
 import com.ruoyi.production.dto.SalesLedgerWorkDto;
 import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
@@ -23,6 +30,7 @@
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -47,6 +55,8 @@
         return iPage;
     }
 
+    private final ProcurementRecordServiceImpl procurementRecordService;
+
     @Override
     public int productionReport(ProductionReportDto productionReportDto) {
         SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
@@ -66,7 +76,7 @@
                 .salesLedgerWorkId(salesLedgerWork.getId())
                 .salesLedgerSchedulingId(salesLedgerWork.getSalesLedgerSchedulingId())
                 .salesLedgerId(salesLedgerWork.getSalesLedgerId())
-                .salesLedgerProductId(salesLedgerWork.getSalesLedgerProductId())
+                .salesLedgerProductId((long)salesLedgerWork.getSalesLedgerProductId())
                 .schedulingUserId(sysUser.getUserId())
                 .schedulingUserName(sysUser.getNickName())
                 .finishedNum(productionReportDto.getFinishedNum())
@@ -74,15 +84,38 @@
                 .process(salesLedgerWork.getProcess())
                 .schedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
         salesLedgerProductionAccountingMapper.insert(builder.build());
+        // 鐢熶骇鎶ュ伐鎴愬姛 -> 鍏ュ簱
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
+        procurementRecordOutAdd.setType(2);
+        procurementRecordOutAdd.setTypeName("鐢熶骇鍏ュ簱");
+        procurementRecordOutAdd.setNickName(loginUser.getNickName());
+        List<Details> details = new ArrayList<>();
+        Details details1 = new Details();
+        details1.setInboundQuantity(productionReportDto.getFinishedNum());
+        details1.setId(Integer.parseInt(salesLedgerWork.getSalesLedgerProductId().toString()));
+        details.add(details1);
+        procurementRecordOutAdd.setDetails(details);
+        procurementRecordService.add(procurementRecordOutAdd);
+
         return 0;
     }
 
     @Override
     public int productionReportUpdate(ProductionReportDto productionReportDto) {
-        SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
-        if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
+        SalesLedgerProductionAccounting salesLedgerProductionAccounting = salesLedgerProductionAccountingMapper.selectById(productionReportDto.getId());
+        if(salesLedgerProductionAccounting == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
         SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
         if(sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
+        salesLedgerProductionAccounting.setFinishedNum(productionReportDto.getFinishedNum());
+        salesLedgerProductionAccounting.setSchedulingUserId(sysUser.getUserId());
+        salesLedgerProductionAccounting.setSchedulingUserName(sysUser.getNickName());
+        salesLedgerProductionAccounting.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
+        salesLedgerProductionAccountingMapper.updateById(salesLedgerProductionAccounting);
+
+        // 鏇存柊鎶ュ伐鏁版嵁
+        SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(salesLedgerProductionAccounting.getSalesLedgerWorkId());
+        if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
         salesLedgerWork.setFinishedNum(productionReportDto.getFinishedNum());
         if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
             salesLedgerWork.setStatus(3);
@@ -93,20 +126,6 @@
         salesLedgerWork.setSchedulingUserName(sysUser.getNickName());
         salesLedgerWork.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
         salesLedgerWorkMapper.updateById(salesLedgerWork);
-
-        // 鏇存柊鏍哥畻鏁版嵁
-        LambdaQueryWrapper<SalesLedgerProductionAccounting> salesLedgerProductionAccountingLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        salesLedgerProductionAccountingLambdaQueryWrapper.eq(SalesLedgerProductionAccounting::getSalesLedgerWorkId, salesLedgerWork.getId())
-                .orderByDesc(SalesLedgerProductionAccounting::getCreateTime)
-                .last("limit 1");
-        SalesLedgerProductionAccounting salesLedgerProductionAccounting = salesLedgerProductionAccountingMapper.selectOne(salesLedgerProductionAccountingLambdaQueryWrapper);
-        if(salesLedgerProductionAccounting != null){
-            salesLedgerProductionAccounting.setFinishedNum(productionReportDto.getFinishedNum());
-            salesLedgerProductionAccounting.setSchedulingUserId(sysUser.getUserId());
-            salesLedgerProductionAccounting.setSchedulingUserName(sysUser.getNickName());
-            salesLedgerProductionAccounting.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
-            salesLedgerProductionAccountingMapper.updateById(salesLedgerProductionAccounting);
-        }
         return 0;
     }
 

--
Gitblit v1.9.3