From f61eee2e6166cfde93e0eccccb9f1cdc80beb636 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 17 十月 2025 12:18:56 +0800
Subject: [PATCH] 联调
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 257 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 211 insertions(+), 46 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 febbe53..ad206ea 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -11,6 +11,7 @@
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.PickInParam;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
@@ -71,6 +72,10 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private MatBarcodeService matBarcodeService;
+ @Autowired
+ private AdjDetlService adjDetlService;
@Override
@@ -110,7 +115,8 @@
// 鐢熸垚鍏ュ簱閫氱煡妗�
List<DetlDto> detlDtos = new ArrayList<>();
param.getCombMats().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getProType(),elem.getTemp2(),elem.getOutOrderNo());
+ 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;
@@ -126,6 +132,23 @@
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());
@@ -140,6 +163,7 @@
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
+ waitPakin.setMemo(detlDto.getMemo());
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
@@ -147,55 +171,72 @@
// 鍏宠仈缁勬墭
} else {
- Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo()));
- if (Cools.isEmpty(order) || order.getSettle() > 2) {
- throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo()));
+ if (Cools.isEmpty(order) || order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getCombMats().forEach(elem -> {
+
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+ //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
+ OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
+ if (elem.getAnfme() > orderDetl.getEnableQty()) {
+ throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
}
- // 鐢熸垚鍏ュ簱閫氱煡妗�
- List<DetlDto> detlDtos = new ArrayList<>();
- param.getCombMats().forEach(elem -> {
+ // 淇敼璁㈠崟浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }
- // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
- //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
- OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
- if (elem.getAnfme() > orderDetl.getEnableQty()) {
- throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ 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() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�");
}
- // 淇敼璁㈠崟浣滀笟鏁伴噺
- if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
- throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }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(orderDetl.getBatch()); // 搴忓垪鐮�
+ waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(elem.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
- Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
- if (Cools.isEmpty(mat)) {
- throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
- }
- WaitPakin waitPakin = new WaitPakin();
- waitPakin.sync(mat);
- waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
- waitPakin.setBatch(orderDetl.getBatch()); // 搴忓垪鐮�
- waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
- waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
- waitPakin.setAnfme(elem.getAnfme()); // 鏁伴噺
- waitPakin.setStatus("Y"); // 鐘舵��
- waitPakin.setAppeUser(userId);
- waitPakin.setAppeTime(now);
- waitPakin.setModiUser(userId);
- waitPakin.setModiTime(now);
+ 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け璐�");
+ }
+ });
- 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);
- }
+ orderService.updateSettle(order.getId(), 2L, userId);
+ }
}
@@ -369,7 +410,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;
@@ -494,7 +536,6 @@
//
// }
// }
-
@Override
@Transactional
public void pakoutByOrder(JSONObject param, Long userId) {
@@ -633,4 +674,128 @@
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() + wrkDetlOld.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()));
+ WrkMast wrkMast = wrkMastService.selectByBarcode(waitPakin.getBarcode());
+ int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getBarcode()));
+ if (countLoc > 0 || (countWrk > 0 && wrkMast.getWrkSts() != 15)) {
+ 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