From 89255f6e9692026ffe4ce20bf4454c963a35ad69 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 26 五月 2025 12:56:30 +0800
Subject: [PATCH] 移库任务优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index b6b4eff..8d97ef5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -84,8 +84,6 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public InTaskMsgDto createInTask(TaskInParam param) {
-        // 鑾峰彇搴撲綅鍙�
-        InTaskMsgDto locNo = getLocNo(param);
 
         // 楠岃瘉璁惧绔欑偣
         DeviceSite deviceSite = validateDeviceSite(param);
@@ -95,6 +93,14 @@
 
         // 鐢熸垚浠诲姟缂栫爜
         String ruleCode = generateTaskCode();
+
+        // 鑾峰彇搴撲綅鍙�
+        InTaskMsgDto locNo = null;
+        try {
+            locNo = getLocNo(param);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
 
         // 鍒涘缓骞朵繚瀛樹换鍔�
         Task task = createTask(ruleCode, locNo.getLocNo(), waitPakin.getBarcode(),
@@ -328,7 +334,7 @@
 //        return locNo;
 //    }
     @Override
-    public InTaskMsgDto getLocNo(TaskInParam param) {
+    public InTaskMsgDto getLocNo(TaskInParam param) throws Exception{
         String matnr = null;
         String batch = null;
         List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getBarcode()));
@@ -379,7 +385,7 @@
             batch = "";
         }
         // 鍒濆鍖栧弬鏁�
-        int deviceNo = 0;      //鍫嗗灈鏈哄彿
+        int channel = 0;      //鍫嗗灈鏈哄彿
         int nearRow = 0;    //鏈�娴呭簱浣嶆帓
         int curRow = 0;     //鏈�娣卞簱浣嶆帓
         int rowCount = 0;   //杞杞
@@ -399,7 +405,7 @@
         for (int i = times; i <= deviceQty * 2; i++) {
             int[] locNecessaryParameters = LocUtils.LocNecessaryParameters(deviceBind, curRow, deviceQty);
             curRow = locNecessaryParameters[1];
-            deviceNo = locNecessaryParameters[2];
+            channel = locNecessaryParameters[2];
             rowCount = locNecessaryParameters[0];
             nearRow = locNecessaryParameters[3];
             break;
@@ -422,7 +428,7 @@
                     if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
                         if (LocUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
                             loc = shallowLoc;
-                            deviceNo = shallowLoc.getDeviceNo();
+                            channel = shallowLoc.getChannel();
                             break;
 
                         }
@@ -459,10 +465,10 @@
         DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                 .eq(DeviceSite::getType, ioType)
                 .eq(DeviceSite::getSite, sourceStaNo)
-                .eq(DeviceSite::getDeviceCode, deviceNo)
+                .eq(DeviceSite::getChannel, channel)
         );
         if (Cools.isEmpty(deviceSite)) {
-            deviceNo = 0;
+            channel = 0;
         } else {
             inTaskMsgDto.setStaNo(Integer.parseInt(deviceSite.getDeviceSite()));
         }
@@ -474,7 +480,7 @@
         // 寮�濮嬫煡鎵惧簱浣� ==============================>>
 
         // 1.鎸夎鍒欐煡鎵惧簱浣�
-        if (Cools.isEmpty(loc) && deviceNo != 0) {
+        if (Cools.isEmpty(loc) && channel != 0) {
             List<Loc> locMasts = null;
             locMasts = locService.list(new LambdaQueryWrapper<Loc>()
                     .eq(Loc::getRow, nearRow)
@@ -561,7 +567,7 @@
         //鏌ヨ褰撳墠搴撲綅绫诲瀷绌哄簱浣� 灏忎簬5涓垯locmast = null
         List<Loc> locTypeLocMasts = locService.list(new LambdaQueryWrapper<Loc>()
                 .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
-                .eq(Loc::getChannel, deviceNo)
+                .eq(Loc::getChannel, channel)
                 .eq(Loc::getType, locTypeDto.getLocType1())
                 .eq(Loc::getAreaId, area)
         );
@@ -587,7 +593,7 @@
         String locNo = loc.getCode();
 
         // 杩斿洖dto
-        inTaskMsgDto.setDeviceNo(deviceNo);
+        inTaskMsgDto.setDeviceNo(channel);
         inTaskMsgDto.setSourceStaNo(sourceStaNo);
 //        inTaskMsgDto.setStaNo();
         inTaskMsgDto.setLocNo(locNo);

--
Gitblit v1.9.1