From f3603d9f0eb85d2a42edbcadd0950889af2c24d2 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期一, 19 二月 2024 18:14:05 +0800 Subject: [PATCH] #库存迁移逻辑修改,从工作明细档进行处理 --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 50 +++++++++++++++++++++++++++++++++----------------- 1 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java index f7f3e71..8d5d43a 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; -import com.zy.asrs.entity.*; +import com.zy.asrs.entity.AgvLocDetl; +import com.zy.asrs.entity.AgvWaitPakin; +import com.zy.asrs.entity.AgvWrkDetl; +import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; +import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -17,6 +21,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service @@ -57,10 +62,10 @@ agvWrkMastService.updateById(agvWrkMast); if(agvWrkMast.getIoType() == 10){ // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉� - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D"); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode()); }else{ //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱 - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F"); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); } //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� agvWrkMastLogService.save(agvWrkMast); @@ -82,7 +87,7 @@ //鏇存柊搴撳瓨鏄庣粏 agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O"); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O",""); } //鍒犻櫎AGV宸ヤ綔妗� @@ -113,7 +118,7 @@ agvWrkMast.setWrkSts(207L); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O"); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O",""); if(agvWrkMast.getIoType() == 101){ //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); @@ -162,7 +167,6 @@ continue; } } - //202.RCS鍙栬揣涓� agvWrkMast.setWrkSts(202L); agvWrkMastService.updateById(agvWrkMast); @@ -171,16 +175,21 @@ agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); } } - return SUCCESS; } - return FAIL; } @Transactional public ReturnT<String> startCarryWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { + //log.info(agvWrkMastList.toString()); + //浠诲姟杩囨护锛岃繃婊ゆ帀宸插瓨鍦ㄧ浉鍚岀洰鏍囧簱浣嶇殑宸ヤ綔妗� + //agvWrkMastList = filter(agvWrkMastList); int code = agvWrkMastService.startWrk(agvWrkMastList,"carry"); + //log.info(agvWrkMastList.toString()); + if (Cools.isEmpty(agvWrkMastList)){ + return SUCCESS; + } if(code == 0){ agvWrkMastList.forEach(agvWrkMast -> { //202.RCS鍙栬揣涓� @@ -195,17 +204,11 @@ return FAIL; } + @Synchronized + @Transactional public ReturnT<String> dealWatiWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { agvWrkMastList.forEach(agvWrkMast -> { -// //瀵绘壘绌虹珯鐐逛綅缃� -// AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(agvWrkMast.getLocNo()); -// if(!Cools.isEmpty(agvBasDevp)){ -// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null); -// agvWrkMast.setLocNo(agvBasDevp.getDevNo()); -// agvWrkMastService.updateById(agvWrkMast); -// } - //鏌ヨ璇ョ珯鐐规墍鏈夋殏瀛樹綅鍦ㄥ伐浣滄。涓嚭鐜扮殑娆℃暟 List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo()); //鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝 @@ -213,8 +216,8 @@ if((int)devNoMap.get("num") < maxWrokNum){ agvWrkMast.setLocNo(devNoMap.get("dev_no").toString()); agvWrkMastService.updateById(agvWrkMast); + log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); } - }); return SUCCESS; @@ -242,4 +245,17 @@ } } } + + private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){ + return agvWrkMastList.stream().filter(agvWrkMast -> { + AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo())); + if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){ + System.out.println("source_loc_no > 1"); + return false; + } + log.info(agvWrkMast.toString()); + int num = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvWrkMast.getLocNo())); + return num <= maxWrokNum; + }).collect(Collectors.toList()); + } } -- Gitblit v1.9.1