|
|
@@ -168,7 +168,8 @@ class GluingSalary extends Api
|
|
|
'bh as 员工编号',
|
|
|
'DATE_FORMAT(sczl_rq, "%Y.%m.%d") as 日期',
|
|
|
'name as 姓名',
|
|
|
- 'sum(salary) as 计件工资'
|
|
|
+ 'sum(salary) as 计件工资',
|
|
|
+ 'sum(time_salary) as 计时工资',
|
|
|
])
|
|
|
->select();
|
|
|
}
|
|
|
@@ -196,7 +197,8 @@ class GluingSalary extends Api
|
|
|
'a.bh as 员工编号',
|
|
|
'DATE_FORMAT(a.sczl_rq, "%Y.%m.%d") as 日期',
|
|
|
'a.name as 姓名',
|
|
|
- 'sum(a.salary) as 计件工资'
|
|
|
+ 'sum(a.salary) as 计件工资',
|
|
|
+ 'sum(a.time_salary) as 计时工资',
|
|
|
])
|
|
|
->select();
|
|
|
}
|
|
|
@@ -210,7 +212,6 @@ class GluingSalary extends Api
|
|
|
|
|
|
foreach ($results as $item) {
|
|
|
$empNo = $item['员工编号'];
|
|
|
- $salary = (float)$item['计件工资'];
|
|
|
|
|
|
if (!isset($processedData[$empNo])) {
|
|
|
$processedData[$empNo] = $this->initEmployeeData($item);
|
|
|
@@ -218,8 +219,7 @@ class GluingSalary extends Api
|
|
|
|
|
|
$processedData[$empNo] = $this->updateEmployeeData(
|
|
|
$processedData[$empNo],
|
|
|
- $item,
|
|
|
- $salary
|
|
|
+ $item
|
|
|
);
|
|
|
}
|
|
|
|
|
|
@@ -238,6 +238,8 @@ class GluingSalary extends Api
|
|
|
'员工编号' => $item['员工编号'],
|
|
|
'姓名' => $item['姓名'],
|
|
|
'月工资总和' => 0.00,
|
|
|
+ '月计件工资' => 0.00,
|
|
|
+ '月计时工资' => 0.00,
|
|
|
'每日明细' => []
|
|
|
];
|
|
|
}
|
|
|
@@ -245,15 +247,21 @@ class GluingSalary extends Api
|
|
|
/**
|
|
|
* 更新员工数据
|
|
|
*/
|
|
|
- private function updateEmployeeData(array $empData, array $item, float $salary): array
|
|
|
+ private function updateEmployeeData(array $empData, array $item): array
|
|
|
{
|
|
|
- // 累加工资总和
|
|
|
- $empData['月工资总和'] += $salary;
|
|
|
+ $pieceSalary = (float)($item['计件工资'] ?? 0);
|
|
|
+ $timeSalary = (float)($item['计时工资'] ?? 0);
|
|
|
+ $dailyTotal = $pieceSalary + $timeSalary;
|
|
|
+
|
|
|
+ $empData['月工资总和'] += $dailyTotal;
|
|
|
+ $empData['月计件工资'] += $pieceSalary;
|
|
|
+ $empData['月计时工资'] += $timeSalary;
|
|
|
|
|
|
- // 添加每日明细
|
|
|
$empData['每日明细'][] = [
|
|
|
'日期' => $item['日期'],
|
|
|
- '计件工资' => $item['计件工资']
|
|
|
+ '计件工资' => number_format($pieceSalary, 2, '.', ''),
|
|
|
+ '计时工资' => number_format($timeSalary, 2, '.', ''),
|
|
|
+ '日工资总和' => number_format($dailyTotal, 2, '.', ''),
|
|
|
];
|
|
|
|
|
|
return $empData;
|
|
|
@@ -265,11 +273,11 @@ class GluingSalary extends Api
|
|
|
private function formatFinalData(array $processedData): array
|
|
|
{
|
|
|
foreach ($processedData as &$empData) {
|
|
|
- // 1. 对每日明细排序
|
|
|
$empData['每日明细'] = $this->sortDailyDetails($empData['每日明细']);
|
|
|
|
|
|
- // 2. 强制格式化月工资总和为两位小数
|
|
|
$empData['月工资总和'] = number_format($empData['月工资总和'], 2, '.', '');
|
|
|
+ $empData['月计件工资'] = number_format($empData['月计件工资'], 2, '.', '');
|
|
|
+ $empData['月计时工资'] = number_format($empData['月计时工资'], 2, '.', '');
|
|
|
}
|
|
|
unset($empData);
|
|
|
|
|
|
@@ -310,17 +318,17 @@ class GluingSalary extends Api
|
|
|
}
|
|
|
$list = \db('糊盒工资汇总')
|
|
|
->field('sczl_gdbh,sczl_gxmc,DATE_FORMAT(sczl_rq, "%Y.%m.%d") as 日期,sczl_jtbh,cpdh,cpmc,保养工时,装版工时,
|
|
|
- 异常工时,设备运行工时,rate as 分配比例,sczl_cl,price')
|
|
|
+ 异常工时,设备运行工时,rate as 分配比例,sczl_cl,price as 计件单价,salary as 计件工资,
|
|
|
+ time_salary as 计时工资,time_duration as 计时时长,time_price as 计时单价,remark as 计时备注')
|
|
|
->where([
|
|
|
- 'sczl_rq' => ['like',$req['date'].'%'],
|
|
|
+ 'sczl_rq' => ['like', $req['date'] . '%'],
|
|
|
'bh' => $req['code']
|
|
|
])
|
|
|
->order('sczl_rq')
|
|
|
->select();
|
|
|
- if(empty($list)){
|
|
|
+ if (empty($list)) {
|
|
|
$this->error('失败');
|
|
|
- }else{
|
|
|
- $this->success('成功',$list);
|
|
|
}
|
|
|
+ $this->success('成功', $list);
|
|
|
}
|
|
|
}
|