Sfoglia il codice sorgente

库存变更增加中央ID

林琦海 4 anni fa
parent
commit
db61ea0224

+ 3 - 0
app-ghs/controllers/ProductController.php

@@ -641,6 +641,9 @@ class ProductController extends BaseController
         $post['sjId'] = $this->sjId;
         $post['adminId'] = $this->adminId;
         $post['shopId'] = $this->shopId;
+        //增加中央ID
+        $post['mainId'] = $this->mainId;
+
         $price = $post['price'] ?? 0;
         $addPrice = $post['addPrice'] ?? 0;
         if ($addPrice > $price) {

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

@@ -96,6 +96,7 @@ class CheckOrderClass extends BaseClass
                     $record = [];
                     $record['sjId'] = $sjId;
                     $record['shopId'] = $shopId;
+                    $record['mainId'] = $productData['mainId'];
                     $record['orderSn'] = $orderSn;
                     $record['itemId'] = $v['itemId'];
                     $record['productId'] = $productId;

+ 4 - 0
biz-ghs/order/classes/OrderClass.php

@@ -183,6 +183,8 @@ class OrderClass extends BaseClass
             $recordData = [];
             $recordData['sjId'] = $sjId;
             $recordData['shopId'] = $currentShopId;
+            //增加中央ID
+            $recordData['mainId'] =  $productMapData[$productId]['mainId'] ?? 0;
             $recordData['itemId'] = $productMapData[$productId]['itemId'] ?? 0;
             $ratio = $productMapData[$productId]['ratio'] ?? 0;
             $recordData['itemNum'] = ProductClass::mergeItemNum($val['bigNum'], $val['smallNum'], $ratio);
@@ -1017,6 +1019,8 @@ class OrderClass extends BaseClass
             $recordData = [];
             $recordData['sjId'] = $order->sjId;
             $recordData['shopId'] = $shopId;
+            //增加中央ID
+            $recordData['mainId'] = ProductClass::getMainIdByProductId($v['productId']);
             $recordData['itemId'] = $v['itemId'] ?? 0;
             $recordData['itemNum'] = $v['num'];
             $recordData['oldStock'] = $stockInfo['oldStock'];

+ 9 - 0
biz-ghs/product/classes/ProductClass.php

@@ -1191,6 +1191,8 @@ class ProductClass extends BaseClass
                     $record = [];
                     $record['sjId'] = $data['sjId'];
                     $record['shopId'] = $data['shopId'];
+                    //增加中央ID
+                    $record['mainId'] = $data['mainId'];
                     $record['orderSn'] = $pdOrderSn;
                     $record['itemId'] = $data['itemId'];
                     $record['productId'] = $res['id'];
@@ -1300,4 +1302,11 @@ class ProductClass extends BaseClass
         }
     }
 
+    //通过花材ID 获取mainId  linqh 2022.03.20
+    public static function getMainIdByProductId($productId)
+    {
+        $product = self::getById($productId,false);
+        return $product['mainId']??0;
+    }
+
 }

+ 17 - 0
biz-ghs/stock/classes/StockRecordClass.php

@@ -24,6 +24,8 @@ class StockRecordClass extends BaseClass
     const STOCK_RECORD_TYPE_WASTAGE = 9;// 报损
     const STOCK_RECORD_TYPE_REFUND = 10;// 退款退货
     const STOCK_RECORD_TYPE_HD_ORDER = 11;//花店销售单
+    const STOCK_RECORD_TYPE_GOODS_CONSUME = 12;//制作成品消耗
+    const STOCK_RECORD_TYPE_GOODS_WASTAGE = 13;//制作成品损耗
 
     public static $typeMap = [
         self::STOCK_RECORD_TYPE_PURCHASE => '采购入库',
@@ -37,6 +39,8 @@ class StockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_WASTAGE => '报损',
         self::STOCK_RECORD_TYPE_REFUND => '退货',
         self::STOCK_RECORD_TYPE_HD_ORDER => '开单',
+        self::STOCK_RECORD_TYPE_GOODS_CONSUME => '制作成品消耗',
+        self::STOCK_RECORD_TYPE_GOODS_WASTAGE => '制作成品损耗',
     ];
 
     public static function getRecordList($where)
@@ -173,4 +177,17 @@ class StockRecordClass extends BaseClass
         return self::addRecord($data);
     }
 
+    //制作成品消耗 linqh 2022.03.20
+    public static function makeGoodsConsume($data)
+    {
+        $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_CONSUME;
+        return self::addRecord($data);
+    }
+
+    //制作成品损耗 linqh 2022.03.20
+    public static function makeGoodsWastage($data)
+    {
+        $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_WASTAGE;
+        return self::addRecord($data);
+    }
 }

+ 57 - 0
biz-hd/goods/classes/GoodsClass.php

@@ -17,6 +17,7 @@ class GoodsClass extends BaseClass
 
     public static $baseFile = '\bizHd\goods\models\Goods';
 
+    const LOCK_STOCK_GOODS = 'lock_stock_goods_';//修改库存锁
     //获取商品完整详情,包括商品的分类 ssh 2019.12.3
     public static function getGoodsInfo($id)
     {
@@ -242,4 +243,60 @@ class GoodsClass extends BaseClass
         util::fail('此商品您没有权限查看哦');
     }
 
+
+    //库存变动入口
+    //加库存
+    public static function addStock($goodsId,$mainId,$num)
+    {
+        $key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
+        $lock = util::lock($key);
+        if (!$lock) {
+            util::fail("系统繁忙中,请稍后再试!");
+        }
+        $goodsData = self::getById($goodsId);
+        if (!$goodsData) {
+            util::unlock($key);
+            util::fail("成品不存在");
+        }
+        $goodsMainId = $goodsData['mainId'];
+        if($mainId !== $goodsMainId){
+            util::unlock($key);
+            util::fail("非法参数");
+        }
+
+        //改库存
+        $newStock = $goodsData['stock'] + $num;
+        $data['stock'] = $newStock;
+        self::updateById($goodsId,$data);
+        util::unlock($key);
+        return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
+    }
+
+    //减库存
+    public static function decreaseStock($goodsId,$mainId,$num)
+    {
+        $key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
+        $lock = util::lock($key);
+        if (!$lock) {
+            util::fail("系统繁忙中,请稍后再试!");
+        }
+        $goodsData = self::getById($goodsId);
+        if (!$goodsData) {
+            util::unlock($key);
+            util::fail("成品不存在");
+        }
+        $goodsMainId = $goodsData['mainId'];
+        if($mainId !== $goodsMainId){
+            util::unlock($key);
+            util::fail("非法参数");
+        }
+
+        //改库存
+        $newStock = $goodsData['stock'] - $num;
+        $data['stock'] = $newStock;
+        self::updateById($goodsId,$data);
+        util::unlock($key);
+        return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
+    }
+
 }

+ 13 - 1
biz-hd/order/classes/OrderGoodsClass.php

@@ -94,4 +94,16 @@ class OrderGoodsClass extends BaseClass
         return $data;
     }
 
-}
+    //制作成品库存变更方法(加成品库存,减花材库存) todo
+    public static function  changeStockByMakeGoods()
+    {
+
+    }
+
+    //销售成品库存变更方法(减库存) todo
+    public static function changeStockBySellGoods()
+    {
+
+    }
+
+}