Browse Source

计件员工加班费/员工日工资计时时数等数据优化, 计件工计时单定位优化

曹鹤洋 1 year ago
parent
commit
92fa9bcb1d

+ 56 - 70
application/api/controller/EmployeeDailySalary.php

@@ -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')

+ 47 - 68
application/api/controller/OvertimeVerification.php

@@ -113,81 +113,60 @@ class OvertimeVerification extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db('绩效工资汇总')->cache(true,86400)
-            ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
-            ->field('bh,rtrim(xm) as 员工姓名,人事_基本资料.工资表类别,LEFT(人事_基本资料.聘用日期, 10) as 聘用日期,法定天数,
-            日定额,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
-            sum(个人加班工资) as 个人加班工资,sum(计时补差额工资) as 计时补差,LEFT(sczl_rq, 7) as sczl_rq')
-            ->group('LEFT(sczl_rq, 10),绩效工资汇总.bh')
-            // ->group('绩效工资汇总.bh')
-            ->where('sys_ny',$req['date'])
-            ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
-            ->buildSql(true);
-            // ->select();
-        if(!$res){
-            $this->error('失败');
-        }
-        $res=Db::table("$res gz")->cache(true,86400)->field("bh,员工姓名,工资表类别,聘用日期,法定天数,
-            sum(日定额) as 当月定额,sum(月度合计产量) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
-            sum(个人加班工资) as 个人加班工资,sum(计时补差) as 计时补差,sczl_rq")
-            ->group('bh')
-            ->select();
+        $res=db('绩效工资汇总')->alias('j')
+            ->join('人事_基本资料 r','r.员工编号=j.bh')
+            ->group('j.bh')
+            ->where('j.sys_ny',$req['date'])
+            ->where(['r.所在部门'=>['like',$req['department'].'%']])
+            ->column('CONCAT(j.bh, "-", DATE_FORMAT(sczl_rq,"%Y.%m")) AS rq_bh,j.bh,rtrim(j.xm) as 员工姓名,r.工资表类别,DATE_FORMAT(r.聘用日期,"%Y.%m.%d") as 聘用日期,j.法定天数,
+            sum(j.日定额) as 当月定额,(sum(j.班组车头产量*j.工序难度系数)+sum(j.班组换算产量)) as 月度合计产量,sum(j.个人计件工资) as 个人计件工资,
+            sum(j.个人加班工资) as 个人加班工资,sum(j.异常停机工时) as 月计时时数,LEFT(j.sczl_rq, 7) as sczl_rq');
+        // $res=Db::table("$res gz")->field("bh,员工姓名,工资表类别,聘用日期,法定天数,
+        //     sum(日定额) as 当月定额,sum(月度合计产量) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
+        //     sum(个人加班工资) as 个人加班工资,sum(计时补差) as 计时补差,sczl_rq")
+        //     ->group('bh')
+        //     ->select();
+            // halt($res);
         $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') as wgjs_rq, $column as wgjs_bh, ${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, 7) 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, 7) 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, 7) 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, 7) 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, 7) 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, 7) 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'];
             }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']]['sczl_rq']=$v['wgjs_rq'];
+                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['月计时时数']=$v['wgjs_js'];
             }
+        };
+        
+        foreach($res as $k=>&$v){
+            if(array_key_exists($k,$list)){
+                $v['月计时时数'] += $list[$k]['月计时时数'];
+            }
+            $v['工资表类别'] = trim($v['工资表类别']);
+            $v['法定天数'] = round($v['法定天数']);
+            $v['当月定额'] = round($v['当月定额']);
+            $v['月度合计产量'] = round($v['月度合计产量']);
+            $v['月计时时数'] = floatval(number_format($v['月计时时数'],2));
+            $v['计时补差'] = floatval(number_format($v['月计时时数']*9.5,2));
+            unset($v['rq_bh']);
         }
-        foreach($res as &$v){
-            $v['聘用日期']=str_replace('-','.',$v['聘用日期']);
-            if(isset($list[$v['sczl_rq']][$v['bh']])){
-                $v['月计时时数']=$list[$v['sczl_rq']][$v['bh']];
-            }else{
-                $v['月计时时数']='';
-            }  
-            unset($v['sczl_rq']);
-        }
+       
         $this->success('成功',$res);
     }
     /**

+ 20 - 20
application/api/controller/PieceWorkSchedule.php

@@ -166,38 +166,38 @@ class PieceWorkSchedule extends Api
         if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
         $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';
         $yg = db()->table('人事_基本资料')->where('员工姓名',$req['search'])->value('员工编号');
         if($yg){
             $req['search']=$yg;
         }
+        $where = [
+            'db_wgjs.wgjs_rq'=>['between',"$start_time,$end_time"],
+            'db_wgjs.wgjs_bh1|db_wgjs.wgjs_bh2|db_wgjs.wgjs_bh3|db_wgjs.wgjs_bh4|db_wgjs.wgjs_bh5|db_wgjs.wgjs_bh6'=>['like', '%'.$req['search'].'%']
+        ];
         $rows = db()->table('db_wgjs')
-        ->field('LEFT(wgjs_rq, 10) as wgjs_rq, 
-        wgjs_bh1,rs1.所在部门, CAST(wgjs_js1 AS SIGNED) as wgjs_js1, rtrim(wgjs_yy1) as wgjs_yy1, 
-        wgjs_bh2, CAST(wgjs_js2 AS SIGNED) as wgjs_js2, rtrim(wgjs_yy2) as wgjs_yy2, 
-        wgjs_bh3, CAST(wgjs_js3 AS SIGNED) as wgjs_js3, rtrim(wgjs_yy3) as wgjs_yy3, 
-        wgjs_bh4, CAST(wgjs_js4 AS SIGNED) as wgjs_js4, rtrim(wgjs_yy4) as wgjs_yy4, 
-        wgjs_bh5, CAST(wgjs_js5 AS SIGNED) as wgjs_js5, rtrim(wgjs_yy5) as wgjs_yy5, 
-        wgjs_bh6, CAST(wgjs_js6 AS SIGNED) as wgjs_js6, rtrim(wgjs_yy6) as wgjs_yy6,
-        rtrim(rs1.员工姓名) as name1,rtrim(rs2.员工姓名) as name2,rtrim(rs3.员工姓名)
-        as name3,rtrim(rs4.员工姓名) as name4,rtrim(rs5.员工姓名) as name5,rtrim(rs6.员工姓名)
-        as name6')
+        ->field('LEFT(db_wgjs.wgjs_rq, 10) as wgjs_rq, 
+        db_wgjs.wgjs_bh1,trim(rs1.所在部门) as 所在部门, CAST(db_wgjs.wgjs_js1 AS SIGNED) as wgjs_js1, rtrim(db_wgjs.wgjs_yy1) as wgjs_yy1, 
+        db_wgjs.wgjs_bh2, CAST(db_wgjs.wgjs_js2 AS SIGNED) as wgjs_js2, rtrim(db_wgjs.wgjs_yy2) as wgjs_yy2, 
+        db_wgjs.wgjs_bh3, CAST(db_wgjs.wgjs_js3 AS SIGNED) as wgjs_js3, rtrim(db_wgjs.wgjs_yy3) as wgjs_yy3, 
+        db_wgjs.wgjs_bh4, CAST(db_wgjs.wgjs_js4 AS SIGNED) as wgjs_js4, rtrim(db_wgjs.wgjs_yy4) as wgjs_yy4, 
+        db_wgjs.wgjs_bh5, CAST(db_wgjs.wgjs_js5 AS SIGNED) as wgjs_js5, rtrim(db_wgjs.wgjs_yy5) as wgjs_yy5, 
+        db_wgjs.wgjs_bh6, CAST(db_wgjs.wgjs_js6 AS SIGNED) as wgjs_js6, rtrim(db_wgjs.wgjs_yy6) as wgjs_yy6,
+        rtrim(rs1.员工姓名) as name1,rtrim(rs2.员工姓名) as name2,rtrim(rs3.员工姓名) as name3,
+        rtrim(rs4.员工姓名) as name4,rtrim(rs5.员工姓名) as name5,rtrim(rs6.员工姓名) as name6,
+        db_wgjs.UniqId')
         ->join('人事_基本资料 rs1','rs1.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->join('人事_基本资料 rs2','rs2.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->join('人事_基本资料 rs3','rs3.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->join('人事_基本资料 rs4','rs4.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->join('人事_基本资料 rs5','rs5.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->join('人事_基本资料 rs6','rs6.员工编号=db_wgjs.wgjs_bh6','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
+        ->where($where)
+        ->order('wgjs_rq desc, UniqId asc')
+        ->page($page,$limit)
         ->select();
-        $total = db()->table('db_wgjs')->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])->count();
+        $total = db()->table('db_wgjs')->where($where)->count();
         $data = ['total'=> $total,'rows'=> $rows];
         if($rows){
             $this->success('成功',$data);

+ 2 - 7
application/api/controller/RelatedSalaryAccounting.php

@@ -156,13 +156,8 @@ class RelatedSalaryAccounting extends Api
         $req = $this->request->param();
         $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';
         $gz=db('绩效工资汇总')
             ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
             (sum(装版工时) + sum(保养工时) + sum(打样工时)) as 定额补差, sum(异常停机工时) as 计时工资, DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')