From 24c2fd8ab62fa12ae96658664e7ffd478bef6e62 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期一, 13 五月 2024 19:16:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 123 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index 92dda9f..971beea 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -7,6 +7,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; +import com.zy.asrs.entity.param.PickParam; import com.zy.asrs.service.*; import com.zy.common.model.DetlDto; import lombok.extern.slf4j.Slf4j; @@ -40,6 +41,12 @@ private AgvBasDevpService agvBasDevpService; @Autowired private AgvLocDetlService agvLocDetlService; + @Autowired + private AgvWrkMastService agvWrkMastService; + @Autowired + private AgvWorkService agvWorkService; + @Autowired + private AgvWrkDetlService agvWrkDetlService; /* @@ -51,15 +58,21 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } + param.setContainerType(Short.valueOf(param.getBarcode().substring(0,2))); - //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯� - if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().eq("supp_code", param.getBarcode())) > 0) { - throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); - } +// //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯� +// if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().eq("supp_code", param.getBarcode())) > 0) { +// throw new CoolException(param.getBarcode() + "鏂欐兂鐮佸凡瀛樺湪AGV鍏ュ簱閫氱煡妗d腑"); +// } //妫�鏌ュ簱瀛樻槸鍚︽湁鐩稿悓鏂欑锛屽瓨鍦ㄥ垯鎶涘嚭寮傚父 if(!Cools.isEmpty(agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("supp_code",param.getBarcode())))){ - throw new CoolException(param.getBarcode() + "鏂欑鐮佸凡鍦ㄥ簱瀛樹腑"); + throw new CoolException(param.getBarcode() + "鏂欑鐮佸凡瀛樺湪AGV搴撳瓨鏄庣粏涓�"); + } + + //鏌ョ湅宸ヤ綔妗f槸鍚︽湁鐩稿悓鏂欑锛屽瓨鍦ㄥ垯鎶涘嚭寮傚父 + if(!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))){ + throw new CoolException(param.getBarcode() + "鏂欑鐮佸凡瀛樺湪AGV宸ヤ綔妗d腑"); } if (Cools.isEmpty(param.getOrderNo())) { @@ -73,10 +86,78 @@ if(StringUtils.isEmpty(param.getLocno())){ return "缁勬墭鎴愬姛"; }else { - combBinding(param.getBarcode(),param.getLocno()); + combBinding(param.getBarcode(),param.getLocno(),param.getContainerType()); return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�"; } + } + + /* + 缁勬墭 + 缁戝畾鏆傚瓨浣� + */ + @Override + @Transactional + public String pickAgain(PickParam pickParams, Long userId) { + Date now = new Date(); + List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo())); + + for (PickParam.Pick pick : pickParams.getPicks()) { + if (pick.getCount().equals(0D)) continue; + AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode())); + if (Cools.isEmpty(agvWrkDetl)) { + AgvWrkDetl wrkDetl = new AgvWrkDetl(); + Mat mat = matService.selectByMatnr(pick.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�"); + } + wrkDetl.sync(mat); + wrkDetl.setWrkNo(pickParams.getWrkNo()); + wrkDetl.setOrderNo(pick.getOrderNo()); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺 + wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜 + wrkDetl.setAppeUser(userId); + wrkDetl.setAppeTime(now); + wrkDetl.setModiUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setThreeCode(pick.getThreeCode()); + agvWrkDetlService.insert(wrkDetl); + } else { + Double anfme = agvWrkDetl.getAnfme() + pick.getCount(); + agvWrkDetl.setAnfme(anfme); + agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode())); + + } + + + // 鏇存柊璁㈠崟 + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode())); + orderDetl.setQty(orderDetl.getQty() + pick.getCount()); + if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){ + throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+pick.getOrderNo()+pick.getMatnr()); + } + } + // 纭鏄惁鍏ㄩ儴鍑哄簱 + int sameNumber = 0; + List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo())); + for (AgvLocDetl agvLocDetl : agvLocDetls) { + for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { + if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr()) + && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode()) + && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode()) + && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) { + sameNumber++; + } + } + } + if (agvLocDetls.size() == sameNumber) { + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); + agvWrkMast.setIoType(101); + agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); + } + + + return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�"; } /* @@ -91,6 +172,8 @@ syncWaitPakin(detlDto,"",param.getBarcode(),userId,now); }); } + + /* AGV鏈夊崟缁勬墭 @@ -129,10 +212,10 @@ checkOrderQty(order,combMat); } - DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode()); + DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),param.getLocType()); //鍚屼竴鎵樼洏涓嬬浉鍚岀墿鏂欎俊鎭拰鎵瑰彿杞负涓�涓叆搴撻�氱煡妗� if (DetlDto.has(detlDtos, detlDto)) { - DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),null); + DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),detlDto.getContainerCode()); assert one != null; one.setAnfme(one.getAnfme() + detlDto.getAnfme()); } else { @@ -184,6 +267,8 @@ //閿�鍞鍗曡鍙� waitPakin.setDeadTime(detlDto.getIsoseq()); + waitPakin.setLocType(detlDto.getLocType()); + waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); @@ -208,28 +293,38 @@ } @Override - public void combBinding(String barcode, String stationCode) { + public void combBinding(String barcode, String stationCode, Short containerType) { + + AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", stationCode)); + + if(Cools.eq(agvBasDevp.getBarcode(),barcode)){ + return; + } if(Cools.isEmpty(agvWaitPakinService.selectByContainerCode(barcode))){ throw new CoolException("璇ユ枡绠辨湭缁勬墭锛屾棤娉曠粦瀹氱珯鐐�"); } - AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode)); + AgvBasDevp agvBasDevp1 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode)); - if(!Cools.isEmpty(agvBasDevp)){ + if(!Cools.isEmpty(agvBasDevp1)){ throw new CoolException(barcode + "宸茬粡缁戝畾鍦�"+ agvBasDevp.getDevNo() +"绔欑偣"); } - agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode)); if(agvBasDevp == null){ throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒"); } if(!"O".equals(agvBasDevp.getLocSts())){ throw new CoolException(stationCode + "璇ョ珯鐐硅揣浣嶇姸鎬侀潪绌�"); } + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo())); + if(!Cools.isEmpty(agvWrkMast)){ + throw new CoolException(stationCode + "璇ョ珯鐐瑰凡琚伐浣滃彿涓�" + agvWrkMast.getWrkNo() + "鍗犵敤锛屾棤娉曠粦瀹�"); + } agvBasDevp.setBarcode(barcode); agvBasDevp.setLocSts("F"); + agvBasDevp.setLocType2(containerType); agvBasDevpService.update(agvBasDevp,(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode))); } @@ -242,4 +337,20 @@ }).collect(Collectors.toList()); } + @Override + public void pakinEmpty(String devNo, boolean pakin) { + //褰撳墠绔欑偣淇℃伅 + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); + //瀵绘壘鐩稿悓绫诲瀷鐨勫簱浣� + + //鐢熸垚绌虹洏宸ヤ綔妗� + + //鏇存敼搴撲綅鐘舵�佷互鍙婄珯鐐圭姸鎬� + } + + @Override + public void pakoutEmpty(String devNo) { + + } + } -- Gitblit v1.9.1