From 56e6e0bf18c39a933aec78762b636fdf2efa8d68 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 08 十二月 2025 17:59:24 +0800
Subject: [PATCH] 外购成品检验报告生成功能

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 0215407..a515e38 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -20,22 +20,24 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.basic.dto.*;
+import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+import com.ruoyi.basic.mapper.StandardTreeMapper;
 import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.common.config.WechatProperty;
 import com.ruoyi.common.constant.InsOrderTypeConstants;
 import com.ruoyi.common.core.domain.Result;
 import com.ruoyi.common.core.domain.entity.User;
-import com.ruoyi.common.config.WechatProperty;
+import com.ruoyi.common.enums.OrderType;
+import com.ruoyi.common.numgen.NumberGenerator;
 import com.ruoyi.common.utils.LimsDateUtil;
 import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.WxCpUtils;
 import com.ruoyi.common.utils.api.IfsApiUtils;
-import com.ruoyi.common.utils.api.MesApiUtils;
+import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.inspect.dto.CopperInsOrderDto;
 import com.ruoyi.inspect.dto.OrderSplitDTO;
 import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
-import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
-import com.ruoyi.basic.mapper.StandardTreeMapper;
 import com.ruoyi.inspect.dto.SampleProductDto;
 import com.ruoyi.inspect.excel.OrderSplitExcelData;
 import com.ruoyi.inspect.excel.OrderSplitExcelListener;
@@ -46,13 +48,10 @@
 import com.ruoyi.inspect.pojo.IfsSplitOrderRecord;
 import com.ruoyi.inspect.pojo.InsOrder;
 import com.ruoyi.inspect.pojo.InsReport;
-import com.ruoyi.inspect.pojo.InsUnqualifiedHandler;
 import com.ruoyi.inspect.service.IfsSplitOrderRecordService;
 import com.ruoyi.inspect.service.InsOrderService;
 import com.ruoyi.inspect.service.InsReportService;
 import com.ruoyi.inspect.service.RawMaterialOrderService;
-import com.ruoyi.common.numgen.NumberGenerator;
-import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
 import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
 import com.ruoyi.system.mapper.UserMapper;
@@ -152,11 +151,15 @@
 
     @Override
     public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+        if(ifsInventoryQuantity.getIsInspect().equals(1)){
+            ifsInventoryQuantity.setOrderType(OrderType.RAW.getValue());
+        }
         return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
     }
 
     @Override
     public IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) {
+        ifsInventoryQuantityDto.setOrderType(OrderType.RAW.getValue());
         return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto));
     }
 
@@ -167,13 +170,14 @@
      * @return
      */
     @Override
-    public int inspectionReport(List<Long> ids) {
+    public int inspectionReport(List<Long> ids,String orderType) {
         Integer userId = SecurityUtils.getUserId().intValue();
         ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                 .in(IfsInventoryQuantity::getId, ids)
                 .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
                 .set(IfsInventoryQuantity::getDeclareUserId, userId)
                 .set(IfsInventoryQuantity::getIsInspect, 1)
+                .set(IfsInventoryQuantity::getOrderType,orderType)
                 .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
         );
         threadPoolTaskExecutor.execute(() -> {
@@ -235,6 +239,12 @@
     @Override
     public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) {
         Integer userId = SecurityUtils.getUserId().intValue();
+        boolean validateValue = OrderType.validateValue(ifsInventoryQuantity.getOrderType());
+        if(!validateValue){
+            throw new ErrorException("鎶ユ澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
+        }
+        //鎵规鍙峰瓧姣嶈浆澶у啓
+        ifsInventoryQuantity.setUpdateBatchNo(ifsInventoryQuantity.getUpdateBatchNo().toUpperCase(Locale.ROOT));
         ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
                 .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
                 .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
@@ -242,6 +252,7 @@
                 .set(IfsInventoryQuantity::getIsInspect, 1)
                 .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
                 .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
+                .set(IfsInventoryQuantity::getOrderType,ifsInventoryQuantity.getOrderType())
         );
 
         threadPoolTaskExecutor.execute(() -> {
@@ -393,8 +404,9 @@
         String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
         ifsInventoryQuantityDto.setBeginDeclareDate(null);
         ifsInventoryQuantityDto.setEndDeclareDate(null);
-
+        ifsInventoryQuantityDto.setOrderType(OrderType.RAW.getValue());
         IPage<IfsInventoryQuantitySupplierDto> ifsByOver = standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+        ifsByOver.getRecords().forEach(r->r.setOrderTypeName(OrderType.getLabelByValue(r.getOrderType())));
         return ifsByOver;
     }
 
@@ -511,6 +523,9 @@
         ifsInventoryQuantity.setIsSource(0);
         ifsInventoryQuantity.setState(0);
         ifsInventoryQuantity.setIsFinish(0);
+        if(!OrderType.validateValue(ifsInventoryQuantity.getOrderType())){
+            throw new ErrorException("鏂板鎶ユ淇℃伅澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
+        }
         ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
     }
 
@@ -771,7 +786,7 @@
         String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
         ifsInventoryQuantityDto.setBeginDeclareDate(null);
         ifsInventoryQuantityDto.setEndDeclareDate(null);
-
+        ifsInventoryQuantityDto.setOrderType(OrderType.RAW.getValue());
         return standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
     }
 
@@ -923,7 +938,7 @@
         if(Objects.nonNull(splitOrderList) && !splitOrderList.isEmpty()){
             List<Long> ids = splitOrderList.stream().map(IfsInventoryQuantity::getId).collect(Collectors.toList());
             ids.add(ifsInventoryQuantity.getId());
-            this.inspectionReport(ids);
+            this.inspectionReport(ids,OrderType.RAW.getValue());
         }
         //鍕鹃�夊悓姝ュ埌MES锛屼繚瀛樿鍗曟媶鍒嗚褰�
         if(orderSplitDTO.getPushToMes()){
@@ -941,6 +956,12 @@
         return false;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
+    public Long getOrderCountByIfsId(Long ifsId) {
+        return insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getIfsInventoryId,ifsId).ne(InsOrder::getState,-1));
+    }
+
     /**
      * 娣诲姞宸ユ椂
      * @param insOrder

--
Gitblit v1.9.3