From 0f3c5510248031f83d37613b06440faec1e58296 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期一, 13 十一月 2023 14:39:33 +0800 Subject: [PATCH] bug修复 --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 241 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 174 insertions(+), 67 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 e7b35ac..3bc500b 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -9,13 +9,14 @@ import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; import com.zy.common.model.LocDto; import com.zy.common.model.OrderDto; import com.zy.common.model.StartupDto; import com.zy.common.model.TaskDto; -import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.AgvCommonService; import com.zy.common.web.BaseController; +import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,7 +25,6 @@ import java.util.Date; import java.util.Iterator; import java.util.List; -import java.util.UUID; /** * Created by vincent on 2020/6/11 @@ -60,13 +60,18 @@ private OrderDetlService orderDetlService; @Autowired private AdjDetlService adjDetlService; + @Autowired + private AgvWrkMastLogService agvWrkMastLogService; + @Autowired + private AgvWrkDetlLogService agvWrkDetlLogService; /* 鍏ュ簱 */ @Transactional - public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId) { + @Synchronized + public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) { Date now = new Date(); @@ -79,17 +84,19 @@ throw new CoolException("閫変腑鐨勭珯鐐逛腑鍚湁璐т綅鐘舵�佷笉涓篎.鍦ㄥ簱鐨勭珯鐐癸紝璇烽噸鏂伴�夋嫨"); } - List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("zpallet", agvBasDevp.getBarcode())); + List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor()); //鐢熸垚宸ヤ綔妗� //AgvWrkMast wrkMast = createWrkMast(agvBasDevp, agvLocMast, now, userId); - AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId); + AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, isConveyor); + //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱 + wrkMast.setMk(isConveyor ? "Y" : "N"); //鐢熸垚宸ヤ綔妗f槑缁� //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId); agvWaitPakinList.forEach(wp -> { - createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getZpallet(),now,userId,wp.getThreeCode(),wp.getDeadTime()); + createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); }); //鏇存柊婧愮珯鐐逛俊鎭� updateAgvBasDevp(agvBasDevp,"R"); @@ -111,31 +118,42 @@ agvTaskDtos.forEach(taskDto -> { - AgvLocMast agvLocMast = agvLocMastService.selectById(taskDto.getLocNo()); - AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo())); + List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectByTaskDto(taskDto); + + //AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo())); //宸ヤ綔妗f墍闇�鍙傛暟 - double anfme = taskDto.getLocDtos().get(0).getAnfme(); + long wrkSts = 21L; String sourceLocNo = taskDto.getLocNo(); String targetLocNo = taskDto.getAgvStaNo(); - String barcode = agvLocDetl.getZpallet(); - //鏄庣粏妗f墍闇�鍙傛暟 - String mantr = taskDto.getLocDtos().get(0).getMatnr(); - String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); - String batch = taskDto.getLocDtos().get(0).getBatch(); + //String barcode = agvLocDetls.get(0).getSuppCode(); + String containerCode = taskDto.getLocDtos().get(0).getContainerCode(); - String csocode = agvLocDetl.getThreeCode(); - String isoseq = agvLocDetl.getDeadTime(); //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱 - int ioType = isPakOut(sourceLocNo,anfme) ? 101 : 103; + int ioType = isPakOut(sourceLocNo,taskDto) ? 101 : 103; //鐢熸垚宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,barcode,now,userId); + AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,false); //鐢熸垚宸ヤ綔妗f槑缁� - createWrkDetlReWrite(mantr,wrkMast.getWrkNo(),orderNo,batch,anfme,barcode,now,userId,csocode,isoseq); - //淇敼璁㈠崟淇℃伅 - modifyOrderDetl(taskDto.getLocDtos().get(0), userId); + taskDto.getLocDtos().forEach(locDto -> { + //鏄庣粏妗f墍闇�鍙傛暟 + createWrkDetlReWrite(locDto.getMatnr(), + wrkMast.getWrkNo(), + locDto.getOrderNo(), + locDto.getBatch(), + locDto.getAnfme(), + locDto.getContainerCode(), + now, + userId, + locDto.getCsocode(), + locDto.getIsoseq()); + + //淇敼璁㈠崟淇℃伅 + modifyOrderDetl(locDto, userId); + }); +// //淇敼璁㈠崟淇℃伅 +// modifyOrderDetl(taskDto.getLocDtos().get(0), userId); //鏇存柊婧愮珯鐐逛俊鎭� String locSts = ioType == 101 ? "R" : "P"; updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts); @@ -164,19 +182,24 @@ agvWrkMast.setIoTime(now); agvWrkMastService.updateById(agvWrkMast); - AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); + List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo())); AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo()); - AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); + //List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo()); //鎷f枡鍏ュ簱 if(ioType == 53){ //淇敼宸ヤ綔鍏氭槑缁� - agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); - agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo())); + //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())); + agvWrkDetlList.forEach(agvWrkDetl -> { + AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); + + //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme(); + agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); + }); } //淇敼搴撲綅淇℃伅 updateAgvLocMast(agvLocMast,"Q"); @@ -209,7 +232,7 @@ Date now = new Date(); //鐢熸垚宸ヤ綔鍏� - AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId); + AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId,false); //鐢熸垚宸ヤ綔鏄庣粏妗� createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); //淇敼搴撲綅淇℃伅 @@ -239,7 +262,7 @@ Date now = new Date(); //鐢熸垚绉诲簱宸ヤ綔妗� - AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId); + AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,false); //鐢熸垚宸ヤ綔鍏氭槑缁� createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime()); //淇敼鐩爣搴撲綅鐘舵�� @@ -262,7 +285,7 @@ // 妫�绱㈠簱浣� AgvLocMast locMast = agvCommonService.getLocNo(null, agvBasDevp.getFloor()); // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱 - createWrkMast(10,201L,agvBasDevp.getDevNo(),locMast.getLocNo(),null,now,userId); + createWrkMast(10,201L,agvBasDevp.getDevNo(),locMast.getLocNo(),null,now,userId,false); //鏇存柊婧愮珯鐐圭姸鎬� updateAgvBasDevp(agvBasDevp,"R"); //鏇存柊鐩爣搴撲綅鐘舵�� @@ -293,7 +316,7 @@ .eq("station_code", param.getStationCode()) .eq("loc_sts", "O")); //鐢熸垚宸ヤ綔妗� - createWrkMast(110,21L,locNo,agvBasDevp.getDevNo(),null,now,userId); + createWrkMast(110,21L,locNo,agvBasDevp.getDevNo(),null,now,userId,false); //淇敼婧愬簱浣嶇姸鎬� updateAgvLocMast(agvLocMast,"R"); //淇敼鐩爣宸ヤ綔浣嶇姸鎬� @@ -330,7 +353,7 @@ if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!agvLocDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!agvLocDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -345,8 +368,8 @@ adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); + adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); @@ -361,7 +384,7 @@ // 鍒犻櫎搴撳瓨 for (AgvLocDetl locDetl : locDetls) { // todo 鐩樼偣璁板綍 - if (!agvLocDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!agvLocDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -375,6 +398,7 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetlService.save(adjDetl, userId); } @@ -394,6 +418,7 @@ locDetl.setAppeTime(now); locDetl.setThreeCode(adjust.getThreeCode()); locDetl.setDeadTime(adjust.getDeadTime()); + locDetl.setSuppCode(adjust.getSuppCode()); if (!agvLocDetlService.insert(locDetl)) { throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); } @@ -409,8 +434,7 @@ adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); @@ -435,6 +459,91 @@ } } + @Override + @Transactional + public void completeWrkMast(String workNo, Long userId) { + AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + if (Cools.isEmpty(wrkMast)){ + throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); + } + + if(wrkMast.getWrkSts() > 202){ + //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); + + //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 + if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ + //淇敼鍑哄簱绔欑偣鐘舵�� + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } + //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 + if(wrkMast.getIoType() == 110){ + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + } + } + + } + + @Transactional + public void cancelWrkMast(String workNo, Long userId) { + AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + if (Cools.isEmpty(wrkMast)){ + throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); + } + //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷 + if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){ + throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷"); + } + + //AGV鏈哄櫒浜烘湭鍙栬揣鍓嶅彇娑� + if(wrkMast.getWrkSts() < 203){ + //鍏ュ簱鍙栨秷 + if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){ + //婧愮珯鐐� + String devNo = wrkMast.getSourceLocNo(); + //鐩爣搴撲綅 + String locNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"O"); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode()); + + //鍑哄簱鍙栨秷 + }else { + //婧愬簱浣� + String locNo = wrkMast.getSourceLocNo(); + //鐩爣绔欑偣 + String devNo = wrkMast.getLocNo(); + agvLocMastService.updateLocStsByLocNo(locNo,"F"); + if(devNo.contains("@")){ + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O",""); + } + } + + } + + //璁㈠崟鍥炴粴 + //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); + List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + agvWrkDetlList1.forEach(agvWrkDetl -> { + + if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){ + OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); + orderDetlService.updateById(orderDetl); + } + }); + + + //淇濆瓨宸ヤ綔妗d互鍙婃槑缁� + agvWrkMastLogService.save(wrkMast); + agvWrkDetlLogService.save(wrkMast.getWrkNo()); + + //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁� + if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){ + throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + + } + /* 鏇存柊鐩爣搴撲綅淇℃伅 */ @@ -447,8 +556,10 @@ 鏇存柊婧愮珯鐐逛俊鎭� */ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts){ - agvBasDevp.setLocSts(locSts); - agvBasDevpService.updateById(agvBasDevp); + if(!Cools.isEmpty(agvBasDevp)){ + agvBasDevp.setLocSts(locSts); + agvBasDevpService.updateById(agvBasDevp); + } } /* @@ -466,7 +577,7 @@ wrkDetl.setIoTime(now); wrkDetl.setBatch(batch); wrkDetl.setAnfme(anfme); // 鏁伴噺 - wrkDetl.setZpallet(zpallet); // 鎵樼洏鏉$爜 + wrkDetl.setSuppCode(zpallet); // 鎵樼洏鏉$爜 wrkDetl.setAppeUser(userId); wrkDetl.setAppeTime(now); wrkDetl.setModiUser(userId); @@ -511,11 +622,8 @@ /* 鐢熸垚宸ヤ綔妗� */ - private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId){ + private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, boolean isConveyor){ AgvWrkMast wrkMast = new AgvWrkMast(); - //鐢熸垚宸ヤ綔鍙� - int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); - wrkMast.setWrkNo(workNo); //宸ヤ綔鐘舵�� wrkMast.setWrkSts(wrkSts); //鍏ュ嚭搴撶被鍨� @@ -529,22 +637,18 @@ wrkMast.setLocNo(locNo); //瀹瑰櫒缂栫爜 wrkMast.setBarcode(barcode); - // 婊℃澘锛歒 - //wrkMast.setFullPlt("Y"); - // 鎷f枡 - //wrkMast.setPicking("N"); - // 閫�鍑� - //wrkMast.setExitMk("N"); - // 绌烘澘 - //wrkMast.setEmptyMk("N"); - //wrkMast.setLinkMis("N"); + //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱 + wrkMast.setMk(isConveyor ? "Y" : "N"); wrkMast.setAppeUser(userId); wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); - if (!agvWrkMastService.insert(wrkMast)) { + + if (!agvWrkMastService.insertByIncrease(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } + + wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo)); return wrkMast; } @@ -556,8 +660,8 @@ private AgvWrkMast createWrkMast(AgvBasDevp agvBasDevp,AgvLocMast agvLocMast, Date now, Long userId){ AgvWrkMast wrkMast = new AgvWrkMast(); //鐢熸垚宸ヤ綔鍙� - int workNo = agvCommonService.getWorkNo(0); - wrkMast.setWrkNo(workNo); + //int workNo = agvCommonService.getWorkNo(0); + //wrkMast.setWrkNo(workNo); wrkMast.setIoTime(new Date()); // 宸ヤ綔鐘舵�侊細201.鐢熸垚鍏ュ簱浠诲姟ID wrkMast.setWrkSts(201L); @@ -587,9 +691,14 @@ return wrkMast; } - private boolean isPakOut(String locNo, double anfme){ - AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); - if(agvLocDetl.getAnfme() > anfme){ + private boolean isPakOut(String locNo, TaskDto taskDto){ + Double allAnfme = agvLocDetlService.selectSumAnfmeByLocNo(locNo); + Double pakOutAnfme = 0.0; + for (LocDto locDto : taskDto.getLocDtos()){ + pakOutAnfme += locDto.getAnfme(); + } + + if(allAnfme > pakOutAnfme){ return false; } return true; @@ -603,11 +712,11 @@ if (!BaseController.isJSON(locDto.getOrderNo())) { //闈炲悎骞跺嚭搴� - OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq()); if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); + orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq()); } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) { throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); @@ -621,9 +730,9 @@ Double orderAnfme; for (OrderDto orderDto : orderDtoList) { - OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq()); if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null); + orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq()); } if(locAnfme > orderDetl.getAnfme()){ @@ -633,14 +742,12 @@ orderAnfme = locAnfme; } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme)) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) { throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } } - - } } -- Gitblit v1.9.1