From e9dda95b4c7b842034cc8737209c0621a50a9cc5 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 30 四月 2025 14:22:29 +0800
Subject: [PATCH] #报检

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |   59 +++++++++++++++++++++++++++--------------------------------
 1 files changed, 27 insertions(+), 32 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 295ccdf..d55b581 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
@@ -7,7 +7,6 @@
 import com.vincent.rsf.server.api.entity.dto.InTaskMsgDto;
 import com.vincent.rsf.server.api.entity.dto.LocTypeDto;
 import com.vincent.rsf.server.api.controller.params.TaskInParam;
-import com.vincent.rsf.server.api.entity.enums.LocUseStatusType;
 import com.vincent.rsf.server.api.entity.enums.OrderType;
 import com.vincent.rsf.server.api.entity.enums.TaskStsType;
 import com.vincent.rsf.server.api.entity.enums.TaskType;
@@ -316,7 +315,11 @@
         if (Cools.isEmpty(deviceSites)) {
             throw new CoolException("鏈壘鍒扮珯鐐硅矾寰勪俊鎭�");
         }
-        WarehouseAreas warehouseArea = warehouseAreasService.getById(param.getArea());
+        DeviceBind deviceBind = deviceBindService.getById(LocUtils.getAreaType(param.getSourceStaNo()));
+        if (Cools.isEmpty(deviceBind)) {
+            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
+        }
+        WarehouseAreas warehouseArea = warehouseAreasService.getById(deviceBind.getTypeId());
         if (Cools.isEmpty(warehouseArea)) {
             throw new CoolException("鏈壘鍒版墍灞炲簱鍖轰俊鎭�");
         }
@@ -324,18 +327,18 @@
         InTaskMsgDto dto = null;
         switch (warehouseArea.getType()) {
             case "CRN": //鍫嗗灈鏈�
-                dto = getLocNoCrn(param.getArea(), param.getSourceStaNo(), matnr,batch, locTypeDto, 0, param.getIoType());
+                dto = getLocNoCrn(deviceBind,warehouseArea.getId(), param.getSourceStaNo(), matnr,batch, locTypeDto, 0, param.getIoType());
                 break;
             case "SXC": //鍥涘悜搴�
                 break;
             case "CTU": //ctu
-                dto = getLocNoCtu(param.getArea(), param.getSourceStaNo(), matnr,batch, locTypeDto, 0, param.getIoType());
+                dto = getLocNoCtu(deviceBind,warehouseArea.getId(), param.getSourceStaNo(), matnr,batch, locTypeDto, 0, param.getIoType());
                 break;
         }
         return dto;
     }
 
-    private InTaskMsgDto getLocNoCrn(Integer area,Integer sourceStaNo, String matnr, String batch,LocTypeDto locTypeDto, int times,Integer ioType){
+    private InTaskMsgDto getLocNoCrn(DeviceBind deviceBind,Long area,Integer sourceStaNo, String matnr, String batch,LocTypeDto locTypeDto, int times,Integer ioType){
         if (Cools.isEmpty(matnr)) {  //鐗╂枡鍙�
             matnr = "";
         }
@@ -350,10 +353,7 @@
         Loc loc = null;     // 鐩爣搴撲綅
 
         InTaskMsgDto inTaskMsgDto = new InTaskMsgDto();
-        DeviceBind deviceBind = deviceBindService.getById(LocUtils.getAreaType(sourceStaNo));
-        if (Cools.isEmpty(deviceBind)) {
-            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
-        }
+
         int sRow = deviceBind.getStartRow();
         int eRow = deviceBind.getEndRow();
         int deviceQty = deviceBind.getDeviceQty();
@@ -386,7 +386,7 @@
                     String shallowLocNo = LocUtils.getShallowLoc(slaveProperties, loc1.getCode());
                     // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
                     Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode,shallowLocNo));
-                    if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocUseStatusType.Empty_Slot.type)) {
+                    if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
                         if (LocUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
                                 loc = shallowLoc;
                                 deviceNo = shallowLoc.getDeviceNo();
@@ -445,7 +445,7 @@
             List<Loc> locMasts = null;
             locMasts = locService.list(new LambdaQueryWrapper<Loc>()
                     .eq(Loc::getRow, nearRow)
-                    .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                    .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                     .eq(Loc::getType, locTypeDto.getLocType1())
                     .eq(Loc::getAreaId,area)
                     .orderByAsc(Loc::getLev)
@@ -460,7 +460,7 @@
                     //鐩镐技鐗╂枡鎵撳紑锛屽垽鏂繁搴撲綅鏈夋病鏈夎揣锛屾病璐у氨鏀炬繁搴撲綅锛屾湁璐у氨涓嶆搷浣�
                     Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
                             .eq(Loc::getRow, shallowLoc)
-                            .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                            .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                             .eq(Loc::getAreaId,area)
                     );
                     if (!Cools.isEmpty(locMast2)) {
@@ -471,7 +471,7 @@
                     //鐩镐技鐗╂枡鍏抽棴锛屽垽鏂繁搴撲綅鏈夋病鏈夎揣锛屾湁璐у氨鏀炬祬搴撲綅锛屾棤璐у氨涓嶆搷浣�
                     Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
                             .eq(Loc::getCode, shallowLoc)
-                            .in(Loc::getUseStatus, LocUseStatusType.Empty_Pallet.type,LocUseStatusType.In_Stock.type)
+                            .in(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type,LocStsType.LOC_STS_TYPE_F.type)
                             .eq(Loc::getAreaId,area)
                     );
                     if (!Cools.isEmpty(locMast2)) {
@@ -480,7 +480,7 @@
                     }else{
                         locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
                                 .eq(Loc::getCode, shallowLoc)
-                                .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                                 .eq(Loc::getAreaId,area)
                         );
                         if (!Cools.isEmpty(locMast2)) {
@@ -499,7 +499,7 @@
                         String shallowLoc = LocUtils.getDeepLoc(slaveProperties, locMast1.getCode());
                         Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
                                 .eq(Loc::getCode, shallowLoc)
-                                .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                                 .eq(Loc::getAreaId,area)
                         );
                         if (!Cools.isEmpty(locMast2)) {
@@ -508,7 +508,7 @@
                         } else {
                             locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
                                     .eq(Loc::getCode, shallowLoc)
-                                    .in(Loc::getUseStatus, LocUseStatusType.Empty_Pallet.type,LocUseStatusType.In_Stock.type)
+                                    .in(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type,LocStsType.LOC_STS_TYPE_D.type)
                                     .eq(Loc::getAreaId,area)
                             );
                             if (!Cools.isEmpty(locMast2)) {
@@ -527,7 +527,7 @@
         }
         //鏌ヨ褰撳墠搴撲綅绫诲瀷绌哄簱浣� 灏忎簬5涓垯locmast = null
         List<Loc> locTypeLocMasts = locService.list(new LambdaQueryWrapper<Loc>()
-                .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                .eq(Loc::getUseStatus,LocStsType.LOC_STS_TYPE_O.type)
                 .eq(Loc::getDeviceNo, deviceNo)
                 .eq(Loc::getType, locTypeDto.getLocType1())
                 .eq(Loc::getAreaId,area)
@@ -536,18 +536,18 @@
             loc = null;
         }
         // 閫掑綊鏌ヨ
-        if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocUseStatusType.Empty_Slot.type)) {
+        if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
             if (times < rowCount * 2) {
                 times = times + 1;
-                return getLocNoCrn(area,sourceStaNo,matnr,batch,locTypeDto,times, ioType);
+                return getLocNoCrn(deviceBind,area,sourceStaNo,matnr,batch,locTypeDto,times, ioType);
 
             }
             // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
             if (locTypeDto.getLocType1() < 3) {
                 int i = locTypeDto.getLocType1() + 1;
                 locTypeDto.setLocType1(i);
-                return getLocNoCrn(area,sourceStaNo,matnr,batch,locTypeDto,0, ioType);
+                return getLocNoCrn(deviceBind,area,sourceStaNo,matnr,batch,locTypeDto,0, ioType);
             }
             throw new CoolException("娌℃湁绌哄簱浣�");
         }
@@ -561,7 +561,7 @@
         return inTaskMsgDto;
     }
 
-    private InTaskMsgDto getLocNoCtu(Integer area,Integer sourceStaNo, String matnr, String batch,LocTypeDto locTypeDto, int times,Integer ioType){
+    private InTaskMsgDto getLocNoCtu(DeviceBind deviceBind,Long area,Integer sourceStaNo, String matnr, String batch,LocTypeDto locTypeDto, int times,Integer ioType){
         if (Cools.isEmpty(matnr)) {  //鐗╂枡鍙�
             matnr = "";
         }
@@ -571,18 +571,13 @@
         int deviceNo = 0;
         Loc loc = new Loc();
         InTaskMsgDto inTaskMsgDto = new InTaskMsgDto();
-        DeviceBind deviceBind = deviceBindService.getById(LocUtils.getAreaType(sourceStaNo));
-        if (Cools.isEmpty(deviceBind)) {
-            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
-        }
-
         List<Loc> loc1 = locService.list(new LambdaQueryWrapper<Loc>()
                 .eq(Loc::getAreaId, area)
-                .eq(Loc::getUseStatus, LocUseStatusType.Empty_Slot.type)
+                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                 .eq(Loc::getType, locTypeDto.getLocType1())
-                .orderByAsc(Loc::getRow)
-                .orderByAsc(Loc::getCol)
                 .orderByAsc(Loc::getLev)
+                .orderByAsc(Loc::getCol)
+                .orderByAsc(Loc::getRow)
         );
         for (Loc loc2 :loc1){
             if (!LocUtils.locMoveCheckLocTypeComplete(loc2, locTypeDto)) {
@@ -604,18 +599,18 @@
             inTaskMsgDto.setStaNo(Integer.parseInt(deviceSite.getDeviceSite()));
         }
         // 閫掑綊鏌ヨ
-        if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocUseStatusType.Empty_Slot.type)) {
+        if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
             if (times < 5) {
                 times = times + 1;
-                return getLocNoCrn(area,sourceStaNo,matnr,batch,locTypeDto,times, ioType);
+                return getLocNoCtu(deviceBind,area,sourceStaNo,matnr,batch,locTypeDto,times, ioType);
 
             }
             // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
             if (locTypeDto.getLocType1() < 3) {
                 int i = locTypeDto.getLocType1() + 1;
                 locTypeDto.setLocType1(i);
-                return getLocNoCrn(area,sourceStaNo,matnr,batch,locTypeDto,0, ioType);
+                return getLocNoCtu(deviceBind,area,sourceStaNo,matnr,batch,locTypeDto,0, ioType);
             }
             throw new CoolException("娌℃湁绌哄簱浣�");
         }

--
Gitblit v1.9.1