Ver código fonte

出库(未完成)

林琦海 5 anos atrás
pai
commit
6c78aad70f

+ 86 - 0
app/ghs/controllers/StockOutController.php

@@ -0,0 +1,86 @@
+<?php
+namespace ghs\controllers;
+
+use bizGhs\order\classes\StockOutOrderClass;
+use bizGhs\product\classes\ProductClass;
+use common\components\util;
+use Yii;
+//出库 linqh 2021.1.23
+class StockOutController extends BaseController
+{
+
+    //出库列表 linqh 2021.1.23
+    public function actionList()
+    {
+        $get = Yii::$app->request->get();
+        $orderStatus = isset($get['status']) ? $get['status'] : '';
+        $where = [];
+        if (!empty($orderStatus)) {
+            $where['status'] = $orderStatus;
+        }
+        $list = StockOutOrderClass::getOrderList($where);
+        util::success($list);
+    }
+
+    //新增出库 linqh 2021.1.23
+    public function actionCreateOrder()
+    {
+        $post = Yii::$app->request->post();
+        $post['merchantId'] = $this->merchantId;
+        $post['outShopId'] = $this->shopId;
+        $post['adminId'] = $this->adminId;
+        $inShopId = $post['inShopId']??0;
+        $now = date('Y-m-d H:i:s');
+        $date = $post['date']??$now;
+        $post['outTime'] = $date;
+        $action = $post['action']??'wait'; //confirm(直接出库) wait(待出库中)
+        $post['action'] = $action;
+        //判断 入库的门店ID是否有效
+        //todo
+        $post['inShopId'] = $inShopId;
+        //是否判断 inShopId 下还有未完成出库的订单?
+        //todo
+
+
+        $ghsItemInfo = $post['itemInfo']??'';
+        if(empty($ghsItemInfo)){
+            util::fail('请选择花材');
+        }
+        $ghsItemInfo = json_decode($ghsItemInfo,true); // [{productId:0,bigNum:1,smallNum:0}]
+        if(!is_array($ghsItemInfo)){
+            util::fail('花材格式不正确');
+        }
+        $productIds = array_column($ghsItemInfo,'productId');
+        ProductClass::valid($productIds,$this->shopId);
+        //判断花材里的信息
+        foreach ($ghsItemInfo as $v){
+            $bigNum = $v['bigNum']??0;
+            $smallNum = $v['smallNum']??0;
+            if($bigNum <=0 && $smallNum <=0){
+                util::fail('花材数量不能为0');
+            }
+        }
+        $post['itemInfo'] = $ghsItemInfo;
+        $order = StockOutOrderClass::addOrder($post);
+        if($order){
+            util::success($order);
+        }else{
+            util::fail();
+        }
+    }
+
+    //
+
+    //出库详情 linqh 2021.1.23
+    public function actionDetail()
+    {
+        $orderSn = Yii::$app->request->get('orderSn','');
+        $orderData = StockOutOrderClass::getOrderDetail($orderSn,$this->shopId);
+        util::success($orderData);
+    }
+
+    //确认出库 linqh 2021.1.23
+
+    //取消出库 linqh 2021.1.23
+
+}

+ 2 - 0
biz-ghs/order/classes/CheckOrderClass.php

@@ -159,6 +159,8 @@ class CheckOrderClass extends BaseClass
                 $info = json_decode($v['itemInfo'],true);
                 $tmp = $info;
                 $tmp['itemCover'] = self::groupImg($info['itemCover']);
+                $tmp['productId'] = $v['productId'];
+                $tmp['itemId'] = $v['itemId'];
                 $itemData[] = $tmp;
             }
         }

+ 21 - 0
biz-ghs/order/classes/StockInOrderClass.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StockInOrderClass extends BaseClass
+{
+
+    const STATUS_WAIT = 1; //待入库
+    const STATUS_COMPLETE = 2 ; //已入库
+    const STATUS_CANCEL = 3; //取消入库
+    public static $baseFile = '\bizGhs\order\models\StockInOrder';
+
+    //入库 (状态在待入库中 )linqh  2021.1.23
+    public static function addOrder($data)
+    {
+
+    }
+}

+ 21 - 0
biz-ghs/order/classes/StockInOrderItemClass.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StockInOrderItemClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\order\models\StockInOrderItem';
+
+    public static function batchAddOrderItem($data)
+    {
+        self::batchAdd($data);
+    }
+    public static function getOrderItemDetail($orderSn)
+    {
+        return self::getAllByCondition(['orderSn'=>$orderSn],null,'*');
+    }
+}

+ 13 - 0
biz-ghs/order/classes/StockInSnClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StockInSnClass extends BaseClass
+{
+
+	public static $baseFile = '\bizGhs\order\models\StockInSn';
+
+}

+ 225 - 0
biz-ghs/order/classes/StockOutOrderClass.php

@@ -0,0 +1,225 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use bizGhs\product\classes\ProductClass;
+use bizGhs\stock\services\StockRecordService;
+use common\components\orderSn;
+use common\components\util;
+use common\services\xhItemService;
+use Yii;
+use bizGhs\base\classes\BaseClass;
+use bizGhs\order\traits\OrderTrait;
+class StockOutOrderClass extends BaseClass
+{
+    use OrderTrait;
+    const STATUS_WAIT = 1; //待出库
+    const STATUS_COMPLETE = 2 ; //已出库
+    const STATUS_CANCEL = 3; //取消出库
+
+    const ACTION_WAIT = 'wait';
+    const ACTION_CONFIRM = 'confirm'; //直接入库
+
+    public static $baseFile = '\bizGhs\order\models\StockOutOrder';
+
+    //2021.1.23 linqh 新增出库订单: 保存订单表和订单详情表
+    public static function addOrder($data)
+    {
+
+        $action = $data['action'];
+        $data['status'] = self::STATUS_WAIT; //待入库
+        $orderSn =orderSn::getGhsStockOutSn();
+        $data['orderSn'] = $orderSn;
+        $ghsItemInfo = $data['itemInfo']; // [{bigNum:0,smallNum:0,productId:1}]
+        $bigNum = 0; //总共多少扎
+        $smallNum = 0; //总共多少支
+
+        $productIds = array_column($ghsItemInfo,'productId');
+        $productData = ProductClass::getProductByIds($productIds);
+        $itemIds =  array_column($productData,'itemId');
+        $productData =  array_column($productData, NULL, 'id');
+
+        $itemData = xhItemService::getByIds($itemIds);
+        $itemData = array_column($itemData, NULL, 'id');
+
+        if(!empty($ghsItemInfo)){
+            foreach ($ghsItemInfo as $v){
+                $bigNum += $v['bigNum']??0;
+                $smallNum += $v['smallNum']??0;
+
+            }
+        }
+        $data['bigNum'] = $bigNum;
+        $data['smallNum'] = $smallNum;
+
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try{
+            $order = self::add($data);
+            //写入详情表
+            $batchData = [];
+            foreach ($ghsItemInfo as $v){
+                $tmp = [];
+                $productId =  $v['productId']??0;
+                $itemId = $productData[$productId]['itemId'];
+                $tmp['productId'] = $productId;
+                $tmp['orderSn'] = $orderSn;
+                $tmp['itemId'] = $itemId;
+                $tmp['itemStock'] = $productData[$productId]['stock']??0;//当时库存
+                $unitNum = $itemData[$itemId]['unitNum']??0;
+                $tmp['itemNum'] = ProductClass::mergeItemNum($v['bigNum'],$v['smallNum'],$unitNum);
+
+                $stockFormat= ProductClass::formatStock($tmp['itemStock'],$unitNum); // 库存总单位数量转大小单位的数量
+                $itemInfo = [
+                    'itemName'=> $itemData[$itemId]['name']??'',
+                    'itemCover'=> $itemData[$itemId]['cover']??'',
+                    'bigNum'=> $v['bigNum']??0,// 出库的大单位数量
+                    'smallNum'=> $v['smallNum']??0, //出库的小单位数量
+                    'bigNumStock'=> $stockFormat['bigNum'],// 当时库存大单位数
+                    'smallNumStock'=> $stockFormat['smallNum'],//当时库存 小单位数
+
+                    'itemUnit'=> $unitNum?2:1,
+                    'itemBigUnit'=> xhItemService::getUnitName($itemData[$itemId]['bigUnit']??1),
+                    'itemSmallUnit'=> xhItemService::getUnitName($itemData[$itemId]['smallUnit']??2),
+                ];
+                $tmp['itemInfo'] = json_encode($itemInfo);
+                $batchData[] = $tmp;
+            }
+            StockOutOrderItemClass::batchAddOrderItem($batchData);
+            $transaction->commit();
+            if($action===self::ACTION_CONFIRM){
+                //直接入库
+                self::confirmOrder($orderSn,$data['outShopId'],$data['adminId']);
+            }
+            return $order;
+        }catch (\Exception $exception){
+            $transaction->rollBack();
+            util::fail('保存失败'.$exception->getMessage());
+            //钉钉告警?
+        }
+
+    }
+
+    //2021.1.23 linqh  确认出库 :
+    // 一、从状态 1 修改为 2
+    // 二、 减改门店的库存,
+    // 三、增加流水记录
+    // 四、写入一条数据到入库门店的入库订单表(生成入库订单号)
+    // 五、将入库订单号保存当前记录中
+    public static function confirmOrder($orderSn,$shopId,$adminId)
+    {
+        $where = [
+            'orderSn'=>$orderSn,
+            'status'=>self::STATUS_WAIT,
+            'outShopId'=>$shopId,
+        ];
+        self::orderExist($where);
+        $data = [
+            'status'=>self::STATUS_COMPLETE,
+            'adminId'=>$adminId,
+        ];
+        $orderData =  self::getOrderDetail($orderSn,$shopId);
+        $merchantId = $orderData['merchantId'];
+        $orderId = $orderData['id'];
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try{
+            //修改状态
+            self::updateByCondition($where,$data);
+            //减库存
+            $itemInfo = $orderData['itemInfo']??[];
+            if(empty($itemInfo)){
+                $transaction->rollBack();
+                util::fail("订单异常");
+            }
+            $productData = self::getProductMapData($itemInfo);
+            foreach ($itemInfo as $v){
+                $itemId = $v['itemId'];
+                $productId = $v['productId'];
+                $record = [];
+                $itemNum = ProductClass::mergeItemNumByItemId($v['bigNum'],$v['smallNum'],$itemId);
+                $record['merchantId'] = $merchantId;
+                $record['shopId'] = $shopId;
+                $record['orderSn'] = $orderSn;
+                $record['itemId'] = $itemId;
+                $record['itemNum'] = $itemNum;
+                $record['oldStock'] = $productData[$productId]['stock'];
+                $record['newStock'] =  bcadd($productData[$productId]['stock'],$itemNum,2);
+                //记录流水
+                StockRecordService::addPurchaseOrderRecord($record);
+                //减库存
+                ProductClass::decreaseStock($productId,$v['bigNum'],$v['smallNum']);
+            }
+            //写入一条数据到入库门店的入库订单表(生成入库订单号
+            $inOrderData = StockInOrderClass::addOrder($data);
+            $inOrderSn = $inOrderData['sn'];
+            //更新入库订单号
+            self::updateById($orderId,['inOrderSn'=>$inOrderSn]);
+            //完成,提交事务
+            $transaction->commit();
+        }catch (\Exception $exception){
+            $transaction->rollBack();
+            util::fail("操作失败");
+        }
+
+    }
+
+    //2021.1.23. linqh 取消出库 : 从状态1 修改为 3 即完成
+    public static function cancelOrder($orderSn,$shopId,$adminId)
+    {
+        $where = [
+            'orderSn'=>$orderSn,
+            'status'=>self::STATUS_WAIT,
+            'outShopId'=>$shopId,
+        ];
+        $data = [
+            'status'=>self::STATUS_CANCEL,
+            'adminId'=>$adminId,
+        ];
+
+        return self::updateByCondition($where,$data);
+    }
+
+    //2021.1.23 linqh 订单列表
+    public static function getOrderList($where)
+    {
+        $data = self::getList('*', $where, 'addTime DESC');
+        $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
+        if (empty($list)) {
+            return $data;
+        }
+        $data['list'] = $list;
+        $data['list'] = self::groupAdminList($list);
+        return $data;
+    }
+
+    //2021.1.23 linqh 订单详情
+    public static function getOrderDetail($orderSn,$shopId)
+    {
+        $orderData = self::orderExist(['orderSn'=>$orderSn,'outShopId'=>$shopId]);
+        $orderInfo = StockOutOrderItemClass::getOrderItemDetail($orderSn);
+        $itemData = [];
+        if($orderInfo) {
+            foreach ($orderInfo as $v) {
+                $info = json_decode($v['itemInfo'],true);
+                $tmp = $info;
+                $tmp['itemCover'] = self::groupImg($info['itemCover']);
+                $tmp['productId'] = $v['productId'];
+                $tmp['itemId'] = $v['itemId'];
+                $itemData[] = $tmp;
+            }
+        }
+        $orderData = self::groupAdmin($orderData);
+        $orderData['itemInfo'] = $itemData;
+        return $orderData;
+    }
+    //2021.1.23 linqh 判断定时是否存在
+    public static function orderExist($where)
+    {
+        $orderData = self::getByCondition($where);
+        if(!$orderData) {
+            util::fail('订单不存在');
+        }
+        return $orderData;
+    }
+}

+ 21 - 0
biz-ghs/order/classes/StockOutOrderItemClass.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StockOutOrderItemClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\order\models\StockOutOrderItem';
+
+    public static function batchAddOrderItem($data)
+    {
+        self::batchAdd($data);
+    }
+    public static function getOrderItemDetail($orderSn)
+    {
+        return self::getAllByCondition(['orderSn'=>$orderSn],null,'*');
+    }
+}

+ 13 - 0
biz-ghs/order/classes/StockOutSnClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizGhs\order\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class StockOutSnClass extends BaseClass
+{
+
+	public static $baseFile = '\bizGhs\order\models\StockOutSn';
+
+}

+ 13 - 0
biz-ghs/order/models/StockInOrder.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+//入库订单
+class StockInOrder extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockInOrder';
+	}
+
+}

+ 13 - 0
biz-ghs/order/models/StockInOrderItem.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+//入库订单详情
+class StockInOrderItem extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockInOrderItem';
+	}
+
+}

+ 16 - 0
biz-ghs/order/models/StockInSn.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace bizGhs\order\models;
+
+use bizGhs\base\models\Base;
+
+//入库单号 linqh 2021.1.23
+class StockInSn extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockInSn';
+	}
+
+}

+ 13 - 0
biz-ghs/order/models/StockOutOrder.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+//出库订单列表
+class StockOutOrder extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockOutOrder';
+	}
+
+}

+ 13 - 0
biz-ghs/order/models/StockOutOrderItem.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\models;
+use bizGhs\base\models\Base;
+//出库订单详情
+class StockOutOrderItem extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockOutOrderItem';
+	}
+
+}

+ 16 - 0
biz-ghs/order/models/StockOutSn.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace bizGhs\order\models;
+
+use bizGhs\base\models\Base;
+
+//出库单号 linqh 2021.1.23
+class StockOutSn extends Base
+{
+
+	public static function tableName()
+	{
+		return 'xhGhsStockOutSn';
+	}
+
+}

+ 0 - 1
biz-ghs/order/services/PurchaseOrderItemService.php

@@ -3,7 +3,6 @@
 namespace bizGhs\order\services;
 
 use bizGhs\base\services\BaseService;
-use bizGhs\order\classes\OrderClass;
 use Yii;
 
 class PurchaseOrderItemService extends BaseService

+ 0 - 3
biz-ghs/order/services/PurchaseOrderService.php

@@ -3,9 +3,6 @@
 namespace bizGhs\order\services;
 
 use bizGhs\base\services\BaseService;
-use bizGhs\order\classes\OrderClass;
-use bizGhs\order\classes\PurchaseOrderClass;
-use bizGhs\order\classes\PurchaseOrderItemClass;
 use Yii;
 
 class PurchaseOrderService extends BaseService

+ 15 - 0
biz-ghs/order/services/StockOutOrderItemService.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\order\services;
+
+use bizGhs\base\services\BaseService;
+use Yii;
+
+class StockOutOrderItemService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\order\classes\StockOutOrderItemClass';
+
+
+
+}

+ 15 - 0
biz-ghs/order/services/StockOutOrderService.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\order\services;
+
+use bizGhs\base\services\BaseService;
+use Yii;
+
+class StockOutOrderService extends BaseService
+{
+
+    public static $baseFile = '\bizGhs\order\classes\StockOutOrderClass';
+
+
+
+}

+ 9 - 0
biz-ghs/order/traits/OrderTrait.php

@@ -9,6 +9,7 @@ namespace bizGhs\order\traits;
 
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\merchant\classes\SupplierClass;
+use bizGhs\product\classes\ProductClass;
 
 trait OrderTrait
 {
@@ -57,5 +58,13 @@ trait OrderTrait
         return $list;
     }
 
+    //通过itemInfo 获取商品ID 对应数据(库存) linqh 2021.1.23
+    public static function getProductMapData($itemInfo)
+    {
+        $productIds = array_column($itemInfo,'productId');
+        $productData = ProductClass::getProductByIds($productIds);
+        $productData =  array_column($productData, NULL, 'id');
+        return $productData;
+    }
 
 }

+ 6 - 6
biz-ghs/product/classes/ProductClass.php

@@ -81,32 +81,32 @@ class ProductClass extends BaseClass
 
     /**
      * 根据 花材ID,将花材大小数量 换算成小数
-     * @param $num 大单位 数量
+     * @param $bigNum 大单位 数量
      * @param $smallNum 小单位 数量
      * @param $itemId  花材ID
      * @return string
      */
-	public static function mergeItemNumByItemId($num, $smallNum, $itemId)
+	public static function mergeItemNumByItemId($bigNum, $smallNum, $itemId)
 	{
 		$unitNum = xhItemService::getItemUnitNum($itemId);
-		return self::mergeItemNum($num, $smallNum, $unitNum);
+		return self::mergeItemNum($bigNum, $smallNum, $unitNum);
 	}
 
 	//花材扎、支 合并转换 小数
 
     /**
-     * @param $num  大单位 数量
+     * @param $bigNum  大单位 数量
      * @param $smallNum  小单位 数量
      * @param $unitNum  花材比例
      * @return string
      */
-	public static function mergeItemNum($num, $smallNum, $unitNum)
+	public static function mergeItemNum($bigNum, $smallNum, $unitNum)
 	{
 		$stockDecimal = 0;
 		if ($unitNum > 0) {
 			$stockDecimal = bcdiv($smallNum, $unitNum, 2);
 		}
-		$itemNum = bcadd($num, $stockDecimal, 2);
+		$itemNum = bcadd($bigNum, $stockDecimal, 2);
 		return $itemNum;
 	}
 

+ 36 - 7
common/components/orderSn.php

@@ -11,7 +11,7 @@ use yii\imagine\Image;
 //订单号生成 shish 2021.1.19
 class orderSn
 {
-	
+
 	//供货商订单号生成 shish 2021.1.19
 	public static function getGhsOrderSn()
 	{
@@ -26,7 +26,7 @@ class orderSn
 		}
 		return $prefix . $id;
 	}
-	
+
 	//零售商订单号生成 shish 2021.1.19
 	public static function getOrderSn()
 	{
@@ -41,7 +41,7 @@ class orderSn
 		}
 		return $prefix . $id;
 	}
-	
+
 	//供货商采购单号 shish 2021.1.19
 	public static function getGhsPurchaseSn()
 	{
@@ -56,7 +56,7 @@ class orderSn
 		}
 		return $prefix . $id;
 	}
-	
+
 	//供货商盘点单号 shish 2021.1.19
 	public static function getGhsCheckSn()
 	{
@@ -71,7 +71,7 @@ class orderSn
 		}
 		return $prefix . $id;
 	}
-	
+
 	//零售商采购单号 shish 2021.1.19
 	public static function getPurchaseSn()
 	{
@@ -86,5 +86,34 @@ class orderSn
 		}
 		return $prefix . $id;
 	}
-	
-}
+
+	//供货商入库订单号 linqh 2021.1.23
+    public static function getGhsStockInSn()
+    {
+        $prefix = 'RK_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'RK';
+        }
+        $respond = \bizGhs\order\classes\StockInSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('入库单号没有生成');
+        }
+        return $prefix . $id;
+    }
+
+    //供货商出库订单号 linqh 2021.1.23
+    public static function getGhsStockOutSn()
+    {
+        $prefix = 'CK_CS';
+        if (getenv('YII_ENV', 'local') == 'production') {
+            $prefix = 'CK';
+        }
+        $respond = \bizGhs\order\classes\StockOutSnClass::add(['id' => null]);
+        $id = $respond['id'] ?? 0;
+        if (empty($id)) {
+            util::fail('出库单号没有生成');
+        }
+        return $prefix . $id;
+    }
+}

+ 68 - 0
sql.sql

@@ -823,3 +823,71 @@ ALTER TABLE `xhGhsStockRecord`
 MODIFY COLUMN `addTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `newStock`,
 MODIFY COLUMN `updateTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `addTime`;
 
+====
+==linqh 2021.1.23
+RENAME TABLE  xhGhsStockOrder TO  xhGhsStockOutOrder
+ALTER TABLE `xhGhsStockOutOrder`
+CHANGE COLUMN `orderStatus` `status`  tinyint(2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单状态: 1待出库,2已出库  3取消出库' AFTER `orderSn`,
+CHANGE COLUMN `itemNumBundle` `bigNum`  int(11) NOT NULL DEFAULT 0 COMMENT '合计多少商品(扎)' AFTER `adminId`,
+CHANGE COLUMN `itemNumPiece` `smallNum`  int(11) NOT NULL DEFAULT 0 COMMENT '合计多少商品(支)' AFTER `bigNum`,
+CHANGE COLUMN `totalItemPrice` `price`  decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品总价格' AFTER `smallNum`,
+MODIFY COLUMN `addTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' AFTER `remark`,
+MODIFY COLUMN `updateTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间' AFTER `addTime`,
+COMMENT='出库订单表';
+
+RENAME TABLE  xhGhsStockOrderItem TO  xhGhsStockOutOrderItem
+
+ALTER TABLE `xhGhsStockOutOrder`
+ADD COLUMN `inOrderSn`  char(20) NOT NULL DEFAULT '' COMMENT '对应的入库订单号,订单完成的时候写入' AFTER `orderSn`;
+
+CREATE TABLE `xhGhsStockInOrder` (
+  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `merchantId` int(11) NOT NULL DEFAULT '0' COMMENT '供货商id',
+  `outShopId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '出库的门店ID',
+  `inShopId` int(11) NOT NULL DEFAULT '0' COMMENT '入库的门店ID',
+  `orderSn` char(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '入库订单编号',
+  `outOrderSn` char(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '对应的出库订单号',
+  `status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '订单状态: 1待入库,2已入库  3取消入库',
+  `adminId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '操作人ID',
+  `bigNum` int(11) NOT NULL DEFAULT '0' COMMENT '合计多少商品(扎)',
+  `smallNum` int(11) NOT NULL DEFAULT '0' COMMENT '合计多少商品(支)',
+  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总价格',
+  `remark` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '备注信息',
+  `addTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `updateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uni_orderNum` (`orderSn`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入库订单表';
+
+CREATE TABLE `xhGhsStockInOrderItem` (
+  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+  `orderSn` char(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '订单编号',
+  `itemId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '花材ID',
+  `itemNum` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '出库花材数量',
+  `itemStock` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '当时的库存',
+  `itemInfo` text COLLATE utf8mb4_unicode_ci COMMENT '花材信息json{"itemName":"","itemCover":"","itemRank":""}',
+  `itemPrice` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
+  PRIMARY KEY (`id`),
+  KEY `idx_orderNum` (`orderSn`) USING BTREE,
+  KEY `idx_goodsItemId` (`itemId`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='出库入库订单详情表';
+
+
+CREATE TABLE `xhGhsStockInSn` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=26316726 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入库订单号';
+
+CREATE TABLE `xhGhsStockOutSn` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=26316726 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='出库订单号';
+
+ALTER TABLE `xhGhsStockInOrderItem`
+ADD COLUMN `productId`  int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID' AFTER `orderSn`;
+
+ALTER TABLE `xhGhsStockOutOrderItem`
+ADD COLUMN `productId`  int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID' AFTER `orderSn`;
+
+ALTER TABLE `xhGhsStockOutOrder`
+ADD COLUMN `outTime`  timestamp NULL DEFAULT NULL COMMENT '出库时间' AFTER `remark`;