From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 14 二月 2025 10:08:32 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java | 94 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 89 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 84f3d59..1db9f8b 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,13 +1,17 @@ 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.enums.OrderSettleType; import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam; import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam; 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 +32,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.setOrderSettle(OrderSettleType.INIT.val()); + order.setIoPri(orderUtils.getIoPri()); order.setOrderTime(format.format(new Date())); order.setCreateTime(new Date()); order.setCreateBy(9527L); @@ -50,6 +78,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 +96,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 +124,11 @@ } } + orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField())); + if (!orderDetlService.updateById(orderDetl)) { + throw new CoolException("鏇存柊鏄庣粏绱㈠紩澶辫触"); + } + } return true; @@ -96,7 +137,14 @@ @Override public boolean updateOrder(UpdateOrderParam param) { Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId())); - order.setOrderNo(param.getOrderNo()); + 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 +158,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 +186,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 +222,11 @@ } } + orderDetl.setStockIndex(Utils.getMatUniqueKey(matnr, batch, orderDetl.getUniqueField())); + if (!orderDetlService.updateById(orderDetl)) { + throw new CoolException("鏇存柊鏄庣粏绱㈠紩澶辫触"); + } + } List<Long> deleteDetlId = param.getDeleteDetlId(); @@ -187,6 +244,11 @@ @Override public boolean deleteOrder(Long orderId) { + Order order = this.getById(orderId); + if (order.getHasWave() == 1) { + throw new CoolException("璁㈠崟宸茬粡鐢熸垚娉㈡锛屽垹闄ゅけ璐�"); + } + //鍒犻櫎璁㈠崟 this.removeById(orderId); //鍒犻櫎鏄庣粏 @@ -198,4 +260,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