From e012a72a5660566d698c93ca4f29b6e5ffe997b0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 29 十月 2025 16:47:35 +0800
Subject: [PATCH] 3077,3106只有合格能出,2041 只有待判能出
---
src/main/java/com/zy/asrs/controller/OutController.java | 108 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 80 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index c43b525..c6eb583 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -5,6 +5,7 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.PakoutRequest;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDetlDto;
@@ -56,6 +57,13 @@
return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList()));
}
+ @PostMapping("/getMesOrder/auth")
+ @ManagerAuth
+ public R getMesOrder() {
+ List<String> orderNoList = orderService.getOrderNosByDocType(25L);
+ return R.ok().add(orderNoList);
+ }
+
@PostMapping("/out/pakout/preview/auth")
@ManagerAuth
public R pakoutPreview(@RequestBody List<Long> ids) {
@@ -75,12 +83,22 @@
return R.parse("璁㈠崟鏁版嵁涓虹┖");
}
- // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
- Map<String, List<OrderDetl>> brandGroup = orderDetls.stream()
- .collect(Collectors.groupingBy(o -> {
- String brand = o.getBrand();
- return brand != null ? brand : "璺ㄥ贩閬�";
- }));
+ Map<String, List<OrderDetl>> brandGroup;
+ if (order.getDocType() == 27) {
+ // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
+ brandGroup = orderDetls.stream()
+ .collect(Collectors.groupingBy(o -> {
+ String brand = o.getModel();
+ return brand != null ? brand : "璺ㄥ贩閬�";
+ }));
+ } else {
+ // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
+ brandGroup = orderDetls.stream()
+ .collect(Collectors.groupingBy(o -> {
+ String brand = o.getBrand();
+ return brand != null ? brand : "璺ㄥ贩閬�";
+ }));
+ }
List<LocDto> locDtos = new ArrayList<>();
@@ -89,21 +107,31 @@
for (Map.Entry<String, List<OrderDetl>> entry : brandGroup.entrySet()) {
String brand = entry.getKey();
List<OrderDetl> brandOrderDetls = entry.getValue();
+ List<LocDetl> locDetls;
+ if (order.getDocType() == 27) {
+ locDetls = locDetlService.selectList(
+ new EntityWrapper<LocDetl>().eq("model", brand)
+ );
+ } else {
+ // 鏌ヨ繖涓寘瑁呯粍瀵瑰簲鐨勬墍鏈夊簱瀛�
+ locDetls = locDetlService.selectList(
+ new EntityWrapper<LocDetl>().eq("brand", brand)
+ );
+ }
- // 鏌ヨ繖涓寘瑁呯粍瀵瑰簲鐨勬墍鏈夊簱瀛�
- List<LocDetl> locDetls = locDetlService.selectList(
- new EntityWrapper<LocDetl>().eq("brand", brand)
- );
if (locDetls.isEmpty()) continue;
// 鑾峰彇鍑哄簱鍙�
List<Integer> staNos = new ArrayList<>();
if (order.getDocType() == 21) {
- staNos.add(3077); staNos.add(3106);
+ staNos.add(3077);
+ staNos.add(3106);
} else if (order.getDocType() == 22) {
staNos.add(2041);
} else if (order.getDocType() == 23) {
- staNos.add(3092); staNos.add(3102); staNos.add(3095);
+ staNos.add(3092);
+ staNos.add(3102);
+ staNos.add(3095);
}
// 鍘婚噸 key锛岄伩鍏嶇浉鍚� loc+unit+model 閲嶅鏄剧ず
@@ -122,7 +150,7 @@
locDto.setUnit(locDetl.getUnit());
locDto.setModel(locDetl.getModel());
locDto.setThreeCode(locDetl.getThreeCode());
- locDto.setBrand(brand);
+ locDto.setBrand(locDetl.getBrand());
locDto.setOrderNo(firstDetl.getOrderNo());
locDto.setStaNos(staNos);
locDto.setOrderDetlId(firstDetl.getId());
@@ -141,13 +169,13 @@
return R.parse(BaseRes.PARAM);
}
List<LocDto> locDtos = new ArrayList<>();
- for (Long id : ids){
+ for (Long id : ids) {
Order order = orderService.selectById(id);
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(),
- orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme());
+ LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getModel(), orderDetl.getSpecs(),
+ orderDetl.getBatch(), orderDetl.getBrand(), orderDetl.getBarcode(), orderDetl.getOrderNo(), orderDetl.getAnfme());
locDto.setOrderDetlId(orderDetl.getId());
locDto.setTkType(orderDetl.getTkType());
locDtos.add(locDto);
@@ -159,7 +187,9 @@
@PostMapping("/out/pakout/auth")
@ManagerAuth(memo = "璁㈠崟鍑哄簱")
- public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException {
+ public synchronized R pakout(@RequestBody PakoutRequest request) throws InterruptedException {
+ List<LocDto> locDtos = request.getTableCache();
+ String optionValue = request.getOptionValue();
if (Cools.isEmpty(locDtos)) {
return R.parse(BaseRes.PARAM);
}
@@ -227,9 +257,20 @@
if (one != null) {
// 鍒ゆ柇鏄惁涓虹洏鐐瑰崟锛坉ocType == 23锛夛紝濡傛灉涓嶆槸鍒欐牎楠屽悎鏍兼��
Order order = orderService.selectByNo(stockOutParam.getOrderNo());
- if ( order.getDocType() != 23) {
- if (!"鍚堟牸".equals(one.getThreeCode())) {
- throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸: " + one.getThreeCode());
+ if (order.getDocType() != 23) {
+ if (order.getDocType() == 26 || order.getDocType() == 27) {
+ if ("鍚堟牸".equals(one.getThreeCode())) {
+ throw new CoolException(one.getModel() + "鍗锋槸鍚堟牸: " + one.getThreeCode());
+ }
+ } else {
+ // 3077 3106 鍙湁鍚堟牸鑳藉嚭
+ if((stockOutParam.getOutSite() == 3077 || stockOutParam.getOutSite() == 3106) && !"鍚堟牸".equals(one.getThreeCode())) {
+ throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode());
+ }
+ // 2041 鍙湁寰呭垽鑳藉嚭
+ if(stockOutParam.getOutSite() == 2041 && null != one.getThreeCode()) {
+ throw new CoolException(one.getModel() + "鍗蜂笉涓哄緟鍒�:" + one.getThreeCode());
+ }
}
}
@@ -243,10 +284,22 @@
.eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if ("F".equals(locMast.getLocSts()) || "D".equals(locMast.getLocSts())) {
Order order = orderService.selectByNo(stockOutParam.getOrderNo());
- workService.stockOut(staNo, locDetlDtos,
- order.getDocType() != null && order.getDocType() == 23
- ? IoWorkType.CHECK_OUT : null,
- getUserId());
+ IoWorkType ioWorkType = (order.getDocType() != null && order.getDocType() == 23)
+ ? IoWorkType.CHECK_OUT : null;
+ if (order.getDocType() != null) {
+ if (order.getDocType() == 26 || order.getDocType() == 27) {
+ ioWorkType = IoWorkType.ALL_OUT;
+ }
+ }
+ if (order.getDocType() == 27) {
+ workService.stockOut2(staNo, locDetlDtos,
+ ioWorkType,
+ getUserId(), optionValue);
+ }else {
+ workService.stockOut(staNo, locDetlDtos,
+ ioWorkType,
+ getUserId(), optionValue);
+ }
} else {
throw new CoolException("鎵�閫夊簱浣嶇姸鎬佷笉涓篎/D锛屽簱浣嶅彿锛�" +
locMast.getLocNo() + "锛屽綋鍓嶇姸鎬侊細" +
@@ -261,7 +314,6 @@
}
-
@PostMapping("/out/refund/loc/auth")
@ManagerAuth(memo = "璁㈠崟鍑哄簱")
public synchronized R refundLoc(@RequestBody List<LocDto> locDtos) throws InterruptedException {
@@ -271,7 +323,7 @@
long nowOrderNo = System.currentTimeMillis();
Order order = new Order(
String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
- "TK"+nowOrderNo, // 璁㈠崟缂栧彿
+ "TK" + nowOrderNo, // 璁㈠崟缂栧彿
DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
docType.getDocId(), // 鍗曟嵁绫诲瀷
null, // 椤圭洰缂栧彿
@@ -310,11 +362,11 @@
throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
}
// 鍗曟嵁鏄庣粏妗�
- int i=0;
+ int i = 0;
List<LocDto> locDtosList = new ArrayList<>();
List<String> batchList = new ArrayList<>();
for (LocDto locDto : locDtos) {
- if (!batchList.contains(locDto.getBatch())){
+ if (!batchList.contains(locDto.getBatch())) {
batchList.add(locDto.getBatch());
locDtosList.add(locDto);
}
--
Gitblit v1.9.1