From 19fe6936cbe4deef1f18186350a71acff4dff58e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 14 一月 2025 17:06:18 +0800
Subject: [PATCH] # 24. PDA出库成功后,界面数据重置,避免重复操作  (已修复) 25. PDA接口请求,添加一个Loading遮档  (已修复) 27. 非平库单据,在平库可做入库操作  (已修复) 29. 平库入库后,订单明细没有添加(已修复) 30. 平库入库后,单据类型没有修改(已修复) 31. 没有绑定播种位,不能进行播种,前后端都需加判定(已修复) 33. 平库入库未修改入库已完成数量(已修复)

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java
index e3317d3..1a98667 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaveSeedServiceImpl.java
@@ -1,23 +1,40 @@
 package com.zy.asrs.wms.asrs.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.apis.wcs.entity.response.SowSeeds;
+import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
-import com.zy.asrs.wms.asrs.mapper.WaveSeedMapper;
-import com.zy.asrs.wms.asrs.entity.WaveSeed;
+import com.zy.asrs.wms.asrs.mapper.*;
+import com.zy.asrs.wms.asrs.service.OrderDetlService;
 import com.zy.asrs.wms.asrs.service.WaveSeedService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 @Service("waveSeedService")
 public class WaveSeedServiceImpl extends ServiceImpl<WaveSeedMapper, WaveSeed> implements WaveSeedService {
 
+    @Autowired
+    private OrderMapper orderMapper;
+    @Autowired
+    private OrderDetlMapper orderDetlMapper;
+    @Autowired
+    private TaskDetlMapper taskDetlMapper;
+
+    @Autowired
+    private CacheSiteMapper cacheSiteMapper;
+
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void waveSeedReview(WaveSeedReviewParam param) {
         if (param == null) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
@@ -40,20 +57,51 @@
             throw new CoolException("鎾鏁版嵁涓嶅瓨鍦�");
         }
 
+        List<CacheSite> sites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderNo, waveSeed.getOrderNo()));
+        if (sites.isEmpty()) {
+            throw new CoolException("褰撳墠璁㈠崟鏈粦瀹氭挱绉嶅簱浣嶏紝璇风粦瀹氬悗鍐嶆搷浣滐紒锛�");
+        }
+
         Double stock = Optional.of(waveSeed.getAnfme() - waveSeed.getWorkQty()).orElse(0.0D);
         if (stock - param.getReviewNum() < 0) {
             throw new CoolException("鎾鏁伴噺宸叉弧");
         }
-
         waveSeed.setWorkQty(waveSeed.getWorkQty() + param.getReviewNum());
+
+        TaskDetl taskDetl = taskDetlMapper.selectOne(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getId, waveSeed.getTaskDetlId()));
+        if (Objects.isNull(taskDetl)) {
+            throw new CoolException("褰撳墠鎾浠诲姟鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+        if (param.getReviewNum() > taskDetl.getAnfme()) {
+            throw new CoolException("鎷h揣鏁伴噺澶т簬褰撳墠浠诲姟闇�姹傛暟锛�" + taskDetl.getAnfme());
+        }
+
+        OrderDetl orderDetl = orderDetlMapper.selectOne(new LambdaUpdateWrapper<OrderDetl>().eq(OrderDetl::getId, waveSeed.getOrderDetlId()));
+        if (Objects.isNull(orderDetl)) {
+            throw new CoolException("褰撳墠鎾璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+        orderDetl.setWorkQty(orderDetl.getWorkQty() + param.getReviewNum());
+        if (orderDetl.getWorkQty() + orderDetl.getQty() > orderDetl.getAnfme()) {
+            throw new CoolException("璇锋牳瀵规槑缁嗘暟閲忓悗锛屽啀杩涜鎿嶄綔!!");
+        }
+        if (orderDetlMapper.updateById(orderDetl) < 1) {
+            throw new CoolException("璁㈠崟鏄庣粏鏁伴噺鏇存柊澶辫触");
+        }
+
         waveSeed.setUpdateTime(new Date());
         if (!this.updateById(waveSeed)) {
             throw new CoolException("鎾澶嶆牳鏇存柊澶辫触");
         }
+
     }
 
     @Override
     public List<SowSeeds> selectSeedsList() {
-       return this.baseMapper.getSeedsList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getStatus, 1));
+       return this.baseMapper.getSeedsList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getStatus, 1).eq(WaveSeed::getDeleted, 0));
+    }
+
+    @Override
+    public int removeSowById(Long id) {
+        return this.baseMapper.update(new LambdaUpdateWrapper<WaveSeed>().eq(WaveSeed::getId, id).set(WaveSeed::getDeleted, 1).set(WaveSeed::getStatus, 0));
     }
 }

--
Gitblit v1.9.1