From 2c2f9b0d2c42db9aac486af26e15fd6957012d18 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期五, 16 六月 2023 11:15:53 +0800 Subject: [PATCH] 增加111库位移存(原)定时任务 --- src/main/java/com/zy/asrs/service/WorkService.java | 1 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 5 + src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java | 55 ++++++++++++------ src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 10 +++ src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 86 ++++++++++++++++++++++++++++ src/main/java/com/zy/asrs/task/CheckDeepScheduler.java | 4 src/main/resources/mapper/LocMastMapper.xml | 10 +++ src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 2 src/main/java/com/zy/asrs/service/LocMastService.java | 3 + 9 files changed, 154 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index 208fff4..8b095a0 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -22,4 +22,6 @@ Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo); List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo); + + LocMast queryNeedMoveShallLoc(Integer crnNo); } diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java index 00b330b..49e8f2e 100644 --- a/src/main/java/com/zy/asrs/service/LocMastService.java +++ b/src/main/java/com/zy/asrs/service/LocMastService.java @@ -37,4 +37,7 @@ * @return */ List<LocMast> queryShallowLocFMast(Integer crnNo); + + public LocMast queryNeedMoveShallLoc(Integer crnNo); + } diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java index 99fdc5e..a2361d9 100644 --- a/src/main/java/com/zy/asrs/service/WorkService.java +++ b/src/main/java/com/zy/asrs/service/WorkService.java @@ -97,4 +97,5 @@ void turnMatLocDetl(EmptyPlateOutParam param, Long userId); + void locMove(String sourceLocNo, Long userId); } diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java index e6ce450..5d3166a 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java @@ -52,4 +52,9 @@ public List<LocMast> queryShallowLocFMast(Integer crnNo) { return this.baseMapper.queryShallowLocFMast(crnNo); } + + @Override + public LocMast queryNeedMoveShallLoc(Integer crnNo) { + return this.baseMapper.queryNeedMoveShallLoc(crnNo); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 0c86a91..08d13e9 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -662,6 +662,90 @@ @Override @Transactional + public void locMove(String sourceLocNo, Long userId) { + LocMast sourceLoc = locMastService.selectById(sourceLocNo); + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); + if (Cools.isEmpty(sourceLoc)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } +// LocMast loc = locMastService.selectById(locNo); +// if (Cools.isEmpty(loc)){ +// throw new CoolException("鏈壘鍒板簱浣�"); +// } +// if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){ +// throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉"); +// } +// if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { +// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); +// } + Date now = new Date(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PICK.type); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(111); // 鍏ュ嚭搴撶姸鎬侊細 111.搴撴牸绉昏浇(鍘�) + wrkMast.setIoPri(10D); + wrkMast.setCrnNo(sourceLoc.getCrnNo()); + wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣� + wrkMast.setLocNo(sourceLocNo); // 鐩爣搴撲綅 + wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘 + wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(locDetl.getAnfme()); + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(userId); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + // 淇敼婧愬簱浣嶇姸鎬� + if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { + sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + sourceLoc.setModiUser(userId); + sourceLoc.setModiTime(now); + if (!locMastService.updateById(sourceLoc)){ + throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$()); + } +// // 淇敼鐩爣搴撲綅鐘舵�� +// if (loc.getLocSts().equals("O")) { +// loc.setLocSts("S"); // S.鍏ュ簱棰勭害 +// loc.setModiTime(now); +// loc.setModiUser(userId); +// if (!locMastService.updateById(loc)) { +// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); +// } +// } else { +// throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$()); +// } + } + + @Override + @Transactional public void completeWrkMast(String workNo, Long userId) { WrkMast wrkMast = wrkMastService.selectById(workNo); if (Cools.isEmpty(wrkMast)){ @@ -671,7 +755,7 @@ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚"); } // 鍏ュ簱 + 搴撲綅杞Щ - if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { + if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && (wrkMast.getIoType() == 11) || wrkMast.getIoType() == 111)) { wrkMast.setWrkSts(4L); // 鍑哄簱 } else if (wrkMast.getWrkSts() > 10) { diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java index 18203fc..3e92958 100644 --- a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java +++ b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java @@ -46,10 +46,10 @@ /** * 灏嗕袱涓繁搴撲綅鍚堝苟涓烘繁娴呭簱浣�,鐗╂枡鍙风浉鍚岋紝婧愬簱浣嶅叆搴撴棩鏈熸棭浜庣洰鏍囧簱浣嶅搴旀繁搴撲綅鍏ュ簱鏃ユ湡锛屽簱浣嶇姸鎬侀兘涓篎 */ - @Scheduled(cron = "0/30 * * * * ?") + @Scheduled(cron = "0/5 * * * * ?") private void execute() throws ParseException { // if (!confirmDeep) return; - if (true) return; + //if (true) return; ReturnT<String> result = checkDeepHandler.start(); if (!result.isSuccess()) { diff --git a/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java b/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java index 9eb6b97..23ae539 100644 --- a/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/CheckDeepHandler.java @@ -45,9 +45,9 @@ @Transactional public synchronized ReturnT<String> start() { try { - for (int crnNo = 1; crnNo < 3; crnNo++){ + for (int crnNo = 1; crnNo < 5; crnNo++) { List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() - .eq("crn_no",crnNo) + .eq("crn_no", crnNo) .last(" and wrk_sts in (2,3,4,11,12)") ); if (wrkMasts.size() > 0) continue; @@ -58,30 +58,47 @@ continue; } - List<LocMast> locMasts = locMastService.queryShallowLocFMast(crnNo); - if (null == locMasts) continue; - - for (LocMast sourceLoc : locMasts){ - String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo()); - LocMast destLoc = locMastService.selectById(deep); - - if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) { - //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞� - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() - .eq("source_loc_no", sourceLoc.getLocNo())); - if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") && - (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) { - workService.locMove(sourceLoc.getLocNo(), deep, 1L); - } - } + LocMast locMast = locMastService.queryNeedMoveShallLoc(crnNo); +// LocMast targetLoc = locMastService.queryEmptyDeepLoc(crnNo); + if (!Cools.isEmpty(locMast)) { + workService.locMove(locMast.getLocNo(), 1L); } } + + return SUCCESS; + +// //鏆傚仠绉诲簱 +// BasCrnp crnp = basCrnpService.selectById(crnNo); +// if(!Cools.isEmpty(crnp) && !Cools.isEmpty(crnp.getTankQty()) && crnp.getTankQty()==0){ +// continue; +// } +// +// List<LocMast> locMasts = locMastService.queryShallowLocFMast(crnNo); +// if (null == locMasts) continue; +// +// for (LocMast sourceLoc : locMasts){ +// String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo()); +// LocMast destLoc = locMastService.selectById(deep); +// +// if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) { +// //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞� +// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() +// .eq("source_loc_no", sourceLoc.getLocNo())); +// if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") && +// (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) { +// workService.locMove(sourceLoc.getLocNo(), deep, 1L); +// +// } +// } +// } +// } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); + } - return SUCCESS; + } /** diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index acb5fa9..789dea6 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -399,6 +399,16 @@ } } break; + case 111: + if (locMast.getLocSts().equals("R")) { + wrkMast.setWrkSts(4L); + wrkMast.setModiTime(now); + if (!wrkMastService.updateById(wrkMast)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + return SUCCESS; + } default: break; } diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml index 2244412..ef20262 100644 --- a/src/main/resources/mapper/LocMastMapper.xml +++ b/src/main/resources/mapper/LocMastMapper.xml @@ -75,4 +75,14 @@ ) and (loc_sts = 'F' or loc_sts = 'D') and crn_no = #{crnNo} </select> + + <select id="queryNeedMoveShallLoc" resultMap="BaseResultMap"> + SELECT + TOP 1 * + FROM + asr_loc_mast + WHERE + crn_no = #{crnNo} AND (loc_sts = 'F' OR loc_sts = 'D') and inv_wh = '0' + order by bay1,lev1 + </select> </mapper> -- Gitblit v1.9.1