|
|
@@ -103,72 +103,68 @@ class EmployeeDailySalary extends Api
|
|
|
}
|
|
|
$req = $this->request->param();
|
|
|
$res=db('绩效工资汇总')->cache(true,86400)
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
|
|
|
- ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
|
|
|
- sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
|
|
|
+ ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
|
|
|
+ // ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
|
|
|
+ // sum(个人加班工资) as 加班工资,sum(异常停机工时) as 计时时数,sum(异常停机工时)*9.5 as 计时工资,
|
|
|
+ // (sum(个人计件工资) + sum(个人加班工资) + sum(异常停机工时)*9.5) as 日工资合计')
|
|
|
->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
|
|
|
->where('sys_ny',$req['date'])
|
|
|
->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- if(!$res){
|
|
|
- $this->error('失败');
|
|
|
- }
|
|
|
+ ->column('CONCAT(bh, "-", DATE_FORMAT(sczl_rq,"%Y.%m.%d")) AS rq_bh,bh,rtrim(xm) as 员工姓名,DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,sum(个人计件工资) as 计件工资,
|
|
|
+ sum(个人加班工资) as 加班工资,sum(异常停机工时) as 计时时数,sum(异常停机工时)*9.5 as 计时工资,
|
|
|
+ (sum(个人计件工资) + sum(个人加班工资) + sum(异常停机工时)*9.5) as 日工资合计');
|
|
|
+
|
|
|
$year=substr($req['date'],0,4);
|
|
|
$month=substr($req['date'],-2);
|
|
|
- if($month==12){
|
|
|
- $start_time=$year.'-12-01 00:00:00';
|
|
|
- $end_time=($year+1).'-01-01 00:00:00';
|
|
|
- }else{
|
|
|
- $start_time=$year.'-'.$month.'-01 00:00:00';
|
|
|
- $end_time=$year.'-'.($month+1).'-01 00:00:00';
|
|
|
+ $start_time = $year . '-' . $month . '-01 00:00:00';
|
|
|
+ $end_time = date('Y-m-t', strtotime("$year-$month-01")) . ' 23:59:59';
|
|
|
+
|
|
|
+ $arr = [];
|
|
|
+ $columns = ['wgjs_bh1', 'wgjs_bh2', 'wgjs_bh3', 'wgjs_bh4', 'wgjs_bh5', 'wgjs_bh6'];
|
|
|
+ $field = 'wgjs_js';
|
|
|
+ for ($i = 1; $i <= 6; $i++) {
|
|
|
+ $column = $columns[$i-1];
|
|
|
+ $r = db('db_wgjs')->cache(true, 86400)
|
|
|
+ ->field("DATE_FORMAT(wgjs_rq,'%Y.%m.%d') as wgjs_rq, $column as wgjs_bh, trim(员工姓名) as 员工姓名, ${field}${i} as wgjs_js")
|
|
|
+ ->join('人事_基本资料', "人事_基本资料.员工编号=db_wgjs.$column")
|
|
|
+ ->where(['wgjs_rq' => ['between', "$start_time,$end_time"], '人事_基本资料.所在部门' => ['like', $req['department'] . '%']])
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ $arr = array_merge($arr, $r);
|
|
|
}
|
|
|
- $res1=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $res2=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $res3=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $res4=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $res5=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $res6=db('db_wgjs')->cache(true,86400)
|
|
|
- ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
|
|
|
- ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh6','LEFT')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
- ->select();
|
|
|
- $arr=array_merge($res1,$res2,$res3,$res4,$res5,$res6);
|
|
|
+
|
|
|
foreach($arr as $v){
|
|
|
- if(isset($list[$v['wgjs_rq']][$v['wgjs_bh']])){
|
|
|
- $list[$v['wgjs_rq']][$v['wgjs_bh']]+=$v['wgjs_js'];
|
|
|
+ if(isset($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']])){
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']+=$v['wgjs_js'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*9.5,2));
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*9.5,2));
|
|
|
}else{
|
|
|
- $list[$v['wgjs_rq']][$v['wgjs_bh']]=$v['wgjs_js'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['bh']=$v['wgjs_bh'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['员工姓名']=$v['员工姓名'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['sczl_rq']=$v['wgjs_rq'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计件工资']=0;
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['加班工资']=0;
|
|
|
+
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']=$v['wgjs_js'];
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($v['wgjs_js']*9.5,2));
|
|
|
+ $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($v['wgjs_js']*9.5,2));
|
|
|
}
|
|
|
+ };
|
|
|
+
|
|
|
+ foreach($res as $k=>&$v){
|
|
|
+ if(array_key_exists($k,$list)){
|
|
|
+ $v['计时时数'] += $list[$k]['计时时数'];
|
|
|
+ $v['计时工资'] = floatval(number_format($v['计时时数']*9.5,2));
|
|
|
+ $v['日工资合计'] = $v['计件工资'] + $v['加班工资'] + $v['计时工资'];
|
|
|
+ unset($list[$k]);
|
|
|
+ }
|
|
|
+ unset($v['rq_bh']);
|
|
|
}
|
|
|
- foreach($res as &$v){
|
|
|
- if(isset($list[$v['sczl_rq']][$v['bh']])){
|
|
|
- $v['计时']=$list[$v['sczl_rq']][$v['bh']];
|
|
|
- }else{
|
|
|
- $v['计时']='';
|
|
|
- }
|
|
|
- $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
|
|
|
- }
|
|
|
- $this->success('成功',$res);
|
|
|
+
|
|
|
+ $rows = array_merge($res,$list);
|
|
|
+ ksort($rows);
|
|
|
+ $rows = array_values($rows);
|
|
|
+ $this->success('成功',$rows);
|
|
|
}
|
|
|
/**
|
|
|
* 员工日工资查询下侧列表
|
|
|
@@ -289,13 +285,8 @@ class EmployeeDailySalary extends Api
|
|
|
}
|
|
|
$year=substr($req['date'],0,4);
|
|
|
$month=substr($req['date'],-2);
|
|
|
- if($month==12){
|
|
|
- $start_time=$year.'-12-01 00:00:00';
|
|
|
- $end_time=($year+1).'-01-01 00:00:00';
|
|
|
- }else{
|
|
|
- $start_time=$year.'-'.$month.'-01 00:00:00';
|
|
|
- $end_time=$year.'-'.($month+1).'-01 00:00:00';
|
|
|
- }
|
|
|
+ $start_time = $year . '-' . $month . '-01 00:00:00';
|
|
|
+ $end_time = date('Y-m-t', strtotime("$year-$month-01")) . ' 23:59:59';
|
|
|
$res1=db('db_wgjs')->cache(true,86400)
|
|
|
->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
|
|
|
// ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
|
|
|
@@ -417,13 +408,8 @@ class EmployeeDailySalary extends Api
|
|
|
}
|
|
|
$year=substr($req['date'],0,4);
|
|
|
$month=substr($req['date'],-2);
|
|
|
- if($month==12){
|
|
|
- $start_time=$year.'-12-01 00:00:00';
|
|
|
- $end_time=($year+1).'-01-01 00:00:00';
|
|
|
- }else{
|
|
|
- $start_time=$year.'-'.$month.'-01 00:00:00';
|
|
|
- $end_time=$year.'-'.($month+1).'-01 00:00:00';
|
|
|
- }
|
|
|
+ $start_time = $year . '-' . $month . '-01 00:00:00';
|
|
|
+ $end_time = date('Y-m-t', strtotime("$year-$month-01")) . ' 23:59:59';
|
|
|
$res1=db('db_wgjs')->cache(true,86400)
|
|
|
->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
|
|
|
->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
|