From 4fb06a58ed5df46f29af1e9fa65cfd40335263ad Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 18 一月 2025 17:06:18 +0800
Subject: [PATCH] # 6. 大屏添加作业类型 (全盘,还是分拣  IOType) 10.平库出库时,当前平库ID是写死在Sql里,需修改 11.平库出库没有判断是否预约出库,且生成拣货单时没有锁定库存,需确认是否考虑回库问题 26. 已拣过货的任务明细,可以再次拣货,拣货明细需添加一个拣货状态 47. 确认发货前,需判断是否已绑定至集货区 48. CTU出库后,库位103不再删除原有库位信息

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java |   65 ++++++++++++++++----------------
 1 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index 953f7f6..fb292e4 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -9,7 +9,6 @@
 import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
 import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
 import com.zy.asrs.wms.asrs.service.*;
-import io.jsonwebtoken.lang.Collections;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -17,11 +16,8 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.Collection;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 @Slf4j
 @Component
@@ -113,11 +109,12 @@
 
 
     /**
+     * // fixme 鑸嶅純
      * 1. 瀹氭椂鎷夊彇闇�瑕佹墽琛屽洖搴撲换鍔″垪琛ㄦ暟鎹紝
      * 2. 鍒犻櫎鍘熷搴撲綅鏄庣粏锛屽師濮嬪簱浣嶇姸鎬佺疆鎴怬.绌哄簱
      * 3.
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void rollbackStock() {
         //鑾峰彇闇�瑕佹墽琛屽洖搴撶殑浠诲姟锛屾洿鏂板簱瀛樹俊鎭�
@@ -328,7 +325,6 @@
     //鎷f枡鍐嶅叆搴�
     private void executeTask53(Task task) {
         Long hostId = task.getHostId();
-        //fixme 灏嗕换鍔″綋鍓�
         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
         if (loc == null) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
@@ -351,37 +347,35 @@
             throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
         }
 
-        //娣诲姞搴撳瓨鏄庣粏
+        //淇敼搴撳瓨鏄庣粏
         for (TaskDetl taskDetl : taskDetls) {
             double anfme = taskDetl.getStock() - taskDetl.getAnfme();
             if (anfme <= 0) {
-                continue;
-            }
+                LocDetl  locdetl =  locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+                        .eq(LocDetl::getLocId, loc.getId())
+                        .eq(LocDetl::getBatch, taskDetl.getBatch())
+                        .eq(LocDetl::getMatId, taskDetl.getMatId()));
 
-            LocDetl locDetl = new LocDetl();
-            locDetl.setLocId(loc.getId());
-            locDetl.setLocNo(loc.getLocNo());
-            locDetl.setMatId(taskDetl.getMatId());
-            locDetl.setMatnr(taskDetl.getMat$().getMatnr());
-            locDetl.setOrderNo(taskDetl.getOrderNo());
-            locDetl.setBatch(taskDetl.getBatch());
-            locDetl.setAnfme(anfme);
-            locDetl.setHostId(hostId);
-            if (!locDetlService.save(locDetl)) {
-                throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触");
-            }
+                List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locdetl.getId()).eq(LocDetlField::getHostId, hostId));
+                if (!detlFields.isEmpty()) {
+                    if (!locDetlFieldService.removeBatchByIds(detlFields)) {
+                        throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触");
+                    }
+                }
 
-            //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
-            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
-            for (TaskDetlField detlField : detlFields) {
-                LocDetlField locDetlField = new LocDetlField();
-                locDetlField.setDetlId(locDetl.getId());
-                locDetlField.setFieldId(detlField.getFieldId());
-                locDetlField.setName(detlField.getName());
-                locDetlField.setValue(detlField.getValue());
-                locDetlField.setHostId(hostId);
-                if (!locDetlFieldService.save(locDetlField)) {
-                    throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触");
+                if (!locDetlService.removeById(locdetl)) {
+                    throw new CoolException("搴撳瓨鏄庣粏鍒犻櫎澶辫触!!");
+                }
+            } else {
+                LocDetl  locdetl =  locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+                        .eq(LocDetl::getLocId, loc.getId())
+                        .eq(LocDetl::getBatch, taskDetl.getBatch())
+                        .eq(LocDetl::getMatId, taskDetl.getMatId()));
+                locdetl.setWorkQty(0.0);
+                locdetl.setAnfme(anfme);
+
+                if (!locDetlService.updateById(locdetl)) {
+                    throw new CoolException("搴撳瓨鏄庣粏鏇存柊澶辫触锛侊紒");
                 }
             }
         }
@@ -423,6 +417,11 @@
         }
     }
 
+    /**
+     * 灏嗗師鏈夊簱瀛樻槑缁嗗垹闄�
+     * 搴撳瓨鐘舵�佽缃负绌哄簱鐘舵��
+     * @param task
+     */
     //鎷f枡鍑哄簱
     private void executeTask103(Task task) {
         Long hostId = task.getHostId();
@@ -432,7 +431,7 @@
         if (loc == null) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
-        if (loc.getLocStsId() != LocStsType.R.val()) {
+        if (loc.getLocStsId() != LocStsType.S.val()) {
             throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害");
         }
         List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());

--
Gitblit v1.9.1