From 4df965ceb66f05f9e13d849003821e8eaac76e1f Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期日, 03 十一月 2024 09:49:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/jxgtasrs' into jxgtasrs --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 153 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 137 insertions(+), 16 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 1923cd6..6981160 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -7,14 +7,11 @@ import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.CombParam; -import com.zy.asrs.entity.param.MobileAdjustParam; -import com.zy.asrs.entity.param.OffSaleParam; -import com.zy.asrs.entity.param.OpenOrderPakinParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; -import com.zy.common.CodeRes; +import com.zy.common.constant.ApiInterfaceConstant; import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; @@ -26,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -80,10 +74,71 @@ @Override + public R inLocCallAgv(String sta, String inSta) { + // 鍒ゆ柇鍏ュ簱绔欑偣鏈夋棤鍑哄簱浠诲姟 + int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", inSta)); + if (count > 0) { + return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟"); + } + + ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); + forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", "")); + forwardAGVTaskParam.setTaskTyp("GT3"); + forwardAGVTaskParam.setCtnrTyp("2"); + forwardAGVTaskParam.setPriority("1"); + List<ForwardAGVTaskParam.PositionCodePaths> positionCodePathsList = new ArrayList<>(); + positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(sta, "05")); + positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(inSta, "05")); + forwardAGVTaskParam.setPositionCodePath(positionCodePathsList); + + String body = JSON.toJSONString(forwardAGVTaskParam); + String response = ""; + String message = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(ApiInterfaceConstant.AGV_IP) + .setPath(ApiInterfaceConstant.AGV_CALL_IN_PATH) + .setJson(body) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + jsonObject.getString("message"); + if (jsonObject.getInteger("code").equals(0)) { + success = true; + } else { + log.error("鍏ュ簱鍛煎彨agv澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response); + } + } catch (Exception e) { + log.error("鍏ュ簱鍛煎彨agv寮傚父", e); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鍏ュ簱鍛煎彨agv", + ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + + return success ? R.ok("鍛煎彨agv鎴愬姛") : R.parse(message); + } + + @Override @Transactional public void comb(CombParam param, Long userId) { if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); + } + if(param.getCombMats().size()>1){ + throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒"); } // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). @@ -91,8 +146,8 @@ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); } - if(param.getBarcode().length()!=8){ - throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode()); + if(param.getBarcode().length()!=9){ + throw new CoolException("鏉$爜闀垮害涓嶆槸9浣�===>>" + param.getBarcode()); } if (param.getCombMats().size()>1){ throw new CoolException("涓嶅厑璁告贩鏂�===>>" + param.getBarcode()); @@ -147,15 +202,22 @@ // 鍏宠仈缁勬墭 } else { Order order = orderService.selectByNo(param.getOrderNo()); - if (order.getSettle() > 2) { + if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); } // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); - param.getCombMats().forEach(elem -> { + + for (CombParam.CombMat elem : param.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() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); } @@ -164,7 +226,7 @@ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); } - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -172,7 +234,8 @@ } else { detlDtos.add(detlDto); } - }); +// }); + } for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { @@ -190,6 +253,7 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setManu(detlDto.getMark()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } @@ -431,7 +495,7 @@ String orderNo = "PACK" + snowflakeIdWorker.nextId(); OpenOrderPakinParam openParam = new OpenOrderPakinParam(); openParam.setOrderNo(orderNo); - openParam.setOrderTime(DateUtils.convert(now)); + openParam.setInboundDate(DateUtils.convert(now)); openParam.setOrderType("鎵撳寘鍏ュ簱鍗�"); openParam.setOrderDetails(detlDtos); openService.pakinOrderCreate(openParam); @@ -558,6 +622,63 @@ } @Override +// @Transactional + public void leftoversOut(Map<String, Object> map,Long userId) { + String barcode = map.get("barcode").toString(); + String barcode2 = map.get("barcode2").toString(); + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).eq("io_type", 103)); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("鏈煡璇㈠埌鎷f枡浠诲姟"); + } + int workNo = commonService.getWorkNo(1); + WrkMast wrkMast2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode2).eq("io_type", 200)); + if (Cools.isEmpty(wrkMast2)) { + Date now = new Date(); + + WrkMast wrkMast1 = new WrkMast(); + wrkMast1.sync(wrkMast); + wrkMast1.setWrkNo(workNo); + wrkMast1.setWrkSts(2L); + wrkMast1.setIoType(200); + wrkMast1.setSourceStaNo(wrkMast.getStaNo() == 113 ? 111 : 117); + wrkMast1.setStaNo(wrkMast.getStaNo() == 113 ? 204 : 304); + wrkMast1.setIoTime(now); + wrkMast1.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast1.setCrnNo(wrkMast.getCrnNo()); + wrkMast1.setSourceLocNo(wrkMast.getLocNo()); // 婧愬簱浣� + wrkMast1.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast1.setPicking("N"); // 鎷f枡 + wrkMast1.setExitMk("N"); // 閫�鍑� + wrkMast1.setEmptyMk("N"); // 绌烘澘 + wrkMast1.setLinkMis("N"); + wrkMast1.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast1.setAppeTime(now); + wrkMast1.setModiUser(userId); + wrkMast1.setModiTime(now); + wrkMast1.setBarcode(barcode2); + if (!wrkMastService.insert(wrkMast1)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + } + + + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", map.get("barcode"))); + if (Cools.isEmpty(wrkDetls)) { + throw new CoolException("鏈煡璇㈠埌鎷f枡浠诲姟鏄庣粏"); + } + + for(WrkDetl wrkDetl : wrkDetls){ + WrkDetl wrkDetl1 = new WrkDetl(); + wrkDetl1.sync(wrkDetl); + wrkDetl1.setWrkNo(workNo); + wrkDetlService.insert(wrkDetl1); + } + + + + } + + @Override @Transactional public void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now) { -- Gitblit v1.9.1