From 979f2505861b77b8702604739486b62f1e339e76 Mon Sep 17 00:00:00 2001 From: dubin <bindu_bean@163.com> Date: 星期二, 07 十月 2025 08:44:11 +0800 Subject: [PATCH] 联调 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 228 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 187 insertions(+), 41 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 b9b58ed..af100de 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -1,26 +1,20 @@ package com.zy.asrs.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -import com.core.common.*; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.SnowflakeIdWorker; 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.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; -import com.zy.asrs.utils.MatUtils; -import com.zy.common.CodeRes; -import com.zy.common.constant.MesConstant; -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; import org.springframework.stereotype.Service; @@ -77,6 +71,10 @@ private ManLocDetlService manLocDetlService; @Autowired private ManLocDetlMapper manLocDetlMapper; + @Autowired + private MatBarcodeService matBarcodeService; + @Autowired + private AdjDetlService adjDetlService; @Override @@ -116,7 +114,8 @@ // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getProType(), elem.getTemp2(), elem.getOutOrderNo()); + detlDto.setMemo(detlDto.getMemo()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -132,8 +131,28 @@ if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode matBarcode = new MatBarcode(); + MatBarcode mb = matBarcodeService.selectbyMatnr(detlDto.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(param.getBarcode())){ + throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + }else { + matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮� + matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙� + matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О + matBarcode.setSpecs(mat.getSpecs());//瑙勬牸 + matBarcode.setModel(mat.getModel());//鍨嬪彿 + if (!matBarcodeService.insert(matBarcode)) { + throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�"); + } + } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); + waitPakin.setProType(detlDto.getProType()); + waitPakin.setTemp2(detlDto.getTemp2()); + waitPakin.setOutOrderNo(detlDto.getOutOrderNo()); waitPakin.setBatch(detlDto.getBatch()); waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -143,6 +162,7 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setMemo(detlDto.getMemo()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } @@ -150,7 +170,7 @@ // 鍏宠仈缁勬墭 } else { - Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo())); + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo())); if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); } @@ -169,48 +189,51 @@ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); } - 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()); + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); if (Cools.isEmpty(mat)) { - throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode matBarcode = new MatBarcode(); + MatBarcode mb = matBarcodeService.selectbyMatnr(orderDetl.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(param.getBarcode())){ + throw new CoolException(orderDetl.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + }else { + matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮� + matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙� + matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О + matBarcode.setSpecs(mat.getSpecs());//瑙勬牸 + matBarcode.setModel(mat.getModel());//鍨嬪彿 + if (!matBarcodeService.insert(matBarcode)) { + throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�"); + } } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 - waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� + waitPakin.setBatch(orderDetl.getBatch()); // 搴忓垪鐮� waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺 + waitPakin.setAnfme(elem.getAnfme()); // 鏁伴噺 waitPakin.setStatus("Y"); // 鐘舵�� waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); - OrderDetl orderDetl = orderDetlService.selectItem(waitPakin); -// if (orderDetl == null) { -// orderDetl = orderDetlService.selectItem(order.getOrderNo(), waitPakin.getMatnr(), null,detlDto.getAnfme()); -// } - if (orderDetl!=null){ - waitPakin.setBatch(orderDetl.getBatch()); - waitPakin.setSPgNO(orderDetl.getSPgNO()); - waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); - waitPakin.setProType(orderDetl.getProType()); - waitPakin.setLuHao(orderDetl.getLuHao()); - waitPakin.setPacking(orderDetl.getPacking()); - } + + waitPakin.setBatch(orderDetl.getBatch()); + waitPakin.setSPgNO(orderDetl.getSPgNO()); + waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); + waitPakin.setProType(orderDetl.getProType()); + waitPakin.setLuHao(orderDetl.getLuHao()); + waitPakin.setPacking(orderDetl.getPacking()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } - } + }); + orderService.updateSettle(order.getId(), 2L, userId); } @@ -386,7 +409,8 @@ // Mat analyse = MatUtils.analyseMat(elem.getMatnr()); // // 鏉$爜銆佺墿鏂欎唬鐮併�佸簭鍒楀彿銆佹暟閲� // DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme()); -//// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + + /// / 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; @@ -511,7 +535,6 @@ // // } // } - @Override @Transactional public void pakoutByOrder(JSONObject param, Long userId) { @@ -520,7 +543,7 @@ BasDevp sta = basDevpService.checkSiteStatus(staNo); //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。 - List<OrderDetl> pg_no = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("pg_no",orderNo)); + List<OrderDetl> pg_no = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("pg_no", orderNo)); Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", pg_no.get(0).getOrderNo())); if (order.getSettle() != 1 && order.getSettle() != 2) { throw new CoolException("璇ヨ鍗曞凡澶勭悊"); @@ -650,4 +673,127 @@ throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + + @Override + @Transactional + public void adjustNew(MobileAdjustParam param, Boolean re, Long userId) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏃犳湁鏁堝伐浣滄。"); + } + + + List<CombParam.CombMat> combMats = param.getCombMats(); + String recordRecordLog = "鎵樼洏鐮�" + param.getBarcode() + "鐩樼偣璁板綍锛�"; + AdjDetl adjDetl = new AdjDetl(); + adjDetl.setAppeTime(new Date()); + adjDetl.setAppeUser(userId); + adjDetl.setModiTime(new Date()); + adjDetl.setModiUser(userId); + adjDetl.setLocNo(wrkMast.getSourceLocNo()); + + for (CombParam.CombMat wrkDetl : combMats) { + WrkDetl wrkDetlOld = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>() + .eq("wrk_no", wrkMast.getWrkNo()) + .eq("matnr", wrkDetl.getMatnr()) +// .eq("batch",Cools.isEmpty(wrkDetl.getBatch())?"":wrkDetl.getBatch()) + ); + + + adjDetl.setMatnr(wrkDetl.getMatnr()); + adjDetl.setBatch(wrkDetl.getBatch()); + adjDetl.setAdjQty(wrkDetl.getAnfme()); + + if (Cools.isEmpty(wrkDetlOld)) { + WrkDetl detl = new WrkDetl(); + detl.sync(wrkDetl); + detl.setWrkNo(wrkMast.getWrkNo()); + detl.setZpallet(wrkMast.getBarcode()); + wrkDetlService.insert(detl); + recordRecordLog = recordRecordLog + "\n" + "鏂板涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetl.getAnfme(); + adjDetl.setOriQty(0.0); + adjDetlService.insert(adjDetl); + + } else if (wrkDetlOld.getAnfme() != wrkDetl.getAnfme()) { + wrkDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + recordRecordLog = recordRecordLog + "\n" + "鏇存柊涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鍘熸暟閲忥細" + wrkDetlOld.getAnfme() + "\t鏂版暟閲忥細" + wrkDetl.getAnfme(); + adjDetl.setOriQty(wrkDetlOld.getAnfme()); + adjDetlService.insert(adjDetl); + + } else if (wrkDetlOld.getAnfme() == wrkDetl.getAnfme()) { + recordRecordLog = recordRecordLog + "\n" + "涓�鏉℃槑缁嗕繚鎸佷笉鍙�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetlOld.getAnfme(); + continue; + } else { + throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏈煡寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + } + log.info(recordRecordLog); + } + + @Override + public void combToWms(WaitPakin waitPakin) { + // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 +// if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). +// eq("zpallet", waitPakin.getBarcode()).eq("io_status", "N")) > 0) { +// throw new CoolException(waitPakin.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); +// } + + if (waitPakin.getBarcode().length() != 8) { + throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + waitPakin.getBarcode()); + } + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", waitPakin.getBarcode())); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", waitPakin.getBarcode())); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getBarcode())); + if (countLoc > 0 || countWrk > 0) { + throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + waitPakin.getBarcode()); + } + + Date now = new Date(); + // 鐢熸垚鍏ュ簱閫氱煡妗� + List<DetlDto> detlDtos = new ArrayList<>(); + Mat byId = matService.selectById(waitPakin.getModiUser()); + DetlDto detlDto = new DetlDto(byId.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme(), waitPakin.getProType(), waitPakin.getTemp2(), waitPakin.getOutOrderNo()); + detlDto.setMemo(detlDto.getMemo()); + 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 dto : detlDtos) { + Mat mat = matService.selectByMatnr(dto.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(dto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭� + MatBarcode mb = matBarcodeService.selectbyMatnr(dto.getMatnr()); + if (mb != null){ + if (!mb.getZpallet().equals(waitPakin.getBarcode())){ + throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�"); + } + } + WaitPakin waitPakin1 = new WaitPakin(); + waitPakin1.sync(mat); + waitPakin1.setProType(dto.getProType()); + waitPakin1.setTemp2(dto.getTemp2()); + waitPakin1.setOutOrderNo(dto.getOutOrderNo()); + waitPakin1.setBatch(dto.getBatch()); + waitPakin1.setZpallet(waitPakin.getBarcode()); // 鎵樼洏鐮� + waitPakin1.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin1.setAnfme(dto.getAnfme()); // 鏁伴噺 + waitPakin1.setStatus("Y"); // 鐘舵�� + waitPakin1.setAppeUser(waitPakin.getAppeUser()); + waitPakin1.setAppeTime(now); + waitPakin1.setModiUser(waitPakin.getAppeUser()); + waitPakin1.setModiTime(now); + waitPakin1.setMemo(detlDto.getMemo()); + if (!waitPakinService.insert(waitPakin1)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + } + } } -- Gitblit v1.9.1