From abb7c67088e18f8052eeff6d35b611286eedcee5 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 21 三月 2025 15:52:02 +0800 Subject: [PATCH] #出入库改动 --- src/main/webapp/views/pakStore/stockOut.html | 5 - src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 71 ++----------- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 152 ++++++++++++++++++----------- src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 35 ++---- src/main/webapp/static/js/pakStore/stockOut.js | 6 - 5 files changed, 116 insertions(+), 153 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 74ac54a..415d235 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -20,6 +20,7 @@ import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; import com.zy.common.model.MesCombParam; +import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -63,6 +64,10 @@ private ApiLogService apiLogService; @Autowired private WorkLogHandler workLogHandler; + @Autowired + private CommonService commonService; + @Autowired + private LocMastService locMastService; @Override @Transactional @@ -77,11 +82,11 @@ } // todo: 涓嶄笅绾块噸鏂板叆搴� - WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); - if (wrkMast != null && wrkMast.getWrkSts() == 18) { - ReturnT<String> start = workLogHandler.start(wrkMast); + WrkMast wrkMast18 = wrkMastService.selectByBarcode(param.getBarcode()); + if (wrkMast18 != null && wrkMast18.getWrkSts() == 18) { + ReturnT<String> start = workLogHandler.start(wrkMast18); if (!start.isSuccess()) { - log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", wrkMast.getWrkNo()); + log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", wrkMast18.getWrkNo()); } } @@ -90,40 +95,6 @@ // 鏃犲崟缁勬墭 if (Cools.isEmpty(param.getOrderNo())) { - // 鐢熸垚鍏ュ簱閫氱煡妗� - List<DetlDto> detlDtos = new ArrayList<>(); - param.getCombMats().forEach(elem -> { - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); - 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); - } - }); - - - for (DetlDto detlDto : detlDtos) { - Mat mat = matService.selectByMatnr(detlDto.getMatnr()); - if (Cools.isEmpty(mat)) { - throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); - } - WaitPakin waitPakin = new WaitPakin(); - waitPakin.sync(mat); - waitPakin.setBatch(detlDto.getBatch()); - waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� - waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 - waitPakin.setStatus("Y"); // 鐘舵�� - waitPakin.setAppeUser(userId); - waitPakin.setAppeTime(now); - waitPakin.setModiUser(userId); - waitPakin.setModiTime(now); - if (!waitPakinService.insert(waitPakin)) { - throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); - } - } // 鍏宠仈缁勬墭 } else { Order order = orderService.selectByNo(param.getOrderNo()); @@ -153,30 +124,93 @@ detlDtos.add(detlDto); } }); - for (DetlDto detlDto : detlDtos) { - Mat mat = matService.selectByMatnr(detlDto.getMatnr()); - if (Cools.isEmpty(mat)) { - throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); - } - WaitPakin waitPakin = new WaitPakin(); - waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 - waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� - waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� - waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 - waitPakin.setStatus("Y"); // 鐘舵�� - waitPakin.setAppeUser(userId); - waitPakin.setAppeTime(now); - waitPakin.setModiUser(userId); - waitPakin.setModiTime(now); - if (!waitPakinService.insert(waitPakin)) { - throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); - } - } + orderService.updateSettle(order.getId(), 2L, userId); } + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocno())); + if (Cools.isEmpty(locMast1)) { + throw new CoolException("鏈壘鍒版纭殑搴撲綅淇℃伅"); + } + + int workNo = commonService.getWorkNo(0); + + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(9L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + Double ioPri = wrkMastService.getIoPri(1, locMast1.getLocNo()); + wrkMast.setIoPri(ioPri); // 浼樺厛绾� + wrkMast.setCrnNo(locMast1.getCrnNo()); + wrkMast.setOutMost(locMastService.isOutMost(locMast1.getLocNo(), true)?1:0);; + wrkMast.setSourceStaNo(null); + wrkMast.setStaNo(null); + wrkMast.setLocNo(locMast1.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(null); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + + for (CombParam.CombMat paramMat : param.getCombMats() ) + { + Mat mat = matService.selectByMatnr(paramMat.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(paramMat.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + + // 鐢熸垚宸ヤ綔妗f槑缁� + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(mat); + wrkDetl.setAnfme(paramMat.getAnfme()); + wrkDetl.setZpallet(param.getBarcode()); +// wrkDetl.setAnfme(1.0D); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + +// // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y +// Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() +// .eq("zpallet", barcode); +// WaitPakin setParam = new WaitPakin(); +// setParam.setIoStatus("Y"); +// setParam.setModiTime(now); +// if (!waitPakinService.update(setParam, wrapper)) { +// throw new CoolException("鏇存柊閫氱煡妗eけ璐�"); +// } + + + // 鏇存柊鐩爣搴撲綅鐘舵�� + + if (locMast1.getLocSts().equals("O")){ + locMast1.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast1.setModiTime(now); + if (!locMastService.updateById(locMast1)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + + + } @Override 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 ebd138e..28c0d65 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -160,57 +160,7 @@ @Override @Transactional public void startupFullTakeStore(StockOutParam param, Long userId) { - ArrayList<String> locNos = new ArrayList<>(); - for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ - locNos.add(locDetl.getLocNo()); - } - //妫�娴嬫槸鍚︿负娴呭簱浣� - List<LocMast> locMasts = null; - boolean sign=false; - String th = ""; - for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ - int row = getRow(locDetl.getLocNo()); - int bay = getBay(locDetl.getLocNo()); - int lev = getLev(locDetl.getLocNo()); - if (!(row==4 || row==5)){ - if (row>5){ - locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row) - .eq("bay1",bay).eq("lev1",lev)); - for (LocMast locMast1:locMasts){ - if (locNos.contains(locMast1.getLocNo())){ - continue; - } - if (locMast1.getRow1()<row){ - if (!locMast1.getLocSts().equals("O")){ - sign=true; - th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; - break; - } - } - } - }else { - locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row) - .eq("bay1",bay).eq("lev1",lev)); - for (LocMast locMast1:locMasts){ - if (locNos.contains(locMast1.getLocNo())){ - continue; - } - if (locMast1.getRow1()>row){ - if (!locMast1.getLocSts().equals("O")){ - sign=true; - th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; - break; - } - } - } - } - } - } - if (sign){ - throw new CoolException("鍑哄簱澶辫触锛�"+th); - } - // 鐩爣绔欑偣鐘舵�佹娴� - BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { @@ -221,7 +171,7 @@ } if (!locDetlDtos.isEmpty()) { // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 - stockOut(staNo, locDetlDtos, null, userId); + stockOut(null, locDetlDtos, null, userId); } else { throw new CoolException("搴撳瓨涓嶅瓨鍦�"); } @@ -299,22 +249,25 @@ // 鑾峰彇璺緞 Boolean outMost = locMastService.isOutMost(dto.getLocNo(), false); Integer outCrnNo = locMastService.getOutCrnNo(locMast); - StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo()); + // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); - wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID - wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� + wrkMast.setWrkSts(ioType == 101?17L:9L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(ioType == 101?101:53); // 鍏ュ嚭搴撶姸鎬� Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo()); wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 wrkMast.setOutMost(outMost?1:0);; wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); - wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 - wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� - wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� + if (ioType == 101){ + wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� + }else { + wrkMast.setLocNo(dto.getLocNo()); + } + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� @@ -349,7 +302,7 @@ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� locMast = locMastService.selectById(dto.getLocNo()); if (locMast.getLocSts().equals("F")) { - locMast.setLocSts(ioType==101?"R":"P"); + locMast.setLocSts(ioType==101?"R":"Q"); locMast.setModiUser(userId); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java index 0fbb782..5251db3 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java @@ -67,37 +67,24 @@ if (wrkMast.getIoType() == 1) { // 鍏ュ簱閫氱煡鍗� if (!Cools.isEmpty(wrkMast.getBarcode())) { - // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。 - if (!waitPakinLogService.save(wrkMast.getBarcode())) { - exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo()); - } - // 鍒犻櫎鍏ュ簱閫氱煡妗� - if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) { - exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo()); - } +// // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。 +// if (!waitPakinLogService.save(wrkMast.getBarcode())) { +// exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo()); +// } +// // 鍒犻櫎鍏ュ簱閫氱煡妗� +// if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) { +// exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo()); +// } } - // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆� - if (!Cools.isEmpty(wrkDetls)) { - if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) { - exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo()); - } - } + // 鎷f枡鍐嶅叆搴� } else if (wrkMast.getIoType() == 53) { - if (!Cools.isEmpty(wrkDetls)) { - if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { - exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo()); - } - } + } // 鍑哄簱 -------------------------------------------------------------------------------- } else if (wrkMast.getWrkSts() == 18) { - if (!Cools.isEmpty(wrkDetls)) { - if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { - exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo()); - } - } + } // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js index d9b2580..b45999f 100644 --- a/src/main/webapp/static/js/pakStore/stockOut.js +++ b/src/main/webapp/static/js/pakStore/stockOut.js @@ -70,13 +70,7 @@ if (locDetlData.length === 0){ layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2}); } else { - var staNo = $("#staNoSelect").val(); - if (staNo === "" || staNo === null){ - layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2}); - return; - } let param = { - outSite: staNo, locDetls: locDetlData } $.ajax({ diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html index 3e02f19..2d6a269 100644 --- a/src/main/webapp/views/pakStore/stockOut.html +++ b/src/main/webapp/views/pakStore/stockOut.html @@ -95,11 +95,6 @@ <script type="text/html" id="toolbar"> <div class="layui-form"> <div class="layui-btn-container"> - <!-- 1.閫夋嫨鍑哄簱鍙� --> - <span id="staNoSpan">鍑哄簱鍙o細</span> - <select id="staNoSelect" lay-verify="required"> - <option value="">璇烽�夋嫨绔欑偣</option> - </select> <!-- 2.鍚姩鍑哄簱 --> <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button> </div> -- Gitblit v1.9.1