feat: 修改了库存管理逻辑以支持仓库库存查询和更新

This commit is contained in:
mkm 2024-08-03 11:22:35 +08:00
parent 89775fdccb
commit d9fca4bf15
4 changed files with 28 additions and 18 deletions
app
admin/logic
queue/redis

@ -314,7 +314,7 @@ class TradeStatisticLogic extends BaseLogic
$depositWehre['financial_type'] = 11; $depositWehre['financial_type'] = 11;
$orderDepositMoney = $this->getFinanceFlow($depositWehre, "sum"); $orderDepositMoney = $this->getFinanceFlow($depositWehre, "sum");
$lastOrderDepositMoney = $this->getFinanceFlow($dateWhere, "sum", "", $isNum); $lastOrderDepositMoney = $this->getFinanceFlow($dateWhere, "sum", "", $isNum);
$OrderDepositCurve = $this->getFinanceFlow($where, "group", "create_time"); $OrderDepositCurve = $this->getFinanceFlow($depositWehre, "group", "create_time");
$OrderDepositChain = countRate($orderDepositMoney, $lastOrderDepositMoney); $OrderDepositChain = countRate($orderDepositMoney, $lastOrderDepositMoney);
$topData[8] = [ $topData[8] = [
@ -483,17 +483,17 @@ class TradeStatisticLogic extends BaseLogic
$orderGroup = "create_time"; $orderGroup = "create_time";
$OrderMoney = $this->getOrderTotalMoney($where, $selectType, $orderGroup); $OrderMoney = $this->getOrderTotalMoney($where, $selectType, $orderGroup);
//用户充值收入 //用户充值收入
$rechargeGroup = "create_time"; // $rechargeGroup = "create_time";
$RechargeMoneyHome = $this->getRechargeTotalMoney($where, $selectType, $rechargeGroup); // $RechargeMoneyHome = $this->getRechargeTotalMoney($where, $selectType, $rechargeGroup);
$RechargeMoneyAdmin = $this->getBillYeTotalMoney($where, $selectType, $rechargeGroup); // $RechargeMoneyAdmin = $this->getBillYeTotalMoney($where, $selectType, $rechargeGroup);
$RechargeMoney = $this->totalArrData([$RechargeMoneyHome, $RechargeMoneyAdmin]); // $RechargeMoney = $this->totalArrData([$RechargeMoneyHome, $RechargeMoneyAdmin]);
//购买会员收入 //购买会员收入
$memberGroup = "create_time"; // $memberGroup = "create_time";
$MemberMoney = $this->getMemberTotalMoney($where, $selectType, $memberGroup); // $MemberMoney = $this->getMemberTotalMoney($where, $selectType, $memberGroup);
//线下收款收入 //线下收款收入
$offlineGroup = "create_time"; $offlineGroup = "create_time";
$OfflineMoney = $this->getOfflineTotalMoney($where, $selectType, $offlineGroup); $OfflineMoney = $this->getOfflineTotalMoney($where, $selectType, $offlineGroup);
return $this->totalArrData([$OrderMoney, $RechargeMoney, $MemberMoney, $OfflineMoney]); return $this->totalArrData([$OrderMoney, $OfflineMoney]);
} }

@ -8,6 +8,8 @@ use app\common\model\store_branch_product_attr_value\StoreBranchProductAttrValue
use app\common\model\system_store_storage\SystemStoreStorage; use app\common\model\system_store_storage\SystemStoreStorage;
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use app\common\model\store_product\StoreProduct; use app\common\model\store_product\StoreProduct;
use app\common\model\warehouse_product\WarehouseProduct;
use app\common\model\warehouse_product_storege\WarehouseProductStorege;
use think\facade\Db; use think\facade\Db;
@ -59,11 +61,12 @@ class SystemStoreStorageLogic extends BaseLogic
*/ */
public static function edit(array $params): bool public static function edit(array $params): bool
{ {
$stock=StoreProduct::where('id', $params['product_id'])->value('stock'); $find=SystemStoreStorage::where('id', $params['id'])->find();
$nums=SystemStoreStorage::where('id', $params['id'])->value('nums');
$stock=bcadd($stock,$nums); //查看仓库库存
if($stock<$params['nums']){ $productStorege=WarehouseProductStorege::where('product_id', $params['product_id'],['warehouse_id'=>$find['warehouse_id']])->find();
self::setError('库存不足,主库为:'.$stock); if($productStorege && $productStorege['nums']<$params['nums']){
self::setError('库存不足,仓库库存为:'.$productStorege['nums']);
return false; return false;
} }
Db::startTrans(); Db::startTrans();
@ -71,8 +74,12 @@ class SystemStoreStorageLogic extends BaseLogic
SystemStoreStorage::where('id', $params['id'])->update([ SystemStoreStorage::where('id', $params['id'])->update([
'nums' => $params['nums'], 'nums' => $params['nums'],
'admin_id' => $params['admin_id'], 'admin_id' => $params['admin_id'],
'status' => 0,
'mark' => '',
]); ]);
StoreProduct::where('id', $params['product_id'])->update(['stock'=>bcsub($stock,$params['nums'])]); StoreProduct::where('id', $params['product_id'])->inc('stock',bcsub($find['nums'] ,$params['nums'],2))->update();
WarehouseProductStorege::where('id',$productStorege['id'])->inc('stock',bcsub($find['nums'] ,$params['nums'],2))->update();
WarehouseProduct::where('id',$find['outbound_id'])->update(['nums',$params['nums']]);
Db::commit(); Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {

@ -90,10 +90,10 @@ class WarehouseProductLogic extends BaseLogic
if(isset($params['expiration_date']) &&$params['expiration_date']!=''){ if(isset($params['expiration_date']) &&$params['expiration_date']!=''){
$data['expiration_date']=strtotime($params['expiration_date']); $data['expiration_date']=strtotime($params['expiration_date']);
} }
WarehouseProduct::where('id', $params['id'])->update($data); $res=WarehouseProduct::where('id', $params['id'])->update($data);
Db::commit(); Db::commit();
return true; return $res;
} catch (\Exception $e) { } catch (\Exception $e) {
Db::rollback(); Db::rollback();
self::setError($e->getMessage()); self::setError($e->getMessage());

@ -169,6 +169,7 @@ class StoreStorageSend implements Consumer
'nums' => $product_arr['stock'], 'nums' => $product_arr['stock'],
'admin_id' => $admin_id, 'admin_id' => $admin_id,
'type' => $stock_type, 'type' => $stock_type,
'warehouse_id'=>$warehouse_id,
]; ];
$data=[ $data=[
'warehouse_id'=>$warehouse_id, 'warehouse_id'=>$warehouse_id,
@ -187,11 +188,13 @@ class StoreStorageSend implements Consumer
$storage['mark'] = '库存不足,分库存为:' .$warehouse['nums']; $storage['mark'] = '库存不足,分库存为:' .$warehouse['nums'];
$data['mark'] = '库存不足,分库存为:' .$warehouse['nums'].' 总仓库存为:'.$find['stock']; $data['mark'] = '库存不足,分库存为:' .$warehouse['nums'].' 总仓库存为:'.$find['stock'];
} }
$res=WarehouseProductLogic::add($data);
$storage['outbound_id']=$res['id']??0;
SystemStoreStorage::create($storage); SystemStoreStorage::create($storage);
WarehouseProductLogic::add($data);
} else { } else {
$res=WarehouseProductLogic::add($data);
$storage['outbound_id']=$res['id']??0;
SystemStoreStorage::create($storage); SystemStoreStorage::create($storage);
WarehouseProductLogic::add($data);
} }
} }