From 90902e255b57142490c8c2516495444c61f27def Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Wed, 21 Aug 2024 22:55:18 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(WorkbenchController):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=93=E5=BA=93=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BA=86=E5=BA=93=E5=AD=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E5=B9=B6=E6=9B=B4=E6=96=B0=E4=BA=86=E7=9B=B8?= =?UTF-8?q?=E5=85=B3API=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/WorkbenchController.php | 11 +++ app/admin/logic/statistic/WarehouseLogic.php | 95 ++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 app/admin/logic/statistic/WarehouseLogic.php diff --git a/app/admin/controller/WorkbenchController.php b/app/admin/controller/WorkbenchController.php index 744ab58a6..a8b53c307 100644 --- a/app/admin/controller/WorkbenchController.php +++ b/app/admin/controller/WorkbenchController.php @@ -19,6 +19,7 @@ use app\admin\lists\store_order_cart_info\StoreOrderCartInfoGroupMonthLists; use app\admin\logic\statistic\ProductStatisticLogic; use app\admin\logic\statistic\TradeStatisticLogic; use app\admin\logic\statistic\UserStatisticLogic; +use app\admin\logic\statistic\WarehouseLogic; use app\admin\logic\WorkbenchLogic; use app\store\logic\WorkbenchLogic as LogicWorkbenchLogic; use DateInterval; @@ -269,4 +270,14 @@ class WorkbenchController extends BaseAdminController return date("Y/m/d", strtotime("-30 days", time())) . '-' . date("Y/m/d", time()); } } + + /** + * 统计仓库 + * @return array + */ + public function total_warehouse() + { + $data=WarehouseLogic::total_warehouse(); + return $this->data($data); + } } diff --git a/app/admin/logic/statistic/WarehouseLogic.php b/app/admin/logic/statistic/WarehouseLogic.php new file mode 100644 index 000000000..5de804768 --- /dev/null +++ b/app/admin/logic/statistic/WarehouseLogic.php @@ -0,0 +1,95 @@ + '总采购金额', + 'desc' => '平台采购商品总支付金额', + 'total_money' => 22, + 'value' => [], + 'type' => 1, + ]; + + + $topData[] = [ + 'title' => '已结算金额', + 'desc' => '平台支付给供应商的金额', + 'total_money' => 6565, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '未结算金额', + 'desc' => '平台未支付给供应商的金额', + 'total_money' => 6565, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '总商品库存', + 'desc' => '平台统计商品总库存、含门店仓库', + 'total_money' => 6565, + 'cash_title' => 12322, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '总仓库库存', + 'desc' => '平台统计仓库库存', + 'total_money' => 6565, + 'cash_title' => 12322, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '海吉星仓库库存', + 'desc' => '平台统计海吉星仓库库存', + 'total_money' => 6565, + 'cash_title' => 12322, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '泸县集采集配库存', + 'desc' => '平台统计泸县集采集配库存', + 'total_money' => 6565, + 'cash_title' => 12322, + 'value' => [], + 'type' => 1, + ]; + $topData[] = [ + 'title' => '总门店库存', + 'desc' => '平台统计门店库存', + 'total_money' => 6565, + 'cash_title' => 12322, + + 'value' => [], + 'type' => 1, + ]; + $data['series'] = []; + foreach ($topData as $k => $v) { + // $data['x'] = $Chain['out']['x']; + $data['series'][$k]['name'] = $v['title']; + $data['series'][$k]['desc'] = $v['desc']; + $data['series'][$k]['total_value'] = $v['total_money']; + $data['series'][$k]['total_money'] = $v['cash_title']??''; + + $data['series'][$k]['type'] = $v['type']; + } + return $data; + } +} \ No newline at end of file From 7440c2a046ed96d98f854bfad1aa0a722c93abc6 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Thu, 22 Aug 2024 12:04:58 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E7=BB=9F=E8=AE=A1=E5=92=8C=E4=BB=93=E5=BA=93=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/WorkbenchController.php | 10 ++++++++++ .../StoreBranchProductController.php | 3 +++ .../StoreOrderCartInfoLists.php | 4 ++-- .../warehouse_product/WarehouseProductLists.php | 6 ++++-- app/admin/logic/statistic/WarehouseLogic.php | 13 ++++++++++--- .../StoreBranchProductLogic.php | 5 +++++ .../warehouse_product/WarehouseProductLogic.php | 2 +- 7 files changed, 35 insertions(+), 8 deletions(-) diff --git a/app/admin/controller/WorkbenchController.php b/app/admin/controller/WorkbenchController.php index a8b53c307..0ea9348bc 100644 --- a/app/admin/controller/WorkbenchController.php +++ b/app/admin/controller/WorkbenchController.php @@ -280,4 +280,14 @@ class WorkbenchController extends BaseAdminController $data=WarehouseLogic::total_warehouse(); return $this->data($data); } + + /** + * 统计仓库 + * @return array + */ + public function warehouse_list() + { + $data=WarehouseLogic::warehouse_list(); + return $this->data($data); + } } diff --git a/app/admin/controller/store_branch_product/StoreBranchProductController.php b/app/admin/controller/store_branch_product/StoreBranchProductController.php index 396b512ce..155c72747 100644 --- a/app/admin/controller/store_branch_product/StoreBranchProductController.php +++ b/app/admin/controller/store_branch_product/StoreBranchProductController.php @@ -115,6 +115,9 @@ class StoreBranchProductController extends BaseAdminController { $params = (new StoreProductValidate())->post()->goCheck('delete'); StoreBranchProductLogic::delete($params); + if(StoreBranchProductLogic::hasError()){ + return $this->fail(StoreBranchProductLogic::getError()); + } return $this->success('删除成功', [], 1, 1); } diff --git a/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php b/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php index 29f8ff80a..7878ee999 100644 --- a/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php +++ b/app/admin/lists/store_order_cart_info/StoreOrderCartInfoLists.php @@ -32,7 +32,7 @@ class StoreOrderCartInfoLists extends BaseAdminDataLists implements ListsSearchI public function setSearch(): array { return [ - '=' => ['oid'], + '=' => ['oid','product_id'], ]; } @@ -49,7 +49,7 @@ class StoreOrderCartInfoLists extends BaseAdminDataLists implements ListsSearchI public function lists(): array { return StoreOrderCartInfo::where($this->searchWhere) - ->field('cart_info,product_id,store_id,cart_num,price,total_price')->limit($this->limitOffset, $this->limitLength) + ->field('cart_info,product_id,store_id,cart_num,price,total_price,create_time')->limit($this->limitOffset, $this->limitLength) ->select()->each(function ($item) { $find=StoreProduct::where('id',$item['product_id'])->field('image,unit,store_name,store_info')->find(); if($find){ diff --git a/app/admin/lists/warehouse_product/WarehouseProductLists.php b/app/admin/lists/warehouse_product/WarehouseProductLists.php index bd04f5ae7..500e54e82 100644 --- a/app/admin/lists/warehouse_product/WarehouseProductLists.php +++ b/app/admin/lists/warehouse_product/WarehouseProductLists.php @@ -99,8 +99,10 @@ class WarehouseProductLists extends BaseAdminDataLists implements ListsSearchInt } if ($item->product_id) { $find = StoreProduct::where('id', $item->product_id)->field('image,store_name')->find(); - $item->store_name = $find->store_name . '|' . $item->product_id; - $item->image = $find->image; + if($find){ + $item->store_name = $find->store_name . '|' . $item->product_id; + $item->image = $find->image; + } } else { $item->store_name = ''; } diff --git a/app/admin/logic/statistic/WarehouseLogic.php b/app/admin/logic/statistic/WarehouseLogic.php index 5de804768..0da41e10e 100644 --- a/app/admin/logic/statistic/WarehouseLogic.php +++ b/app/admin/logic/statistic/WarehouseLogic.php @@ -4,10 +4,12 @@ namespace app\admin\logic\statistic; use app\common\logic\BaseLogic; use app\common\model\store_order\StoreOrder; +use app\common\model\store_product\StoreProduct; use app\common\model\user\User; use app\common\model\user\UserVisit; use app\common\model\user_recharge\UserRecharge; use Exception; + /** * Class 仓库统计 * @package app\services\statistic @@ -15,7 +17,8 @@ use Exception; class WarehouseLogic extends BaseLogic { - public static function total_warehouse(){ + public static function total_warehouse() + { $topData[] = [ 'title' => '总采购金额', 'desc' => '平台采购商品总支付金额', @@ -86,10 +89,14 @@ class WarehouseLogic extends BaseLogic $data['series'][$k]['name'] = $v['title']; $data['series'][$k]['desc'] = $v['desc']; $data['series'][$k]['total_value'] = $v['total_money']; - $data['series'][$k]['total_money'] = $v['cash_title']??''; + $data['series'][$k]['total_money'] = $v['cash_title'] ?? ''; $data['series'][$k]['type'] = $v['type']; } return $data; } -} \ No newline at end of file + + public static function warehouse_list() { + // StoreProduct::where('is_show',1)-> + } +} diff --git a/app/admin/logic/store_branch_product/StoreBranchProductLogic.php b/app/admin/logic/store_branch_product/StoreBranchProductLogic.php index f171dc148..45ae5a6e0 100644 --- a/app/admin/logic/store_branch_product/StoreBranchProductLogic.php +++ b/app/admin/logic/store_branch_product/StoreBranchProductLogic.php @@ -117,6 +117,11 @@ class StoreBranchProductLogic extends BaseLogic */ public static function delete(array $params): bool { + $stock=StoreBranchProduct::where('id', $params['id'])->value('stock'); + if($stock>0){ + self::setError('商品库存不为0,无法删除'); + return false; + } return StoreBranchProduct::destroy($params['id']); } diff --git a/app/admin/logic/warehouse_product/WarehouseProductLogic.php b/app/admin/logic/warehouse_product/WarehouseProductLogic.php index 6d0c094f2..f92f72b2c 100644 --- a/app/admin/logic/warehouse_product/WarehouseProductLogic.php +++ b/app/admin/logic/warehouse_product/WarehouseProductLogic.php @@ -43,7 +43,7 @@ class WarehouseProductLogic extends BaseLogic if ($params['financial_pm'] == 0) { $after_nums = $storege['nums'] - $params['nums']; if ($after_nums < 0) { - throw new BusinessException('库存不足'); + throw new BusinessException('库存不足,warehouse_id:'.$params['warehouse_id'].'product_id:'.$params['product_id']); } WarehouseProductStorege::where('id', $storege['id'])->dec('nums', $params['nums'])->update(); } else { From 90cae6cd03a85a642efd4b539cfc63b042539ee6 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Thu, 22 Aug 2024 12:53:07 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E8=AE=A2=E5=8D=95=E5=92=8C=E4=BB=93=E5=BA=93=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BC=98=E5=8C=96=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/warehouse_order/WarehouseOrderLogic.php | 2 +- .../warehouse_product/WarehouseProductLogic.php | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/admin/logic/warehouse_order/WarehouseOrderLogic.php b/app/admin/logic/warehouse_order/WarehouseOrderLogic.php index 8a31a5a44..b5980afee 100644 --- a/app/admin/logic/warehouse_order/WarehouseOrderLogic.php +++ b/app/admin/logic/warehouse_order/WarehouseOrderLogic.php @@ -95,7 +95,7 @@ class WarehouseOrderLogic extends BaseLogic try { foreach ($params['product_arr'] as $k => $v) { $data['admin_id'] = $params['admin_id']; - $data['store_id'] = 0; + $data['store_id'] = $find['store_id']; $data['oid'] = $find['id']; $data['supplier_id'] = $find['supplier_id']; $data['warehouse_id'] = $find['warehouse_id']; diff --git a/app/admin/logic/warehouse_product/WarehouseProductLogic.php b/app/admin/logic/warehouse_product/WarehouseProductLogic.php index f92f72b2c..c1731767c 100644 --- a/app/admin/logic/warehouse_product/WarehouseProductLogic.php +++ b/app/admin/logic/warehouse_product/WarehouseProductLogic.php @@ -2,7 +2,7 @@ namespace app\admin\logic\warehouse_product; - +use app\admin\logic\store_product\StoreProductLogic; use app\common\model\warehouse_product\WarehouseProduct; use app\common\logic\BaseLogic; use app\common\model\purchase_product_offer\PurchaseProductOffer; @@ -46,6 +46,18 @@ class WarehouseProductLogic extends BaseLogic throw new BusinessException('库存不足,warehouse_id:'.$params['warehouse_id'].'product_id:'.$params['product_id']); } WarehouseProductStorege::where('id', $storege['id'])->dec('nums', $params['nums'])->update(); + //门店加库存 + $storeBranchProduct = StoreBranchProduct::where('product_id', $params['product_id'])->where('store_id',$params['store_id'])->find(); + if(!$storeBranchProduct){ + $storeProduct = StoreProduct::where('id', $params['product_id'])->findOrEmpty()->toArray(); + if (!$storeProduct) { + throw new BusinessException('商品不存在'); + } + $storeBranchProduct=StoreProductLogic::ordinary(['id'=>$params['product_id']],$params['store_id'], $params['admin_id'], $storeProduct); + } + if ($params['nums'] > 0) { + StoreBranchProduct::where('id', $storeBranchProduct['id'])->inc('stock',$params['nums'])->update(); + } } else { $after_nums = $storege['nums'] + $params['nums']; WarehouseProductStorege::where('id', $storege['id'])->inc('nums', $params['nums'])->update();