From cf943cb90fde999773267cbc14bf51a70881481a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 13 四月 2021 14:24:21 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java |  157 ++++++++++++++++++++++++----------------------------
 1 files changed, 72 insertions(+), 85 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 547e5f9..399e9f0 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
@@ -1,18 +1,18 @@
 package zy.cloud.wms.manager.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.*;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import zy.cloud.wms.common.config.CodeCoolException;
 import zy.cloud.wms.common.model.BillDto;
 import zy.cloud.wms.common.model.MatnrDto;
 import zy.cloud.wms.common.model.OrderStoDto;
 import zy.cloud.wms.common.service.MainService;
-import zy.cloud.wms.common.service.asrs.AsrsService;
-import zy.cloud.wms.common.service.asrs.entity.Result1;
 import zy.cloud.wms.common.service.erp.ErpService;
 import zy.cloud.wms.common.utils.VersionUtils;
 import zy.cloud.wms.manager.entity.*;
@@ -25,6 +25,7 @@
 /**
  * Created by vincent on 2021/2/25
  */
+@Slf4j
 @Service("workService")
 public class WorkServiceImpl implements WorkService {
 
@@ -45,11 +46,17 @@
     @Autowired
     private MatService matService;
     @Autowired
-    private AsrsService asrsService;
-    @Autowired
     private ErpService erpService;
     @Autowired
     private CheckService checkService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private ItemService itemService;
+    @Autowired
+    private CstmrService cstmrService;
 
     @Override
     @Transactional
@@ -472,94 +479,74 @@
     @Override
     @Transactional
     public R initOrder(InitOrderParam param, Long userId) {
-        if (custOrderService.selectCount(new EntityWrapper<CustOrder>().eq("number", param.getNumber()).ne("bType_id", param.getCustomerTypeId())) > 0) {
+        Order order = orderService.selectByOrderNo(param.getOrderNo());
+        if (order != null) {
             return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�");
         }
         Date now = new Date();
-        for (PakinMatDto dto : param.getList()){
+        Item item = itemService.selectByName(param.getItem());
+        Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
+        // 鏂板璁㈠崟琛ㄥご
+        order = new Order(
+                String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                param.getOrderNo(),    // 璁㈠崟缂栧彿
+                param.getOrderTime(),    // 鍗曟嵁鏃ユ湡
+                param.getDocType(),    // 鍗曟嵁绫诲瀷
+                item==null?null:item.getId(),    // 椤圭洰缂栧彿
+                param.getItem(),   // 椤圭洰鍚嶇О
+                null,    // 璋冩嫧椤圭洰缂栧彿
+                null,    // 鍒濆绁ㄦ嵁鍙�
+                null,    // 绁ㄦ嵁鍙�
+                cstmr==null?null:cstmr.getId(),    // 瀹㈡埛缂栧彿
+                param.getCstmr(),    // 瀹㈡埛
+                null,    // 鑱旂郴鏂瑰紡
+                null,    // 鎿嶄綔浜哄憳
+                null,    // 鍚堣閲戦
+                null,    // 浼樻儬鐜�
+                null,    // 浼樻儬閲戦
+                null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                null,    // 瀹炰粯閲戦
+                null,    // 浠樻绫诲瀷
+                null,    // 涓氬姟鍛�
+                null,    // 缁撶畻澶╂暟
+                null,    // 閭垂鏀粯绫诲瀷
+                null,    // 閭垂
+                null,    // 浠樻鏃堕棿
+                null,    // 鍙戣揣鏃堕棿
+                null,    // 鐗╂祦鍚嶇О
+                null,    // 鐗╂祦鍗曞彿
+                null,    // 璁㈠崟鐘舵��
+                1,    // 鐘舵��
+                userId,    // 娣诲姞浜哄憳
+                now,    // 娣诲姞鏃堕棿
+                userId,    // 淇敼浜哄憳
+                now,    // 淇敼鏃堕棿
+                null    // 澶囨敞
+        );
+        if (!orderService.insert(order)) {
+            throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�");
+        }
+        // 閬嶅巻鍟嗗搧鏁伴噺骞朵繚瀛�
+        for (MatnrDto dto : param.getList()){
             Mat mat = matService.selectByMatnr(dto.getMatnr());
             if (mat == null) {
+                log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr());
                 continue;
             }
-            CustOrder custOrder = new CustOrder(
-                    param.getNumber(),    // 閿�鍞崟鍙�
-                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡[闈炵┖]
-                    param.getCustomerTypeId(),    // 瀹㈡埛缂栧彿
-                    null,    // 缁忔墜浜虹紪鍙穂绌篯
-                    null,
-                    dto.getMatnr(),    // 鍟嗗搧缂栧彿
-                    dto.getCount(),    // 鍟嗗搧鏁伴噺
-                    dto.getCount(),    // 鎬绘暟閲�
-                    Cools.isEmpty(mat.getName())?0.0D:Double.parseDouble(mat.getName()),    // 鍟嗗搧鍗曚环
-                    null,       // 鍟嗗搧鏄庣粏琛屽彿
-                    null,    // 鍟嗗搧澶囨敞[绌篯
-                    1,    // 鐘舵��
-                    now,    // 娣诲姞鏃堕棿
-                    now,    // 淇敼鏃堕棿
-                    null    // 澶囨敞
-            );
-            if (!custOrderService.insert(custOrder)) {
-                throw new CoolException("淇濆瓨閿�鍞鍗曞け璐�");
+            OrderDetl orderDetl = new OrderDetl();
+            orderDetl.setOrderId(order.getId());  // 璁㈠崟鍐呯爜
+            orderDetl.setAnfme(dto.getCount());         // 鏁伴噺
+            orderDetl.setCreateBy(userId);
+            orderDetl.setCreateTime(now);
+            orderDetl.setUpdateBy(userId);
+            orderDetl.setUpdateTime(now);
+            orderDetl.setStatus(1);
+            VersionUtils.setOrderDetl(orderDetl, mat);
+            if (!orderDetlService.insert(orderDetl)) {
+                throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触");
             }
         }
-        return R.ok("鐢熸垚閿�鍞鍗�" + param.getNumber() + "鎴愬姛");
-    }
-
-    @Override
-    @Transactional
-    public R stockTransfer(String number, Long userId) {
-        List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1));
-        boolean asrs = false;
-        List<StockTransferParam> params = new ArrayList<>();
-        for (CustOrder custOrder : custOrders) {
-            Double count = locDetlService.selectCountByMatnr(custOrder.getUserCode());
-            if (count == null) {
-                count = 0.0D;
-            }
-            if (count < custOrder.getQty()) {
-                if (!asrs) { asrs = true; }
-                StockTransferParam param = new StockTransferParam();
-                param.setMatnr(custOrder.getUserCode());
-                param.setAnfme(custOrder.getQty() - count);
-                params.add(param);
-            }
-        }
-        if (asrs) {
-//            if (asrsService.stockTransfer(params)) {
-//                for (StockTransferParam param : params) {
-//                    // 淇敼閿�鍞鍗曞緟鍑烘暟閲�
-//                    if (!custOrderService.updateQty(number, param.getMatnr(), param.getAnfme())) {
-//                        throw new CoolException("淇敼閿�鍞鍗曞緟鍑烘暟閲忓け璐�");
-//                    }
-//                }
-//                return R.ok("搴撳瓨璋冩嫧鎴愬姛");
-//            } else {
-//                return R.error("绔嬪簱璋冩嫧澶辫触锛岃鑱旂郴绠$悊鍛�");
-//            }
-        }
-        return R.error("鏆備笉缂鸿揣锛屼笉闇�瑕佺珛搴撹皟鎷�");
-    }
-
-    @Override
-    public R asrsStockTransfer(AsrsTransferParam param, Long userId) {
-        if (Cools.isEmpty(param.getNode_id(), param.getMatnr(), param.getSafe_qua(), param.getAmount())) {
-            return R.error("鏁伴噺閿欒");
-        }
-        List<StockTransferParam> params = new ArrayList<>();
-        StockTransferParam transferParam = new StockTransferParam();
-        transferParam.setMatnr(param.getMatnr());
-        transferParam.setAnfme(Arith.subtract(2, param.getSafe_qua(), param.getAmount()));
-        transferParam.setAllotNo(param.getNode_id()+ "_" +param.getMatnr());
-        params.add(transferParam);
-        Result1 result = asrsService.stockTransfer(params);
-        if (result.getCode() == 500) {
-            if (Cools.isEmpty(result.getData())) {
-                throw new CoolException(result.getMsg());
-            } else {
-                throw new CodeCoolException("20001-" + result.getData());
-            }
-        }
-        return R.ok("琛ヤ粨鎴愬姛锛岀瓑寰呯珛搴撹皟鎷�");
+        return R.ok("鍒涘缓璁㈠崟鎴愬姛");
     }
 
     @Override

--
Gitblit v1.9.1