|
|
@@ -104,9 +104,6 @@ class EmployeeDailySalary extends Api
|
|
|
$req = $this->request->param();
|
|
|
$res=db('绩效工资汇总')->cache(true,86400)
|
|
|
->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'].'%']])
|
|
|
@@ -273,67 +270,68 @@ class EmployeeDailySalary extends Api
|
|
|
$req['search']=$yg;
|
|
|
}
|
|
|
$res=db('绩效工资汇总')->cache(true,86400)
|
|
|
- // ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
|
|
|
- ->field('bh,xm as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
|
|
|
- sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
|
|
|
+ ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
|
|
|
->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
|
|
|
->where('sys_ny',$req['date'])
|
|
|
->where('bh',$req['search'])
|
|
|
- // ->where('人事_基本资料.所在部门',$req['department'])
|
|
|
- ->select();
|
|
|
- if(!$res){
|
|
|
- $this->error('失败');
|
|
|
- }
|
|
|
+ // ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
|
|
|
+ ->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);
|
|
|
$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')
|
|
|
- ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
|
|
|
- ->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"],'wgjs_bh2'=>$req['search']])
|
|
|
- ->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"],'wgjs_bh3'=>$req['search']])
|
|
|
- ->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"],'wgjs_bh4'=>$req['search']])
|
|
|
- ->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"],'wgjs_bh5'=>$req['search']])
|
|
|
- ->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"],'wgjs_bh6'=>$req['search']])
|
|
|
- ->select();
|
|
|
- $arr=array_merge($res1,$res2,$res3,$res4,$res5,$res6);
|
|
|
+
|
|
|
+ $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"]])
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ $arr = array_merge($arr, $r);
|
|
|
+ }
|
|
|
+
|
|
|
+ $list = [];
|
|
|
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){
|
|
|
- $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
|
|
|
- if(isset($list[$v['sczl_rq']][$v['bh']])){
|
|
|
- $v['计时']=$list[$v['sczl_rq']][$v['bh']];
|
|
|
- }else{
|
|
|
- $v['计时']='';
|
|
|
- }
|
|
|
+ foreach($list as $k=>$v){
|
|
|
+ if(strpos($k, $req['search']) !== false){
|
|
|
+ $res[$k] = $v;
|
|
|
+ }
|
|
|
}
|
|
|
+ ksort($res);
|
|
|
+ $res = array_values($res);
|
|
|
$this->success('成功',$res);
|
|
|
}
|
|
|
/**
|