From 4e45da16b0a307dd56a85936c7319e559f27de92 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 13:52:37 +0800
Subject: [PATCH] feat(stock): 实现质检库存管理和报废流程

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java           |  121 +++++------------------------
 src/main/java/com/ruoyi/stock/pojo/StockInventory.java                                |    3 
 src/main/java/com/ruoyi/stock/pojo/StockInRecord.java                                 |    4 
 src/main/resources/mapper/stock/StockOutRecordMapper.xml                              |    3 
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |    6 +
 src/main/resources/mapper/stock/StockInventoryMapper.xml                              |    6 +
 src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java                         |    5 +
 src/main/resources/mapper/stock/StockInRecordMapper.xml                               |    3 
 src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java                       |   15 +++
 src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java       |   20 +++-
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java           |    1 
 src/main/resources/mapper/stock/StockUninventoryMapper.xml                            |    6 +
 src/main/java/com/ruoyi/stock/pojo/StockUninventory.java                              |    3 
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java             |    1 
 14 files changed, 90 insertions(+), 107 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java b/src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java
index 6da3e3c..accb43e 100644
--- a/src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/common/enums/StockRecordTypeEnum.java
@@ -15,7 +15,10 @@
     PURCHASE_STOCK_IN(7, "閲囪喘-鍏ュ簱"),
     SALE_STOCK_OUT(8, "閿�鍞�-鍑哄簱"),
     CUSTOMIZATION_UNSTOCK_IN(9, "涓嶅悎鏍艰嚜瀹氫箟鍏ュ簱"),
-    CUSTOMIZATION_UNSTOCK_OUT(10, "涓嶅悎鏍艰嚜瀹氫箟鍑哄簱");
+    CUSTOMIZATION_UNSTOCK_OUT(10, "涓嶅悎鏍艰嚜瀹氫箟鍑哄簱"),
+    QUALITYINSPECT_STOCK_IN(11, "璐ㄦ-鍚堟牸鍏ュ簱"),
+    QUALITYINSPECT_UNSTOCK_IN(12, "璐ㄦ-涓嶅悎鏍煎叆搴�");
+
 
     private final Integer code;
     private final String value;
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index d315003..f9a21d6 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -1,16 +1,21 @@
 package com.ruoyi.procurementrecord.utils;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
 import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.pojo.StockInRecord;
+import com.ruoyi.stock.service.StockInRecordService;
 import com.ruoyi.stock.service.StockInventoryService;
 import com.ruoyi.stock.service.StockUninventoryService;
+import com.ruoyi.stock.service.impl.StockInRecordServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -21,6 +26,7 @@
     private final ProcurementRecordMapper procurementRecordMapper;
     private final StockUninventoryService stockUninventoryService;
     private final StockInventoryService stockInventoryService;
+    private final StockInRecordService stockInRecordService;
 
     // 鑾峰彇鍟嗗搧鍏ュ簱鏁伴噺,鍑哄簱鏁伴噺,鍓╀綑搴撳瓨
     public Map<String, BigDecimal> getStockQuantity(Long productModelId) {
@@ -100,4 +106,13 @@
         stockInventoryDto.setProductModelId(productModelId);
         stockInventoryService.subtractStockInventory(stockInventoryDto);
     }
+
+    //涓嶅悎鏍煎簱瀛樺垹闄�
+    public void deleteStockRecord(Long recordId, Integer recordType) {
+        StockInRecord one = stockInRecordService.getOne(new QueryWrapper<StockInRecord>()
+                .lambda().eq(StockInRecord::getRecordId, recordId)
+                .eq(StockInRecord::getRecordType, recordType));
+
+        stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+    }
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 9d466ad..b63409c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.pojo.Product;
 import com.ruoyi.basic.pojo.ProductModel;
+import com.ruoyi.common.enums.StockRecordTypeEnum;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
@@ -272,6 +273,9 @@
             salesLedgerProductionAccountingMapper.insert(salesLedgerProductionAccounting);
         }
         //濡傛灉鎶ュ簾鏁伴噺>0,闇�瑕佽繘鍏ユ姤搴熺殑搴撳瓨
+        if (dto.getScrapQty().compareTo(BigDecimal.ZERO) > 0) {
+            stockUtils.addUnStock(productModel.getId(), dto.getScrapQty(), StockRecordTypeEnum.PRODUCTION_SCRAP.getCode(), productionProductMain.getId());
+        }
         return true;
     }
 
@@ -318,6 +322,8 @@
                 .eq(ProcurementRecordOut::getSalesLedgerProductId, productionProductMain.getId()));
         productionProductInputMapper.delete(new LambdaQueryWrapper<ProductionProductInput>()
                 .eq(ProductionProductInput::getProductMainId, productionProductMain.getId()));
+        //鍒犻櫎鎶ュ簾鐨勫叆搴撹褰�
+        stockUtils.deleteStockRecord(productionProductMain.getId(), StockRecordTypeEnum.PRODUCTION_SCRAP.getCode());
         // 鍒犻櫎涓昏〃
         productionProductMainMapper.deleteById(productionProductMain.getId());
         return true;
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 1ae24e9..fab0ebe 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.config.Configure;
+import com.ruoyi.common.enums.StockRecordTypeEnum;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -17,6 +18,7 @@
 import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.mapper.QualityTestStandardMapper;
@@ -47,8 +49,9 @@
 @AllArgsConstructor
 @Service
 @Transactional(rollbackFor = Exception.class)
-public class QualityInspectServiceImpl extends ServiceImpl<QualityInspectMapper, QualityInspect>  implements IQualityInspectService {
+public class QualityInspectServiceImpl extends ServiceImpl<QualityInspectMapper, QualityInspect> implements IQualityInspectService {
 
+    private final StockUtils stockUtils;
     private QualityInspectMapper qualityInspectMapper;
 
     private IQualityInspectParamService qualityInspectParamService;
@@ -64,7 +67,7 @@
     @Override
     public int add(QualityInspectDto qualityInspectDto) {
         QualityInspect qualityInspect = new QualityInspect();
-        BeanUtils.copyProperties(qualityInspectDto,qualityInspect);
+        BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
         qualityInspect.setInspectState(0);//榛樿鏈彁浜�
         qualityInspectMapper.insert(qualityInspect);
         for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {
@@ -79,7 +82,7 @@
         QualityInspect qualityInspect = qualityInspectMapper.selectById(id);
         List<QualityInspectParam> qualityInspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, id));
         QualityInspectDto qualityInspectDto = new QualityInspectDto();
-        BeanUtils.copyProperties(qualityInspect,qualityInspectDto);
+        BeanUtils.copyProperties(qualityInspect, qualityInspectDto);
         qualityInspectDto.setQualityInspectParams(qualityInspectParams);
         return qualityInspectDto;
     }
@@ -89,96 +92,18 @@
     public int submit(QualityInspect inspect) {
         QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
         /*鍒ゆ柇涓嶅悎鏍�*/
-        if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("涓嶅悎鏍�")){
+        if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("涓嶅悎鏍�")) {
             QualityUnqualified qualityUnqualified = new QualityUnqualified();
-            BeanUtils.copyProperties(qualityInspect,qualityUnqualified);
+            BeanUtils.copyProperties(qualityInspect, qualityUnqualified);
             qualityUnqualified.setInspectState(0);//寰呭鐞�
             List<QualityInspectParam> inspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspect.getId()));
             String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(","));
-            qualityUnqualified.setDefectivePhenomena(text+"杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞�
+            qualityUnqualified.setDefectivePhenomena(text + "杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞�
             qualityUnqualified.setInspectId(qualityInspect.getId());
             qualityUnqualifiedMapper.insert(qualityUnqualified);
-        }
-
-        LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (qualityInspect.getInspectType() == 0) {
-            if ("鍚堟牸".equals(qualityInspect.getCheckResult())) {
-                ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
-                procurementRecordOutAdd.setType(1);
-                procurementRecordOutAdd.setTypeName("閲囪喘鍘熸潗鏂欐楠屽悎鏍煎叆搴�");
-                procurementRecordOutAdd.setNickName(loginUser.getNickName());
-                procurementRecordOutAdd.setPurchaseLedgerId(Math.toIntExact(qualityInspect.getPurchaseLedgerId()));
-                if (qualityInspect.getPurchaseLedgerId() == null) {
-                    throw new BaseException("璇烽�夋嫨閲囪喘鍗�");
-                }
-                SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(qualityInspect.getProductId());
-
-                ArrayList<Details> detailss = new ArrayList<>();
-                Details details = new Details();
-                details.setId(Math.toIntExact(salesLedgerProduct.getId()));
-                details.setInboundQuantity(qualityInspect.getQuantity());
-                details.setWarnNum(salesLedgerProduct.getWarnNum());
-                details.setUnitPrice(salesLedgerProduct.getTaxInclusiveUnitPrice());
-                details.setTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice());
-                details.setProductModelId(qualityInspect.getProductModelId());
-                detailss.add( details);
-                procurementRecordOutAdd.setDetails(detailss);
-                procurementRecordOutAdd.setQualityInspectId(qualityInspect.getId());
-                procurementRecordService.add(procurementRecordOutAdd);
-            }
-        }else if (qualityInspect.getInspectType() == 1) {
-            //鏌ヨUnitPrice/TotalPrice
-            ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
-            procurementRecordOutAdd.setType(2);
-            procurementRecordOutAdd.setTypeName("鐢熶骇杩囩▼妫�楠屽悎鏍煎叆搴�");
-            procurementRecordOutAdd.setNickName(loginUser.getNickName());
-            List<Details> details = new ArrayList<>();
-            Details details1 = new Details();
-            details1.setInboundQuantity(qualityInspect.getQuantity());
-            details1.setProductModelId(qualityInspect.getProductModelId());
-            procurementRecordOutAdd.setDetails(details);
-
-            ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
-                    .salesLedgerProductId(0)
-                    .inboundBatches( "鐢熶骇鍗婃垚鍝佸叆搴�")
-                    .inboundNum(details1.getInboundQuantity())
-                    .type(2)
-                    .warnNum(new BigDecimal(0))
-                    .unitPrice(new BigDecimal(0))
-                    .totalPrice(new BigDecimal(0))
-                    .createTime(LocalDateTime.now())
-                    .createUser(loginUser.getUserId())
-                    .updateTime(LocalDateTime.now())
-                    .updateUser(loginUser.getUserId())
-                    .createBy(procurementRecordOutAdd.getNickName())
-                    .productModelId(details1.getProductModelId())
-                    .qualityInspectId(qualityInspect.getId());
-            procurementRecordService.save(procurementRecordBuilder.build());
-
-
-
-        }else if (qualityInspect.getInspectType() == 2) {
-            //鏌ヨUnitPrice/TotalPrice
-            if (ObjectUtils.isNull(qualityInspect.getProductMainId())){
-                //濡傛灉鏄墜鍔ㄦ柊澧炵殑鍑哄巶妫�
-            }else {
-                SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectSalesLedgerProductByMainId(qualityInspect.getProductMainId());
-                ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
-                procurementRecordOutAdd.setType(2);
-                procurementRecordOutAdd.setTypeName("鐢熶骇鍑哄巶妫�楠屽悎鏍煎叆搴�");
-                procurementRecordOutAdd.setNickName(loginUser.getNickName());
-                List<Details> details = new ArrayList<>();
-                Details details1 = new Details();
-                details1.setInboundQuantity(qualityInspect.getQuantity());
-                details1.setId(Math.toIntExact(salesLedgerProduct.getId()));
-                details1.setUnitPrice(salesLedgerProduct.getTaxInclusiveUnitPrice());
-                details1.setTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice());
-                details1.setProductModelId(salesLedgerProduct.getProductModelId());
-                details.add(details1);
-                procurementRecordOutAdd.setDetails(details);
-                procurementRecordOutAdd.setQualityInspectId(qualityInspect.getId());
-                procurementRecordService.add(procurementRecordOutAdd);
-            }
+        } else {
+            //鍚堟牸鐩存帴鍏ュ簱
+            stockUtils.addStock(inspect.getProductModelId(), inspect.getQuantity(), StockRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), inspect.getId());
         }
         qualityInspect.setInspectState(1);//宸叉彁浜�
         return qualityInspectMapper.updateById(qualityInspect);
@@ -188,16 +113,16 @@
     @Override
     public void down(HttpServletResponse response, QualityInspect qualityInspect) {
         QualityInspect inspect = qualityInspectMapper.selectById(qualityInspect.getId());
-        String inspectType="";
-        switch (inspect.getInspectType()){
+        String inspectType = "";
+        switch (inspect.getInspectType()) {
             case 0:
-                inspectType="鍘熸潗鏂欐楠�";
+                inspectType = "鍘熸潗鏂欐楠�";
                 break;
             case 1:
-                inspectType="杩囩▼妫�楠�";
+                inspectType = "杩囩▼妫�楠�";
                 break;
             case 2:
-                inspectType="鍑哄巶妫�楠�";
+                inspectType = "鍑哄巶妫�楠�";
                 break;
         }
         List<QualityInspectParam> paramList = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspect.getId()));
@@ -239,31 +164,31 @@
     @Override
     public int updateQualityInspect(QualityInspectDto qualityInspectDto) {
         if (ObjectUtils.isNotNull(qualityInspectDto.getQualityInspectParams())) {
-            qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId,qualityInspectDto.getId()));
+            qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, qualityInspectDto.getId()));
             for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {
                 qualityInspectParam.setInspectId(qualityInspectDto.getId());
             }
             qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams());
         }
         QualityInspect qualityInspect = new QualityInspect();
-        BeanUtils.copyProperties(qualityInspectDto,qualityInspect);
+        BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
         return qualityInspectMapper.updateById(qualityInspect);
     }
 
     @Override
     public IPage<QualityInspect> qualityInspectListPage(Page page, QualityInspect qualityInspect) {
-        return qualityInspectMapper.qualityInspectListPage(page,qualityInspect);
+        return qualityInspectMapper.qualityInspectListPage(page, qualityInspect);
     }
 
     @Override
     public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) {
-        List<QualityInspect> qualityInspects =qualityInspectMapper.qualityInspectExport(qualityInspect);
+        List<QualityInspect> qualityInspects = qualityInspectMapper.qualityInspectExport(qualityInspect);
         ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class);
-        switch (qualityInspect.getInspectType()){
+        switch (qualityInspect.getInspectType()) {
             case 0:
                 util.exportExcel(response, qualityInspects, "鍘熸潗鏂欐楠屽鍑�");
                 break;
-            case  1:
+            case 1:
                 util.exportExcel(response, qualityInspects, "杩囩▼妫�楠屽鍑�");
                 break;
             case 2:
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index 796d798..f2e615d 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -7,8 +7,10 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.StockRecordTypeEnum;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
 import com.ruoyi.production.mapper.ProductProcessRouteMapper;
 import com.ruoyi.production.mapper.ProductWorkOrderMapper;
@@ -22,6 +24,8 @@
 import com.ruoyi.quality.pojo.QualityUnqualified;
 import com.ruoyi.quality.service.IQualityInspectService;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.service.StockUninventoryService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -33,8 +37,9 @@
 
 @AllArgsConstructor
 @Service
-public class QualityUnqualifiedServiceImpl extends ServiceImpl<QualityUnqualifiedMapper, QualityUnqualified>  implements IQualityUnqualifiedService {
+public class QualityUnqualifiedServiceImpl extends ServiceImpl<QualityUnqualifiedMapper, QualityUnqualified> implements IQualityUnqualifiedService {
 
+    private final StockUtils stockUtils;
     private QualityUnqualifiedMapper qualityUnqualifiedMapper;
     private IQualityInspectService qualityInspectService;
     private ProductOrderService productOrderService;
@@ -42,16 +47,16 @@
     private ProductProcessRouteMapper productProcessRouteMapper;
     private ProductProcessRouteItemMapper productProcessRouteItemMapper;
     private ProductWorkOrderMapper productWorkOrderMapper;
-
+    private StockUninventoryService stockUninventoryService;
 
     @Override
     public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
-        return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page,qualityUnqualified);
+        return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page, qualityUnqualified);
     }
 
     @Override
     public void qualityUnqualifiedExport(HttpServletResponse response, QualityUnqualified qualityUnqualified) {
-        List<QualityUnqualified> qualityUnqualifieds =qualityUnqualifiedMapper.qualityUnqualifiedExport(qualityUnqualified);
+        List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.qualityUnqualifiedExport(qualityUnqualified);
         ExcelUtil<QualityUnqualified> util = new ExcelUtil<QualityUnqualified>(QualityUnqualified.class);
         util.exportExcel(response, qualityUnqualifieds, "涓嶅悎鏍肩鐞嗗鍑�");
     }
@@ -64,7 +69,7 @@
             case "杩斾慨":
             case "杩斿伐":
                 //鍒ゆ柇璐ㄦ琛ㄦ槸鍚︽湁鐩稿叧鐨勬姤宸d,濡傛灉鏈夋姤宸d,閭d箞杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
-                if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())){
+                if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())) {
                     //杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
                     ProductOrder productOrder = productionProductMainMapper.getOrderByMainId(qualityInspect.getProductMainId());
                     ProductOrder order = new ProductOrder();
@@ -76,7 +81,7 @@
                     order.setEndTime(null);
                     productOrderService.save(order);
                     //鏂板鐢熶骇璁㈠崟涓嬬殑宸ヨ壓璺嚎涓昏〃
-                    ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectList(Wrappers.<ProductProcessRoute>lambdaQuery().eq(ProductProcessRoute::getProductOrderId,productOrder.getId()).orderByDesc(ProductProcessRoute::getId)).get(0);
+                    ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectList(Wrappers.<ProductProcessRoute>lambdaQuery().eq(ProductProcessRoute::getProductOrderId, productOrder.getId()).orderByDesc(ProductProcessRoute::getId)).get(0);
                     ProductProcessRoute newProcessRoute = new ProductProcessRoute();
                     BeanUtils.copyProperties(productProcessRoute, newProcessRoute);
                     newProcessRoute.setId(null);
@@ -125,9 +130,12 @@
                 }
                 break;
             case "鎶ュ簾":
+                //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
+                stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockRecordTypeEnum.DEFECTIVE_SCRAP.getCode(),unqualified.getId());
                 break;
             case "璁╂鏀捐":
                 //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
+                stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockRecordTypeEnum.DEFECTIVE_PASS.getCode(),unqualified.getId());
                 qualityInspect.setCheckResult("鍚堟牸");
                 qualityInspectService.submit(qualityInspect);
                 break;
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
index a20724a..395d18f 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
@@ -28,10 +28,10 @@
     @ApiModelProperty(value = "鍏ュ簱鏁伴噺")
     private BigDecimal stockInNum;
 
-    @ApiModelProperty(value = "璁板綍绫诲瀷  閲囪喘鍏ュ簱/鐢熶骇鍏ュ簱/璐ㄩ噺鍏ュ簱/鑷畾涔夊叆搴�")
+    @ApiModelProperty(value = "璁板綍绫诲瀷  鏋氫妇")
     private String recordType;
 
-    @ApiModelProperty(value = "璁板綍ID  salesProductId/ProductrMainId/qualityInspectId/0")
+    @ApiModelProperty(value = "璁板綍ID  ")
     private Long recordId;
 
     @ApiModelProperty(value = "浜у搧瑙勬牸ID")
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java b/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
index 99e72a5..4568dcc 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockInventory.java
@@ -62,4 +62,7 @@
 
     @ApiModelProperty("棰勮鏁伴噺")
     private Integer warnNum;
+
+    @ApiModelProperty("澶囨敞")
+    private String remark;
 }
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java b/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java
index 4496101..6403dba 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockUninventory.java
@@ -46,4 +46,7 @@
     @ApiModelProperty("鐗堟湰鍙�")
     private Integer version;
 
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
 }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index 15bc09e..d30e7bc 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -72,6 +72,7 @@
             newStockInventory.setProductModelId(stockInventoryDto.getProductModelId());
             newStockInventory.setQualitity(stockInventoryDto.getQualitity());
             newStockInventory.setVersion(1);
+            newStockInventory.setRemark(stockInventoryDto.getRemark());
             stockInventoryMapper.insert(newStockInventory);
         }else {
              stockInventoryMapper.updateAddStockInventory(stockInventoryDto);
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index bd51ef2..c896821 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -58,6 +58,7 @@
             newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
             newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
             newStockUnInventory.setVersion(1);
+            newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
             stockUninventoryMapper.insert(newStockUnInventory);
         }else {
             stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index 91f08df..0eee4f3 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -23,6 +23,9 @@
             <if test="params.type != null and params.type != ''">
                 and sir.type = #{params.type}
             </if>
+            <if test="params.recordType != null and params.recordType != ''">
+                and sir.record_type = #{params.recordType}
+            </if>
         </where>
         order by sir.id desc
     </select>
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 705eea3..b39d329 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -22,6 +22,9 @@
            <if test="ew.version != null">
                version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}
@@ -35,6 +38,9 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index 28e61e4..b021e71 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -38,6 +38,9 @@
             <if test="params.type != null and params.type != ''">
                 and sor.type = #{params.type}
             </if>
+            <if test="params.recordType != null and params.recordType != ''">
+                and sor.record_type = #{params.recordType}
+            </if>
         </where>
         order by sor.id desc
     </select>
diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index c76ff2d..70b4471 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -20,6 +20,9 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
@@ -33,6 +36,9 @@
             <if test="ew.version != null">
                 version = version + 1,
             </if>
+            <if test="ew.remark != null and ew.remark !=''">
+                remark = #{ew.remark},
+            </if>
             update_time = now()
         </set>
         where product_model_id = #{ew.productModelId}

--
Gitblit v1.9.3