From 5c7d4212259344c56e67f264fc851da054ac3075 Mon Sep 17 00:00:00 2001 From: yin5th <541304803@qq.com> Date: Sat, 14 Jan 2023 14:24:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=B7=A5=E8=B5=84):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B7=B2=E5=8F=91=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/v1/Manager.php | 25 +++++++++++++++------ app/controller/api/v1/Worker.php | 37 ++++++++++++------------------- app/controller/manager/Pay.php | 1 + 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/app/controller/api/v1/Manager.php b/app/controller/api/v1/Manager.php index ad23307..25baab4 100644 --- a/app/controller/api/v1/Manager.php +++ b/app/controller/api/v1/Manager.php @@ -573,6 +573,8 @@ class Manager extends Base $status = input('status/d', -1); $date = input('date/s', ''); + $status = $status ?: -1; + $accountId = $this->request->user['user_id'] ?? 0; $where = []; @@ -605,16 +607,14 @@ class Manager extends Base ->where($where); // 汇总信息 $info = $query->fieldRaw('sum(pml.amount) as amount, sum(pml.base_amount) as base_amount, - sum(pml.overtime_amount) as overtime_amount')->find()->toArray(); - // 已发放工资 - $doneAmount = $query->where('pml.status', 1)->fieldRaw('sum(pml.amount) as amount')->find()->toArray(); + sum(pml.overtime_amount) as overtime_amount,sum(pml.paid_amount) as paid_amount')->find()->toArray(); $res['info'] = [ 'amount' => $info['amount'] ?? 0, 'base_amount' => $info['base_amount'] ?? 0, 'overtime_amount' => $info['overtime_amount'] ?? 0, - 'done_amount' => $doneAmount['amount'] ?? 0, - 'not_amount' => Math::sub($info['amount'] ?? 0, $doneAmount['amount'] ?? 0), + 'done_amount' => $info['paid_amount'] ?? 0, + 'not_amount' => Math::sub($info['amount'] ?? 0, $info['paid_amount'] ?? 0), ]; if ($status >= 0) { @@ -629,9 +629,20 @@ class Manager extends Base $res['total'] = $total; if ($total > 0) { - $res['list'] = $query->field('pml.id,pml.status,pml.amount,pml.base_amount,pml.overtime_amount,a.real_name as name')->page($page, $size)->order('pml.id', 'desc')->select(); + $res['list'] = $query->field('pml.id,pml.status,pml.amount,pml.base_amount,pml.overtime_amount,pml.paid_amount,a.real_name as name')->page($page, $size)->order('pml.id', 'desc')->select(); $res['list']->each(function ($item) { - $item->status_text = $item->status == 1 ? '已发放' : '待发放'; + $item->status = 0; + $item->status_text = '待发放'; + + if ($item['amount'] == $item['paid_amount'] && $item['amount'] > 0) { + $item->status_text = '完全发放'; + $item->status = 1; + } + + if ($item['amount'] > $item['paid_amount'] && $item['paid_amount'] > 0) { + $item->status_text = '部分发放'; + $item->status = 2; + } }); } diff --git a/app/controller/api/v1/Worker.php b/app/controller/api/v1/Worker.php index c03696a..0efcc3f 100644 --- a/app/controller/api/v1/Worker.php +++ b/app/controller/api/v1/Worker.php @@ -175,8 +175,8 @@ class Worker extends Base $arr = explode('-', $params['value']); $customer->save([ 'province' => $arr[0] ?? '', - 'city' => $arr[1] ?? '', - 'area' => $arr[2] ?? '', + 'city' => $arr[1] ?? '', + 'area' => $arr[2] ?? '', ]); } else { $customer->save([ @@ -564,7 +564,7 @@ class Worker extends Base ->leftJoin('account a', 'a.id = pml.account_id') ->where($where) ->group('pml.time') - ->fieldRaw('pml.time,pml.year,pml.month,sum(pml.amount) as amount,sum(pml.base_amount) as base_amount,sum(pml.overtime_amount) as overtime_amount'); + ->fieldRaw('pml.time,pml.year,pml.month,sum(pml.amount) as amount,sum(pml.base_amount) as base_amount,sum(pml.overtime_amount) as overtime_amount,sum(pml.paid_amount) as paid_amount'); $total = $query->count(); @@ -576,30 +576,21 @@ class Worker extends Base ]; if ($total > 0) { - // 获取按月已发工资 - $paidMonth = \app\model\PayMonthLog::alias('pml') - ->leftJoin('account a', 'a.id = pml.account_id') - ->where($where) - ->where('pml.status', 1) - ->group('pml.time') - ->page($page, $size) - ->order('time', 'desc') - ->fieldRaw('sum(pml.amount) as amount,pml.time') - ->select()->toArray(); - $monthPay = []; - foreach ($paidMonth as $p) { - $monthPay[$p['time']] = $p['amount']; - } - $res['list'] = $query->page($page, $size)->order('time', 'desc')->select(); - $res['list']->each(function ($item) use ($monthPay) { - $item->date = $item['year'].'年'.$item['month'].'月'; - $item->done = $monthPay[$item->time] ?? 0; + $res['list']->each(function ($item) { + $item->date = $item['year'].'年'.$item['month'].'月'; + // $item->done = $monthPay[$item->time] ?? 0; $item->status = 0; $item->status_text = '待发放'; - if ($item->amount <= $item->done) { + + if ($item['amount'] == $item['paid_amount'] && $item['amount'] > 0) { + $item->status_text = '完全发放'; $item->status = 1; - $item->status_text = '已发放'; + } + + if ($item['amount'] > $item['paid_amount'] && $item['paid_amount'] > 0) { + $item->status_text = '部分发放'; + $item->status = 2; } unset($item->year); unset($item->month); diff --git a/app/controller/manager/Pay.php b/app/controller/manager/Pay.php index 6035534..af71feb 100644 --- a/app/controller/manager/Pay.php +++ b/app/controller/manager/Pay.php @@ -281,6 +281,7 @@ class Pay extends Base ->page($page, $size)->order('pml.time', 'desc')->order('pml.id', 'desc')->select(); $res['list']->each(function ($item) { $item->status_text = '待发放'; + if ($item['amount'] == $item['paid_amount'] && $item['amount'] > 0) { $item->status_text = '完全发放'; }