From 665d273459077b33d7ed3d773209d5c4ade1915f Mon Sep 17 00:00:00 2001 From: zhuyu Date: Thu, 5 Jun 2025 15:46:42 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E6=B7=BB=E5=8A=A0=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/salary/CustomDetail.php | 41 +++++++++++-------- .../admin/controller/salary/Detail.php | 32 --------------- 2 files changed, 23 insertions(+), 50 deletions(-) diff --git a/application/admin/controller/salary/CustomDetail.php b/application/admin/controller/salary/CustomDetail.php index 2f404a5..c72856a 100644 --- a/application/admin/controller/salary/CustomDetail.php +++ b/application/admin/controller/salary/CustomDetail.php @@ -79,9 +79,18 @@ class CustomDetail extends Backend $res = []; if (!$this->auth->check('salary/custom_detail/edit')) { - $admins = Db::name('admin')->where('id', $this->auth->id)->field('id,nickname')->select(); + $admins = Db::name('admin a') + ->join('fa_salary_status ss', 'a.id = fa_salary_status.target_admin_id') + ->where('create_status', 1) + ->where('salary_month', '=', $month) + ->where('admin.id', $this->auth->id) + ->field('a.id,a.nickname,ss.settle_status')->select(); } else{ - $admins = Db::name('admin')->field('id,nickname')->select(); + $admins = Db::name('admin a') + ->join('fa_salary_status ss', 'a.id = fa_salary_status.target_admin_id') + ->where('create_status', 1) + ->where('salary_month', '=', $month) + ->field('a.id,a.nickname,ss.settle_status')->select(); } $admins = array_column($admins, NULL, 'id'); @@ -103,18 +112,6 @@ class CustomDetail extends Backend $queryRes[$targetAdminId][$itemId] = $queryDatum['item_value']; } - $querySettleData = Db::name('salary_settle') - ->whereIn('target_admin_id', $adminIds) - ->where('salary_month', '=', $month) - ->field('id,target_admin_id,settle_status') - ->select(); - $querySettleRes = []; - foreach ($querySettleData as $querySettleDatum) { - $targetAdminId = $querySettleDatum['target_admin_id']; - $querySettleRes[$targetAdminId] = $querySettleDatum['settle_status']; - } - - foreach ($adminIds as $adminId) { $attrValue = []; $total = 0; @@ -143,7 +140,7 @@ class CustomDetail extends Backend $jxTotal = ($attrValue['ZWJX'] - $attrValue['YYCB']) * $attrValue['TD'] / 100; $res[$adminId]['jx_total'] = $this->clean_number($jxTotal); $res[$adminId]['total'] = $this->clean_number($total + $jxTotal); - $res[$adminId]['settle_status'] = $querySettleRes[$adminId] ?? 0; + $res[$adminId]['settle_status'] = $admins[$adminId]['settle_status'] ?? 0; } $res = array_values($res); @@ -229,6 +226,14 @@ class CustomDetail extends Backend Db::name('salary_detail') ->insertAll($salaryDetails); + + Db::name('salary_status')->insert([ + 'target_admin_id' => $targetAdminId, + 'salary_month' => $month, + 'settle_status' => 0, + 'create_status' => 1, + ]); + $this->success(); } @@ -320,12 +325,12 @@ class CustomDetail extends Backend $month = $this->request->get('month'); - $settle = Db::name('salary_settle') + $settle = Db::name('salary_status') ->where('salary_month', $month) ->where('target_admin_id', $targetAdminId) ->field('target_admin_id,salary_month')->find(); if (!empty($settle)) { - Db::name('salary_settle') + Db::name('salary_status') ->where('salary_month', $month) ->where('target_admin_id', $targetAdminId) ->save([ @@ -334,7 +339,7 @@ class CustomDetail extends Backend $this->success(); } - Db::name('salary_settle')->insert([ + Db::name('salary_status')->insert([ 'target_admin_id' => $targetAdminId, 'salary_month' => $month, 'settle_status' => 1, diff --git a/application/admin/controller/salary/Detail.php b/application/admin/controller/salary/Detail.php index 745ce72..2e8d715 100644 --- a/application/admin/controller/salary/Detail.php +++ b/application/admin/controller/salary/Detail.php @@ -52,38 +52,6 @@ class Detail extends Backend } - public function settle() - { - if (false === $this->request->isPost()) { - $this->error(__("Invalid parameters")); - } - - $targetAdminId = $this->request->get('target_admin_id'); - $month = $this->request->get('month'); - - - $settle = Db::name('salary_settle') - ->where('salary_month', $month) - ->where('target_admin_id', $targetAdminId) - ->field('target_admin_id,salary_month')->find(); - if (!empty($settle)) { - Db::name('salary_settle') - ->where('salary_month', $month) - ->where('target_admin_id', $targetAdminId) - ->save([ - 'settle_status' => 1, - ]); - $this->success(); - } - - Db::name('salary_settle')->insert([ - 'target_admin_id' => $targetAdminId, - 'salary_month' => $month, - 'settle_status' => 1, - ]); - - $this->success(); - } }