From c51ab886ca899243f36cffe6c1a86d19057d44f5 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 02 十一月 2024 11:18:38 +0800 Subject: [PATCH] 合并代码,解决冲突 --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 198 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 178 insertions(+), 20 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 e70c16b..721488c 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,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.LocDetlAdjustParam; @@ -73,6 +74,12 @@ private WrkMastExecuteService wrkMastExecuteService; @Autowired private ConfigService configService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; + @Autowired + private LocDetlServiceImpl locDetlService; /* @@ -137,12 +144,13 @@ //String barcode = agvLocDetls.get(0).getSuppCode(); String containerCode = taskDto.getLocDtos().get(0).getContainerCode(); - + AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo); //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱 int ioType = isPakOut(sourceLocNo,taskDto) ? 101 : 103; //鐢熸垚宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),null); + AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),agvLocMast.getPltType()); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); taskDto.getLocDtos().forEach(locDto -> { if (!BaseController.isJSON(locDto.getOrderNo())) { //鏄庣粏妗f墍闇�鍙傛暟 @@ -157,6 +165,36 @@ locDto.getCsocode(), locDto.getIsoseq(), locDto.getProcessSts()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(wrkMast.getWrkNo().toString()); +// flowLog.setLocNo(wrkMast.getSourceLocNo()); +// flowLog.setSpare1(containerCode); +// flowLog.setOpType(4L); +// flowLog.setOrderNo(locDto.getOrderNo()); +// flowLog.setThreeCode(locDto.getCsocode()); +// flowLog.setMatnr(locDto.getMatnr()); +// flowLog.setMaktx(locDto.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme()); +// flowLog.setQtyChanged(locDto.getAnfme()); +// +// flowLog.setLocPrevious(locDetl.getAnfme()); +// flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme()); +// flowLog.setLocChanged(locDto.getAnfme()); +// flowLog.setUserId(userId); +// flowLog.setAppeTime(now); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } + }else { List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); orderDtoList.forEach(orderDto -> { @@ -174,6 +212,7 @@ locDto.getProcessSts()); }); } + //淇敼璁㈠崟淇℃伅 modifyOrderDetl(locDto, userId); @@ -211,12 +250,13 @@ //String barcode = agvLocDetls.get(0).getSuppCode(); String containerCode = taskDto.getLocDtos().get(0).getContainerCode(); - + AgvLocMast agvLocMast = agvLocMastService.selectById(sourceLocNo); //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱 int ioType = 107; //鐢熸垚宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),null); + AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2)),agvLocMast.getPltType()); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); taskDto.getLocDtos().forEach(locDto -> { if (!BaseController.isJSON(locDto.getOrderNo())) { //鏄庣粏妗f墍闇�鍙傛暟 @@ -231,6 +271,35 @@ locDto.getCsocode(), locDto.getIsoseq(), locDto.getProcessSts()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(wrkMast.getWrkNo().toString()); +// flowLog.setLocNo(wrkMast.getSourceLocNo()); +// flowLog.setSpare1(containerCode); +// flowLog.setOpType(6L); +// flowLog.setOrderNo(locDto.getOrderNo()); +// flowLog.setThreeCode(locDto.getCsocode()); +// flowLog.setMatnr(locDto.getMatnr()); +// flowLog.setMaktx(locDto.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme()); +// flowLog.setQtyChanged(locDto.getAnfme()); +// +// flowLog.setLocPrevious(locDetl.getAnfme()); +// flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme()); +// flowLog.setLocChanged(locDto.getAnfme()); +// flowLog.setUserId(userId); +// flowLog.setAppeTime(now); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } }else { List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); orderDtoList.forEach(orderDto -> { @@ -284,12 +353,21 @@ String locNo = agvWrkMast.getLocNo(); agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo()); agvWrkMast.setSourceLocNo(locNo); - agvWrkMast.setModiTime(new Date()); + agvWrkMast.setModiTime(now); agvWrkMast.setIoTime(now); agvWrkMast.setLogErrMemo("createWaitPainWrkMastStart"); agvWrkMastService.updateById(agvWrkMast); List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + for (AgvWrkDetl agvWrkDetl : agvWrkDetlList) { + agvWrkDetl.setIoTime(now); + boolean bl = agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>() + .eq("wrk_no", agvWrkDetl.getWrkNo()) + .eq("matnr",agvWrkDetl.getMatnr()) + .eq("order_no",agvWrkDetl.getOrderNo()) + .eq("three_code",agvWrkDetl.getThreeCode())); +// .eq("dead_time",agvWrkDetl.getDeadTime())); + } AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); //List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo()); @@ -391,19 +469,7 @@ //鐢熸垚绉诲簱宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,getContainerTypeByloc(sourceLocNo),targetLocMast.getPltType()); //鐢熸垚宸ヤ綔鍏氭槑缁� - createWrkDetlReWrite( - sourceLocDetl.getMatnr(), - wrkMast.getWrkNo(), - null, - sourceLocDetl.getBatch(), - sourceLocDetl.getAnfme(), - sourceLocDetl.getZpallet(), - now, - userId, - sourceLocDetl.getThreeCode(), - sourceLocDetl.getDeadTime(), - sourceLocDetl.getProcessSts() - ); + createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProcessSts()); //淇敼鐩爣搴撲綅鐘舵�� updateAgvLocMast(targetLocMast,"S"); //淇敼鍘熷簱浣嶇姸鎬� @@ -449,7 +515,7 @@ br = 2; } if (agvBasDevp.getLocType1() != br) { - throw new CoolException("绔欑偣寮傚父锛�"); + throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒"); } if (containerType == 40) { locType = 5; @@ -522,6 +588,7 @@ //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType,agvLocMast.getPltType()); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); agvWaitPakinList.forEach(wp -> { createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts()); }); @@ -558,6 +625,10 @@ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station); if(!agvBasDevp.getLocSts().equals("O")){ throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts()+",鏃犳硶杩涜绌烘澘鍑哄簱"); + } + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo())); + if(!Cools.isEmpty(agvWrkMast)){ + throw new CoolException("鏈夎揣鏋跺湪寰�绔欑偣鎼繍" + agvBasDevp.getDevNo()+",鏃犳硶杩涜绌烘澘鍑哄簱"); } //瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦 @@ -769,6 +840,7 @@ @Transactional public void cancelWrkMast(String workNo, Long userId,Integer type) { AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + long flowId = snowflakeIdWorker.nextId(); if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } @@ -834,9 +906,37 @@ // 鍥炴粴鍏ュ簱璁㈠崟 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo())); orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme()); + if (!orderDetlService.updateById(orderDetl)) { throw new CoolException("璁㈠崟鍥炴粴澶辫触"); } +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(wrkMast.getWrkNo().toString()); +// flowLog.setLocNo(locNo); +// flowLog.setSpare1(wrkMast.getBarcode()); +// flowLog.setOpType(3L); +// flowLog.setOrderNo(agvWaitPakin.getOrderNo()); +// flowLog.setThreeCode(agvWaitPakin.getThreeCode()); +// flowLog.setMatnr(agvWaitPakin.getMatnr()); +// flowLog.setMaktx(agvWaitPakin.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(orderDetl.getQty()-agvWaitPakin.getAnfme()); +// flowLog.setQtyChanged(-agvWaitPakin.getAnfme()); +// +// flowLog.setLocPrevious(0.0); +// flowLog.setLocCurrent(0.0); +// flowLog.setLocChanged(-agvWaitPakin.getAnfme()); +// +// flowLog.setUserId(userId); +// flowLog.setAppeTime(new Date()); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } // 鍒犻櫎缁勬墭妗� if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) { throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�"); @@ -866,10 +966,40 @@ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo())); orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); if (!orderDetlService.updateById(orderDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触"); } +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(wrkMast.getWrkNo().toString()); +// flowLog.setLocNo(locNo); +// flowLog.setSpare1(wrkMast.getBarcode()); +// flowLog.setOpType(8L); +// flowLog.setOrderNo(agvLocDetl.getOrderNo()); +// flowLog.setThreeCode(agvLocDetl.getThreeCode()); +// flowLog.setMatnr(agvLocDetl.getMatnr()); +// flowLog.setMaktx(agvLocDetl.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme()); +// flowLog.setQtyChanged(-agvLocDetl.getAnfme()); +// +// flowLog.setLocPrevious(0.0); +// flowLog.setLocCurrent(agvLocDetl.getAnfme()); +// flowLog.setLocChanged(agvLocDetl.getAnfme()); +// +// flowLog.setUserId(userId); +// flowLog.setAppeTime(new Date()); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } } + } else { + } + // 鑷姩璋冩嫧鍑哄簱鍙栨秷 } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) { if (wrkMast.getIoType() == 112) { @@ -904,6 +1034,33 @@ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); } +// FlowLog flowLog = new FlowLog(); +// flowLog.setFid(String.valueOf(flowId)); +// flowLog.setSpare2(wrkMast.getWrkNo().toString()); +// flowLog.setLocNo(locNo); +// flowLog.setSpare1(wrkMast.getBarcode()); +// flowLog.setOpType(9L); +// flowLog.setOrderNo(agvLocDetl.getOrderNo()); +// flowLog.setThreeCode(agvLocDetl.getThreeCode()); +// flowLog.setMatnr(agvLocDetl.getMatnr()); +// flowLog.setMaktx(agvLocDetl.getMaktx()); +// flowLog.setOrderPrevious(orderDetl.getAnfme()); +// flowLog.setOrderCurrent(orderDetl.getAnfme()); +// flowLog.setOrderChanged(0.0); +// +// flowLog.setQtyPrevious(orderDetl.getQty()); +// flowLog.setQtyCurrent(orderDetl.getQty() - agvLocDetl.getAnfme()); +// flowLog.setQtyChanged(- agvLocDetl.getAnfme()); +// +// flowLog.setLocPrevious(0.0); +// flowLog.setLocCurrent(agvLocDetl.getAnfme()); +// flowLog.setLocChanged(agvLocDetl.getAnfme()); +// +// flowLog.setUserId(userId); +// flowLog.setAppeTime(new Date()); +// if (!flowLogService.insert(flowLog)) { +// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); +// } } //鍑哄簱鍙栨秷 } else { @@ -1133,6 +1290,7 @@ wrkMast.setModiTime(now); wrkMast.setPltType(pltType); wrkMast.setLogErrMemo("createWaitPainWrkMastStart"); + if (!agvWrkMastService.insertByIncrease(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } -- Gitblit v1.9.1