From b5e8045d5f5b5401b696db12f62fdbcc86dc5c5d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 10 四月 2025 11:40:02 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 90 insertions(+), 1 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
index 73eeacb..e4330bc 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
@@ -1,12 +1,15 @@
 package com.vincent.rsf.server.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.controller.params.IsptOrderParam;
 import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem;
 import com.vincent.rsf.server.manager.entity.AsnOrder;
 import com.vincent.rsf.server.manager.entity.AsnOrderItem;
 import com.vincent.rsf.server.manager.entity.QlyIsptItem;
+import com.vincent.rsf.server.manager.enums.QlyIsptStatus;
 import com.vincent.rsf.server.manager.mapper.QlyInspectMapper;
 import com.vincent.rsf.server.manager.entity.QlyInspect;
 import com.vincent.rsf.server.manager.service.AsnOrderItemService;
@@ -16,13 +19,17 @@
 import com.vincent.rsf.server.manager.service.QlyIsptItemService;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service("qlyInspectService")
 public class QlyInspectServiceImpl extends ServiceImpl<QlyInspectMapper, QlyInspect> implements QlyInspectService {
@@ -65,7 +72,7 @@
         if (Objects.isNull(inspect.getWkType())) {
             throw new CoolException("涓氬姟绫诲瀷涓嶈兘涓虹┖锛侊紒");
         }
-        String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_WK_TYPE, inspect);
+        String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, inspect);
         inspect.setCode(code);
         if (!this.saveOrUpdate(inspect)) {
             throw new CoolException("璐ㄦ鍗曚繚瀛樺け璐ワ紒锛�");
@@ -87,4 +94,86 @@
         }
         return R.ok("淇濆瓨鎴愬姛锛侊紒");
     }
+
+    /**
+    * @author Ryan
+    * @description 鑾峰彇鏈川妫�鍗曟嵁
+    * @param
+    * @return
+    * @time 2025/3/31 10:12
+    */
+    @Override
+    public List<AsnOrder> getUnInspect(Map<String, Object> params) {
+        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
+                .eq(AsnOrder::getStatus, 1)
+                .eq(!Objects.isNull(params.get("asnCode")) && StringUtils.isNotBlank(params.get("asnCode").toString()), AsnOrder::getCode, StringUtils.isNotBlank(params.get("asnCode").toString()) ? params.get("asnCode").toString() : null));
+        return asnOrders;
+    }
+
+    /**
+    * @author Ryan
+    * @description 淇濆瓨
+    * @param
+    * @return
+    * @time 2025/3/31 14:54
+    */
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveSelected(IsptOrderParam param, Long loginUserId) {
+        if (Objects.isNull(param.getIds()) || param.getIds().isEmpty()) {
+            throw new CoolException("鍗曟嵁ID涓嶈兘涓虹┖锛侊紒");
+        }
+        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).eq(AsnOrder::getNtyStatus, 0));
+        if (asnOrders.isEmpty()) {
+            throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+        }
+        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, param.getIds()));
+        if (orderItems.isEmpty()) {
+            throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+        Map<Long, List<AsnOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(AsnOrderItem::getAsnId));
+        for (AsnOrder asnOrder : asnOrders) {
+            QlyInspect inspect = new QlyInspect();
+            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, null);
+            if (StringUtils.isBlank(ruleCode)) {
+                throw new CoolException("绛栫暐閿欒锛氳妫�鏌ョ瓥鐣ャ��" + SerialRuleCode.SYS_INSPECT_CODE + "銆嶆槸鍚﹁缃纭紒锛�");
+            }
+            inspect.setCode(ruleCode)
+                    .setWkType(asnOrder.getWkType())
+                    .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val)
+                    .setCreateBy(loginUserId)
+                    .setAsnId(asnOrder.getId())
+                    .setAsnCode(asnOrder.getCode());
+            /**鑾峰彇鍗曟嵁鏄庣粏*/
+            List<AsnOrderItem> asnOrderItems = listMap.get(asnOrder.getId());
+            if (Objects.isNull(asnOrderItems) || asnOrderItems.isEmpty()) {
+                continue;
+            }
+            double rcptQty = asnOrderItems.stream().mapToDouble(AsnOrderItem::getQty).sum();
+            double anfme = asnOrderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
+            inspect.setRcptQty(rcptQty).setDlyQty(anfme);
+            if (!this.save(inspect)) {
+                throw new CoolException("鍗曟嵁" + asnOrder.getCode() + "淇濆瓨澶辫触锛侊紒");
+            }
+            List<QlyIsptItem> items = new ArrayList<>();
+            for (AsnOrderItem orderItem : asnOrderItems) {
+                QlyIsptItem isptItem = new QlyIsptItem();
+                BeanUtils.copyProperties(orderItem, isptItem);
+                isptItem.setAsnItemId(orderItem.getId())
+                        .setIspectId(inspect.getId())
+                        .setRcptQty(orderItem.getQty())
+                        .setCreateBy(loginUserId)
+                        .setDlyQty(orderItem.getAnfme());
+                items.add(isptItem);
+            }
+            if (!qlyIsptItemService.saveBatch(items)) {
+                throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
+            }
+        }
+        if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).set(AsnOrder::getNtyStatus, 1))) {
+            throw new CoolException("鎶ユ鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+        }
+        return R.ok("淇濆瓨鎴愬姛锛侊紒");
+    }
 }

--
Gitblit v1.9.1