From 2191824072549f0da35d73686a075e59b0196321 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期三, 25 九月 2024 15:02:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wms-dev' into wms-dev
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 88 insertions(+), 5 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
index d00cda0..6defe8e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wms.asrs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
@@ -8,6 +9,8 @@
import com.zy.asrs.wms.asrs.mapper.OrderMapper;
import com.zy.asrs.wms.asrs.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.asrs.wms.utils.OrderUtils;
+import com.zy.asrs.wms.utils.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -28,16 +31,40 @@
private OrderDetlService orderDetlService;
@Autowired
private OrderDetlFieldService orderDetlFieldService;
+ @Autowired
+ private OrderNoRuleService orderNoRuleService;
+ @Autowired
+ private OrderUtils orderUtils;
+
+ @Override
+ @Transactional
+ public boolean createOrder(List<CreateOrderParam> list) {
+ for (CreateOrderParam orderParam : list) {
+ createOrder(orderParam);
+ }
+ return true;
+ }
@Override
@Transactional
public boolean createOrder(CreateOrderParam param) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
+ if (!orderList.isEmpty()) {
+ throw new CoolException("璁㈠崟宸插瓨鍦�");
+ }
+
+ String orderNo = param.getOrderNo();
+ if (Cools.isEmpty(param.getOrderNo())) {
+ orderNo = orderNoRuleService.getOrderNo(param.getOrderType().intValue());
+ }
+
Order order = new Order();
- order.setOrderNo(param.getOrderNo());
+ order.setOrderNo(orderNo);
order.setOrderType(param.getOrderType());
order.setOrderSettle(param.getOrderSettle());
+ order.setIoPri(orderUtils.getIoPri());
order.setOrderTime(format.format(new Date()));
order.setCreateTime(new Date());
order.setCreateBy(9527L);
@@ -50,6 +77,14 @@
double anfme = Double.parseDouble(map.get("anfme").toString());
String batch = map.get("batch").toString();
String matnr = map.get("matnr").toString();
+ Double qty = 0D;
+ Double workQty = 0D;
+ if (map.containsKey("qty")) {
+ qty = Double.parseDouble(map.get("qty").toString());
+ }
+ if (map.containsKey("workQty")) {
+ workQty = Double.parseDouble(map.get("workQty").toString());
+ }
String memo = map.getOrDefault("memo", "").toString();
Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
if (mat == null) {
@@ -60,8 +95,8 @@
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
orderDetl.setAnfme(anfme);
- orderDetl.setQty(0D);
- orderDetl.setWorkQty(0D);
+ orderDetl.setQty(qty);
+ orderDetl.setWorkQty(workQty);
orderDetl.setBatch(batch);
orderDetl.setMatId(mat.getId());
orderDetl.setMemo(memo);
@@ -88,6 +123,11 @@
}
}
+ orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField()));
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("鏇存柊鏄庣粏绱㈠紩澶辫触");
+ }
+
}
return true;
@@ -95,8 +135,15 @@
@Override
public boolean updateOrder(UpdateOrderParam param) {
- Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
- order.setOrderNo(param.getOrderNo());
+ Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId()));
+ if (order == null) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ if (order.getHasWave() == 1) {
+ throw new CoolException("璁㈠崟宸茬粡鐢熸垚娉㈡锛屾棤娉曚慨鏀�");
+ }
+
order.setOrderType(param.getOrderType());
order.setOrderSettle(param.getOrderSettle());
order.setUpdateTime(new Date());
@@ -110,6 +157,8 @@
double anfme = Double.parseDouble(map.get("anfme").toString());
String batch = map.get("batch").toString();
String matnr = map.get("matnr").toString();
+ Double qty = Double.parseDouble(map.get("qty").toString());
+ Double workQty = Double.parseDouble(map.get("workQty").toString());
String memo = map.getOrDefault("memo", "").toString();
Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
if (mat == null) {
@@ -136,6 +185,8 @@
}else {
orderDetl.setOrderNo(order.getOrderNo());
orderDetl.setAnfme(anfme);
+ orderDetl.setQty(qty);
+ orderDetl.setWorkQty(workQty);
orderDetl.setBatch(batch);
orderDetl.setMemo(memo);
orderDetl.setUpdateTime(new Date());
@@ -170,6 +221,11 @@
}
}
+ orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField()));
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("鏇存柊鏄庣粏绱㈠紩澶辫触");
+ }
+
}
List<Long> deleteDetlId = param.getDeleteDetlId();
@@ -187,6 +243,11 @@
@Override
public boolean deleteOrder(Long orderId) {
+ Order order = this.getById(orderId);
+ if (order.getHasWave() == 1) {
+ throw new CoolException("璁㈠崟宸茬粡鐢熸垚娉㈡锛屽垹闄ゅけ璐�");
+ }
+
//鍒犻櫎璁㈠崟
this.removeById(orderId);
//鍒犻櫎鏄庣粏
@@ -198,4 +259,26 @@
}
return true;
}
+
+ @Override
+ public boolean checkOrderComplete(Long orderId) {
+ Order order = this.getById(orderId);
+ if (order == null) {
+ return false;
+ }
+
+ boolean complete = true;
+ List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId));
+ if(orderDetls.isEmpty()) {
+ complete = false;
+ }
+
+ for (OrderDetl orderDetl : orderDetls) {
+ if (!orderDetl.getAnfme().equals(orderDetl.getQty())) {
+ complete = false;
+ }
+ }
+
+ return complete;
+ }
}
--
Gitblit v1.9.1