From 77db84d63aa23dfa63bdc667f73ee6507369fd9a Mon Sep 17 00:00:00 2001 From: LSH Date: 星期四, 03 十一月 2022 10:57:40 +0800 Subject: [PATCH] #pda同步优化 根据用户编号查询用户码 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 91 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 319a009..34ec9c5 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -75,6 +75,8 @@ private RowLastnoService rowLastnoService; @Autowired private SlaveProperties slaveProperties; + @Autowired + private WaitPakinService waitPakinService; @Override @Transactional @@ -199,15 +201,29 @@ for (OutLocDto dto : dtos) { // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱 if (ioWorkType == null) { - ioType = dto.isAll() ? 101 : 103; +// ioType = dto.isAll() ? 101 : 103; + ioType = 101; } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) { ioType = 107; } assert ioType != null; // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (Cools.isEmpty(locMast)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } + if (locMast.getPackStatus()==2 ){ + throw new CoolException("浜у搧鍦ㄦ祴璇曚腑锛岀姝㈠嚭搴�"); + } + + Integer outSta = staNo.getDevNo(); + //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202 + if(locMast.getCrnNo()==2){ + outSta = ioType == 101 ? 204 : 202; + } + // 鑾峰彇璺緞 - StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo()); + StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); // 鐢熸垚宸ヤ綔妗� @@ -501,9 +517,14 @@ LocMast loc = locMastService.selectById(locNo); if (Cools.isEmpty(loc)){ throw new CoolException("鏈壘鍒板簱浣�"); - } - if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { - throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); + }else if (sourceLoc.getPackStatus()==2){ + throw new CoolException("浜у搧鍦ㄦ祴璇曚腑锛岀姝㈠簱浣嶇Щ鏍�"); +// }else if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { +// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); + }else if(sourceLoc.getPackStatus()!=3){ + if(sourceLoc.getLocType1()!=loc.getLocType1()){ + throw new CoolException("婧愬簱涓轰笌鐩爣搴撲綅鐨勫簱浣嶇被鍨嬩笉鍚�"); + } } Date now = new Date(); // 鑾峰彇宸ヤ綔鍙� @@ -515,7 +536,7 @@ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 wrkMast.setIoPri(10D); - wrkMast.setCrnNo(sourceLoc.getCrnNo()); + wrkMast.setCrnNo(1); wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣� wrkMast.setLocNo(locNo); // 鐩爣搴撲綅 wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒 @@ -631,7 +652,7 @@ // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { - throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�"); + throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); } // 淇濆瓨璋冩暣璁板綍 AdjDetl adjDetl = new AdjDetl(); @@ -656,7 +677,7 @@ for (LocDetl locDetl : locDetls) { // todo 鐩樼偣璁板綍 if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { - throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); + throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触"); } // 淇濆瓨璋冩暣璁板綍 AdjDetl adjDetl = new AdjDetl(); @@ -686,7 +707,7 @@ locDetl.setAppeUser(userId); locDetl.setAppeTime(now); if (!locDetlService.insert(locDetl)) { - throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); + throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触"); } // 淇濆瓨璋冩暣璁板綍 AdjDetl adjDetl = new AdjDetl(); @@ -724,6 +745,7 @@ @Override @Transactional public void cancelWrkMast(String workNo, Long userId) { + Date now = new Date(); WrkMast wrkMast = wrkMastService.selectById(workNo); if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); @@ -743,7 +765,7 @@ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo()); } locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F"); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); locMast.setModiUser(userId); locMastService.updateById(locMast); } @@ -765,28 +787,76 @@ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo()); } locMast.setLocSts("O"); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); locMast.setModiUser(userId); locMastService.updateById(locMast); } } else { throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } - // 璁㈠崟鍏宠仈 - List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); - for (WrkDetl wrkDetl : wrkDetls) { - if (!Cools.isEmpty(wrkDetl.getOrderNo())) { - if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { - throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); + + //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊 + if(wrkMast.getIoType() == 1) { + List<WaitPakin> waitPakins=waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode())); + for (WaitPakin waitPakin:waitPakins){ + if (!Cools.isEmpty(waitPakin)) { + waitPakin.setIoStatus("N"); + waitPakin.setLocNo(""); + boolean result = waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>() + .eq("zpallet", wrkMast.getBarcode())); } - // 鐢熸垚鏂扮殑鍑哄簱浣滀笟 -// stockOutRe(wrkMast, wrkDetls); } } + + //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺 + if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) { + List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); + for (WrkDetl wrkDetl : wrkDetls) { + if (!Cools.isEmpty(wrkDetl.getOrderNo())) { + if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { + throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); + } + + //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼 + boolean flag = true; + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo())); + for(OrderDetl orderDetl : orderDetls){ + if(orderDetl.getWorkQty() > 0){ + flag = false; + } + } + if(flag){ + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo())); + if(!Cools.isEmpty(order) && order.getSettle()==2){ + order.setSettle(1L); + order.setUpdateBy(userId); + order.setUpdateTime(now); + } + if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){ + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); + } + } + } + } + + } + +// // 璁㈠崟鍏宠仈 +// List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); +// for (WrkDetl wrkDetl : wrkDetls) { +// if (!Cools.isEmpty(wrkDetl.getOrderNo())) { +// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { +// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); +// } +// // 鐢熸垚鏂扮殑鍑哄簱浣滀笟 +//// stockOutRe(wrkMast, wrkDetls); +// } +// } + // 鍙栨秷鎿嶄綔浜哄憳璁板綍 wrkMast.setManuType("鎵嬪姩鍙栨秷"); wrkMast.setModiUser(userId); - wrkMast.setModiTime(new Date()); + wrkMast.setModiTime(now); if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�"); } @@ -812,7 +882,7 @@ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo); } locMast.setLocSts(locSts); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); locMast.setModiUser(userId); boolean locMastRes = locMastService.updateById(locMast); if (!wrkMastRes || !locMastRes) { -- Gitblit v1.9.1