'采购入库', self::STOCK_RECORD_TYPE_IN_STOCK => '调拨入库', self::STOCK_RECORD_TYPE_OUT_STOCK => '调拨出库', self::STOCK_RECORD_TYPE_CHECK_STOCK => '盘点', self::STOCK_RECORD_TYPE_SELL_STOCK => '开单', self::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL => '取消入库', self::STOCK_RECORD_TYPE_IN_STOCK_CANCEL => '取消出库', self::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL => '取消订单', 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 => '制作商品损耗', self::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL => '取消制作', self::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL => '取消制作损耗', self::STOCK_RECORD_TYPE_HD_REFUND => '退货退款', self::STOCK_RECORD_TYPE_GHS_REFUND => '采购申请退货', self::STOCK_RECORD_TYPE_PART => '拆散', self::STOCK_RECORD_TYPE_GIVE => '赠送', self::STOCK_RECORD_TYPE_ACCEPT => '获赠', ]; public static function getRecordList($where) { $data = self::getList('*', $where, 'addTime DESC'); $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : []; if (empty($list)) { return $data; } $itemIds = array_column($list, 'itemId'); $itemIdsUnitNum = xhItemService::getItemUnitNums($itemIds); foreach ($list as $k => $v) { $unitNum = $itemIdsUnitNum[$v['itemId']] ?? 0; $stock = ProductClass::formatStock($v['newStock'], $unitNum); $orderNums = ProductClass::formatStock($v['itemNum'], $unitNum); $list[$k]['bigNumOrder'] = $orderNums['bigNum']; $list[$k]['smallNumOrder'] = $orderNums['smallNum']; $list[$k]['bigNumStock'] = $stock['bigNum']; $list[$k]['smallNumStock'] = $stock['smallNum']; $list[$k]['typeName'] = self::getTypeName($v['recordType']); } $data['list'] = $list; return $data; } public static function getTypeName($type) { return self::$typeMap[$type] ?? ''; } public static function getAllType() { $list = self::$typeMap; $arr = []; foreach ($list as $id => $val) { $arr[] = ['value' => $id, 'label' => $val]; } return $arr; } public static function addRecord($data) { $oldStock = $data['oldStock'] ?? 0; $newStock = $data['newStock'] ?? 0; $io = -1; if ($newStock > $oldStock) { $io = 1; } if ($newStock < $oldStock) { $io = 0; } $data['io'] = $io; $data['itemNum'] = abs($data['itemNum']); $respond = self::add($data); //库存预警通知放入队列 $productId = $data['productId'] ?? 0; $currentProduct = ProductClass::getById($productId); if (!empty($currentProduct)) { ProductClass::stockWarningAddQueue($currentProduct, $data['newStock']); } return $respond; } //根据order 记录流水 // sjId,shopId,orderSn //itemInfo = [{productId:1,itemId:1,itemNum:操作的花材数据,oldStock(itemStock):当时库存,newStock:变化后的库存}] public static function addRecordByOrder($orderData, $type) { $itemInfo = $orderData['itemInfo']; $productData = self::getProductMapData($itemInfo); foreach ($itemInfo as $v) { $itemId = $v['itemId']; $productId = $v['productId']; $record = []; $unitNum = $productData[$productId]['ratio'] ?? 0; $itemNum = ProductClass::mergeItemNum($v['bigNum'], $v['smallNum'], $unitNum); $record['sjId'] = $orderData['sjId']; $record['shopId'] = $orderData['shopId']; $record['mainId'] = $productData[$productId]['mainId'] ?? 0; $record['orderSn'] = $orderData['orderSn']; $record['itemId'] = $itemId; $record['itemNum'] = $itemNum; $record['oldStock'] = $v['itemStock']; //当时库存 $record['recordType'] = $type; $record['productId'] = $productId; $record['newStock'] = $v['newStock'];// 最新库存 $record['relateName'] = $orderData['relateName'] ?? ''; $record['ptStyle'] = $orderData['ptStyle'] ?? dict::getDict('ptStyle', 'ghs'); $record['avCost'] = $v['avCost'] ?? 0; $record['totalCost'] = $v['totalCost'] ?? 0; $record['totalStock'] = $v['totalStock'] ?? 0; $record['changeCost'] = $v['changeCost'] ?? 0; $record['unitCost'] = $v['unitCost'] ?? 0; self::addRecord($record); } } //花店采购申请退货退款库存变动记录 ssh 20220330 public static function hdCgApplyRefundAddRecord($refundRecord) { $refundRecord['recordType'] = self::STOCK_RECORD_TYPE_REFUND; self::add($refundRecord); } //供货商给零售店退款退货增加库存变动记录 ssh 20220330 public static function ghsRefundAddRecord($refundRecord) { $refundRecord['recordType'] = self::STOCK_RECORD_TYPE_REFUND; self::add($refundRecord); } public static function partItemAddRecord($refundRecord) { $refundRecord['recordType'] = self::STOCK_RECORD_TYPE_PART; self::add($refundRecord); } //采购订单流水记录 public static function addPurchaseOrderRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_PURCHASE; return self::addRecord($data); } //盘点订单流水记录 public static function addCheckOrderRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_CHECK_STOCK; return self::addRecord($data); } //出库订单流水记录 public static function addOutStockOrderRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_OUT_STOCK; return self::addRecord($data); } //取消出库 public static function addOutStockOrderCancelRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL; return self::addRecord($data); } //入库订单流水记录 public static function addInStockOrderRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_IN_STOCK; return self::addRecord($data); } //取消入库 public static function addInStockOrderCancelRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_IN_STOCK_CANCEL; return self::addRecord($data); } //销售订单流水记录 public static function addSellStockOrderRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_SELL_STOCK; return self::addRecord($data); } //取消销售订单 public static function addSellStockOrderCancelRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL; return self::addRecord($data); } //零售花店开单 ssh 20220318 public static function hdKdAddRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_HD_ORDER; return self::addRecord($data); } //零售花店退货退款 ssh 20220427 public static function hdRefundAddRecord($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_HD_REFUND; return self::addRecord($data); } //制作商品 lqh 2022.03.20 public static function makeGoodsConsume($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_CONSUME; return self::addRecord($data); } //制作商品损耗 lqh 2022.03.20 public static function makeGoodsWastage($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_WASTAGE; return self::addRecord($data); } public static function cancelMakeGoodsConsume($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL; return self::addRecord($data); } public static function cancelMakeGoodsWastage($data) { $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL; return self::addRecord($data); } //二批申请退货退款库存变动记录 ssh 20220909 public static function ghsCgApplyRefundAddRecord($refundRecord) { $refundRecord['recordType'] = self::STOCK_RECORD_TYPE_GHS_REFUND; self::add($refundRecord); } }