From f56e004dac74ebcf6638e0b8dc162062f19dbe34 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 06 一月 2025 15:50:02 +0800 Subject: [PATCH] #平库入库完成+库存明细+库存统计 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 140 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 4fe3a9b..2061981 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -88,25 +88,29 @@ public R inLocCallAgv(String sta, String inSta) { BasDevp basDevp = basDevpMapper.selectById(inSta); - // 0.鍑哄簱妯″紡锛�1.agv鍏ュ簱涓紝2.鐢熸垚鍏ュ簱浠诲姟 - if (basDevp.getDevMk().equals("0")) { // 鏄嚭搴� - // 鍒ゆ柇鏄惁鏈夊嚭搴撲换鍔� - Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().lt("wrk_sts", 14).in("io_type", 101, 103, 107, 110); - switch (inSta) { - case "1040": wrapper.in("source_sta_no","1043","1044");break; - case "2010": wrapper.in("source_sta_no","2013","2014"); break; - case "2000": wrapper.in("source_sta_no","2003","2004");break; - case "3010": wrapper.in("source_sta_no","3013","3014");break; - default: - } - int count = wrkMastService.selectCount(wrapper); - if (count == 0) { - // 娌℃湁鍑哄簱浠诲姟锛屾洿鏀逛负鍏ュ簱妯″紡 - basDevp.setDevMk("1"); - basDevpMapper.updateById(basDevp); - } else { - return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟"); - } + + // 鍒ゆ柇鏄惁鏈夊嚭搴撲换鍔� + Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().lt("wrk_sts", 14).in("io_type", 101, 103, 107, 110); + + switch (inSta) { + case "1040": + wrapper.in("source_sta_no", "1043", "1044"); + break; + case "2010": + wrapper.in("source_sta_no", "2013", "2014"); + break; + case "2000": + wrapper.in("source_sta_no", "2003", "2004"); + break; + case "3010": + wrapper.in("source_sta_no", "3013", "3014"); + break; + default: + } + int count = wrkMastService.selectCount(wrapper); + log.info("鍏ュ簱鍛煎彨agv鍛煎彨绔欑偣锛歿}锛岀洰鏍囩珯鐐癸細{},鍑哄簱浠诲姟鏁帮細{}",sta,inSta,count); + if (count != 0) { + return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟"); } // 鍏堢粦瀹� @@ -138,10 +142,13 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - jsonObject.getString("message"); if (jsonObject.getInteger("code").equals(0)) { success = true; + // 鍏ュ簱鏆傚瓨+1 + basDevp.setInQty(basDevp.getInQty() + 1); + basDevpMapper.updateById(basDevp); } else { + message = jsonObject.getString("message"); log.error("鍏ュ簱鍛煎彨agv澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response); } } catch (Exception e) { @@ -410,6 +417,10 @@ waitPakin.setTemp2(detlDto.getTemp2()); waitPakin.setTemp3(detlDto.getTemp3()); waitPakin.setTemp4(detlDto.getTemp4()); + int countWrk2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); + if (countWrk2 > 0) { + throw new CoolException("宸ヤ綔妗f潯鐮佹暟鎹凡瀛樺湪===>>" + param.getBarcode()); + } if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } @@ -481,6 +492,11 @@ wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); wrkDetl.setManu(orderDetl.getManu()); + wrkDetl.setSupp(orderDetl.getSupp()); + wrkDetl.setTemp1(orderDetl.getTemp1()); + wrkDetl.setTemp2(orderDetl.getTemp2()); + wrkDetl.setTemp3(orderDetl.getTemp3()); + wrkDetl.setTemp4(orderDetl.getTemp4()); wrkDetlService.insert(wrkDetl); } @@ -798,7 +814,7 @@ Date now = new Date(); for(OrderDetl orderDetl : orderDetls){ //鏌ヨ鎵�鏈夊簱浣嶇姸鎬佷负F鐨勫簱浣嶄俊鎭� - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),null,null,null); + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),null,null,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); if (locDetls.size() == 0) { throw new CoolException("搴撳瓨涓病鏈夎鐗╂枡"); } @@ -988,6 +1004,109 @@ } + @Override + @Transactional + public void pingKuShelves(CombParam combParam,Long userId) { + Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3)); + if (Cools.isEmpty(node)){ + throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�"); + } + + Order order = orderService.selectByNo(combParam.getOrderNo()); + if (Cools.isEmpty(order) || order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + } + // 鐢熸垚鍏ュ簱閫氱煡妗� + List<DetlDto> detlDtos = new ArrayList<>(); + + for (CombParam.CombMat elem : combParam.getCombMats()) { + + +// param.getCombMats().forEach(elem -> { + + // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 + OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); + if (Cools.isEmpty(orderDetl)) { + throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�"); + } + if (elem.getAnfme() > orderDetl.getEnableQty()) { + throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + +// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() + , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); + if (DetlDto.has(detlDtos, detlDto)) { + DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); + assert one != null; + one.setAnfme(one.getAnfme() + detlDto.getAnfme()); + } else { + detlDtos.add(detlDto); + } +// }); + } + int workNo = commonService.getWorkNo(4); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(4L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(300); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(12D); // 浼樺厛绾� + wrkMast.setLocNo(node.getName()); + wrkMast.setBarcode(""); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setSheetNo(order.getOrderNo()); + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + for (DetlDto detlDto : detlDtos) { + Mat mat = matService.selectByMatnr(detlDto.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + WrkDetl wrkDetl = new WrkDetl(); + + wrkDetl.sync(detlDto); + wrkDetl.sync(mat); + + wrkDetl.setOrderNo(order.getOrderNo()); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setManu(detlDto.getMark()); //鏍囪 + wrkDetl.setOrigin(order.getItemName());//浠撳簱 + wrkDetl.setSupp(detlDto.getSuppName()); //渚涘簲鍟� + wrkDetl.setSku(detlDto.getCustomer()); //瀹㈡埛鍚嶇О + wrkDetl.setThreeCode(detlDto.getOrderNo()); //u8鍙戣繃鏉ョ殑璁㈠崟鍙� + wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿 + wrkDetl.setTemp1(detlDto.getTemp1()); + wrkDetl.setTemp2(detlDto.getTemp2()); + wrkDetl.setTemp3(detlDto.getTemp3()); + wrkDetl.setTemp4(detlDto.getTemp4()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + orderService.updateSettle(order.getId(), 2L, userId); + + + } + public void uploadErp(InventoryErpParam param){ String response = ""; boolean success = false; -- Gitblit v1.9.1