From c1eee79b96d70a3e93d84f88865dcd0bb30f0ab3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 24 四月 2022 23:33:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 7a0f5c6..1a1379e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -2,23 +2,41 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
 import com.zy.asrs.mapper.OrderDetlMapper;
 import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.service.OpenService;
+import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.common.model.DetlDto;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 @Service("orderService")
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
 
     @Autowired
     private OrderDetlMapper orderDetlMapper;
+    @Autowired
+    private OpenService openService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @Override
     public Order selectByNo(String orderNo) {
@@ -61,4 +79,58 @@
 
     }
 
+    @Override
+    public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+        try {
+            List<DetlDto> detlDtos = new ArrayList<>();
+            wrkDetls.forEach(wrkDetl -> {
+                detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+            });
+            String orderNo = "HAND" + snowflakeIdWorker.nextId();
+            if (pakin) {
+                // 鐢熸垚鍏ュ簱鍗曟嵁
+                OpenOrderPakinParam openParam = new OpenOrderPakinParam();
+                openParam.setOrderNo(orderNo);
+                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+                openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�");
+                openParam.setOrderDetails(detlDtos);
+                openService.pakinOrderCreate(openParam);
+            } else {
+                // 鐢熸垚鍑哄簱鍗曟嵁
+                OpenOrderPakoutParam openParam = new OpenOrderPakoutParam();
+                openParam.setOrderNo(orderNo);
+                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+                openParam.setOrderType("鎵嬪姩鍑哄簱鍗�");
+                openParam.setOrderDetails(detlDtos);
+                openService.pakoutOrderCreate(openParam);
+            }
+
+            Order order = this.selectByNo(orderNo);
+            if (null == order) {
+                throw new CoolException("鐢熸垚鍗曟嵁澶辫触");
+            }
+            if (!this.updateSettle(order.getId(), 4L, null)) {
+                throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�");
+            }
+            for (DetlDto detlDto : detlDtos) {
+                // 淇敼璁㈠崟鏄庣粏鏁伴噺
+                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+                }
+            }
+        } catch (Exception e) {
+            log.error("", e);
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public void remove(Long orderId) {
+        if (!this.deleteById(orderId)) {
+            throw new CoolException("鍒犻櫎鍗曟嵁澶辫触");
+        }
+        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
+    }
+
 }

--
Gitblit v1.9.1