| src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/task/WorkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/web/WcsController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
@@ -100,8 +100,9 @@ list.add(dto); } } //下发的订单明细,查看库存是否有足够的库存,排除机台的库位 for (DetlDto detail : list) { for (DetlDto detail : list) { List<LocDetl> matnr = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", detail.getMatnr())); Double count=0.0; for (LocDetl detl : matnr) { @@ -116,6 +117,19 @@ if (count<detail.getAnfme()) { return R.error("物料="+detail.getMatnr()+"库存不足无法生成订单"); } //机台有冻结时禁止呼叫物料 BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>() .eq("status", 1) .eq("dev_no", detail.getStandby1())); if (Objects.isNull(basDevice)) { return R.error(detail.getStandby1()+"机台信息不存在或已禁用!!"); } List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>() .eq("dev_no", basDevice.getType()) .eq("freeze", 1)); if (!Cools.isEmpty(binds)) { return R.error(detail.getStandby1()+"机台被冻结无法呼叫物料"); } } // 单据主档 order = new OrderPakout( src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -103,12 +103,12 @@ markPublishError(wrkMast.getWrkNo(), String.valueOf("目标库位被冻结")); continue; } // Integer crnNo = wrkMast.getCrnNo(); // //该堆垛机已经下发任务给wcs后不再下发新的搬运任务 // List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L))); // if (!wrkMasts1.isEmpty()) { // continue; // } Integer crnNo = wrkMast.getCrnNo(); //该堆垛机已经下发任务给wcs后不再下发新的搬运任务 List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(12L))); if (!wrkMasts1.isEmpty()) { continue; } //源库位为冻结库位时禁止下发搬运任务给堆垛机 if (!Cools.isEmpty(wrkMast.getSourceLocNo())) { LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,7 @@ int sRow = rowLastno.getsRow(); int eRow = rowLastno.geteRow(); int crnNumber = rowLastno.getCrnQty(); int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1; // ===============>>>> 开始执行 curRow = rowLastno.getCurrentRow(); @@ -229,11 +229,15 @@ curRow = moveCrnNo * 4 - 2; } } log.info("\ncurRow:\n{}",curRow); //此程序用于优化堆垛机异常时的运行时间 for (int i = times; i < crnNumber * 2; i++) { log.info("\ni:\n{}",i); log.info("\ntimes:\n{}",times); log.info("\ncrnNumber:\n{}",crnNumber); int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber); crnNo = locNecessaryParameters[2]; log.info("\ncrnNo:\n{}",crnNo); if (basCrnpService.checkSiteError(crnNo, true)) { nearRow = locNecessaryParameters[3]; List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() @@ -242,7 +246,9 @@ .eq("frozen", 0) .eq("deleted", 0) .eq("whs_type", rowLastnoType.getType().longValue())); int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100)); // log.info("\nlocMasts:\n{}",locMasts); int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>() .eq("crn_no", crnNo).le("io_type", 100)); if (locMasts.size() - crnCountO <= 2) { if(curRow+2==7){ @@ -254,6 +260,20 @@ } break; } else { // curRow = crnNo +2;// crnNo=3 curRow=5 // if (curRow == 9||curRow==10) { // curRow = 1; // } int nextCrnNo=crnNo + 1;//下一个堆垛机号 if(nextCrnNo> sCrnNo+crnNumber-1){//下一台大于 nextCrnNo=sCrnNo; } if(nextCrnNo==sCrnNo){ curRow=0; }else { curRow = sRow + (nextCrnNo - sCrnNo) * 4; } times++; } } @@ -266,6 +286,7 @@ BasDevp staNo = null; if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) { int selectedCrnNo=crnNo; // 获取目标站 wrapper = new EntityWrapper<StaDesc>() .eq("type_no", staDescId) @@ -287,7 +308,12 @@ } // 更新库位排号 if (Cools.isEmpty(locMast)) { rowLastno.setCurrentRow(curRow); int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo; int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1); int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4; rowLastno.setCurrentRow(curRowToSave); log.info("\ncurRowToSave:\n{}",curRowToSave); rowLastnoService.updateById(rowLastno); } } src/main/java/com/zy/common/web/WcsController.java
@@ -104,7 +104,7 @@ String s = Utils.WMSLocToWCSLoc(wrkMast1.getLocNo()); dto1.setLocNo(s); dto1.setCrnNo(wrkMast1.getCrnNo()); dto1.setWorkNo(wrkMast1.getWrkNo()); dto1.setTaskNo(wrkMast1.getWrkNo()); dto1.setTaskPri((int) Math.round(wrkMast1.getIoPri())); return R.ok(dto1); }