From 801d18d505ed7b979c2cac3872daa6b78724c504 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期二, 26 三月 2024 14:57:35 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 76 insertions(+), 38 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 533d9cd..9d20ed1 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -7,7 +7,6 @@ import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; @@ -90,7 +89,7 @@ List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor()); + AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1()); //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, isConveyor); //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱 @@ -254,8 +253,8 @@ taskDtos.forEach(taskDto -> { //鍒ゆ柇鏄惁鏈夐噸澶嶆枡鎯崇殑宸ヤ綔褰� - AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(taskDto.getLocDtos().get(0).getContainerCode()); - if(!Cools.isEmpty(agvWrkMast)){ + AgvWrkMast agvWrkMastList = agvWrkMastService.selectByContainerCode(taskDto.getLocDtos().get(0).getContainerCode()); + if(!Cools.isEmpty(agvWrkMastList)){ return; } @@ -311,56 +310,86 @@ } /* - 绌烘澘鍏ュ簱 + 鍏ュ簱 */ @Transactional - public String emptyPlateIn(String sourceStaion, Long userId) { + public String emptyPlateIn(String station,String containerCode,int containerType, Long userId) { + Date now = new Date(); // 婧愮珯鐐圭姸鎬佹娴� - AgvBasDevp agvBasDevp = agvBasDevpService.selectById(sourceStaion); - if(!agvBasDevp.getLocSts().equals("O")){ + //AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(station); + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station); + + //鍒濆瀹氫箟涓虹┖鏉垮叆搴撶被鍨� + int ioType = 10; + +// if(Cools.isEmpty(agvBasDevp.getBarcode())){ +// agvBasDevp.setBarcode(containerCode); +// } + + if(!Cools.eq(agvBasDevp.getBarcode(),containerCode) && !agvBasDevp.getLocSts().equals("O")){ throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜绌烘澘鍏ュ簱"); } - // 妫�绱㈠簱浣� - AgvLocMast locMast = agvCommonService.getLocNo(null, agvBasDevp.getFloor()); - // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱 - createWrkMast(10,201L,agvBasDevp.getDevNo(),locMast.getLocNo(),null,now,userId,false); + + //鏌ヨ宸ヤ綔妗� + AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode); + if(!Cools.isEmpty(agvWrkMast)){ + throw new CoolException("褰撳墠瀹瑰櫒宸叉湁鍏ュ簱浠诲姟锛屾棤娉曡繘琛屽叆搴�"); + } + + //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 + AgvLocMast agvLocMast = agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1()); + + //鏌ヨ鍏ュ簱閫氱煡妗� + List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode); + if(!Cools.isEmpty(agvWaitPakinList)){ + //鐢熸垚宸ヤ綔妗� + AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId, false); + //鐢熸垚宸ヤ綔妗f槑缁� + agvWaitPakinList.forEach(wp -> { + createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); + }); + //淇敼鍏ュ簱閫氱煡妗g姸鎬� + agvWaitPakinService.updateIoStatus(containerCode,"Y"); + }else { + // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱 + createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,false); + } + //鏇存柊婧愮珯鐐圭姸鎬� updateAgvBasDevp(agvBasDevp,"R"); - //鏇存柊鐩爣搴撲綅鐘舵�� - updateAgvLocMast(locMast,"S"); - return locMast.getLocNo(); + //鏇存柊鐩爣搴撲綅鐘舵�佸拰淇℃伅 + updateAgvLocMast(agvLocMast,"S", (short) containerType); + return agvLocMast.getLocNo(); } /* 绌烘澘鍑哄簱 */ @Transactional - public void emptyPlateOut(EmptyPlateOutParam param, Long userId) { + public void emptyPlateOut(String station, int containerType, Long userId) { Date now = new Date(); - //鍒ゆ柇鎵�閫夊伐浣滅珯绌轰綑宸ヤ綔浣嶆暟閲忔槸鍚︽弧瓒冲嚭搴撴暟閲� - List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() - .eq("station_code", param.getStationCode()) - .eq("loc_sts","O")); - if(agvBasDevpList.size() < param.getLocNos().size()){ - throw new CoolException("褰撳墠宸ヤ綔绔欏彲鍑哄簱宸ヤ綔浣嶆暟閲忎负"+ agvBasDevpList.size() + "锛屽皬浜庤鍑哄簱鐨勫簱浣嶆暟閲忥紝璇烽噸鏂伴�夋嫨鍑哄簱搴撲綅"); + + // 绔欑偣妫�娴� + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station); + if(!agvBasDevp.getLocSts().equals("O")){ + throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜绌烘澘鍑哄簱"); } - param.getLocNos().forEach(locNo -> { - AgvLocMast agvLocMast = agvLocMastService.selectById(locNo); - if(!agvLocMast.getLocSts().equals("D")){ - throw new CoolException(agvLocMast.getLocNo() + "搴撲綅鐘舵�佸凡缁忎笉涓篋.绌烘《/绌烘爤鏉匡紝璇烽噸鏂伴�夋嫨搴撲綅杩涜绌烘澘鍑哄簱"); - } - //妫�绱㈠伐浣滀綅 - AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>() - .eq("station_code", param.getStationCode()) - .eq("loc_sts", "O")); - //鐢熸垚宸ヤ綔妗� - createWrkMast(110,21L,locNo,agvBasDevp.getDevNo(),null,now,userId,false); - //淇敼婧愬簱浣嶇姸鎬� - updateAgvLocMast(agvLocMast,"R"); - //淇敼鐩爣宸ヤ綔浣嶇姸鎬� - updateAgvBasDevp(agvBasDevp,"S"); - }); + + //瀵绘壘鐩稿簲绫诲瀷鐨勭┖鎵樼洏 + AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType); + if (Cools.isEmpty(agvLocMast)) { + throw new CoolException("鏆傛棤褰撳墠鍑哄簱绔欑偣绫诲瀷鐨勭┖鎵樼洏锛�"); + } + //鐢熸垚宸ヤ綔妗� + createWrkMast(110,21L,agvLocMast.getLocNo(),agvBasDevp.getDevNo(),agvLocMast.getBarcode(),now,userId,false); + + //淇敼婧愬簱浣嶇姸鎬� + updateAgvLocMast(agvLocMast,"R"); + + //淇敼绔欑偣鐘舵�� + updateAgvBasDevp(agvBasDevp,"S"); + } @Transactional @@ -601,6 +630,15 @@ } /* + 鏇存柊鐩爣搴撲綅淇℃伅鍜屽簱浣嶆墭鐩樼被鍨� + */ + private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type){ + locMast.setLocSts(locSts); + locMast.setLocType2(type); + agvLocMastService.updateById(locMast); + } + + /* 鏇存柊婧愮珯鐐逛俊鎭� */ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts){ -- Gitblit v1.9.1