From 7fa3ceea3bf9cbc0f6f5d1f0ad4c2e3672f098a5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 18 八月 2022 16:55:16 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 4 ++
src/main/java/com/zy/common/model/OrderDto.java | 50 +++++++++++++++++++++++++
src/main/java/com/zy/asrs/controller/OutController.java | 37 ++++++++++++++++--
3 files changed, 87 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 67a7dde..b625d86 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -4,11 +4,10 @@
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.OrderDetl;
+import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
+import com.zy.common.model.OrderDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -104,12 +103,42 @@
return R.error("搴撳瓨涓嶈冻");
}
- Thread.sleep(1000L);
+ Thread.sleep(500L);
+
+ // 璁㈠崟棰勬牎楠� ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺
+ List<OrderDto> orderDtos = new ArrayList<>();
+ for (LocDto locDto : locDtos) {
+ if (Cools.isEmpty(locDto.getOrderNo())) { continue; }
+ OrderDto orderDto = new OrderDto(locDto.getOrderNo(), locDto.getMatnr(), locDto.getAnfme());
+ if (OrderDto.has(orderDtos, orderDto)) {
+ OrderDto dto = OrderDto.find(orderDtos, orderDto);
+ assert dto != null;
+ dto.setAnfme(dto.getAnfme() + orderDto.getAnfme());
+ } else {
+ orderDtos.add(orderDto);
+ }
+ }
+ for (OrderDto orderDto : orderDtos) {
+ Order order = orderService.selectByNo(orderDto.getOrderNo());
+ if (order.getSettle() > 2) {
+ return R.error(orderDto.getOrderNo() + "璁㈠崟宸插け鏁堬紝璇峰強鏃跺埛鏂伴〉闈�");
+ }
+ OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), orderDto.getMatnr(), null);
+ if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) {
+ return R.ok(orderDto.getOrderNo() + "璁㈠崟宸蹭綔涓氾紝璇峰強鏃跺埛鏂伴〉闈�");
+ }
+ }
List<TaskDto> taskDtos = new ArrayList<>();
// 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
for (LocDto locDto : locDtos) {
if (locDto.isLack()) { continue; }
+ // 闃叉鍓嶇椤甸潰鎻愬彇搴撲綅淇℃伅鍚庯紝鍦ㄥ叾浠栧湴鏂瑰璇ュ簱浣嶇敓鎴愪簡鍑哄簱浠诲姟(搴撲綅鐘舵�侀潪F鐘舵��)
+ LocMast locMast = locMastService.selectById(locDto.getLocNo());
+ if(!Cools.isEmpty(locMast) && !locMast.getLocSts().equals("F")){
+ return R.error("搴撲綅鍙烽潪鍦ㄥ簱鐘舵�侊紝璇烽噸鏂伴�夋嫨鍑哄簱搴撲綅===>>" + locDto.getLocNo());
+ }
+
TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
if (TaskDto.has(taskDtos, taskDto)) {
TaskDto dto = TaskDto.find(taskDtos, taskDto);
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0d39802..e49c04f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -326,6 +326,10 @@
if (orderDetl == null) {
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
+ LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch());
+ if (locDetl == null || locDetl.getAnfme() < locDto.getAnfme()) {
+ throw new CoolException(locDto.getLocNo() + "搴撲綅涓�" + locDto.getMatnr() + "鍟嗗搧搴撳瓨涓嶈冻锛�");
+ }
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
diff --git a/src/main/java/com/zy/common/model/OrderDto.java b/src/main/java/com/zy/common/model/OrderDto.java
new file mode 100644
index 0000000..362b2b7
--- /dev/null
+++ b/src/main/java/com/zy/common/model/OrderDto.java
@@ -0,0 +1,50 @@
+package com.zy.common.model;
+
+import com.core.common.Cools;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2022/8/18
+ */
+@Data
+public class OrderDto {
+
+ private String orderNo;
+
+ private String matnr;
+
+ private Double anfme;
+
+ public OrderDto(String orderNo, String matnr, Double anfme) {
+ this.orderNo = orderNo;
+ this.matnr = matnr;
+ this.anfme = anfme;
+ }
+
+ public static boolean has(List<OrderDto> list, OrderDto dto) {
+ if (Cools.isEmpty(list)) {
+ return false;
+ }
+ for (OrderDto orderDto : list) {
+ if (dto.getOrderNo().equals(orderDto.getOrderNo()) && dto.getMatnr().equals(orderDto.getMatnr())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static OrderDto find(List<OrderDto> list, OrderDto dto) {
+ if (Cools.isEmpty(list)) {
+ return null;
+ }
+ for (OrderDto orderDto : list) {
+ if (dto.getOrderNo().equals(orderDto.getOrderNo()) && dto.getMatnr().equals(orderDto.getMatnr())) {
+ return orderDto;
+ }
+ }
+ return null;
+ }
+
+}
--
Gitblit v1.9.1