From 5ff5e7cf4bc2034f728c7edfbfd249345a000104 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 10 十一月 2025 10:11:52 +0800
Subject: [PATCH] yys  优化生产管控整体逻辑

---
 src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java    |   11 ++-
 src/main/resources/mapper/production/SalesLedgerWorkMapper.xml                           |    3 +
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |    6 +
 src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java             |    5 +
 src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java                         |   18 ++++++
 src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java    |    2 
 src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java                             |   15 +++++
 src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java                           |   21 +++++++
 src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml                  |    6 ++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java                    |    5 +
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java                     |    7 ++
 src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java          |   26 ++++++++
 src/main/java/com/ruoyi/procurementrecord/dto/Details.java                               |    6 +-
 13 files changed, 121 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 7fb7b44..1f73ebe 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -41,6 +41,8 @@
     @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鏂板鍏ュ簱", businessType = BusinessType.INSERT)
     @Transactional
     public AjaxResult add(@RequestBody ProcurementAddDto procurementDto) {
+        procurementDto.setType(1);
+        procurementDto.setTypeName("閲囪喘鍏ュ簱");
         return AjaxResult.success(procurementRecordService.add(procurementDto));
     }
 
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
index b2e5a21..3ec8a1a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -10,7 +10,7 @@
  */
 @Data
 public class Details {
-    private Integer id;
-    private BigDecimal inboundQuantity;
-    private BigDecimal warnNum;
+    private Integer id;  // 浜у搧id
+    private BigDecimal inboundQuantity;  // 鍏ュ簱鏁伴噺
+    private BigDecimal warnNum;  // 棰勮鏁伴噺锛堥噰璐叆搴撴墠鏈夛級
 }
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
index 73d9895..9e7c186 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -15,4 +15,11 @@
 
     private String nickName;
 
+    /**
+     * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇
+     */
+    private Integer type;
+
+    private String typeName;
+
 }
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 4f3f260..c977127 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -22,6 +22,11 @@
     private Long createUser;
 
     /**
+     * 鍏ュ簱绫诲瀷 1-閲囪喘 2-鐢熶骇
+     */
+    private Integer type;
+
+    /**
      * 鍏ュ簱鎵规
      */
     @Excel(name = "鍏ュ簱鎵规")
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
index 28cee3c..91df389 100644
--- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
@@ -40,6 +40,11 @@
      * 棰勮鏁伴噺
      */
     private BigDecimal warnNum;
+
+    /**
+     * 鍏ュ簱绫诲瀷 1-閲囪喘鍏ュ簱 2-鐢熶骇鍏ュ簱
+     */
+    private Integer type;
 //    /**
 //     * 鏈�浣庡簱瀛樻暟閲�
 //     */
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 1675069..3c1a4a8 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -342,13 +342,15 @@
         for (Details detail : procurementDto.getDetails()) {
             // 鏌ヨ閲囪喘鍏ュ簱鏁伴噺
             LambdaQueryWrapper<ProcurementRecordStorage> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId());
+            procurementRecordLambdaQueryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, detail.getId())
+                    .eq(ProcurementRecordStorage::getType, procurementDto.getType());
             Long aLong = procurementRecordMapper.selectCount(procurementRecordLambdaQueryWrapper);
 
             ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
                     .salesLedgerProductId(detail.getId())
-                    .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+                    .inboundBatches(aLong.equals(0L) ? "绗�1鎵规("+ procurementDto.getTypeName() +")" : "绗�"+ (aLong + 1) + "鎵规(" + procurementDto.getTypeName() + ")" )
                     .inboundNum(detail.getInboundQuantity())
+                    .type(procurementDto.getType())
                     .warnNum(detail.getWarnNum())
                     .createTime(LocalDateTime.now())
                     .createUser(loginUser.getUserId())
diff --git a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java b/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
index 6cf971e..da2ed71 100644
--- a/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProcessSchedulingDto.java
@@ -48,5 +48,23 @@
     @ApiModelProperty(value = "鎺掍骇鏃ユ湡")
     private String schedulingDate;
 
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鎹熻��
+     */
+    @ApiModelProperty(value = "鎹熻��")
+    private String loss;
+
+    /**
+     * 鍙e懗鍒嗙被
+     */
+    @ApiModelProperty(value = "鍙e懗鍒嗙被")
+    private String type;
+
 
 }
diff --git a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java b/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
index 055f2a8..a32bd62 100644
--- a/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
+++ b/src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
@@ -86,5 +86,26 @@
     @Excel(name = "鐘舵��", readConverterExp = "1=寰呯敓浜�,2=鐢熶骇涓�,3=宸叉姤宸�")
     private String statusName;
 
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    @Excel(name = "澶囨敞")
+    private String remark;
+
+    /**
+     * 鎹熻��
+     */
+    @ApiModelProperty(value = "鎹熻��")
+    @Excel(name = "鎹熻��")
+    private String loss;
+
+    /**
+     * 鍙e懗鍒嗙被
+     */
+    @ApiModelProperty(value = "鍙e懗鍒嗙被")
+    @Excel(name = "鍙e懗鍒嗙被")
+    private String type;
+
 
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
index b722105..f6c2a38 100644
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
+++ b/src/main/java/com/ruoyi/production/pojo/SalesLedgerWork.java
@@ -78,6 +78,21 @@
     private Integer status;
 
     /**
+     * 澶囨敞
+     */
+    private String remark;
+
+    /**
+     * 鎹熻��
+     */
+    private String loss;
+
+    /**
+     * 鍙e懗鍒嗙被
+     */
+    private String type;
+
+    /**
      * 鍒涘缓鑰�
      */
     @TableField(fill = FieldFill.INSERT)
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
index 4f60b7e..995629d 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
@@ -152,10 +152,10 @@
             SysUser sysUser = sysUserMapper.selectUserById(processSchedulingDto.getSchedulingUserId());
             if(sysUser == null) throw new RuntimeException("鎺掍骇浜轰笉瀛樺湪");
             salesLedgerScheduling.setFinishedNum(salesLedgerScheduling.getFinishedNum().add(processSchedulingDto.getSchedulingNum()));
-            LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            salesLedgerWorkLambdaQueryWrapper.eq(SalesLedgerWork::getSalesLedgerSchedulingId, salesLedgerScheduling.getId())
-                    .ne(SalesLedgerWork::getStatus, 1);
-            List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
+//            LambdaQueryWrapper<SalesLedgerWork> salesLedgerWorkLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//            salesLedgerWorkLambdaQueryWrapper.eq(SalesLedgerWork::getSalesLedgerSchedulingId, salesLedgerScheduling.getId())
+//                    .ne(SalesLedgerWork::getStatus, 1);
+//            List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(salesLedgerWorkLambdaQueryWrapper);
             if(salesLedgerScheduling.getSchedulingNum().compareTo(salesLedgerScheduling.getFinishedNum()) < 0){
                 throw new RuntimeException("褰撳墠鎺掍骇鏁伴噺澶т簬寰呮帓浜ф暟閲忥紝璇蜂粩缁嗘牳瀵癸紒");
             }
@@ -168,6 +168,9 @@
             SalesLedgerWork.SalesLedgerWorkBuilder salesLedgerWorkBuilder = SalesLedgerWork.builder()
                     .salesLedgerSchedulingId(salesLedgerScheduling.getId())
                     .salesLedgerId(salesLedgerScheduling.getSalesLedgerId())
+                    .remark(processSchedulingDto.getRemark())
+                    .type(processSchedulingDto.getType())
+                    .loss(processSchedulingDto.getLoss())
                     .salesLedgerProductId(salesLedgerScheduling.getSalesLedgerProductId())
                     .schedulingUserId(salesLedgerScheduling.getSchedulingUserId())
                     .schedulingUserName(sysUser.getNickName())
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 bf35f8a..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,6 +84,20 @@
                 .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;
     }
 
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index c378c6a..58fbaa2 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -57,6 +57,9 @@
             <if test="req.supplierName != null and req.supplierName != ''">
                 and t3.supplier_name like  concat('%',#{req.supplierName},'%')
             </if>
+            <if test="req.type != null and req.type != ''">
+                and t1.type = #{req.type}
+            </if>
             <if test="req.timeStr != null and req.timeStr != ''">
                 and t1.create_time like  concat('%',#{req.timeStr},'%')
             </if>
@@ -116,6 +119,9 @@
             <if test="req.supplierName != null and req.supplierName != ''">
                 and t3.supplier_name like  concat('%',#{req.supplierName},'%')
             </if>
+            <if test="req.type != null and req.type != ''">
+                and t1.type = #{req.type}
+            </if>
             <if test="req.timeStr != null and req.timeStr != ''">
                 and t1.create_time like  concat('%',#{req.timeStr},'%')
             </if>
diff --git a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
index 41cbe07..87ede93 100644
--- a/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerWorkMapper.xml
@@ -13,6 +13,9 @@
         t4.finished_num,
         t4.work_hours,
         t4.process,
+        t4.loss,
+        t4.type,
+        t4.remark,
         T1.sales_contract_no,
         T1.customer_contract_no,
         T1.project_name,

--
Gitblit v1.9.3