From db92e88a70a59437b48c9369cf1c46dba0ecb0a5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 15 十月 2023 13:25:33 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 100 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index e7b35ac..cc0e439 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -13,7 +13,6 @@ import com.zy.common.model.OrderDto; import com.zy.common.model.StartupDto; import com.zy.common.model.TaskDto; -import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.AgvCommonService; import com.zy.common.web.BaseController; import lombok.extern.slf4j.Slf4j; @@ -60,6 +59,10 @@ private OrderDetlService orderDetlService; @Autowired private AdjDetlService adjDetlService; + @Autowired + private AgvWrkMastLogService agvWrkMastLogService; + @Autowired + private AgvWrkDetlLogService agvWrkDetlLogService; /* @@ -79,7 +82,7 @@ throw new CoolException("閫変腑鐨勭珯鐐逛腑鍚湁璐т綅鐘舵�佷笉涓篎.鍦ㄥ簱鐨勭珯鐐癸紝璇烽噸鏂伴�夋嫨"); } - List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("zpallet", agvBasDevp.getBarcode())); + List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor()); @@ -89,7 +92,7 @@ //鐢熸垚宸ヤ綔妗f槑缁� //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId); agvWaitPakinList.forEach(wp -> { - createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getZpallet(),now,userId,wp.getThreeCode(),wp.getDeadTime()); + createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); }); //鏇存柊婧愮珯鐐逛俊鎭� updateAgvBasDevp(agvBasDevp,"R"); @@ -119,7 +122,7 @@ long wrkSts = 21L; String sourceLocNo = taskDto.getLocNo(); String targetLocNo = taskDto.getAgvStaNo(); - String barcode = agvLocDetl.getZpallet(); + String barcode = agvLocDetl.getSuppCode(); //鏄庣粏妗f墍闇�鍙傛暟 String mantr = taskDto.getLocDtos().get(0).getMatnr(); String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); @@ -209,7 +212,7 @@ Date now = new Date(); //鐢熸垚宸ヤ綔鍏� - AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId); + AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId); //鐢熸垚宸ヤ綔鏄庣粏妗� createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); //淇敼搴撲綅淇℃伅 @@ -239,7 +242,7 @@ Date now = new Date(); //鐢熸垚绉诲簱宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId); + AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId); //鐢熸垚宸ヤ綔鍏氭槑缁� createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime()); //淇敼鐩爣搴撲綅鐘舵�� @@ -435,6 +438,84 @@ } } + @Override + @Transactional + public void completeWrkMast(String workNo, Long userId) { + AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + if (Cools.isEmpty(wrkMast)){ + throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); + } + + if(wrkMast.getWrkSts() > 202){ + //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); + + //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 + if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ + //淇敼鍑哄簱绔欑偣鐘舵�� + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } + //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 + if(wrkMast.getIoType() == 110){ + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } + } + + } + + @Transactional + public void cancelWrkMast(String workNo, Long userId) { + AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + if (Cools.isEmpty(wrkMast)){ + throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); + } + //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷 + if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){ + throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷"); + } + + //AGV鏈哄櫒浜烘湭鍙栬揣鍓嶅彇娑� + if(wrkMast.getWrkSts() < 203){ + //鍏ュ簱鍙栨秷 + if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){ + //婧愮珯鐐� + String devNo = wrkMast.getSourceLocNo(); + //鐩爣搴撲綅 + String locNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"O"); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode()); + + //鍑哄簱鍙栨秷 + }else { + //婧愬簱浣� + String locNo = wrkMast.getSourceLocNo(); + //鐩爣绔欑偣 + String devNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"F"); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O",""); + } + + } + + //璁㈠崟鍥炴粴 + AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).get(0); + if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){ + OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); + orderDetlService.updateById(orderDetl); + } + + //淇濆瓨宸ヤ綔妗d互鍙婃槑缁� + agvWrkMastLogService.save(wrkMast); + agvWrkDetlLogService.save(wrkMast.getWrkNo()); + + //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁� + if(agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) && agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){ + throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + + } + /* 鏇存柊鐩爣搴撲綅淇℃伅 */ @@ -466,7 +547,7 @@ wrkDetl.setIoTime(now); wrkDetl.setBatch(batch); wrkDetl.setAnfme(anfme); // 鏁伴噺 - wrkDetl.setZpallet(zpallet); // 鎵樼洏鏉$爜 + wrkDetl.setSuppCode(zpallet); // 鎵樼洏鏉$爜 wrkDetl.setAppeUser(userId); wrkDetl.setAppeTime(now); wrkDetl.setModiUser(userId); @@ -514,8 +595,8 @@ private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId){ AgvWrkMast wrkMast = new AgvWrkMast(); //鐢熸垚宸ヤ綔鍙� - int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); - wrkMast.setWrkNo(workNo); +// int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); +// wrkMast.setWrkNo(); //宸ヤ綔鐘舵�� wrkMast.setWrkSts(wrkSts); //鍏ュ嚭搴撶被鍨� @@ -542,9 +623,16 @@ wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); - if (!agvWrkMastService.insert(wrkMast)) { + + if (!agvWrkMastService.insertByIncrease(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } + + int i = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>()); + log.info(i + ""); + + + wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo)); return wrkMast; } @@ -556,8 +644,8 @@ private AgvWrkMast createWrkMast(AgvBasDevp agvBasDevp,AgvLocMast agvLocMast, Date now, Long userId){ AgvWrkMast wrkMast = new AgvWrkMast(); //鐢熸垚宸ヤ綔鍙� - int workNo = agvCommonService.getWorkNo(0); - wrkMast.setWrkNo(workNo); + //int workNo = agvCommonService.getWorkNo(0); + //wrkMast.setWrkNo(workNo); wrkMast.setIoTime(new Date()); // 宸ヤ綔鐘舵�侊細201.鐢熸垚鍏ュ簱浠诲姟ID wrkMast.setWrkSts(201L); -- Gitblit v1.9.1