From 2caa2f2df08c71b3c908a450cd37daeeda6f5c58 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 09 九月 2024 12:32:18 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java | 33 ++++++++++++++--
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java | 19 ++-------
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/LocBindType.java | 65 ++++++++++++++++++++++++++++++++
3 files changed, 98 insertions(+), 19 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/LocBindType.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/LocBindType.java
new file mode 100644
index 0000000..a69a2c5
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/LocBindType.java
@@ -0,0 +1,65 @@
+package com.zy.asrs.wms.asrs.entity.enums;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.LocType;
+import com.zy.asrs.wms.asrs.service.LocTypeService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public enum LocBindType {
+
+ HEIGHT("locTypeHeight", "楂樹綆绫诲瀷"),
+ WEIGHT("locTypeWeight", "瀹界獎绫诲瀷"),
+ ;
+
+
+ public String flag;
+ public String desc;
+
+ LocBindType(String flag, String desc) {
+ this.flag = flag;
+ this.desc = desc;
+ }
+
+ public long val() {
+ LocTypeService service = SpringUtils.getBean(LocTypeService.class);
+ LocType locType = service.getOne(new LambdaQueryWrapper<LocType>().eq(LocType::getFlag, flag));
+ if (locType == null) {
+ throw new CoolException("LocType Error!");
+ }
+ return locType.getId();
+ }
+
+ public List<Long> list() {
+ LocTypeService service = SpringUtils.getBean(LocTypeService.class);
+ LocType locType = service.getOne(new LambdaQueryWrapper<LocType>().eq(LocType::getFlag, flag));
+ if (locType == null) {
+ throw new CoolException("LocType Error!");
+ }
+
+ List<LocType> list = service.list(new LambdaQueryWrapper<LocType>().eq(LocType::getParentId, locType.getId()));
+ ArrayList<Long> longs = new ArrayList<>();
+ for (LocType type : list) {
+ longs.add(type.getId());
+ }
+
+ if (longs.isEmpty()) {
+ throw new CoolException("LocType Error!");
+ }
+ return longs;
+ }
+
+ public static LocBindType get(String flag) {
+ for (LocBindType value : LocBindType.values()) {
+ if (flag.equals(value.flag)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
index 141bcf3..92c9b51 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -8,6 +8,7 @@
import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.utils.LocUtils;
+import com.zy.asrs.wms.utils.OrderUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -57,6 +58,8 @@
private LocTypeService locTypeService;
@Autowired
private MatService matService;
+ @Autowired
+ private OrderUtils orderUtils;
@Override
public String generateTaskNo(Long taskType) {
@@ -496,19 +499,7 @@
//鍥炴粴璁㈠崟
for (TaskDetl taskDetl : taskDetls) {
if (taskDetl.getDetlId() != null) {
- OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId());
- if(orderDetl == null){
- throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
- }
-
- //鍥炴粴宸ヤ綔鏁伴噺
- orderDetl.setWorkQty(orderDetl.getWorkQty() - taskDetl.getAnfme());
- orderDetl.setUpdateTime(new Date());
- boolean orderDetlUpdate = orderDetlService.updateById(orderDetl);
- if(!orderDetlUpdate){
- throw new CoolException("宸ヤ綔鏁伴噺鍥炴粴澶辫触");
- }
-
+ orderUtils.updateWorkQty(taskDetl.getDetlId(), taskDetl.getAnfme(), false);
}
//鍏ュ簱鍥炴粴缁勬墭閫氱煡妗�
@@ -586,7 +577,7 @@
}
//鑾峰彇婧愬簱浣嶉珮搴�
- LocTypeBind locTypeBind = locTypeBindService.getOne(new LambdaQueryWrapper<LocTypeBind>().eq(LocTypeBind::getLocId, originLoc.getId()));
+ LocTypeBind locTypeBind = locTypeBindService.getOne(new LambdaQueryWrapper<LocTypeBind>().eq(LocTypeBind::getLocId, originLoc.getId()).in(LocTypeBind::getTypeId, LocBindType.HEIGHT.list()));
if(locTypeBind == null){
throw new CoolException("搴撲綅绫诲瀷涓嶅瓨鍦�");
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
index 5845506..badd6f8 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
@@ -1,5 +1,6 @@
package com.zy.asrs.wms.utils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.entity.OrderDetl;
@@ -11,6 +12,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
+import java.util.List;
@Component
public class OrderUtils {
@@ -22,13 +24,18 @@
@Transactional
public void updateWorkQty(Long orderDetlId, Double qty) {
+ updateWorkQty(orderDetlId, qty, true);
+ }
+
+ @Transactional
+ public void updateWorkQty(Long orderDetlId, Double qty, boolean increase) {
OrderDetl orderDetl = orderDetlService.getById(orderDetlId);
- if(orderDetl == null) {
+ if (orderDetl == null) {
throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
}
Order order = orderService.getById(orderDetl.getOrderId());
- if(order == null) {
+ if (order == null) {
throw new CoolException("璁㈠崟涓嶅瓨鍦�");
}
@@ -40,16 +47,32 @@
}
Double workQty = orderDetl.getWorkQty();
- orderDetl.setWorkQty(workQty + qty);
+ if (increase) {
+ orderDetl.setWorkQty(workQty + qty);
+ }else {
+ orderDetl.setWorkQty(workQty - qty);
+ }
orderDetl.setUpdateTime(new Date());
if (!orderDetlService.updateById(orderDetl)) {
throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
}
+ List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
+ boolean flag = false;
+ for (OrderDetl detl : orderDetls) {
+ if ((detl.getQty() + detl.getWorkQty()) > 0) {
+ flag = true;
+ break;
+ }
+ }
- order.setOrderSettle(OrderSettleType.WORKING.val());
+ if (flag) {
+ order.setOrderSettle(OrderSettleType.WORKING.val());
+ } else {
+ order.setOrderSettle(OrderSettleType.WAIT.val());
+ }
order.setUpdateTime(new Date());
- if(!orderService.updateById(order)) {
+ if (!orderService.updateById(order)) {
throw new CoolException("璁㈠崟鏇存柊澶辫触");
}
}
--
Gitblit v1.9.1