|
@@ -55,22 +55,22 @@ class StaffSalary extends Api
|
|
|
if (!$startDateInRange || !$endDateInRange) {
|
|
if (!$startDateInRange || !$endDateInRange) {
|
|
|
$this->error('日期参数错误');
|
|
$this->error('日期参数错误');
|
|
|
}
|
|
}
|
|
|
- // $options = [
|
|
|
|
|
- // 'host' => '127.0.0.1',
|
|
|
|
|
- // 'port' => 6379,
|
|
|
|
|
- // 'password' => '123456',
|
|
|
|
|
- // 'select' => 15,
|
|
|
|
|
- // 'timeout' => 0,
|
|
|
|
|
- // 'expire' => 0,
|
|
|
|
|
- // 'persistent' => false,
|
|
|
|
|
- // 'prefix' => '',
|
|
|
|
|
- // ];
|
|
|
|
|
- // // $redis = new Redis($options);
|
|
|
|
|
- // $taskIdentifier = md5(json_encode('date'));
|
|
|
|
|
- // $queueKey = $redis->get($taskIdentifier);
|
|
|
|
|
- // if ($queueKey){
|
|
|
|
|
- // $this->success('数据正在处理中,请等待...');
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ $options = [
|
|
|
|
|
+ 'host' => '127.0.0.1',
|
|
|
|
|
+ 'port' => 6379,
|
|
|
|
|
+ 'password' => '123456',
|
|
|
|
|
+ 'select' => 15,
|
|
|
|
|
+ 'timeout' => 0,
|
|
|
|
|
+ 'expire' => 0,
|
|
|
|
|
+ 'persistent' => false,
|
|
|
|
|
+ 'prefix' => '',
|
|
|
|
|
+ ];
|
|
|
|
|
+ // $redis = new Redis($options);
|
|
|
|
|
+ $taskIdentifier = md5(json_encode('date'));
|
|
|
|
|
+ $queueKey = $redis->get($taskIdentifier);
|
|
|
|
|
+ if ($queueKey){
|
|
|
|
|
+ $this->success('数据正在处理中,请等待...');
|
|
|
|
|
+ }
|
|
|
$vacationOneArr = [];
|
|
$vacationOneArr = [];
|
|
|
if (!empty($params['vacation_one_start']) && !empty($params['vacation_one_end'])){
|
|
if (!empty($params['vacation_one_start']) && !empty($params['vacation_one_end'])){
|
|
|
$vacationOneStart = strtotime($params['vacation_one_start']);
|
|
$vacationOneStart = strtotime($params['vacation_one_start']);
|
|
@@ -97,7 +97,7 @@ class StaffSalary extends Api
|
|
|
$this->error('法定天数未设置');
|
|
$this->error('法定天数未设置');
|
|
|
}
|
|
}
|
|
|
//将起止日期内数据删除
|
|
//将起止日期内数据删除
|
|
|
- // $delRes = \db('绩效工资汇总')->where('sczl_rq','between',[$startDate,$endDate])->delete();
|
|
|
|
|
|
|
+ $delRes = \db('绩效工资汇总')->where('sczl_rq','between',[$startDate,$endDate])->delete();
|
|
|
//设备产量计酬报工数据查询
|
|
//设备产量计酬报工数据查询
|
|
|
$where = [];
|
|
$where = [];
|
|
|
$where['a.sczl_rq'] = ['between',[$startDate,$endDate]];
|
|
$where['a.sczl_rq'] = ['between',[$startDate,$endDate]];
|
|
@@ -190,19 +190,6 @@ class StaffSalary extends Api
|
|
|
$byThePieceYield =round($value['班组车头产量'] * floatval($gx_rate) * $num);
|
|
$byThePieceYield =round($value['班组车头产量'] * floatval($gx_rate) * $num);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
-// //计件产量
|
|
|
|
|
-// if (substr($value['sczl_jtbh'],0,2) == 'JP'){
|
|
|
|
|
-// $value['工序难度系数'] = $value['sczl_废品率系数'];
|
|
|
|
|
-// $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
|
|
|
|
|
-// $byThePieceYield = round($value['班组车头产量'] * $value['sczl_废品率系数']);
|
|
|
|
|
-// }else{
|
|
|
|
|
-// if ($value['工序难度系数'] <= 0 || empty($value['工序难度系数'])){
|
|
|
|
|
-// $value['工序难度系数'] = '1.0000';
|
|
|
|
|
-// $byThePieceYield = $value['班组车头产量'];
|
|
|
|
|
-// }else{
|
|
|
|
|
-// $byThePieceYield = round($value['班组车头产量'] * $value['工序难度系数']);
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
//补产产量/班组换算产量
|
|
//补产产量/班组换算产量
|
|
|
$afterProductionYield = ($value['装版工时'] + $value['保养工时'] + $value['打样工时']) * $value['补产标准'];
|
|
$afterProductionYield = ($value['装版工时'] + $value['保养工时'] + $value['打样工时']) * $value['补产标准'];
|
|
|
//核算产量
|
|
//核算产量
|
|
@@ -249,7 +236,7 @@ class StaffSalary extends Api
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- halt($data);
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 拆片工序数据
|
|
* 拆片工序数据
|
|
|
*/
|
|
*/
|
|
@@ -290,7 +277,6 @@ class StaffSalary extends Api
|
|
|
$item['sczl_gdbh'] = $value['sczl_gdbh'];
|
|
$item['sczl_gdbh'] = $value['sczl_gdbh'];
|
|
|
$item['sczl_yjno'] = $value['sczl_yjno'];
|
|
$item['sczl_yjno'] = $value['sczl_yjno'];
|
|
|
$item['sczl_gxh'] = $value['sczl_gxh'];
|
|
$item['sczl_gxh'] = $value['sczl_gxh'];
|
|
|
-// $item['sczl_type'] = substr(trim($value['sczl_type']),0,30);
|
|
|
|
|
$item['sczl_type'] = $value['sczl_type'];
|
|
$item['sczl_type'] = $value['sczl_type'];
|
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
|
$item['sczl_jtbh'] = $value['sczl_jtbh'];
|
|
$item['sczl_jtbh'] = $value['sczl_jtbh'];
|
|
@@ -315,7 +301,7 @@ class StaffSalary extends Api
|
|
|
$item['工时占比'] = floatval($manHourRate);
|
|
$item['工时占比'] = floatval($manHourRate);
|
|
|
array_push($data,$item);
|
|
array_push($data,$item);
|
|
|
}
|
|
}
|
|
|
-// halt($data);
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 手工检验工序数据
|
|
* 手工检验工序数据
|
|
|
*/
|
|
*/
|
|
@@ -364,7 +350,6 @@ class StaffSalary extends Api
|
|
|
$item['sczl_gdbh'] = $value['sczl_gdbh'];
|
|
$item['sczl_gdbh'] = $value['sczl_gdbh'];
|
|
|
$item['sczl_yjno'] = $value['sczl_yjno'];
|
|
$item['sczl_yjno'] = $value['sczl_yjno'];
|
|
|
$item['sczl_gxh'] = $value['sczl_gxh'];
|
|
$item['sczl_gxh'] = $value['sczl_gxh'];
|
|
|
-// $item['sczl_type'] = substr($value['sczl_type'],0,30);
|
|
|
|
|
$item['sczl_type'] = $value['sczl_type'];
|
|
$item['sczl_type'] = $value['sczl_type'];
|
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
|
$item['sczl_jtbh'] = '';
|
|
$item['sczl_jtbh'] = '';
|
|
@@ -391,7 +376,7 @@ class StaffSalary extends Api
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-// halt($data);
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 包装计件工序数据
|
|
* 包装计件工序数据
|
|
|
*/
|
|
*/
|
|
@@ -457,7 +442,6 @@ class StaffSalary extends Api
|
|
|
$item['sczl_gdbh'] = $value[$gdbhKey];
|
|
$item['sczl_gdbh'] = $value[$gdbhKey];
|
|
|
$item['sczl_yjno'] = ltrim(substr($value[$yjgxKey],0,2), '0');
|
|
$item['sczl_yjno'] = ltrim(substr($value[$yjgxKey],0,2), '0');
|
|
|
$item['sczl_gxh'] = abs((int)substr($value[$yjgxKey],-2));
|
|
$item['sczl_gxh'] = abs((int)substr($value[$yjgxKey],-2));
|
|
|
-// $item['sczl_type'] = substr($value[$gxmcKey],0,30);
|
|
|
|
|
$item['sczl_type'] = $value[$gxmcKey];
|
|
$item['sczl_type'] = $value[$gxmcKey];
|
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
$item['sczl_rq'] = $value['sczl_rq'];
|
|
|
$item['sczl_jtbh'] = $value[$jtbhKey];
|
|
$item['sczl_jtbh'] = $value[$jtbhKey];
|
|
@@ -519,7 +503,6 @@ class StaffSalary extends Api
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-//halt($data);
|
|
|
|
|
//用于存储bh对应的工时占比总和
|
|
//用于存储bh对应的工时占比总和
|
|
|
$bhTotals = [];
|
|
$bhTotals = [];
|
|
|
// 遍历原始数据
|
|
// 遍历原始数据
|
|
@@ -559,7 +542,6 @@ class StaffSalary extends Api
|
|
|
$date = substr($item['sczl_rq'],0,10);
|
|
$date = substr($item['sczl_rq'],0,10);
|
|
|
if (in_array($date,$vacationOneArr) || in_array($date,$vacationTwoArr)){
|
|
if (in_array($date,$vacationOneArr) || in_array($date,$vacationTwoArr)){
|
|
|
//计件工资
|
|
//计件工资
|
|
|
-// $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate']*3;
|
|
|
|
|
$pieceWorkWage = 0;
|
|
$pieceWorkWage = 0;
|
|
|
//加班工资
|
|
//加班工资
|
|
|
$overTimePay = $item['核算产量'] / 1000 *$item['千件工价'] * $item['Rate'] *3;
|
|
$overTimePay = $item['核算产量'] / 1000 *$item['千件工价'] * $item['Rate'] *3;
|
|
@@ -568,15 +550,6 @@ class StaffSalary extends Api
|
|
|
return $value !== $item['sczl_rq'];
|
|
return $value !== $item['sczl_rq'];
|
|
|
});
|
|
});
|
|
|
}else{
|
|
}else{
|
|
|
-// //如果出勤天数小于法定天数,按正常计算
|
|
|
|
|
-// if (count($days[$day_bh]) <= $params['days'] && strpos($item['sczl_type'],'成品防护') === false){
|
|
|
|
|
-// $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
|
|
|
|
|
-// }else{ //如果出勤天数大于法定天数,达标定额为 0,计件工资为0,超出的部分按加班工资算
|
|
|
|
|
-// $data[$key]['达标定额'] = '0.00';
|
|
|
|
|
-// $pieceWorkWage = '0.00';
|
|
|
|
|
-// }
|
|
|
|
|
-// $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
|
|
|
|
|
-
|
|
|
|
|
// 基础计件工资计算公式
|
|
// 基础计件工资计算公式
|
|
|
$baseWage = ($data[$key]['达标定额'] / 1000) * $item['千件工价'] * $item['Rate'];
|
|
$baseWage = ($data[$key]['达标定额'] / 1000) * $item['千件工价'] * $item['Rate'];
|
|
|
|
|
|
|
@@ -599,9 +572,6 @@ class StaffSalary extends Api
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// 统一计算加班工资(所有情况都会计算)
|
|
// 统一计算加班工资(所有情况都会计算)
|
|
|
-// $actualOutput = (float)$item['核算产量'];
|
|
|
|
|
-// $overtimeOutput = max($actualOutput - (float)$data[$key]['达标定额'], 0);
|
|
|
|
|
-// $overTimePay = ($overtimeOutput / 1000) * $item['千件工价'] * $item['Rate'] * 1.5;
|
|
|
|
|
$overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
|
|
$overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
|
|
|
}
|
|
}
|
|
|
$data[$key]['个人计件工资'] = number_format($pieceWorkWage,2,'.', '');
|
|
$data[$key]['个人计件工资'] = number_format($pieceWorkWage,2,'.', '');
|