From 2b7d6339d1ff61ab767340fdc4ef59603dc9e6e5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 31 三月 2022 09:07:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 78 +++++++++++++++++++++++++++++---------
1 files changed, 59 insertions(+), 19 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 58f8a31..a020427 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -11,16 +11,21 @@
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.model.DetlDto;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
* Created by vincent on 2020/6/28
*/
+@Slf4j
@Service
public class MobileServiceImpl implements MobileService {
@@ -36,35 +41,49 @@
@Override
@Transactional
public void comb(CombParam param, Long userId) {
- if (Cools.isEmpty(param.getBarcode()) || param.getCombMats().isEmpty()) {
+ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
throw new CoolException(BaseRes.PARAM);
}
// 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
- throw new CoolException("鏉$爜鏁版嵁宸插瓨鍦�");
+ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
}
Date now = new Date();
+
// 鏃犲崟缁勬墭
if (Cools.isEmpty(param.getOrderNo())) {
- for (CombParam.CombMat combMat : param.getCombMats()) {
- MatCode matCode = matCodeService.selectById(combMat.getMatNo());
+
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getCombMats().forEach(elem -> {
+ DetlDto detlDto = new DetlDto(elem.getMatNo(), elem.getBatch(), elem.getCount());
+ 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) {
+ MatCode matCode = matCodeService.selectById(detlDto.getMatnr());
if (Cools.isEmpty(matCode)) {
- throw new CoolException("鐗╂枡鏁版嵁閿欒");
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
}
WaitPakin waitPakin = new WaitPakin();
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
- waitPakin.setStatus("Y"); // 鐘舵��
- waitPakin.setAnfme(combMat.getCount()); // 鏁伴噺
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
VersionUtils.setWaitPakIn(waitPakin, matCode);
-
if (!waitPakinService.insert(waitPakin)) {
- throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
}
// 鍏宠仈缁勬墭
@@ -73,30 +92,51 @@
if (order.getSettle() > 2) {
throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
}
- for (CombParam.CombMat comb : param.getCombMats()) {
- OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), comb.getMatNo(), comb.getBatch());
- if (comb.getCount() > orderDetl.getEnableQty()) {
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getCombMats().forEach(elem -> {
+
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatNo(), elem.getBatch());
+ if (elem.getCount() > orderDetl.getEnableQty()) {
throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
}
- // 淇敼鍗曠粏鏁伴噺
- if (!orderDetlService.increase(order.getId(), comb.getMatNo(), comb.getBatch(), comb.getCount())) {
+ // 淇敼璁㈠崟鏄庣粏鏁伴噺
+ if (!orderDetlService.increase(order.getId(), elem.getMatNo(), elem.getBatch(), elem.getCount())) {
throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
}
- // 娣诲姞鍏ュ簱閫氱煡妗�
+
+ DetlDto detlDto = new DetlDto(elem.getMatNo(), elem.getBatch(), elem.getCount());
+ 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) {
+ MatCode matCode = matCodeService.selectById(detlDto.getMatnr());
+ if (Cools.isEmpty(matCode)) {
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
WaitPakin waitPakin = new WaitPakin();
+ waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
+ waitPakin.setBatch(detlDto.getBatch()); // 鎵瑰彿
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
- waitPakin.setStatus("Y"); // 鐘舵��
- waitPakin.setAnfme(comb.getCount()); // 鏁伴噺
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
- VersionUtils.setWaitPakIn(waitPakin, orderDetl);
+ VersionUtils.setWaitPakIn(waitPakin, matCode);
if (!waitPakinService.insert(waitPakin)) {
- throw new CoolException("娣诲姞鍏ュ簱閫氱煡妗eけ璐�");
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
}
+
}
}
--
Gitblit v1.9.1