From 58bccbc9d1a23c8184217317a9a37345d98883c2 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期一, 28 三月 2022 15:44:07 +0800
Subject: [PATCH] .

---
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java |   69 ++++++++++++++++++++++++++++------
 1 files changed, 56 insertions(+), 13 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
index e1542c4..5f4586d 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -21,7 +21,9 @@
 import zy.cloud.wms.manager.entity.param.*;
 import zy.cloud.wms.manager.entity.result.StoPrintVo;
 import zy.cloud.wms.manager.service.*;
+import zy.cloud.wms.manager.utils.AddZero;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -588,22 +590,44 @@
         }
         return R.ok("鎷h揣鍗曞凡鍙栨秷");
     }
+
     @Override
     @Transactional
      public R  initReceive(InitOrderParam param, Long userId, Long hostId){
-        Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>()
-                .eq("order_no", param.getOrderNo()));
-        if (order_no != null) {
-            return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�");
+        String orderNo = "";
+        if(!Cools.isEmpty(param.getOrderNo())) {
+            Receive receive = receiveService.selectOne(new EntityWrapper<Receive>()
+                    .eq("order_no", param.getOrderNo()));
+            if (receive != null) {
+                return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�");
+            }
+            orderNo = param.getOrderNo();
+        } else {
+            String sheetNo = "STO-" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "-";
+            String currNum = receiveService.getCurrNum(sheetNo);
+            if (!Cools.isEmpty(currNum)) {
+                String[] split = currNum.split("-");
+                if (split.length < 3) {
+                    orderNo = sheetNo + "0001";
+                } else {
+                    Integer newNum = Integer.parseInt(split[2]) + 1;
+                    String format = AddZero.addZeroForNum(newNum + "", 4);
+                    orderNo = sheetNo + format;
+                }
+            } else {
+                orderNo = sheetNo + "0001";
+            }
         }
+
         Date now = new Date();
         Item item = itemService.selectByName(param.getItem());
         Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
         // 鏂板璁㈠崟琛ㄥご
-        order_no = new Receive(
+        Receive order_no = new Receive(
                 hostId,
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
-                param.getOrderNo(),    // 璁㈠崟缂栧彿
+                orderNo,        // 璁㈠崟缂栧彿
+//                param.getOrderNo(),    // 璁㈠崟缂栧彿
                 param.getOrderTime(),    // 鍗曟嵁鏃ユ湡
                 param.getDocType(),    // 鍗曟嵁绫诲瀷
                 item==null?null:item.getId(),    // 椤圭洰缂栧彿
@@ -651,7 +675,8 @@
             ReceiveDetl receiveDetl = new ReceiveDetl();
             receiveDetl.setHostId(hostId);
             receiveDetl.setOrderId(order_no.getId());
-            receiveDetl.setOrderNo(param.getOrderNo());
+            receiveDetl.setOrderNo(orderNo);
+//            receiveDetl.setOrderNo(param.getOrderNo());
             receiveDetl.setAnfme(dto.getCount());
             receiveDetl.setCreateTime(now);
             receiveDetl.setCreateBy(userId);
@@ -680,12 +705,30 @@
     @Override
     @Transactional
     public R initOrder(InitOrderParam param, Long userId, Long hostId) {
-       // Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>()
-        //        .eq("order_no", param.getOrderNo()));
-        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
-        if (order != null) {
-            return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�");
+        String orderNo = "";
+        if(!Cools.isEmpty(param.getOrderNo())) {
+            Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
+            if (order != null) {
+                return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�");
+            }
+            orderNo = param.getOrderNo();
+        } else {
+            String sheetNo = "ORD-" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "-";
+            String currNum = receiveService.getCurrNum(sheetNo);
+            if (!Cools.isEmpty(currNum)) {
+                String[] split = currNum.split("-");
+                if (split.length < 3) {
+                    orderNo = sheetNo + "0001";
+                } else {
+                    Integer newNum = Integer.parseInt(split[2]) + 1;
+                    String format = AddZero.addZeroForNum(newNum + "", 4);
+                    orderNo = sheetNo + format;
+                }
+            } else {
+                orderNo = sheetNo + "0001";
+            }
         }
+
         Date now = new Date();
         Item item = itemService.selectByName(param.getItem());
         Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
@@ -693,7 +736,7 @@
         Order order1 = new Order();
         order1.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
         order1.setHostId(hostId);
-        order1.setOrderNo(param.getOrderNo());
+        order1.setOrderNo(orderNo);
         order1.setOrderTime(param.getOrderTime());
         order1.setDocType(param.getDocType());
         order1.setItemId(item == null? null : item.getId());

--
Gitblit v1.9.1