From 8d702fa2c62b3617f71c5e91293e338d1ccd1549 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 08 十一月 2025 13:15:23 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 163 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java b/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java
index 3c2aa8a..fb1cdd0 100644
--- a/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java
+++ b/src/main/java/com/zy/asrs/utils/OrderOutBatchUtil.java
@@ -7,6 +7,7 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.param.OrderOutLocBoxCsUtilParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
@@ -15,6 +16,7 @@
import com.zy.common.properties.SlaveProperties;
import com.zy.system.entity.OperateLog;
import com.zy.system.service.OperateLogService;
+import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.Date;
@@ -78,7 +80,166 @@
}
- public R setOrderOutBatch(List<String[]> OutLocBoxCs) {
+ public R setOrderOutBatch(List<OrderOutLocBoxCsUtilParam> OutLocBoxCs) {
+ int total = OutLocBoxCs.size();
+ if (!Cools.isEmpty(OutLocBoxCs) && !OutLocBoxCs.isEmpty()) {
+ LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
+ LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+ SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+ WorkService workService = SpringUtils.getBean(WorkService.class);
+ List<LocDto> locDtos = new ArrayList<>();
+ List<OrderOutLocBoxCsUtilParam> outLocBoxCList = new ArrayList<>();
+ List<String> outLocBoxCNew = new ArrayList<>();
+ List<String> outLocRollListOld = new ArrayList<>();
+ List<String> outLocRollListNew = new ArrayList<>();
+ for (OrderOutLocBoxCsUtilParam outLocBoxC : OutLocBoxCs) {
+ if (!outLocRollListOld.contains(outLocBoxC.getRoll())) {
+ outLocRollListOld.add(outLocBoxC.getRoll());
+ }
+ }
+ for (OrderOutLocBoxCsUtilParam outLocBoxC : OutLocBoxCs) {
+ total--;
+ LocDetl locDetlSou = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC.getBoxNo()).eq("model",outLocBoxC.getRoll()));
+ if (Cools.isEmpty(locDetlSou)) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC.getBoxNo() + "鍗峰彿锛�" + outLocBoxC.getRoll() + " 鏈煡璇㈠埌鏁版嵁锛侊紒锛併��===]";
+ continue;
+ }
+ if (signDanger){
+ if (!locDetlSou.getDanger$().equals(outLocBoxC.getDanger())) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC.getBoxNo() + "鍗峰彿锛�" + outLocBoxC.getRoll() + " ==銆嬪嚭搴撹緭鍏ュ緟鍒ょ姸鎬侊細" + outLocBoxC.getDanger() + "銆佸簱瀛樼姸鎬侊細" + locDetlSou.getDanger$() + "銆傜姸鎬佷笉鍖归厤銆�===]";
+ continue;
+ }
+ }
+ if (!outLocBoxCNew.contains(outLocBoxC.getBoxNo())) {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlSou.getLocNo()));
+ if (Cools.isEmpty(locMast)) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC.getBoxNo() + "鍗峰彿锛�" + outLocBoxC.getRoll() + " 鎵�鍦ㄥ簱浣嶄笉婊¤冻鍑哄簱鏉′欢锛侊紒锛佹湭鏌ヨ鍒版绠卞彿鎵�鍦ㄥ簱浣�" + "銆�===]";
+ continue;
+ }
+ if (!locMast.getLocSts().equals("F")) {
+ sign = false;
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC.getBoxNo() + "鍗峰彿锛�" + outLocBoxC.getRoll() + " 鎵�鍦ㄥ簱浣嶄笉婊¤冻鍑哄簱鏉′欢锛侊紒锛佸簱浣嶇姸鎬佷笉涓篎锛侊紒锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$() + "銆�===]";
+ continue;
+ }
+
+ // 鐩爣搴撲綅 ===>> 娴呭簱浣�
+ if (Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) {
+ String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast.getLocNo());
+ LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
+ if (!Cools.isEmpty(locMast2)) {
+ if (locMast2.getLocSts().equals("P") || locMast2.getLocSts().equals("R")) {
+ errorMsgOrderLoc = errorMsgOrderLoc + "[===銆�" + "绠卞彿锛�" + outLocBoxC.getBoxNo() + "鍗峰彿锛�" + outLocBoxC.getRoll() + " 鎵�鍦ㄥ簱浣嶆弧瓒冲嚭搴撴潯浠讹紒锛侊紒浣嗘槸鐩搁偦搴撲綅鍦ㄥ嚭搴撲腑锛侊紒锛佸洜姝や細澶规潅鍦ㄥ墠杈硅鍗曟墽琛岋紒锛侊紒" + "銆�===]";
+ }
+ }
+ }
+ }
+ if (sign && !outLocRollListNew.contains(outLocBoxC.getRoll())) {
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("loc_no", locDetlSou.getLocNo()).eq("origin", locDetlSou.getOrigin()));
+ for (LocDetl locDetl : locDetls) {
+ if (!outLocRollListNew.contains(locDetl.getModel())){
+ if (!outLocRollListOld.contains(locDetl.getModel())){
+ total++;
+ OrderOutLocBoxCsUtilParam orderOutLocBoxCsUtilParam = new OrderOutLocBoxCsUtilParam(locDetl.getBatch(),locDetl.getModel(), outLocBoxC);
+ orderOutLocBoxCsUtilParam.setMemo("闄勫甫鍑哄簱");
+ orderOutLocBoxCsUtilParam.setDanger(locDetl.getDanger$());
+ outLocBoxCList.add(orderOutLocBoxCsUtilParam);
+ outLocBoxCNew.add(outLocBoxC.getBoxNo());
+ outLocRollListNew.add(outLocBoxC.getRoll());
+ } else {
+ if (locDetlSou.getBatch().equals(locDetl.getBatch()) && locDetlSou.getModel().equals(locDetl.getModel())) {
+ total++;
+ outLocBoxCList.add(outLocBoxC);
+ outLocBoxCNew.add(outLocBoxC.getBoxNo());
+ outLocRollListNew.add(outLocBoxC.getRoll());
+ }
+ }
+ }
+ }
+ }
+ }
+ for (OrderOutLocBoxCsUtilParam outLocBoxC : outLocBoxCList) {
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("batch", outLocBoxC.getBoxNo()).eq("model", outLocBoxC.getRoll()));
+ if (Cools.isEmpty(locDetl)) {
+ total--;
+ continue;
+ }
+
+ if (!Cools.isEmpty(Mono.just(outLocBoxC.getMemo()))) {
+ String memo = Cools.isEmpty(locDetl.getMemo()) ? "" : locDetl.getMemo() + "锛�";
+ locDetl.setMemo(memo + DateUtils.convert(new Date(), DateUtils.yyyyMMdd_C) + "澶囨敞锛�" + outLocBoxC.getMemo());
+ } else if (Cools.isEmpty(locDetl.getMemo())) {
+ locDetl.setMemo(outLocBoxC.getMemo());
+ }
+ LocDto locDto = new LocDto(locDetl);
+ locDtos.add(locDto);
+ }
+
+ StockOutParam param = new StockOutParam();
+ ArrayList<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+ List<LocDto> locDtosList = new ArrayList<>();
+ List<String> batchList = new ArrayList<>();
+ for (LocDto locDto : locDtos) {
+ if (!batchList.contains(locDto.getBatch())) {
+ batchList.add(locDto.getBatch());
+ locDtosList.add(locDto);
+ }
+ }
+ for (LocDto locDto : locDtosList) {
+ StockOutParam.LocDetl locDetl = new StockOutParam.LocDetl();
+ locDetl.setBrand(locDto.getBrand());
+ locDetl.setLocNo(locDto.getLocNo());
+ locDetl.setAnfme(locDto.getAnfme());
+ locDetl.setMatnr(locDto.getMatnr());
+ locDetl.setBatch(locDto.getBatch());
+ locDetl.setModel(locDto.getModel());
+ locDetl.setSpecs(locDto.getSpecs());
+ locDetl.setZpallet(locDto.getZpallet());
+ locDetl.setOrigin(locDto.getOrigin());
+ locDetl.setWeight(locDto.getWeight());
+ locDetl.setMemo(locDto.getMemo());
+ locDetl.setDanger(locDto.getDanger());
+
+ locDetls.add(locDetl);
+ }
+ param.setLocDetls(locDetls);
+ param.setOrderNo(orderOneNo);
+ param.setCstmrName(cstmrName);
+ param.setOrderName(orderName);
+ param.setGroupGoodsNo(groupGoodsNo);
+
+ if (sign && total > 0) {
+ workService.startupFullTakeStoreOrder(param, 9999L);
+ }
+
+ try {
+ OperateLogService operateLogService = SpringUtils.getBean(OperateLogService.class);
+ // 璁板綍鎿嶄綔鏃ュ織
+ OperateLog operateLog = new OperateLog();
+ operateLog.setAction(action);
+ operateLog.setIp(ip);
+ operateLog.setUserId(9999L);
+ operateLog.setRequest("鍗曞彿锛�" + orderOneNo + "銆佸鎴峰悕锛�" + cstmrName);
+ operateLog.setResponse(errorMsgOrderLoc.equals("") ? "姝e父" : (sign && total > 0) ? "鎴愬姛:" + errorMsgOrderLoc : "澶辫触:" + errorMsgOrderLoc);
+ operateLogService.insert(operateLog);
+ } catch (Exception e) {
+ log.error("璁板綍鎿嶄綔鏃ュ織澶辫触锛�" + e.getMessage());
+ }
+
+ }
+
+ log.info("鍑哄簱{}鏉$鍙凤紒", total);
+
+ String requert = errorMsgOrderLoc.equals("") ? "姝e父" : (sign && total > 0) ? "鎴愬姛:" + errorMsgOrderLoc : "澶辫触:" + errorMsgOrderLoc;
+ if (sign && total > 0) {
+ return R.ok(requert.equals("姝e父")? "鎴愬姛":requert);
+ }
+ return R.error(requert);
+ }
+ public R setOrderOutBatchCargoBookingNote(List<String[]> OutLocBoxCs) {
int total = OutLocBoxCs.size();
if (!Cools.isEmpty(OutLocBoxCs) && !OutLocBoxCs.isEmpty()) {
LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
@@ -196,7 +357,7 @@
param.setGroupGoodsNo(groupGoodsNo);
if (sign && total > 0) {
- workService.startupFullTakeStoreOrder(param, 9999L);
+ workService.startupFullTakeStoreOrderPakout(param, 9999L);
}
try {
--
Gitblit v1.9.1