|
@@ -96,82 +96,6 @@ class GluingSalary extends Api
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
* @throws \think\exception\DbException
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
*/
|
|
|
-// public function getList()
|
|
|
|
|
-// {
|
|
|
|
|
-//
|
|
|
|
|
-// if(!$this->request->isGet()){
|
|
|
|
|
-// $this->error('请求方式错误');
|
|
|
|
|
-// }
|
|
|
|
|
-// $req = $this->request->param();
|
|
|
|
|
-// if (isset($req['search'])){
|
|
|
|
|
-// $where = [
|
|
|
|
|
-// 'sczl_rq' => ['like',$req['date'].'%'],
|
|
|
|
|
-// 'bh|name' => ['like',$req['search'].'%'],
|
|
|
|
|
-// ];
|
|
|
|
|
-// $res = db('糊盒工资汇总')
|
|
|
|
|
-// ->where($where)
|
|
|
|
|
-// ->group('bh, sczl_rq')
|
|
|
|
|
-// ->field('bh as 员工编号, DATE_FORMAT(sczl_rq, "%Y.%m.%d") as 日期, name as 姓名, sum(salary) as 计件工资')
|
|
|
|
|
-// ->select();
|
|
|
|
|
-// }else{
|
|
|
|
|
-// $where = [
|
|
|
|
|
-// 'a.sczl_rq' => ['like',$req['date'].'%'],
|
|
|
|
|
-// 'b.所在部门' => ['like', $req['department'] . '%']
|
|
|
|
|
-// ];
|
|
|
|
|
-// $res = db('糊盒工资汇总')
|
|
|
|
|
-// ->alias('a')
|
|
|
|
|
-// ->join('人事_基本资料 b', 'b.员工编号 = a.bh')
|
|
|
|
|
-// ->where($where)
|
|
|
|
|
-// ->group('a.bh, a.sczl_rq')
|
|
|
|
|
-// ->field('a.bh as 员工编号, DATE_FORMAT(a.sczl_rq, "%Y.%m.%d") as 日期, a.name as 姓名, sum(a.salary) as 计件工资')
|
|
|
|
|
-// ->select();
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// $processedData = [];
|
|
|
|
|
-//
|
|
|
|
|
-// foreach ($res as $item) {
|
|
|
|
|
-// // 用「员工编号」作为唯一分组键(编号唯一,比编号+姓名更简洁)
|
|
|
|
|
-// $empNo = $item['员工编号'];
|
|
|
|
|
-//
|
|
|
|
|
-// // 转换工资为浮点型(避免字符串拼接导致计算错误)
|
|
|
|
|
-// $salary = (float)$item['计件工资'];
|
|
|
|
|
-//
|
|
|
|
|
-// if (!isset($processedData[$empNo])) {
|
|
|
|
|
-// // 初始化该员工的分组数据
|
|
|
|
|
-// $processedData[$empNo] = [
|
|
|
|
|
-// '员工编号' => $empNo,
|
|
|
|
|
-// '姓名' => $item['姓名'],
|
|
|
|
|
-// '月工资总和' => 0.00, // 初始化为浮点型,保证精度
|
|
|
|
|
-// '每日明细' => [] // 存储按时间排序的每日工资
|
|
|
|
|
-// ];
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // 累加月工资总和
|
|
|
|
|
-// $processedData[$empNo]['月工资总和'] += $salary;
|
|
|
|
|
-// $processedData[$empNo]['月工资总和'] = number_format($processedData[$empNo]['月工资总和'],2);
|
|
|
|
|
-// // 将当前日期的工资存入明细(保留原始字段)
|
|
|
|
|
-// $processedData[$empNo]['每日明细'][] = [
|
|
|
|
|
-// '日期' => $item['日期'],
|
|
|
|
|
-// '计件工资' => $item['计件工资'] // 保留原始字符串格式,避免精度丢失
|
|
|
|
|
-// ];
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // 对每个员工的「每日明细」按日期升序排序
|
|
|
|
|
-// foreach ($processedData as &$empData) {
|
|
|
|
|
-// usort($empData['每日明细'], function($a, $b) {
|
|
|
|
|
-// // 将日期字符串转换为时间戳进行比较
|
|
|
|
|
-// $timeA = strtotime(str_replace('.', '-', $a['日期']));
|
|
|
|
|
-// $timeB = strtotime(str_replace('.', '-', $b['日期']));
|
|
|
|
|
-// return $timeA - $timeB; // 升序排序(从小到大)
|
|
|
|
|
-// });
|
|
|
|
|
-// }
|
|
|
|
|
-// unset($empData); // 释放引用,避免后续误操作
|
|
|
|
|
-//
|
|
|
|
|
-// // 转换为索引数组(可选,便于前端遍历)
|
|
|
|
|
-// $finalData = array_values($processedData);
|
|
|
|
|
-//
|
|
|
|
|
-// $this->success('成功',$finalData);
|
|
|
|
|
-// }
|
|
|
|
|
public function getList()
|
|
public function getList()
|
|
|
{
|
|
{
|
|
|
// 1. 请求验证
|
|
// 1. 请求验证
|