From 5ce6bfb2e237b9fbf092a03cf80e86d928ac7ca6 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 20 六月 2023 16:40:51 +0800 Subject: [PATCH] 孚能 --- src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 218 insertions(+), 12 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 57838ad..bb752c3 100644 --- a/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/MoveLocHandler.java @@ -2,16 +2,19 @@ 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; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -34,40 +37,163 @@ 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("row1", 2) + .eq("pack_status", 4)//娴嬭瘯澶辫触 + .eq("row1", equipmentRow) .eq("loc_type1", (short) 1) .eq("fire_status",0) ); if (!Cools.isEmpty(locMasts)){ for (LocMast locMast:locMasts){ + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() .eq("loc_no",locMast.getLocNo()) - .eq("barcode",locMast.getBarcode()) + .eq("barcode",locDetl.getMatnr()) + .eq("status",4)//瀹屾垚娴嬭瘯 ); if (!Cools.isEmpty(testMast)){ if (testMast.getStatus()==4){ //绉诲簱寮�濮嬶紝鏌ヨ鐩爣搴撲綅 - LocMast targetLocNo = locMastService.queryFreeLocMast(1,(short)2); + LocMast targetLocNo = locMastService.queryFreeLocMast(2,(short)4); if (Cools.isEmpty(targetLocNo)){ - targetLocNo=locMastService.queryFreeLocMast(2,(short)2); + targetLocNo=locMastService.queryFreeLocMast(1,(short)4); } if (targetLocNo != null){ - workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt(testMast.getUserId())); + workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt("9935")); + //4.娴嬭瘯瀹屾垚涓婃姤 + CombParam combParam = new CombParam(); + combParam.setPackNo(locDetl.getMatnr()); + combParam.setLocNo(locMast.getLocNo()); + combParam.setPackSts(2); + combParam.setStepSts(4); + combParam.setRequestTime(DateUtils.convert(new Date())); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + return SUCCESS; }else { - log.error("娌℃湁绌哄簱浣�"); + log.error("娴嬭瘯瀹屾垚鑷姩绉诲簱--->娌℃湁绌哄簱浣�!"); } }else if (testMast.getStatus()!=4) { log.error("娴嬭瘯鐘舵�佸紓甯�,搴撲綅鍙蜂负锛�" + testMast.getLocNo()); } }else { - log.error("娴嬭瘯搴撲綅锛�"+locMast.getLocNo()+"鎵�灞炴祴璇曟。涓虹┖"); + log.error("娴嬭瘯搴撲綅锛�"+locMast.getLocNo()+"鎵�灞炴祴璇曟。涓虹┖鎴栬�呬笉鐘舵�佷负4"); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } + + //娴嬭瘯鎴愬姛 鍑哄簱銆佺Щ搴� + try { + List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts", "F") + .eq("pack_status", 3)//娴嬭瘯瀹屾垚 + .eq("row1", equipmentRow) + .eq("loc_type1", (short) 1) + .eq("fire_status",0) + ); + if (!Cools.isEmpty(locMasts2)){ + for (LocMast locMast:locMasts2){ + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no",locMast.getLocNo()) + .eq("barcode",locDetl.getMatnr()) + .eq("status",4) + ); + boolean sign=false; + 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)){ + sign=true; + } + }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)9935); + sign=true; + }else { + log.error("娴嬭瘯瀹屾垚鑷姩绉诲簱--->娌℃湁绌哄簱浣�!"); + } + } + }else if (testMast.getStatus()!=4) { + log.error("娴嬭瘯鐘舵�佸紓甯�,搴撲綅鍙蜂负锛�" + testMast.getLocNo()); + } + + }else { + log.error("娴嬭瘯搴撲綅锛�"+locMast.getLocNo()+"鎵�灞炴祴璇曟。涓虹┖鎴栬�呬笉鐘舵�佷负4"); + } + if (sign){ + //4.娴嬭瘯瀹屾垚涓婃姤 + CombParam combParam = new CombParam(); + combParam.setPackNo(locDetl.getMatnr()); + combParam.setLocNo(locMast.getLocNo()); + combParam.setPackSts(1); + combParam.setStepSts(4); + combParam.setRequestTime(DateUtils.convert(new Date())); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + return SUCCESS; + } + } + } + } 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("鍚戞祴璇曞簱浣嶇Щ搴撳け璐�--->绛夊緟绌哄簱浣�!"); } } } @@ -79,4 +205,84 @@ 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()+"鎵樼洏鐮佷负绌�"); + } 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(206); // 鐩爣绔� 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(5); //5:寮�濮嬮潤缃� + + CombParam combParam = new CombParam(); + combParam.setPackNo(wrkDetl.getMatnr()); + combParam.setLocNo(locMast.getLocNo()); + combParam.setPackSts(locMast.getPackStatus()); + 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