From feddef6278607524e3e5eef26a29d2cb3dd23163 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com>
Date: Fri, 15 Mar 2024 16:58:25 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9F=BA=E7=A1=80=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Console/Commands/DailySalesReport.php | 1 +
app/Console/Kernel.php | 13 +-
.../Controllers/Goods/GoodsSkusController.php | 14 +-
app/Http/Requests/GoodsSkuRequest.php | 5 +
...1327_add_goal_rate_to_goods_skus_table.php | 35 ++
...issue_num_to_daily_stock_records_table.php | 35 ++
resources/frontend/src/views/goods/goods.vue | 315 +++++++++++-------
7 files changed, 294 insertions(+), 124 deletions(-)
create mode 100644 database/migrations/2024_03_15_161327_add_goal_rate_to_goods_skus_table.php
create mode 100644 database/migrations/2024_03_15_164632_add_reissue_num_to_daily_stock_records_table.php
diff --git a/app/Console/Commands/DailySalesReport.php b/app/Console/Commands/DailySalesReport.php
index 2226550..9567ef2 100644
--- a/app/Console/Commands/DailySalesReport.php
+++ b/app/Console/Commands/DailySalesReport.php
@@ -170,6 +170,7 @@ class DailySalesReport extends Command
$s => $sVal,
$sRate => $sRateVal,
'already_cancel_number' => $datum['total_already_cancel_number'],
+ 'goal_rate' => $goodsSkus[$externalSkuId]['goal_rate'],
]);
}
}
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index 2818a03..9a570d5 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -2,6 +2,7 @@
namespace App\Console;
+use App\Console\Commands\DailySalesReport;
use App\Console\Commands\GoodsSkuDailyReport;
use App\Console\Commands\Inventory;
use Illuminate\Console\Scheduling\Schedule;
@@ -30,9 +31,19 @@ class Kernel extends ConsoleKernel
{
// 服务器/etc/crontab添加cron入口
// * * * * * cd /home/wwwroot/erp.chutang66.com && php artisan schedule:run >> /dev/null 2>&1
+ $schedule->command(KttOrderQuery::class)->everyMinute();
+
$schedule->command(GoodsSkuDailyReport::class)->dailyAt('06:00');
$schedule->command(Inventory::class)->dailyAt('07:00');
- $schedule->command(KttOrderQuery::class)->everyMinute();
+
+ $schedule->command(DailySalesReport::class, ['S1'])->dailyAt('12:00');
+ $schedule->command(DailySalesReport::class, ['S2'])->dailyAt('13:30');
+ $schedule->command(DailySalesReport::class, ['S3'])->dailyAt('15:00');
+ $schedule->command(DailySalesReport::class, ['S4'])->dailyAt('16:00');
+ $schedule->command(DailySalesReport::class, ['S5'])->dailyAt('17:30');
+ $schedule->command(DailySalesReport::class, ['S6'])->dailyAt('20:00');
+ $schedule->command(DailySalesReport::class, ['S7'])->dailyAt('09:30');
+
$schedule->command(DeleteKttQuery::class)->daily();
}
diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php
index d75befd..b2910fb 100644
--- a/app/Http/Controllers/Goods/GoodsSkusController.php
+++ b/app/Http/Controllers/Goods/GoodsSkusController.php
@@ -121,6 +121,7 @@ class GoodsSkusController extends Controller
$sku['order_detail'] = [];
$sku['order_goods_num'] = 0;
}
+ $sku['order_goods_num'] -= $sku['daily']['reissue_num'];
$sku['inventory_time'] = $lastInventoryTime;
if ('销售' === $rolesName[0]) {
$sku['cost'] = 0;
@@ -436,7 +437,7 @@ class GoodsSkusController extends Controller
$rules = [
'updateField' => [
'required',
- Rule::in(['reference_price', 'reserve', 'loss_num', 'status'])
+ Rule::in(['reference_price', 'reserve', 'loss_num', 'status', 'goal_rate'])
],
'reference_price' => [
'sometimes',
@@ -460,7 +461,13 @@ class GoodsSkusController extends Controller
'sometimes',
'required',
'integer',
- Rule::in([0, 1, 2])],
+ Rule::in([0, 1, 2])
+ ],
+ 'goal_rate' => [
+ 'sometimes',
+ 'numeric',
+ 'gt:0'
+ ],
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
@@ -477,6 +484,9 @@ class GoodsSkusController extends Controller
$this->log->message = $request->get('reason');
$this->setBeforeUpdateForLog($record->loss_num);
$record->loss_num += $request->loss_num;
+ if ('补发' === $request->get('reason')) {
+ $record->reissue_num += $request->loss_num;
+ }
$record->save();
$this->setAfterUpdateForLog($record->loss_num);
$sku->stock -= $request->loss_num;
diff --git a/app/Http/Requests/GoodsSkuRequest.php b/app/Http/Requests/GoodsSkuRequest.php
index 2af032a..7031e44 100644
--- a/app/Http/Requests/GoodsSkuRequest.php
+++ b/app/Http/Requests/GoodsSkuRequest.php
@@ -41,6 +41,11 @@ class GoodsSkuRequest extends FormRequest
'sometimes',
'integer',
],
+ 'goal_rate' => [
+ 'sometimes',
+ 'numeric',
+ 'gt:0'
+ ],
'loss_num' => [
'sometimes',
'integer',
diff --git a/database/migrations/2024_03_15_161327_add_goal_rate_to_goods_skus_table.php b/database/migrations/2024_03_15_161327_add_goal_rate_to_goods_skus_table.php
new file mode 100644
index 0000000..c3964bf
--- /dev/null
+++ b/database/migrations/2024_03_15_161327_add_goal_rate_to_goods_skus_table.php
@@ -0,0 +1,35 @@
+decimal('goal_rate', 8, 4)->default(0)->comment('目标去化率');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('goods_skus', function (Blueprint $table) {
+ $table->dropColumn('goal_rate');
+ });
+ }
+}
diff --git a/database/migrations/2024_03_15_164632_add_reissue_num_to_daily_stock_records_table.php b/database/migrations/2024_03_15_164632_add_reissue_num_to_daily_stock_records_table.php
new file mode 100644
index 0000000..99b9f15
--- /dev/null
+++ b/database/migrations/2024_03_15_164632_add_reissue_num_to_daily_stock_records_table.php
@@ -0,0 +1,35 @@
+unsignedInteger('reissue_num')->default(0)->comment('补发数量');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('daily_stock_records', function (Blueprint $table) {
+ $table->dropColumn('reissue_num');
+ });
+ }
+}
diff --git a/resources/frontend/src/views/goods/goods.vue b/resources/frontend/src/views/goods/goods.vue
index caf121a..092cd7c 100644
--- a/resources/frontend/src/views/goods/goods.vue
+++ b/resources/frontend/src/views/goods/goods.vue
@@ -22,28 +22,30 @@
{{ scope.row.name }}
-- {{ scope.row.goods.goods_code + "_" + scope.row.sku_code }} -
-- {{ scope.row.goods.updated_at }} -
+{{ scope.row.external_sku_id }}
+{{ scope.row.goods.updated_at }}

-
-