From 2bf65500161ae37c120d0d9af8f6d8dd7afdec75 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 16 五月 2023 14:53:14 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java | 190 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 183 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java b/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java index f7a0697..7ba0c1e 100644 --- a/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java @@ -2,14 +2,16 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.service.LocDetlService; -import com.zy.asrs.service.LocMastService; -import com.zy.asrs.service.TestMastService; -import com.zy.asrs.service.WorkService; +import com.zy.asrs.entity.param.CombParam; +import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.utils.PostMesDataUtils; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -35,18 +37,31 @@ private TestMastService testMastService; @Autowired private WorkService workService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private CommonService commonService; + @Autowired + private WrkDetlService wrkDetlService; @Value("${channel.equipmentRow}") private Integer equipmentRow; //娴嬭瘯搴撲綅鎵�鍦ㄦ帓鍙� @Value("${channel.quietRow}") private Integer quietRow; //闈欑疆搴撲綅鎵�鍦ㄦ帓鍙� + @Value("${mes.url}") + private String mesUrl; + + @Value("${mes.inPath}") + private String inpath; + @Transactional public ReturnT<String> start() { + //娴嬭瘯澶辫触锛圢G锛夌Щ搴� try { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "F") - .eq("pack_status", 3) + .eq("pack_status", 4) .eq("row1", equipmentRow) .eq("loc_type1", (short) 1) .eq("fire_status",0) @@ -61,12 +76,13 @@ if (!Cools.isEmpty(testMast)){ if (testMast.getStatus()==4){ //绉诲簱寮�濮嬶紝鏌ヨ鐩爣搴撲綅 - LocMast targetLocNo = locMastService.queryFreeLocMast(quietRow,(short)2); + LocMast targetLocNo = locMastService.queryFreeLocMast(2,(short)4); if (Cools.isEmpty(targetLocNo)){ - targetLocNo=locMastService.queryFreeLocMast(equipmentRow,(short)2); + targetLocNo=locMastService.queryFreeLocMast(1,(short)4); } if (targetLocNo != null){ workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId())); + return SUCCESS; }else { log.error("娴嬭瘯瀹屾垚鑷姩绉诲簱--->娌℃湁绌哄簱浣�!"); } @@ -83,7 +99,167 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } + + //娴嬭瘯鎴愬姛 鍑哄簱銆佺Щ搴� + try { + List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts", "F") + .eq("pack_status", 4) + .eq("row1", equipmentRow) + .eq("loc_type1", (short) 1) + .eq("fire_status",0) + ); + if (!Cools.isEmpty(locMasts2)){ + for (LocMast locMast:locMasts2){ + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no",locMast.getLocNo()) + .eq("barcode",locMast.getBarcode()) + .eq("status",4) + ); + if (!Cools.isEmpty(testMast)){ + if (testMast.getStatus()==4){ + //绉诲簱寮�濮嬶紝鏌ヨ鐩爣搴撲綅 + LocMast targetLocNo = locMastService.queryFreeLocMast(4,(short)2); + if (Cools.isEmpty(targetLocNo)){ + targetLocNo=locMastService.queryFreeLocMast(3,(short)2); + } + if (targetLocNo != null){ + //鐢熸垚鍑哄簱浠诲姟 + if (outLoc(locMast)){ + return SUCCESS; + } + }else { + //3\4鎺掓弧 鍚�2鎺掔Щ搴擄紝鏌ヨ鐩爣搴撲綅 + targetLocNo = locMastService.queryFreeLocMast(2,(short)2); + if (Cools.isEmpty(targetLocNo)){ + targetLocNo=locMastService.queryFreeLocMast(1,(short)2); + } + if (targetLocNo != null){ + workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId())); + return SUCCESS; + }else { + log.error("娴嬭瘯瀹屾垚鑷姩绉诲簱--->娌℃湁绌哄簱浣�!"); + } + } + }else if (testMast.getStatus()!=4) { + log.error("娴嬭瘯鐘舵�佸紓甯�,搴撲綅鍙蜂负锛�" + testMast.getLocNo()); + } + }else { + log.error("娴嬭瘯搴撲綅锛�"+locMast.getLocNo()+"鎵�灞炴祴璇曟。涓虹┖鎴栬�呬笉鐘舵�佷负4"); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } + + //娴嬭瘯鏈夌┖搴撲綅 绉诲簱 + try { + List<LocMast> locMasts3 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts", "F") + .eq("pack_status", 0) + .eq("loc_type1", (short) 3) + .eq("fire_status",0) + ); + if (!Cools.isEmpty(locMasts3)){ + for (LocMast locMast:locMasts3){ + //绉诲簱寮�濮嬶紝鏌ヨ鐩爣搴撲綅 + LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow,(short)1); + if (targetLocNo != null){ + workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)9999); + }else { +// log.error("鍚戞祴璇曞簱浣嶇Щ搴撳け璐�--->绛夊緟绌哄簱浣�!"); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } return SUCCESS; } + public boolean outLoc(LocMast locMast){ + try { + Date now = new Date(); + Integer ioType = 101; //鍏ュ嚭搴撶被鍨� + LocDetl locDetl=locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo())); + if (Cools.isEmpty(locDetl)){ + log.error("搴撲綅:"+locMast.getLocNo()+"娌℃湁鏄庣粏"); + } else if (Cools.isEmpty(locDetl.getDeadWarn())){ + log.error("搴撲綅:"+locMast.getLocNo()+"娌℃湁闈欑疆鏃堕棿"); + } else if (Cools.isEmpty(locMast.getModiTime())){ + log.error("搴撲綅:"+locMast.getLocNo()+"modiTime涓虹┖"); + } else if (Cools.isEmpty(locMast.getBarcode())){ + log.error("搴撲綅:"+locMast.getLocNo()+"Pack鐮佷负绌�"); + } else { + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setCrnNo(1); + wrkMast.setSourceStaNo(203); // 婧愮珯 + wrkMast.setStaNo(205); // 鐩爣绔� 2鍙峰爢鍨涙満鍏ュ簱绔� + wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setBarcode(locMast.getBarcode()); + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + if (!wrkMastService.insert(wrkMast)) { + log.error("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locMast.getLocNo()); + return false; + } + // 鐢熸垚宸ヤ綔妗f槑缁� + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(1.0); // 鏁伴噺 + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + log.error("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + return false; + } + // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害 + if (locMast.getLocSts().equals("F")) { + locMast.setLocSts("R"); + locMast.setModiTime(now); + locMast.setPackStatus(6); //6:闈欑疆瀹屾垚 + + CombParam combParam = new CombParam(); + combParam.setPackNo(locMast.getBarcode()); + combParam.setLocNo(locMast.getLocNo()); + combParam.setPackSts(6); + combParam.setRequestTime(DateUtils.convert(new Date())); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + + if (!locMastService.updateById(locMast)) { + log.error("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+locMast.getLocNo()); + return false; + }else { + return true; + } + } else { + log.error(locMast.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); + } + } + return false; + } catch (Exception e) { + return false; + } + } + } -- Gitblit v1.9.1