From 67f4004e7645ecb4b88191981bcb106a55cd5765 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期二, 29 八月 2023 16:03:14 +0800 Subject: [PATCH] U8接口bug修复 --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 141 insertions(+), 18 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 f5ea49e..faa8d95 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -5,6 +5,8 @@ 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.StockOutParam; import com.zy.asrs.service.*; import com.zy.common.model.LocDto; import com.zy.common.model.OrderDto; @@ -38,7 +40,7 @@ @Autowired private AgvBasDevpService agvBasDevpService; @Autowired - private AgvLocMastService agvLockMastService; + private AgvLocMastService agvLocMastService; @Autowired private AgvLocDetlService agvLocDetlService; @Autowired @@ -104,7 +106,7 @@ agvTaskDtos.forEach(taskDto -> { - AgvLocMast agvLocMast = agvLockMastService.selectById(taskDto.getLocNo()); + AgvLocMast agvLocMast = agvLocMastService.selectById(taskDto.getLocNo()); AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo())); //宸ヤ綔妗f墍闇�鍙傛暟 @@ -128,7 +130,7 @@ modifyOrderDetl(taskDto.getLocDtos().get(0), userId); //鏇存柊婧愮珯鐐逛俊鎭� String locSts = ioType == 101 ? "R" : "P"; - updateAgvLocMast(agvLockMastService.selectById(sourceLocNo),locSts); + updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts); //鏇存柊鐩爣绔欑偣鐘舵�� //locSts = ioType == 101 ? "S" : "Q"; updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S"); @@ -143,7 +145,11 @@ agvWrkMastList.forEach(agvWrkMast -> { //淇敼宸ヤ綔鍏� agvWrkMast.setWrkSts(201L); - agvWrkMast.setIoType(53); + + //鏍规嵁鍑哄簱绫诲瀷 璁剧疆鍏ュ簱绫诲瀷 53鎷f枡鍏ュ簱 57鐩樼偣鍏ュ簱 + int ioType = agvWrkMast.getIoType() == 103 ? 53 : 57; + + agvWrkMast.setIoType(ioType); String locNo = agvWrkMast.getLocNo(); agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo()); agvWrkMast.setSourceLocNo(locNo); @@ -151,22 +157,139 @@ agvWrkMastService.updateById(agvWrkMast); AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); - AgvLocMast agvLocMast = agvLockMastService.selectById(agvWrkMast.getLocNo()); + AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo()); - //淇敼宸ヤ綔鍏氭槑缁� - agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); - agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo())); - //淇敼搴撳瓨淇℃伅 - agvLocDetl.setAnfme(agvWrkDetl.getAnfme()); - agvLocDetlService.update(agvLocDetl,new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocDetl.getLocNo())); - //淇敼搴撲綅淇℃伅 - agvLocMast.setLocSts("Q"); - agvLockMastService.selectById(agvLocMast); - //淇敼绔欑偣淇℃伅 - agvBasDevp.setLocSts("R"); - agvBasDevpService.updateById(agvBasDevp); + //鎷f枡鍏ュ簱 + if(ioType == 53){ + //淇敼宸ヤ綔鍏氭槑缁� + agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); + agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo())); + //淇敼搴撳瓨淇℃伅 + agvLocDetl.setAnfme(agvWrkDetl.getAnfme()); + agvLocDetlService.update(agvLocDetl,new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocDetl.getLocNo())); + } + //淇敼搴撲綅淇℃伅 + updateAgvLocMast(agvLocMast,"Q"); + //淇敼绔欑偣淇℃伅 + updateAgvBasDevp(agvBasDevp,"R"); + + }); + } + + /* + 鐩樼偣鍑哄簱 + */ + @Transactional + public void locCheckOut(StockOutParam param, Long userId) { + String station = param.getStation(); + List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() + .eq("station_code", station) + .eq("loc_sts","O")); + + if(param.getLocDetls().size() > agvBasDevpList.size()){ + throw new CoolException("褰撳墠绔欑偣鍙敤缂撳瓨璐ф灦鏁伴噺涓�" + agvBasDevpList.size() + ",灏戜簬闇�瑕佺洏鐐瑰嚭搴撳簱浣嶆暟閲忥紝璇烽噸鏂伴�夋嫨鐩樼偣搴撲綅"); + } + + param.getLocDetls().forEach(locDetl -> { + AgvLocMast agvLocMast = agvLocMastService.selectById(locDetl.getLocNo()); + AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locDetl.getLocNo())); + AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>() + .eq("station_code", station) + .eq("loc_sts","O")); + Date now = new Date(); + + //鐢熸垚宸ヤ綔鍏� + AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId); + //鐢熸垚宸ヤ綔鏄庣粏妗� + createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId); + //淇敼搴撲綅淇℃伅 + updateAgvLocMast(agvLocMast,"P"); + //淇敼绔欑偣淇℃伅 + updateAgvBasDevp(agvBasDevp,"S"); + + }); + + } + + /* + 搴撲綅绉昏浆 + */ + @Transactional + public void locMove(String sourceLocNo, String targetLocNo, Long userId) { + AgvLocMast sourceLocMast = agvLocMastService.selectById(sourceLocNo); + AgvLocMast targetLocMast = agvLocMastService.selectById(targetLocNo); + AgvLocDetl sourceLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocMast.getLocNo())); + + if(!sourceLocMast.getLocSts().equals("F")){ + throw new CoolException(sourceLocMast.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLocMast.getLocSts$()); + } + if(!targetLocMast.getLocSts().equals("O")){ + throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+targetLocMast.getLocSts$()); + } + + Date now = new Date(); + //鐢熸垚绉诲簱宸ヤ綔妗� + AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId); + //鐢熸垚宸ヤ綔鍏氭槑缁� + createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId); + //淇敼鐩爣搴撲綅鐘舵�� + updateAgvLocMast(targetLocMast,"S"); + //淇敼鍘熷簱浣嶇姸鎬� + updateAgvLocMast(sourceLocMast,"R"); + } + + /* + 绌烘澘鍏ュ簱 + */ + @Transactional + public String emptyPlateIn(String sourceStaion, Long userId) { + Date now = new Date(); + // 婧愮珯鐐圭姸鎬佹娴� + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(sourceStaion); + if(!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); + //鏇存柊婧愮珯鐐圭姸鎬� + updateAgvBasDevp(agvBasDevp,"R"); + //鏇存柊鐩爣搴撲綅鐘舵�� + updateAgvLocMast(locMast,"S"); + return locMast.getLocNo(); + } + + /* + 绌烘澘鍑哄簱 + */ + @Transactional + public void emptyPlateOut(EmptyPlateOutParam param, 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() + "锛屽皬浜庤鍑哄簱鐨勫簱浣嶆暟閲忥紝璇烽噸鏂伴�夋嫨鍑哄簱搴撲綅"); + } + 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); + //淇敼婧愬簱浣嶇姸鎬� + updateAgvLocMast(agvLocMast,"R"); + //淇敼鐩爣宸ヤ綔浣嶇姸鎬� + updateAgvBasDevp(agvBasDevp,"S"); }); } @@ -175,7 +298,7 @@ */ private void updateAgvLocMast(AgvLocMast locMast, String locSts){ locMast.setLocSts(locSts); - agvLockMastService.updateById(locMast); + agvLocMastService.updateById(locMast); } /* -- Gitblit v1.9.1