diff --git a/app/Admin/Services/Plan/TaskService.php b/app/Admin/Services/Plan/TaskService.php
index 0983a27..371898e 100644
--- a/app/Admin/Services/Plan/TaskService.php
+++ b/app/Admin/Services/Plan/TaskService.php
@@ -70,7 +70,7 @@ class TaskService extends BaseService
$endAt = $month->copy()->endOfMonth();
// 门店实际业绩
- $actualPerformance = Ledger::where('store_id', $store->id)
+ $totalSales = Ledger::where('store_id', $store->id)
->whereBetween('date', [$startAt->format('Y-m-d'), $endAt->format('Y-m-d')])
->sum('sales');
@@ -80,7 +80,7 @@ class TaskService extends BaseService
'store_id' => $store->id,
'store_master_id' => $store->master_id,
'expected_performance' => $payload['expected_performance'],
- 'actual_performance' => $actualPerformance,
+ 'actual_performance' => $totalSales,
]);
// 月份
@@ -172,7 +172,7 @@ class TaskService extends BaseService
'expected_performance' => $payload['expected_performance'],
]);
- if ($taskable->isCompleted()) {
+ if ($taskable->isCompleted() && ! $task->isSuccess()) {
$task->update([
'task_status' => TaskStatus::Success,
'completed_at' => now(),
diff --git a/app/Enums/TaskStatus.php b/app/Enums/TaskStatus.php
index 79b8399..ad682a8 100644
--- a/app/Enums/TaskStatus.php
+++ b/app/Enums/TaskStatus.php
@@ -22,7 +22,7 @@ enum TaskStatus: int
self::Processing->value => '进行中',
self::Success->value => '已完成',
self::Failed->value => '未完成',
- self::Revoked->value => '已撤销',
+ // self::Revoked->value => '已撤销',
];
}
@@ -33,7 +33,7 @@ enum TaskStatus: int
self::Processing->value => ''.self::Processing->text().'',
self::Success->value => ''.self::Success->text().'',
self::Failed->value => ''.self::Failed->text().'',
- self::Revoked->value => ''.self::Revoked->text().'',
+ // self::Revoked->value => ''.self::Revoked->text().'',
];
}
}
diff --git a/app/Http/Controllers/Api/LedgerController.php b/app/Http/Controllers/Api/LedgerController.php
index 2ffa15c..81373af 100644
--- a/app/Http/Controllers/Api/LedgerController.php
+++ b/app/Http/Controllers/Api/LedgerController.php
@@ -9,7 +9,9 @@ use App\Models\Keyword;
use App\Models\Ledger;
use App\Models\LedgerItem;
use App\Models\TaskLedger;
+use App\Models\TaskPerformance;
use Illuminate\Http\Request;
+use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Throwable;
@@ -85,9 +87,11 @@ class LedgerController extends Controller
}
}
+ $date = Carbon::createFromFormat('Y-m-d', $validated['date']);
+
/** @var \App\Models\Ledger|null */
$ledger = Ledger::where('store_id', $user->store_id)
- ->where('date', $validated['date'])
+ ->where('date', $date->format('Y-m-d'))
->first();
if ($ledger && ! $ledger->allowReReport()) {
@@ -134,7 +138,8 @@ class LedgerController extends Controller
])->all()
);
- // 自动完成总账录入任务
+ // 总账录入任务
+ /** @var \App\Models\TaskLedger */
$taskLedger = TaskLedger::where('store_id', $user->store_id)
->where('date', $ledger->date)
->first();
@@ -145,6 +150,28 @@ class LedgerController extends Controller
]);
}
+ // 业绩指标任务
+ /** @var \App\Models\TaskPerformance */
+ $taskPerformance = TaskPerformance::where('store_id', $ledger->store_id)
+ ->where('month', $date->format('Y-m'))
+ ->first();
+ if ($taskPerformance) {
+ $totalSales = Ledger::where('store_id', $ledger->store_id)
+ ->whereBetween('date', [$date->copy()->startOfMonth()->format('Y-m-d'), $date->copy()->endOfMonth()->format('Y-m-d')])
+ ->sum('sales');
+
+ $taskPerformance->update([
+ 'actual_performance' => $totalSales,
+ ]);
+
+ if ($taskPerformance->isCompleted() && ! $taskPerformance->task->isSuccess()) {
+ $taskPerformance->task->update([
+ 'task_status' => TaskStatus::Success,
+ 'completed_at' => now(),
+ ]);
+ }
+ }
+
DB::commit();
} catch (Throwable $e) {
DB::rollBack();
diff --git a/app/Models/Task.php b/app/Models/Task.php
index 759a238..957e81c 100644
--- a/app/Models/Task.php
+++ b/app/Models/Task.php
@@ -46,4 +46,9 @@ class Task extends Model
{
return $this->morphTo();
}
+
+ public function isSuccess(): bool
+ {
+ return $this->task_status === TaskStatus::Success;
+ }
}