src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -479,7 +479,7 @@ if (!locDetl.getMatnr().equals(matnr)) { flag = true; break; }else if (ioWorkType.equals(IoWorkType.CHECK_OUT)){ }else if (!Cools.isEmpty(ioWorkType) && ioWorkType.equals(IoWorkType.CHECK_OUT)){ flag = true; break; } src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -71,11 +71,11 @@ if (!Cools.isEmpty(wrkMast.getBarcode())) { // 保存入库通知档历史档 if (!waitPakinLogService.save(wrkMast.getBarcode())) { exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo()); // exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo()); } // 删除入库通知档 if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) { exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo()); // exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo()); } } // 手动入库生成单据 【 上报三方平台 】 src/main/java/com/zy/asrs/utils/Utils.java
@@ -426,13 +426,13 @@ }}; case 7: return new ArrayList<String>() {{ add(zerofill(String.valueOf(6), 2) + locNo.substring(2)); add(zerofill(String.valueOf(5), 2) + locNo.substring(2)); add(zerofill(String.valueOf(6), 2) + locNo.substring(2)); }}; case 8: return new ArrayList<String>() {{ add(zerofill(String.valueOf(9), 2) + locNo.substring(2)); add(zerofill(String.valueOf(10), 2) + locNo.substring(2)); add(zerofill(String.valueOf(9), 2) + locNo.substring(2)); }}; case 9: return new ArrayList<String>() {{ @@ -450,8 +450,8 @@ }}; case 15: return new ArrayList<String>() {{ add(zerofill(String.valueOf(16), 2) + locNo.substring(2)); add(zerofill(String.valueOf(17), 2) + locNo.substring(2)); add(zerofill(String.valueOf(16), 2) + locNo.substring(2)); }}; case 16: return new ArrayList<String>() {{ @@ -711,6 +711,27 @@ } /** * 检测当前库位内侧其他库位是否为D、F、X * 返回true表示内侧库位不是DFX,返回false表示内侧库位是DFX */ public static boolean checkInsideLocIsDFX2(String locNo) { LocMastService locMastService = SpringUtils.getBean(LocMastService.class); List<String> insideLoc = Utils.getGroupInsideLoc(locNo); if (insideLoc.size() > 0) { List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc); for (LocMast mast : insideLocMast) { if (!mast.getLocSts().equals("D") && !mast.getLocSts().equals("F") && !mast.getLocSts().equals("X")) { //D、F、X(不能选定这个外侧库位) return true; } } } return false; } /** * 检测当前库位内侧其他库位是否为D、F、X、S * 返回true表示内侧库位不是DFX,返回false表示内侧库位是DFX */ src/main/java/com/zy/common/service/CommonService.java
@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; @@ -125,7 +126,7 @@ //103站分配1,2堆垛机 crnNos.add(1); crnNos.add(2); // crnNos.add(2); //分配1,7,8,14排 rows.add(1); @@ -170,7 +171,7 @@ } //3号可以入库前必须打开控制 if (!Cools.isEmpty(matNos) && crnNo==3) { if (!Cools.isEmpty(matNos) && crnNo != 2) { for (String matNo : matNos) { Mat mat = matService.selectByMatnr(matNo); if (matType == null) { @@ -222,28 +223,28 @@ if (!sign){ //----------------2023.06.02兼容代码,后期库位规则符合要求后可删除------------------------ //如果以上都找不到库位,则强制搜索2堆垛机空库位进行入库,保障3号堆垛机库位都是符合要求的 EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); wrapper.eq("loc_type1", locTypeDto.getLocType1()); wrapper.in("crn_no", "2"); wrapper.eq("loc_sts", "O"); List<LocMast> locMasts = locMastService.selectList(wrapper); for (LocMast mast : locMasts) { //检测当前库位内侧其他库位是否为D、F、X if (Utils.checkInsideLocIsDFX(mast.getLocNo())) { //内侧其他库位不是D、F、X。不能选取该库位 continue; } if(sourceStaNo==103 && mast.getRow1()>14) continue; if(sourceStaNo==103 && mast.getRow1()<8) continue; if(sourceStaNo==203 && mast.getRow1()<15) continue; //找到库位,返回dto locMast=mast; sign = true; } } // if (!sign){ // //----------------2023.06.02兼容代码,后期库位规则符合要求后可删除------------------------ // //如果以上都找不到库位,则强制搜索2堆垛机空库位进行入库,保障3号堆垛机库位都是符合要求的 // EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); // wrapper.eq("loc_type1", locTypeDto.getLocType1()); // wrapper.in("crn_no", "2"); // wrapper.eq("loc_sts", "O"); // List<LocMast> locMasts = locMastService.selectList(wrapper); // for (LocMast mast : locMasts) { // //检测当前库位内侧其他库位是否为D、F、X // if (Utils.checkInsideLocIsDFX(mast.getLocNo())) { // //内侧其他库位不是D、F、X。不能选取该库位 // continue; // } // if(sourceStaNo==103 && mast.getRow1()>14) continue; // if(sourceStaNo==103 && mast.getRow1()<8) continue; // if(sourceStaNo==203 && mast.getRow1()<15) continue; // //找到库位,返回dto // locMast=mast; // sign = true; // } // } if (sign){ return getLocNoFinalStep(staDescId, sourceStaNo, locMast);//返回dto @@ -332,7 +333,7 @@ // 浅库位对应堆垛机必须可用且无异常 if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { // 因库位移转、需预留空库位 if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()>=3) { if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()!=2) { locMast = locMast0; break; } @@ -359,7 +360,7 @@ // 浅库位对应堆垛机必须可用且无异常 if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { // 因库位移转、需预留空库位 if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()>=3) { if (locMastService.checkEmptyCount(locMast0, 10) && locMast0.getCrnNo()!=2) { locMast = locMast0; break; } @@ -417,7 +418,7 @@ List<LocMast> locMasts = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1(), randomCrnNo); for (LocMast locMast0 : locMasts) { //检测当前库位内侧其他库位是否为D、F、X if (Utils.checkInsideLocIsDFX(locMast0.getLocNo())) { if (Utils.checkInsideLocIsDFX2(locMast0.getLocNo())) { //内侧其他库位不是D、F、X。不能选取该库位 continue; } @@ -464,8 +465,14 @@ StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { log.error("入库路径不存在, staDescId={}, sourceStaNo={}, crnNo={}", staDescId, sourceStaNo, locMast.getCrnNo()); if (sourceStaNo==103 && locMast.getCrnNo()==3){ throw new CoolException("请放到203入库口"); }else if (sourceStaNo==203 && locMast.getCrnNo()==1){ throw new CoolException("请放到103入库口"); }else { throw new CoolException("入库路径不存在"); } } // 检测目标站 BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); src/main/resources/application.yml
@@ -1,5 +1,5 @@ server: port: 8081 port: 8080 servlet: context-path: /@pom.build.finalName@ compression: @@ -13,8 +13,8 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # url: jdbc:sqlserver://10.10.10.100:1433;databasename=bfasrs url: jdbc:sqlserver://192.168.4.15:1433;databasename=bfasrs url: jdbc:sqlserver://10.10.10.100:1433;databasename=bfasrs # url: jdbc:sqlserver://192.168.4.15:1433;databasename=bfasrs username: sa # password: Zoneyung@zy56$ password: sa@123