From 3a9fbc6a3afb34104a347b357de6e2970a584e76 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 13 四月 2021 11:13:47 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderMapper.xml                             |    1 
 src/main/java/zy/cloud/wms/manager/entity/param/InitOrderParam.java   |   19 ++++
 src/main/java/zy/cloud/wms/manager/service/ItemService.java           |    2 
 src/main/java/zy/cloud/wms/manager/service/impl/ItemServiceImpl.java  |    7 +
 src/main/java/zy/cloud/wms/manager/service/OrderService.java          |    6 +
 src/main/java/zy/cloud/wms/manager/entity/Order.java                  |   18 ++++
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java  |   93 +++++++++++++++++-----
 src/main/java/zy/cloud/wms/manager/service/impl/CstmrServiceImpl.java |    7 +
 src/main/resources/mapper/OrderDetlMapper.xml                         |    2 
 src/main/java/zy/cloud/wms/manager/service/CstmrService.java          |    2 
 src/main/java/zy/cloud/wms/common/utils/VersionUtils.java             |   19 +++-
 src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java              |    7 +
 src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java |   26 +++++
 13 files changed, 171 insertions(+), 38 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java b/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java
index c2a14e9..b77d868 100644
--- a/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java
+++ b/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java
@@ -1,9 +1,6 @@
 package zy.cloud.wms.common.utils;
 
-import zy.cloud.wms.manager.entity.Comb;
-import zy.cloud.wms.manager.entity.LocDetl;
-import zy.cloud.wms.manager.entity.Mat;
-import zy.cloud.wms.manager.entity.Pakout;
+import zy.cloud.wms.manager.entity.*;
 
 /**
  * Created by vincent on 2020/7/14
@@ -122,4 +119,18 @@
         locDetl.setDocNum(pakout.getDocNum());
     }
 
+    public static void setOrderDetl(OrderDetl orderDetl, Mat mat) {
+        orderDetl.setMatnr(mat.getMatnr());
+        orderDetl.setMaktx(mat.getMaktx());
+        orderDetl.setName(mat.getName());
+        orderDetl.setSpecs(mat.getSpecs());
+        orderDetl.setModel(mat.getModel());
+        orderDetl.setBatch(mat.getBatch());
+        orderDetl.setUnit(mat.getUnit());
+        orderDetl.setBarcode(mat.getBarcode());
+        orderDetl.setItemNum(mat.getItemNum());
+        orderDetl.setCount(mat.getCount());
+        orderDetl.setWeight(mat.getWeight());
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/Order.java b/src/main/java/zy/cloud/wms/manager/entity/Order.java
index f8176d5..116a608 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/Order.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/Order.java
@@ -65,6 +65,13 @@
     private Long itemId;
 
     /**
+     * 椤圭洰鍚嶇О
+     */
+    @ApiModelProperty(value= "椤圭洰鍚嶇О")
+    @TableField("item_name")
+    private String itemName;
+
+    /**
      * 璋冩嫧椤圭洰缂栧彿
      */
     @ApiModelProperty(value= "璋冩嫧椤圭洰缂栧彿")
@@ -254,12 +261,13 @@
 
     public Order() {}
 
-    public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+    public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
         this.uuid = uuid;
         this.orderNo = orderNo;
         this.orderTime = orderTime;
         this.docType = docType;
         this.itemId = itemId;
+        this.itemName = itemName;
         this.allotItemId = allotItemId;
         this.defNumber = defNumber;
         this.number = number;
@@ -392,6 +400,14 @@
         this.itemId = itemId;
     }
 
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
     public Long getAllotItemId() {
         return allotItemId;
     }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
index 9746ac3..4d84bef 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
@@ -1,7 +1,9 @@
 package zy.cloud.wms.manager.entity;
 
 import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import io.swagger.annotations.ApiModelProperty;
@@ -22,6 +24,7 @@
      * ID
      */
     @ApiModelProperty(value= "ID")
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
@@ -159,8 +162,7 @@
 
     public OrderDetl() {}
 
-    public OrderDetl(Long id,Long orderId,Double anfme,String matnr,String maktx,String name,String specs,String model,String batch,String unit,String barcode,String supplier,Double unitPrice,Integer itemNum,Integer count,Double weight,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
-        this.id = id;
+    public OrderDetl(Long orderId,Double anfme,String matnr,String maktx,String name,String specs,String model,String batch,String unit,String barcode,String supplier,Double unitPrice,Integer itemNum,Integer count,Double weight,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
         this.orderId = orderId;
         this.anfme = anfme;
         this.matnr = matnr;
@@ -185,7 +187,6 @@
     }
 
 //    OrderDetl orderDetl = new OrderDetl(
-//            null,    // ID
 //            null,    // 璁㈠崟鍐呯爜
 //            null,    // 鏁伴噺
 //            null,    // 鍟嗗搧缂栫爜
diff --git a/src/main/java/zy/cloud/wms/manager/entity/param/InitOrderParam.java b/src/main/java/zy/cloud/wms/manager/entity/param/InitOrderParam.java
index e1dab0f..5748aa0 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/param/InitOrderParam.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/param/InitOrderParam.java
@@ -1,6 +1,7 @@
 package zy.cloud.wms.manager.entity.param;
 
 import lombok.Data;
+import zy.cloud.wms.common.model.MatnrDto;
 
 import java.util.List;
 
@@ -10,10 +11,22 @@
 @Data
 public class InitOrderParam {
 
-    private String number;
+    // 鍗曟嵁绫诲瀷
+    private Long docType;
 
-    private String customerTypeId;
+    // 鍗曟嵁缂栧彿
+    private String orderNo;
 
-    private List<PakinMatDto> list;
+    // 鍗曟嵁鏃堕棿
+    private String orderTime;
+
+    // 椤圭洰
+    private String item;
+
+    // 瀹㈡埛
+    private String cstmr;
+
+    // 鍟嗗搧鏁伴噺鍒楄〃
+    private List<MatnrDto> list;
 
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/CstmrService.java b/src/main/java/zy/cloud/wms/manager/service/CstmrService.java
index 6b383ad..bcd4b04 100644
--- a/src/main/java/zy/cloud/wms/manager/service/CstmrService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/CstmrService.java
@@ -5,4 +5,6 @@
 
 public interface CstmrService extends IService<Cstmr> {
 
+    Cstmr selectByName(String name);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/ItemService.java b/src/main/java/zy/cloud/wms/manager/service/ItemService.java
index 9d40b44..dbcd5ea 100644
--- a/src/main/java/zy/cloud/wms/manager/service/ItemService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/ItemService.java
@@ -5,4 +5,6 @@
 
 public interface ItemService extends IService<Item> {
 
+    Item selectByName(String name);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/OrderService.java b/src/main/java/zy/cloud/wms/manager/service/OrderService.java
index 0aa2d29..a8c06e5 100644
--- a/src/main/java/zy/cloud/wms/manager/service/OrderService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/OrderService.java
@@ -5,4 +5,10 @@
 
 public interface OrderService extends IService<Order> {
 
+    Order selectByOrderNo(String oderNo);
+
+    Order selectByUuid(String uuid);
+
+    Integer insertReturnId(Order order);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/CstmrServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/CstmrServiceImpl.java
index d8e8f8b..d32fecc 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/CstmrServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/CstmrServiceImpl.java
@@ -1,5 +1,6 @@
 package zy.cloud.wms.manager.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import zy.cloud.wms.manager.mapper.CstmrMapper;
 import zy.cloud.wms.manager.entity.Cstmr;
 import zy.cloud.wms.manager.service.CstmrService;
@@ -9,4 +10,10 @@
 @Service("cstmrService")
 public class CstmrServiceImpl extends ServiceImpl<CstmrMapper, Cstmr> implements CstmrService {
 
+    @Override
+    public Cstmr selectByName(String name) {
+        Cstmr cstmr = new Cstmr();
+        cstmr.setName(name);
+        return this.selectOne(new EntityWrapper<>(cstmr));
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/ItemServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/ItemServiceImpl.java
index 41666b5..fd56670 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/ItemServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/ItemServiceImpl.java
@@ -1,5 +1,6 @@
 package zy.cloud.wms.manager.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import zy.cloud.wms.manager.mapper.ItemMapper;
 import zy.cloud.wms.manager.entity.Item;
 import zy.cloud.wms.manager.service.ItemService;
@@ -9,4 +10,10 @@
 @Service("itemService")
 public class ItemServiceImpl extends ServiceImpl<ItemMapper, Item> implements ItemService {
 
+    @Override
+    public Item selectByName(String name) {
+        Item item = new Item();
+        item.setName(name);
+        return this.selectOne(new EntityWrapper<>(item));
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java
index 0adfbdc..41d02f9 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java
@@ -1,12 +1,32 @@
 package zy.cloud.wms.manager.service.impl;
 
-import zy.cloud.wms.manager.mapper.OrderMapper;
-import zy.cloud.wms.manager.entity.Order;
-import zy.cloud.wms.manager.service.OrderService;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import zy.cloud.wms.manager.entity.Order;
+import zy.cloud.wms.manager.mapper.OrderMapper;
+import zy.cloud.wms.manager.service.OrderService;
 
 @Service("orderService")
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
 
+    @Override
+    public Order selectByOrderNo(String orderNo) {
+        Order order = new Order();
+        order.setOrderNo(orderNo);
+        return this.selectOne(new EntityWrapper<>(order));
+    }
+
+    @Override
+    public Order selectByUuid(String uuid) {
+        Order order = new Order();
+        order.setUuid(uuid);
+        return this.selectOne(new EntityWrapper<>(order));
+    }
+
+    @Override
+    public Integer insertReturnId(Order order) {
+        return this.baseMapper.insert(order);
+    }
+
 }
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 df67520..96a73ef 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
@@ -2,10 +2,10 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.DateUtils;
 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;
@@ -25,6 +25,7 @@
 /**
  * Created by vincent on 2021/2/25
  */
+@Slf4j
 @Service("workService")
 public class WorkServiceImpl implements WorkService {
 
@@ -48,6 +49,14 @@
     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
@@ -470,37 +479,75 @@
     @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    // 澶囨敞
+        );
+        Integer orderId = orderService.insertReturnId(order);
+        if (orderId == 0) {
+            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(orderId.longValue());  // 璁㈠崟鍐呯爜
+            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() + "鎴愬姛");
+        return R.ok("鍒涘缓璁㈠崟鎴愬姛");
     }
 
     @Override
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 6da6944..ed2963c 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -4,7 +4,7 @@
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="zy.cloud.wms.manager.entity.OrderDetl">
-        <result column="id" property="id" />
+        <id column="id" property="id" />
         <result column="order_id" property="orderId" />
         <result column="anfme" property="anfme" />
         <result column="matnr" property="matnr" />
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 967c956..5826de3 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -10,6 +10,7 @@
         <result column="order_time" property="orderTime" />
         <result column="doc_type" property="docType" />
         <result column="item_id" property="itemId" />
+        <result column="item_name" property="itemName" />
         <result column="allot_item_id" property="allotItemId" />
         <result column="def_number" property="defNumber" />
         <result column="number" property="number" />

--
Gitblit v1.9.1