From dd76858f35bb4fdd76d5976465e9bd96267b0f0b Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 06 五月 2026 09:50:53 +0800
Subject: [PATCH] 初始化
---
src/main/java/com/zy/asrs/controller/OutController.java | 61 ++++++++++++++++++++++++++----
1 files changed, 52 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index abfc36d..c36657a 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -1,25 +1,27 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.entity.result.StoPreTab;
import com.zy.asrs.service.*;
-import com.zy.common.model.DetlDto;
+import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2022/3/26
@@ -43,6 +45,14 @@
@Autowired
private BasDevpService basDevpService;
+
+ @PostMapping("/out/pakout/orderDetlIds/auth")
+ @ManagerAuth
+ public R pakoutOrderDetlIds(@RequestParam Long orderId) throws InterruptedException {
+ Thread.sleep(200);
+ return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList()));
+ }
+
@PostMapping("/out/pakout/preview/auth")
@ManagerAuth
public R pakoutPreview(@RequestBody List<Long> ids) {
@@ -51,23 +61,52 @@
}
List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
List<LocDto> locDtos = new ArrayList<>();
+
+ Set<String> exist = new HashSet<>();
+
+ // 璁㈠崟鏄庣粏涓瘡涓�鏉$殑鐗╂枡鍦ㄥ簱浣嶆槑缁嗛噷闈㈡壘锛屽簱浣嶆槑缁嗘壘瀵瑰簲搴撲綅鐨勬祬娣变袱涓簱浣嶏紝杩欏氨鏄鍗曟槑缁嗕腑鐗╂枡鑳芥壘鍒扮殑鎵�鏈夊簱瀛樻槑缁�
for (OrderDetl orderDetl : orderDetls) {
- double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+ // 鍒ゆ柇鍑哄簱鏁伴噺-鍑哄簱瀹屾垚鏁伴噺 鏄惁宸茬粡婊¤冻鏉′欢
+ double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
if (issued <= 0.0D) { continue; }
- List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null);
+ // 鏍规嵁鐗╂枡鍜屾壒娆℃煡璇㈠簱浣嶆槑缁嗕腑鍖呭惈鐨勫簱浣嶆槑缁�
+ List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
+ // 涓嶉噸澶嶇殑搴撳瓨鏄庣粏锛屼篃鍖呮嫭涓嶆弧瓒虫潯浠剁殑搴撲綅鏄庣粏
+ Set<LocDetl> list = new LinkedHashSet<>();
for (LocDetl locDetl : locDetls) {
+ // 鎷垮埌杩欎釜搴撲綅鏄庣粏瀵瑰簲鐨勫簱浣嶅彿鐨勫厛娴呭悗娣变袱涓簱浣嶅彿
+ List<String> groupLoc = Utils.getGroupLocNo(locDetl.getLocNo(), false);
+ for (String loc : groupLoc) {
+ LocMast locMast = locMastService.selectById(loc);
+ // 涓嶅湪搴撳垯涓嬩竴娆″惊鐜紝杩欐槸涓轰簡鎶婃祬娣变袱涓簱浣嶇殑鐗╂枡鏄庣粏閮藉彇鍑烘潵锛岀湅鏄笉鏄兘婊¤冻鍏朵粬璁㈠崟涓殑鐗╂枡
+ if (!locMast.getLocSts().equals("F")) {
+ continue;
+ }
+
+ // 鍦ㄥ簱鍒欐煡璇㈠嚭杩欎釜搴撶殑搴撳瓨鏄庣粏
+ List<LocDetl> detls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no",loc));
+ // 杩藉姞鍒版槑缁嗘湯灏�,涓嶉噸澶�
+ list.addAll(detls);
+ }
+ }
+ // 鐩村埌婊¤冻璁㈠崟鏁伴噺鏉′欢
+ for (LocDetl locDetl : list) {
if (issued > 0) {
+ // 杩樺樊鐨勬暟閲忓鏋滃ぇ浜庤搴撲綅鏄庣粏鏁伴噺鍒欏彇搴撲綅鏄庣粏鏁伴噺
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+ // 杩樺樊鐨勬暟閲忓鏋滃ぇ浜庤搴撲綅鏄庣粏鏁伴噺鍒欏彇搴撲綅鏄庣粏鏁伴噺閭e氨鏄嚭搴擄紝鍚﹀垯鎹℃枡鍑哄簱锛屽苟鏌ヨ鍑哄嚭搴撶珯鐐�
List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
locDto.setStaNos(staNos);
locDtos.add(locDto);
+ exist.add(locDetl.getLocNo());
// 鍓╀綑寰呭嚭鏁伴噺閫掑噺
issued = issued - locDetl.getAnfme();
} else {
break;
}
}
+ // 杩樹笉澶熸爣璁颁负true锛屼笉鑳藉畬鎴愯鍗�
if (issued > 0) {
LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
locDto.setLack(Boolean.TRUE);
@@ -83,26 +122,30 @@
if (Cools.isEmpty(locDtos)) {
return R.parse(BaseRes.PARAM);
}
- boolean refuse = true;
+ boolean lack = true;
for (LocDto locDto : locDtos) {
if (!locDto.isLack()) {
- refuse = !refuse;
+ lack = false;
+ break;
}
}
- if (refuse) {
+ if (lack) {
return R.error("搴撳瓨涓嶈冻");
}
- Thread.sleep(500L);
+ Thread.sleep(1000L);
List<TaskDto> taskDtos = new ArrayList<>();
// 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
for (LocDto locDto : locDtos) {
if (locDto.isLack()) { continue; }
TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+ // 濡傛灉搴撲綅鍜屼綔涓氱珯鐐规湁閲嶅
if (TaskDto.has(taskDtos, taskDto)) {
+ // 鎵惧埌閲嶅鐨勯偅涓�
TaskDto dto = TaskDto.find(taskDtos, taskDto);
assert dto != null;
+ // 鎶婇噸澶嶇殑杩藉姞鍒颁换鍔¢噷闈�
dto.getLocDtos().addAll(taskDto.getLocDtos());
} else {
taskDtos.add(taskDto);
--
Gitblit v1.9.1