From 13a7ee010e75bab8030c7c0be736d0ca02d966d7 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 08 十二月 2023 10:04:11 +0800 Subject: [PATCH] #避让起始列 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 91 ++++++++++++++++++++++++--------------------- 1 files changed, 48 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index e2e5bbb..b655e3a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1,6 +1,7 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -36,6 +37,8 @@ import java.util.*; import java.util.stream.Collectors; + +import static com.zy.asrs.utils.Utils.isJson; /** * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔� @@ -1277,6 +1280,25 @@ } if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴� + //寮哄埗棰勭暀涓�鍙板皬杞︾粰鍏ュ簱浠诲姟 + int lev = Utils.getLev(wrkMast.getSourceLocNo()); + //鑾峰彇褰撳墠妤煎眰鏈夊嚑鍙板彲鐢ㄥ皬杞� + int shuttleCount = shuttleDispatchUtils.getShuttleCountByLev(lev); + if (shuttleCount >= 2) {//鍙湁鍙敤灏忚溅鏁伴噺澶т簬2锛屾墠杩涜鍏ュ簱浠诲姟棰勭暀灏忚溅 + int shuttleWrkInObligateCount = 1;//棰勭暀灏忚溅鏁伴噺 + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleWrkInObligateCount").eq("status", 1)); + if (config != null) { + shuttleWrkInObligateCount = Integer.parseInt(config.getValue()); + } + //鍙敤鍑哄簱灏忚溅鏁伴噺(缁欏叆搴撲换鍔¢鐣欎竴鍙拌溅) + int useShuttleCount = shuttleCount - shuttleWrkInObligateCount; + //鏌ヨ妤煎眰宸插垎閰嶈溅杈嗙殑鍑哄簱浠诲姟鏁伴噺 + List<WrkMast> wrkMasts = wrkMastService.selectShuttleOutWrkByLev(lev); + if (wrkMasts.size() >= useShuttleCount) { + News.info("{}浠诲姟锛屽綋鍓嶆ゼ灞傚彲鐢ㄥ皬杞}鍙帮紝鍑哄簱浠诲姟宸插垎閰峽}鍙帮紝绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), useShuttleCount, wrkMasts.size()); + return false; + } + } boolean result = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐� News.info("{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触"); return false; @@ -2827,51 +2849,15 @@ ledCommand.setLocNo(wrkMast.getLocNo()); ledCommand.setStaNo(wrkMast.getStaNo()); if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { - //for (WrkDetl wrkDetl : wrkDetls) { - // LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); - // - // locDetls.forEach(locDetl1 -> { - // //宸ヤ綔妗d腑瀛樺湪璇ョ墿鏂欏垯璺宠繃 - // String suppCode = ""; - // - // if (wrkDetl.getMatnr().equals(locDetl1.getMatnr())) { - // Double anfme = 0D; - // if (locDetl != null) { - // anfme = locDetl.getAnfme(); - // } - // if (wrkDetl.getSuppCode() != null) { - // suppCode = wrkDetl.getSuppCode(); - // } - // ledCommand.getMatDtos() - // .add(new MatDto(wrkDetl.getMatnr() - // , wrkDetl.getMaktx() - // , wrkDetl.getAnfme() - // , (wrkDetl.getAnfme()-anfme) - // , wrkDetl.getSpecs() - // , suppCode)); - // } else { - // if (locDetl1.getSuppCode() != null) { - // suppCode = locDetl1.getSuppCode(); - // } - // ledCommand.getMatDtos() - // .add(new MatDto(locDetl1.getMatnr() - // , locDetl1.getMaktx() - // , 0D - // , locDetl1.getAnfme() - // , locDetl1.getSpecs() - // , suppCode)); - // } - // }); - // //LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); - //} List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo())); locDetls.forEach(locDetl -> { - Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no",wrkMast.getWrkNo()); - Utils.wapperSetCondition(wrapper,"batch",locDetl.getBatch()); - Utils.wapperSetCondition(wrapper,"three_code",locDetl.getThreeCode()); - Utils.wapperSetCondition(wrapper,"dead_time",locDetl.getDeadTime()); - Utils.wapperSetCondition(wrapper,"supp_code",locDetl.getSuppCode());//鏂欑鐮� + Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkMast.getWrkNo()); + Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); + Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); + Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); + Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮� WrkDetl detl = wrkDetlService.selectOne(wrapper); + if (Cools.isEmpty(detl)) { String suppCode = ""; if (locDetl.getSuppCode() != null) { @@ -2880,13 +2866,32 @@ ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); } else { String suppCode = ""; + String orderNo = detl.getOrderNo(); if (detl.getSuppCode() != null) { suppCode = detl.getSuppCode(); } - ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), detl.getAnfme(), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode)); + if (isJson(orderNo)) { + JSONArray orders = JSON.parseArray(orderNo); + for (Object order : orders) { + JSONObject order1 = (JSONObject) order; + ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), (Double) order1.get("anfme"), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode,(String) order1.get("orderNo"))); + } + } else { + ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), detl.getAnfme(), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode,detl.getOrderNo())); + } + + } }); + + if (locDetls.isEmpty()) { + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + wrkDetls.forEach(wrkDetl -> { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode())); + }); + } } + commands.add(ledCommand); } Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); -- Gitblit v1.9.1