Browse Source

工资计算优化

qiuenguang 1 year ago
parent
commit
aae9c2d349

+ 31 - 35
application/api/controller/EmployeeDailySalary.php

@@ -95,10 +95,10 @@ class EmployeeDailySalary extends Api
         //获取工资汇总表数据
         //获取工资汇总表数据
         $res=db('绩效工资汇总')
         $res=db('绩效工资汇总')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
-            ->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
+            ->group('绩效工资汇总.bh,LEFT(sczl_rq, 10),绩效工资汇总.工序难度系数')
             ->where('sys_ny',$req['date'])
             ->where('sys_ny',$req['date'])
             ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             ->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 计件工资,
+            ->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(个人加班工资) as 加班工资,sum(异常停机工时) as 计时时数');
 
 
         $year=substr($req['date'],0,4);
         $year=substr($req['date'],0,4);
@@ -112,21 +112,21 @@ class EmployeeDailySalary extends Api
         for ($i = 1; $i <= 6; $i++) {
         for ($i = 1; $i <= 6; $i++) {
             $column = $columns[$i-1];
             $column = $columns[$i-1];
             $r = db('db_wgjs')
             $r = db('db_wgjs')
-                ->field("DATE_FORMAT(wgjs_rq,'%Y.%m.%d') as wgjs_rq, $column as wgjs_bh, trim(员工姓名) as 员工姓名, wgjs_js$i as wgjs_js, wgjs_冲定额$i as wgjs_冲定额")
+                ->field("DATE_FORMAT(wgjs_rq,'%Y/%m/%d') as wgjs_rq, $column as wgjs_bh, trim(员工姓名) as 员工姓名, wgjs_js$i as wgjs_js, wgjs_冲定额$i as wgjs_冲定额")
                 ->join('人事_基本资料', "人事_基本资料.员工编号=db_wgjs.$column")
                 ->join('人事_基本资料', "人事_基本资料.员工编号=db_wgjs.$column")
                 ->where(['wgjs_rq' => ['between', "$start_time,$end_time"], '人事_基本资料.所在部门' => ['like', $req['department'] . '%']])
                 ->where(['wgjs_rq' => ['between', "$start_time,$end_time"], '人事_基本资料.所在部门' => ['like', $req['department'] . '%']])
                 ->select();
                 ->select();
 
 
             $arr = array_merge($arr, $r);
             $arr = array_merge($arr, $r);
         }
         }
-        
+
         //计算wgjs总计时时数
         //计算wgjs总计时时数
         $list = [];
         $list = [];
         foreach($arr as $v){
         foreach($arr as $v){
             if(isset($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']])){
             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']]['计时时数']+=$v['wgjs_js'];
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*10,2, '.', ''));
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*10,2, '.', ''));
+                $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{
             }else{
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['bh']=$v['wgjs_bh'];
                 $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']]['员工姓名']=$v['员工姓名'];
@@ -134,11 +134,10 @@ class EmployeeDailySalary extends Api
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计件工资']=0;
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计件工资']=0;
                 $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']]['计时时数']=$v['wgjs_js'];
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($v['wgjs_js']*10,2, '.', ''));
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($v['wgjs_js']*10,2, '.', ''));
+                $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, '.', ''));
             }
             }
         };
         };
-
         //计算当月冲定额时长
         //计算当月冲定额时长
         $list1 = [];
         $list1 = [];
         foreach($arr as $v){
         foreach($arr as $v){
@@ -154,10 +153,9 @@ class EmployeeDailySalary extends Api
                 }
                 }
             }
             }
         };
         };
-
         //获取每个员工计时补差天数
         //获取每个员工计时补差天数
         $arr1 = db('绩效工资汇总')->alias('j')
         $arr1 = db('绩效工资汇总')->alias('j')
-            ->field('j.bh,j.sczl_rq')
+            ->field('j.bh,j.sczl_rq,j.法定天数')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->group('j.bh,j.sczl_rq')
             ->group('j.bh,j.sczl_rq')
             ->where('j.sys_ny',$req['date'])
             ->where('j.sys_ny',$req['date'])
@@ -166,24 +164,23 @@ class EmployeeDailySalary extends Api
             ->buildSql();
             ->buildSql();
         $arr1 = db()->table($arr1 . ' t')
         $arr1 = db()->table($arr1 . ' t')
             ->group('t.bh, LEFT(t.sczl_rq, 7)')
             ->group('t.bh, LEFT(t.sczl_rq, 7)')
-            ->column('t.bh,count(LEFT(t.sczl_rq, 7)) as num');
-
+            ->column('t.bh,t.法定天数 as num');
         //查询该员工当月停机工时
         //查询该员工当月停机工时
         $res1=db('绩效工资汇总')
         $res1=db('绩效工资汇总')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh')
             ->group('绩效工资汇总.bh,LEFT(sczl_rq, 7)')
             ->group('绩效工资汇总.bh,LEFT(sczl_rq, 7)')
             ->where('sys_ny',$req['date'])
             ->where('sys_ny',$req['date'])
             ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
-            ->column('bh,rtrim(xm) as 员工姓名,DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,
+            ->column('bh,rtrim(xm) as 员工姓名,DATE_FORMAT(sczl_rq,"%Y/%m/%d") as sczl_rq,
             sum(异常停机工时) as 计时时数');
             sum(异常停机工时) as 计时时数');
-
         //查询每条记录
         //查询每条记录
         $arr2 = db('绩效工资汇总')->alias('j')
         $arr2 = db('绩效工资汇总')->alias('j')
-            ->field('j.bh, DATE_FORMAT(j.sczl_rq,"%Y.%m.%d") as sczl_rq,
+            ->field('j.bh, DATE_FORMAT(j.sczl_rq,"%Y/%m/%d") as sczl_rq,
             sum(j.达标定额) as 达标定额, j.Rate, j.千件工价, sum(j.异常停机工时) as 异常停机工时')
             sum(j.达标定额) as 达标定额, j.Rate, j.千件工价, sum(j.异常停机工时) as 异常停机工时')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->where('j.sys_ny',$req['date'])
             ->where('j.sys_ny',$req['date'])
-            // ->where('j.达标定额','<>',0)
+//            ->where('j.异常停机工时','<>',0)
+//             ->where('j.达标定额','<>',0)
             ->where(['r.所在部门'=>['like',$req['department'].'%']])
             ->where(['r.所在部门'=>['like',$req['department'].'%']])
             ->group('j.bh,j.sczl_rq,j.sczl_gdbh')
             ->group('j.bh,j.sczl_rq,j.sczl_gdbh')
             ->select();
             ->select();
@@ -202,14 +199,13 @@ class EmployeeDailySalary extends Api
                 $brr[$v['bh'].'-'.$v['sczl_rq']] = $a;
                 $brr[$v['bh'].'-'.$v['sczl_rq']] = $a;
             }
             }
         }
         }
-
-        //工资汇总表和wgjs表中共有数据汇总 
+        //工资汇总 表和wgjs表中共有数据汇总
         foreach($res as $k=>&$v){
         foreach($res as $k=>&$v){
             if(array_key_exists($k,$list)){
             if(array_key_exists($k,$list)){
                 $v['计时时数'] += $list[$k]['计时时数'];
                 $v['计时时数'] += $list[$k]['计时时数'];
                 unset($list[$k]);
                 unset($list[$k]);
             }
             }
-            $v['计时工资'] = array_key_exists($k,$brr) ? floatval(number_format($v['计时时数']*10+$brr[$k],2, '.', '')) : floatval(number_format($v['计时时数']*10,2, '.', ''));
+            $v['计时工资'] = array_key_exists($k,$brr) ? floatval(number_format($v['计时时数']*9.5+$brr[$k],2, '.', '')) : floatval(number_format($v['计时时数']*9.5,2, '.', ''));
             $v['日工资合计'] = floatval(number_format($v['计件工资'] + $v['加班工资'] + $v['计时工资'],2, '.', ''));
             $v['日工资合计'] = floatval(number_format($v['计件工资'] + $v['加班工资'] + $v['计时工资'],2, '.', ''));
             
             
             unset($v['rq_bh']);
             unset($v['rq_bh']);
@@ -243,14 +239,14 @@ class EmployeeDailySalary extends Api
             sum(异常停机工时) as 异常停机工时, sum(车头产量占用机时) as 车头产量占用机时, 日定额,
             sum(异常停机工时) as 异常停机工时, sum(车头产量占用机时) as 车头产量占用机时, 日定额,
             sum(达标定额) as 达标定额, 千件工价, 补产标准, bh, rtrim(xm) as xm, Rate')
             sum(达标定额) as 达标定额, 千件工价, 补产标准, bh, rtrim(xm) as xm, Rate')
             ->join('工单_印件资料 g','g.Yj_Gdbh = 绩效工资汇总.sczl_gdbh AND g.yj_Yjno = 绩效工资汇总.sczl_yjno','LEFT')
             ->join('工单_印件资料 g','g.Yj_Gdbh = 绩效工资汇总.sczl_gdbh AND g.yj_Yjno = 绩效工资汇总.sczl_yjno','LEFT')
-            ->group('LEFT(sczl_rq, 10),sczl_gdbh,CONCAT(sczl_yjno, "-", sczl_gxh, "-", sczl_type),千件工价')
+            ->group('LEFT(sczl_rq, 10),sczl_gdbh,CONCAT(sczl_yjno, "-", sczl_gxh),千件工价,工序难度系数')
             ->where(['sys_ny'=>$req['date'],'bh'=>$req['code']])
             ->where(['sys_ny'=>$req['date'],'bh'=>$req['code']])
             ->select();
             ->select();
         if(!$res){
         if(!$res){
             $this->error('失败');
             $this->error('失败');
         }
         }
         foreach($res as &$v){
         foreach($res as &$v){
-            $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
+            $v['sczl_rq']=str_replace('-','/',$v['sczl_rq']);
             if($v['sczl_yjno']>9){
             if($v['sczl_yjno']>9){
                 $sczl_yjno=$v['sczl_yjno'];
                 $sczl_yjno=$v['sczl_yjno'];
             }else{
             }else{
@@ -324,7 +320,7 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
             $this->error('请求方式错误');
         }
         }
         $req = $this->request->param();
         $req = $this->request->param();
-        $yg = db('人事_基本资料')->where('员工姓名',$req['search'])->value('员工编号');
+        $yg = db('人事_基本资料')->where('员工姓名|员工编号',$req['search'])->value('员工编号');
         if($yg){
         if($yg){
             $req['search']=$yg;
             $req['search']=$yg;
         }
         }
@@ -334,7 +330,7 @@ class EmployeeDailySalary extends Api
             ->where('sys_ny',$req['date'])
             ->where('sys_ny',$req['date'])
             ->where('bh',$req['search'])
             ->where('bh',$req['search'])
             // ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             // ->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 计件工资,
+            ->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(个人加班工资) as 加班工资,sum(异常停机工时) as 计时时数');
 
 
         $year=substr($req['date'],0,4);
         $year=substr($req['date'],0,4);
@@ -347,7 +343,7 @@ class EmployeeDailySalary extends Api
         for ($i = 1; $i <= 6; $i++) {
         for ($i = 1; $i <= 6; $i++) {
             $column = $columns[$i-1];
             $column = $columns[$i-1];
             $r = db('db_wgjs')
             $r = db('db_wgjs')
-                ->field("DATE_FORMAT(wgjs_rq,'%Y.%m.%d') as wgjs_rq, $column as wgjs_bh, trim(员工姓名) as 员工姓名, wgjs_js$i as wgjs_js, wgjs_冲定额$i as wgjs_冲定额")
+                ->field("DATE_FORMAT(wgjs_rq,'%Y/%m/%d') as wgjs_rq, $column as wgjs_bh, trim(员工姓名) as 员工姓名, wgjs_js$i as wgjs_js, wgjs_冲定额$i as wgjs_冲定额")
                 ->join('人事_基本资料', "人事_基本资料.员工编号=db_wgjs.$column")
                 ->join('人事_基本资料', "人事_基本资料.员工编号=db_wgjs.$column")
                 ->where($column,$req['search'])
                 ->where($column,$req['search'])
                 ->where(['wgjs_rq' => ['between', "$start_time,$end_time"]])
                 ->where(['wgjs_rq' => ['between', "$start_time,$end_time"]])
@@ -360,8 +356,8 @@ class EmployeeDailySalary extends Api
         foreach($arr as $v){
         foreach($arr as $v){
             if(isset($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']])){
             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']]['计时时数']+=$v['wgjs_js'];
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*10,2, '.', ''));
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时时数']*10,2, '.', ''));
+                $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{
             }else{
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['bh']=$v['wgjs_bh'];
                 $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']]['员工姓名']=$v['员工姓名'];
@@ -369,8 +365,8 @@ class EmployeeDailySalary extends Api
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计件工资']=0;
                 $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计件工资']=0;
                 $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']]['计时时数']=$v['wgjs_js'];
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['计时工资']=floatval(number_format($v['wgjs_js']*10,2, '.', ''));
-                $list[$v['wgjs_bh'].'-'.$v['wgjs_rq']]['日工资合计']=floatval(number_format($v['wgjs_js']*10,2, '.', ''));
+                $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, '.', ''));
             }
             }
         };
         };
         $list1 = [];
         $list1 = [];
@@ -390,7 +386,7 @@ class EmployeeDailySalary extends Api
 
 
         //获取每个员工计时补差天数
         //获取每个员工计时补差天数
         $arr1 = db('绩效工资汇总')->alias('j')
         $arr1 = db('绩效工资汇总')->alias('j')
-            ->field('j.bh,j.sczl_rq')
+            ->field('j.bh,j.sczl_rq,j.法定天数')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->group('j.bh,j.sczl_rq')
             ->group('j.bh,j.sczl_rq')
             ->where('j.sys_ny',$req['date'])
             ->where('j.sys_ny',$req['date'])
@@ -400,7 +396,7 @@ class EmployeeDailySalary extends Api
             ->buildSql();
             ->buildSql();
         $arr1 = db()->table($arr1 . ' t')
         $arr1 = db()->table($arr1 . ' t')
             ->group('t.bh, LEFT(t.sczl_rq, 7)')
             ->group('t.bh, LEFT(t.sczl_rq, 7)')
-            ->column('t.bh,count(LEFT(t.sczl_rq, 7)) as num');
+            ->column('t.bh,t.法定天数 as num');
 
 
         //查询该员工当月停机工时
         //查询该员工当月停机工时
         $res1=db('绩效工资汇总')
         $res1=db('绩效工资汇总')
@@ -409,12 +405,12 @@ class EmployeeDailySalary extends Api
             ->where('sys_ny',$req['date'])
             ->where('sys_ny',$req['date'])
             ->where('bh',$req['search'])
             ->where('bh',$req['search'])
             // ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             // ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
-            ->column('bh,rtrim(xm) as 员工姓名,DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,
+            ->column('bh,rtrim(xm) as 员工姓名,DATE_FORMAT(sczl_rq,"%Y/%m/%d") as sczl_rq,
             sum(异常停机工时) as 计时时数');
             sum(异常停机工时) as 计时时数');
 
 
         //查询每条记录
         //查询每条记录
         $arr2 = db('绩效工资汇总')->alias('j')
         $arr2 = db('绩效工资汇总')->alias('j')
-            ->field('j.bh, DATE_FORMAT(j.sczl_rq,"%Y.%m.%d") as sczl_rq,
+            ->field('j.bh, DATE_FORMAT(j.sczl_rq,"%Y/%m/%d") as sczl_rq,
             sum(j.达标定额) as 达标定额, j.Rate, j.千件工价, sum(j.异常停机工时) as 异常停机工时')
             sum(j.达标定额) as 达标定额, j.Rate, j.千件工价, sum(j.异常停机工时) as 异常停机工时')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->join('人事_基本资料 r','r.员工编号=j.bh')
             ->where('j.sys_ny',$req['date'])
             ->where('j.sys_ny',$req['date'])
@@ -444,7 +440,7 @@ class EmployeeDailySalary extends Api
                 $v['计时时数'] += $list[$k]['计时时数'];
                 $v['计时时数'] += $list[$k]['计时时数'];
                 unset($list[$k]);
                 unset($list[$k]);
             }
             }
-            $v['计时工资'] = array_key_exists($k,$brr) ? floatval(number_format($v['计时时数']*10+$brr[$k],2, '.', '')) : floatval(number_format($v['计时时数']*10,2, '.', ''));
+            $v['计时工资'] = array_key_exists($k,$brr) ? floatval(number_format($v['计时时数']*9.5+$brr[$k],2, '.', '')) : floatval(number_format($v['计时时数']*9.5,2, '.', ''));
             $v['日工资合计'] = floatval(number_format($v['计件工资'] + $v['加班工资'] + $v['计时工资'],2, '.', ''));
             $v['日工资合计'] = floatval(number_format($v['计件工资'] + $v['加班工资'] + $v['计时工资'],2, '.', ''));
             
             
             unset($v['rq_bh']);
             unset($v['rq_bh']);
@@ -593,7 +589,7 @@ class EmployeeDailySalary extends Api
         }
         }
         $req = $this->request->param();
         $req = $this->request->param();
         $res=db('绩效加班工资月度修正')->cache(true,86400)
         $res=db('绩效加班工资月度修正')->cache(true,86400)
-            ->field('人事_基本资料.所在部门,bh,rtrim(xm) as xm,月计时时数,DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,sczl_gdbh,sczl_yjno,sczl_gxh,
+            ->field('人事_基本资料.所在部门,bh,rtrim(xm) as xm,月计时时数,DATE_FORMAT(sczl_rq,"%Y/%m/%d") as sczl_rq,sczl_gdbh,sczl_yjno,sczl_gxh,
             千件工价,Rate,sum(达标定额) as 达标定额,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,计时冲定额,sum(New_计件工资) as
             千件工价,Rate,sum(达标定额) as 达标定额,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,计时冲定额,sum(New_计件工资) as
             New_计件工资,sum(New_加班工资) as New_加班工资,调整量_合计')
             New_计件工资,sum(New_加班工资) as New_加班工资,调整量_合计')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效加班工资月度修正.bh','LEFT')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效加班工资月度修正.bh','LEFT')

+ 4 - 4
application/api/controller/Facility.php

@@ -43,7 +43,7 @@ class Facility extends Api
             ->where('使用部门','<>','研发中心')
             ->where('使用部门','<>','研发中心')
             ->where('设备编组','<>','')
             ->where('设备编组','<>','')
             ->where($where)
             ->where($where)
-            ->order('设备编组')
+            ->order('设备编组,设备编号')
             ->column('rtrim(使用部门) as 使用部门');
             ->column('rtrim(使用部门) as 使用部门');
         if (empty($department)){
         if (empty($department)){
             $this->success('为获取到机台数据');
             $this->success('为获取到机台数据');
@@ -359,7 +359,7 @@ class Facility extends Api
             ->group('a.Gy0_gdbh,a.Gy0_yjno,a.Gy0_gxh')
             ->group('a.Gy0_gdbh,a.Gy0_yjno,a.Gy0_gxh')
             ->order('a.Gy0_sj1')
             ->order('a.Gy0_sj1')
             ->select();
             ->select();
-//        halt($orderList);
+        halt($orderList);
         if (!empty($orderList)){
         if (!empty($orderList)){
             $data = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
             $data = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
             foreach ($orderList as $key=>$value){
             foreach ($orderList as $key=>$value){
@@ -487,7 +487,7 @@ class Facility extends Api
             $data[$k]['ID'] = $v['ID'];
             $data[$k]['ID'] = $v['ID'];
             $data[$k]['班组号'] = $v['班组号'];
             $data[$k]['班组号'] = $v['班组号'];
             for ($i=1;$i<11;$i++){
             for ($i=1;$i<11;$i++){
-                if ($v['bh'.$i] != '' && $v['bh'.$i] != '000000'){
+                if ($v['bh'.$i] != ''){
                     $name = \db('人事_基本资料')->where('员工编号',$v['bh'.$i])->field('rtrim(员工姓名) as 姓名')->find();
                     $name = \db('人事_基本资料')->where('员工编号',$v['bh'.$i])->field('rtrim(员工姓名) as 姓名')->find();
                     if ($v['rate'.$i] > 0){
                     if ($v['rate'.$i] > 0){
                         $data[$k][$i-1] = $v['bh'.$i].' '.$name['姓名'].' ('.number_format($v['rate'.$i]*100,2).'%'.')';
                         $data[$k][$i-1] = $v['bh'.$i].' '.$name['姓名'].' ('.number_format($v['rate'.$i]*100,2).'%'.')';
@@ -1989,7 +1989,7 @@ class Facility extends Api
                     $list['组员'.$i] = [
                     $list['组员'.$i] = [
                         '编号' => $list['sczl_bh'.$i],
                         '编号' => $list['sczl_bh'.$i],
                         '姓名' => $name['name'],
                         '姓名' => $name['name'],
-                        '比例' => ((float)$list['sczl_rate'.$i]*100).'%'
+                        '比例' => (float)$list['sczl_rate'.$i]
                     ];
                     ];
                 }
                 }
             }
             }

+ 1 - 0
application/api/controller/OrderSuperLoss.php

@@ -548,6 +548,7 @@ class OrderSuperLoss extends Api
             ])
             ])
             ->group('a.Gy0_yjno,a.Gy0_gxh')
             ->group('a.Gy0_yjno,a.Gy0_gxh')
             ->select();
             ->select();
+        halt($gy_data);
         $arr = [];
         $arr = [];
         $plan_loss = [];//工单计划损耗
         $plan_loss = [];//工单计划损耗
         foreach ($gy_data as $k=>$v){
         foreach ($gy_data as $k=>$v){

+ 15 - 1
application/api/controller/RelatedSalaryAccounting.php

@@ -822,7 +822,7 @@ class RelatedSalaryAccounting extends Api
         $req['date']=str_replace('.','-',$req['date']);
         $req['date']=str_replace('.','-',$req['date']);
         $start_time=$req['date'].' 00:00:00';
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
         $end_time=$req['date'].' 23:59:59';
-        $gd = db('人事_基本资料')->where('员工姓名','like','%'.$req['search'].'%')->column('员工编号');
+        $gd = db('人事_基本资料')->where('员工姓名','like','%'.$req['search'].'%')->whereOr('pycode',$req['search'])->column('员工编号');
         if($gd){
         if($gd){
             $where = [
             $where = [
                 'j.sczl_rq'=>['between',"$start_time,$end_time"],
                 'j.sczl_rq'=>['between',"$start_time,$end_time"],
@@ -845,6 +845,20 @@ class RelatedSalaryAccounting extends Api
             ->where($where)
             ->where($where)
             ->order('r.所在部门,r.所在部门,j.bh')
             ->order('r.所在部门,r.所在部门,j.bh')
             ->select();
             ->select();
+        if (empty($res)){
+            $data = \db('人事_基本资料')
+                ->whereIn('员工编号',$gd)
+                ->field('CONCAT(trim(员工姓名),"(", 员工编号, ")") as 班组员工编号,所在部门,职称职务')
+                ->select();
+            $res = [];
+            foreach ($data as $key=>$value) {
+                $value['日期'] = $req['date'];
+                $value['个人加班工资'] = 0;
+                $value['个人计件工资'] = 0;
+                $value['sczl_bzdh'] = '';
+                array_push($res,$value);
+            }
+        }
         if($res===false){
         if($res===false){
             $this->error('失败');
             $this->error('失败');
         }
         }

+ 72 - 38
application/api/controller/StaffSalary.php

@@ -8,6 +8,8 @@ use app\job\InsertDataJob;
 use think\Queue;
 use think\Queue;
 use think\Cache;
 use think\Cache;
 use think\cache\driver\Redis;
 use think\cache\driver\Redis;
+use function fast\e;
+
 /**
 /**
  * 员工计件工资核算
  * 员工计件工资核算
 */
 */
@@ -101,12 +103,12 @@ class StaffSalary extends Api
         $where['a.sczl_rq'] = ['between',[$startDate,$endDate]];
         $where['a.sczl_rq'] = ['between',[$startDate,$endDate]];
         //查询印刷印后车间的机台,添加搜索条件
         //查询印刷印后车间的机台,添加搜索条件
         $jtbhs = db('设备_基本资料')->where('sys_sbID','<>','')->column('设备编号');
         $jtbhs = db('设备_基本资料')->where('sys_sbID','<>','')->column('设备编号');
-        $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_gxmc as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
+        $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_type as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常工时1 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常工时1 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
                 a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,
                 a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,
                 a.sczl_废品率系数,a.UniqId,
                 a.sczl_废品率系数,a.UniqId,
-                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数,c.版距
+                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数,c.版距,c.印刷方式
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
@@ -133,6 +135,7 @@ class StaffSalary extends Api
          * 设备_产量计酬数据
          * 设备_产量计酬数据
         */
         */
         foreach ($list as $value){
         foreach ($list as $value){
+            $num = 1;
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             //计件产量
             //计件产量
             if (substr($value['sczl_jtbh'],0,2) == 'JP'){//检品机
             if (substr($value['sczl_jtbh'],0,2) == 'JP'){//检品机
@@ -142,15 +145,19 @@ class StaffSalary extends Api
                     $gx_rate = $value['sczl_废品率系数'];
                     $gx_rate = $value['sczl_废品率系数'];
                 }
                 }
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
-                $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
-            }elseif (substr($value['sczl_jtbh'],0,2) == 'WY' || substr($value['sczl_jtbh'],0,2) == 'DW'){//凹印机
+                $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);//班组计件核算产量
+            }elseif (substr($value['sczl_jtbh'],0,2) == 'WY' || substr($value['sczl_jtbh'],0,2) == 'DW' || substr($value['sczl_jtbh'],0,3) == 'YWY' || substr($value['sczl_jtbh'],0,3) == 'YDW'){//凹印机
                 $gx_rate = $value['工序难度系数'];
                 $gx_rate = $value['工序难度系数'];
-                if ($value['版距'] > 0){
+                if (str_contains($value['印刷方式'],'张') && $value['版距'] > 0){
                     $value['版距'] = $value['版距'] / 1000;
                     $value['版距'] = $value['版距'] / 1000;
                     $value['班组车头产量'] = $value['班组车头产量'] * $value['版距'];
                     $value['班组车头产量'] = $value['班组车头产量'] * $value['版距'];
                 }
                 }
-                $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
+//                $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
+                $byThePieceYield =str_replace(',','',round($value['班组车头产量'] * floatval($gx_rate))) ;
             }else{
             }else{
+                if ($value['sczl_jtbh'] === 'YSY02#' || $value['sczl_jtbh'] === 'YSY08#' || $value['sczl_jtbh'] === 'YSY10#' || $value['sczl_jtbh'] === 'SY03#'){
+                    $num = 1.1;
+                }
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                     //工序难度系数
                     //工序难度系数
                     $gx_rate = $value['工序难度系数'];
                     $gx_rate = $value['工序难度系数'];
@@ -164,7 +171,8 @@ class StaffSalary extends Api
                         $gx_rate = $value['sczl_工价系数'];
                         $gx_rate = $value['sczl_工价系数'];
                     }
                     }
                 }
                 }
-                $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
+                $byThePieceYield =round($value['班组车头产量'] * floatval($gx_rate) * $num);
+
             }
             }
 //            //计件产量
 //            //计件产量
 //            if (substr($value['sczl_jtbh'],0,2) == 'JP'){
 //            if (substr($value['sczl_jtbh'],0,2) == 'JP'){
@@ -193,7 +201,7 @@ class StaffSalary extends Api
                 $bhKey = 'sczl_bh'.$i;
                 $bhKey = 'sczl_bh'.$i;
                 $xmKey = 'name'.$i;
                 $xmKey = 'name'.$i;
                 $rateKey = 'sczl_rate'.$i;
                 $rateKey = 'sczl_rate'.$i;
-                if (!empty($value[$bhKey]) && $value[$bhKey] != '000000'){
+                if (!empty($value[$bhKey]) && $value[$bhKey] != '0000'){
                     $item = [];
                     $item = [];
                     $item['sczl_gdbh'] = $value['sczl_gdbh'];
                     $item['sczl_gdbh'] = $value['sczl_gdbh'];
                     $item['sczl_yjno'] = $value['sczl_yjno'];
                     $item['sczl_yjno'] = $value['sczl_yjno'];
@@ -204,7 +212,7 @@ class StaffSalary extends Api
                     $item['sczl_jtbh'] = $value['sczl_jtbh'];
                     $item['sczl_jtbh'] = $value['sczl_jtbh'];
                     $item['班组车头产量'] = $value['班组车头产量'];
                     $item['班组车头产量'] = $value['班组车头产量'];
                     $item['工价系数'] = '0.0000';
                     $item['工价系数'] = '0.0000';
-                    $item['工序难度系数'] = $gx_rate;
+                    $item['工序难度系数'] = $gx_rate * $num;
                     $item['装版工时'] = $value['装版工时'];
                     $item['装版工时'] = $value['装版工时'];
                     $item['保养工时'] = $value['保养工时'];
                     $item['保养工时'] = $value['保养工时'];
                     $item['打样工时'] = $value['打样工时'];
                     $item['打样工时'] = $value['打样工时'];
@@ -238,15 +246,26 @@ class StaffSalary extends Api
             ->join('工单_工艺资料 c', 'a.sczl_gdbh = c.Gy0_gdbh AND a.sczl_yjno = c.Gy0_yjno AND a.sczl_gxh = c.Gy0_gxh','left')
             ->join('工单_工艺资料 c', 'a.sczl_gdbh = c.Gy0_gdbh AND a.sczl_yjno = c.Gy0_yjno AND a.sczl_gxh = c.Gy0_gxh','left')
             ->join('人事_基本资料 d', 'a.sczl_bh1 = d.员工编号','left')
             ->join('人事_基本资料 d', 'a.sczl_bh1 = d.员工编号','left')
             ->where($where)
             ->where($where)
+            ->where('sczl_gdbh','1801001')
             ->select();
             ->select();
         foreach ($query as $value){
         foreach ($query as $value){
+            $num = 1;
+            if ((int)$value['拆片联拼系数'] === 0){
+                $value['拆片联拼系数'] = 1;
+            }
+            if ((int)$value['拆片条小盒系数'] === 0){
+                $value['拆片条小盒系数'] = 1;
+            }
             $value['班组车头产量'] = ($value['班组车头产量'] - $value['sczl_zcfp']) * $value['拆片联拼系数'] * $value['拆片条小盒系数'];
             $value['班组车头产量'] = ($value['班组车头产量'] - $value['sczl_zcfp']) * $value['拆片联拼系数'] * $value['拆片条小盒系数'];
             //计件产量
             //计件产量
+            if ($value['sczl_jtbh'] === 'YSY02#' || $value['sczl_jtbh'] === 'YSY08#' || $value['sczl_jtbh'] === 'YSY10#' || $value['sczl_jtbh'] === 'SY03#'){
+                $num = 1.1;
+            }
             if ($value['工序难度系数'] <= 0 || empty($value['工序难度系数'])){
             if ($value['工序难度系数'] <= 0 || empty($value['工序难度系数'])){
                 $value['工序难度系数'] = '1.0000';
                 $value['工序难度系数'] = '1.0000';
                 $byThePieceYield = $value['班组车头产量'];
                 $byThePieceYield = $value['班组车头产量'];
             }else{
             }else{
-                $byThePieceYield = round($value['班组车头产量'] * $value['工序难度系数']);
+                $byThePieceYield = round($value['班组车头产量'] * $value['工序难度系数'] * $num);
             }
             }
             //补产产量/班组换算产量
             //补产产量/班组换算产量
             $afterProductionYield = ($value['装版工时'] + $value['保养工时'] + $value['打样工时']) * $value['补产标准'];
             $afterProductionYield = ($value['装版工时'] + $value['保养工时'] + $value['打样工时']) * $value['补产标准'];
@@ -268,7 +287,7 @@ class StaffSalary extends Api
             $item['sczl_jtbh'] = $value['sczl_jtbh'];
             $item['sczl_jtbh'] = $value['sczl_jtbh'];
             $item['班组车头产量'] = $value['班组车头产量'];
             $item['班组车头产量'] = $value['班组车头产量'];
             $item['工价系数'] = '0.0000';
             $item['工价系数'] = '0.0000';
-            $item['工序难度系数'] = $value['工序难度系数'];
+            $item['工序难度系数'] = $value['工序难度系数'] * $num;
             $item['装版工时'] = $value['装版工时'];
             $item['装版工时'] = $value['装版工时'];
             $item['保养工时'] = $value['保养工时'];
             $item['保养工时'] = $value['保养工时'];
             $item['打样工时'] = $value['打样工时'];
             $item['打样工时'] = $value['打样工时'];
@@ -287,7 +306,7 @@ class StaffSalary extends Api
             $item['工时占比'] = floatval($manHourRate);
             $item['工时占比'] = floatval($manHourRate);
             array_push($data,$item);
             array_push($data,$item);
         }
         }
-        halt($data);
+//        halt($data);
         /**
         /**
          * 手工检验工序数据
          * 手工检验工序数据
         */
         */
@@ -374,6 +393,7 @@ class StaffSalary extends Api
                      a.sczl_cl1, a.sczl_cl2, a.sczl_cl3, a.sczl_cl4, a.sczl_cl5, a.sczl_cl6,
                      a.sczl_cl1, a.sczl_cl2, a.sczl_cl3, a.sczl_cl4, a.sczl_cl5, a.sczl_cl6,
                      a.sczl_返工产量1, a.sczl_返工产量2, a.sczl_返工产量3, a.sczl_返工产量4, a.sczl_返工产量5, a.sczl_返工产量6,
                      a.sczl_返工产量1, a.sczl_返工产量2, a.sczl_返工产量3, a.sczl_返工产量4, a.sczl_返工产量5, a.sczl_返工产量6,
                      a.sczl_Jtbh1,a.sczl_Jtbh2,a.sczl_Jtbh3,a.sczl_Jtbh4,a.sczl_Jtbh5,a.sczl_Jtbh6,
                      a.sczl_Jtbh1,a.sczl_Jtbh2,a.sczl_Jtbh3,a.sczl_Jtbh4,a.sczl_Jtbh5,a.sczl_Jtbh6,
+                     a.sczl_dedh1,a.sczl_dedh2,a.sczl_dedh3,a.sczl_dedh4,a.sczl_dedh5,a.sczl_dedh6,
                      a.sczl_PgCl1,a.sczl_PgCl2,a.sczl_PgCl3,a.sczl_PgCl4,a.sczl_PgCl5,a.sczl_PgCl6,
                      a.sczl_PgCl1,a.sczl_PgCl2,a.sczl_PgCl3,a.sczl_PgCl4,a.sczl_PgCl5,a.sczl_PgCl6,
                      a.sczl_type1,a.sczl_type2,sczl_type3,a.sczl_type4,a.sczl_type5,sczl_type6,
                      a.sczl_type1,a.sczl_type2,sczl_type3,a.sczl_type4,a.sczl_type5,sczl_type6,
 		             a.sczl_计产系数1,a.sczl_计产系数2,a.sczl_计产系数3,a.sczl_计产系数4,a.sczl_计产系数5,a.sczl_计产系数6,
 		             a.sczl_计产系数1,a.sczl_计产系数2,a.sczl_计产系数3,a.sczl_计产系数4,a.sczl_计产系数5,a.sczl_计产系数6,
@@ -405,7 +425,7 @@ class StaffSalary extends Api
             ->where($where)
             ->where($where)
             ->group('a.UniqId')
             ->group('a.UniqId')
             ->select();
             ->select();
-//        halt($result);
+
         foreach ($result as $value){
         foreach ($result as $value){
             for ($i=1;$i<7;$i++){
             for ($i=1;$i<7;$i++){
                 $item = [];
                 $item = [];
@@ -416,6 +436,7 @@ class StaffSalary extends Api
                 $clKey = 'sczl_cl'.$i;
                 $clKey = 'sczl_cl'.$i;
                 $reworkKey = 'sczl_返工产量'.$i;
                 $reworkKey = 'sczl_返工产量'.$i;
                 $gxKey = '工序难度系数'.$i;
                 $gxKey = '工序难度系数'.$i;
+                $dedh = 'sczl_dedh'.$i;
                 $thousandKey = '千件工价'.$i;
                 $thousandKey = '千件工价'.$i;
                 $dailyKey = '日定额'.$i;
                 $dailyKey = '日定额'.$i;
                 $afterKey = '补产标准'.$i;
                 $afterKey = '补产标准'.$i;
@@ -429,21 +450,8 @@ class StaffSalary extends Api
                     $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'] = substr($value[$gxmcKey],0,30);
                     $item['sczl_type'] = $value[$gxmcKey];
                     $item['sczl_type'] = $value[$gxmcKey];
-                    if (!empty($value[$reworkKey])  && $value[$reworkKey] > 0){
-                        $item['sczl_type'] = '返工('.$item['sczl_type'].')';
-                    }
                     $item['sczl_rq'] = $value['sczl_rq'];
                     $item['sczl_rq'] = $value['sczl_rq'];
                     $item['sczl_jtbh'] = $value[$jtbhKey];
                     $item['sczl_jtbh'] = $value[$jtbhKey];
-                    if (!empty($value[$reworkKey]) && $value[$reworkKey] > 0){
-                        $cl = $value[$reworkKey];
-                    }else{
-                        $cl = $value[$clKey];
-                    }
-                    if ($item['sczl_type'] === '包装'){
-                        $item['班组车头产量'] = $cl * $value[$pgclKey] / (int)$value[$typekey];
-                    }else{
-                        $item['班组车头产量'] = $cl;
-                    }
                     $item['工价系数'] = '0.0000';
                     $item['工价系数'] = '0.0000';
                     $item['工序难度系数'] = $value[$jcxsKey];
                     $item['工序难度系数'] = $value[$jcxsKey];
                     if ($value[$jcxsKey] <= 0){
                     if ($value[$jcxsKey] <= 0){
@@ -463,20 +471,47 @@ class StaffSalary extends Api
                     $item['xm'] = $value['xm'];
                     $item['xm'] = $value['xm'];
                     $item['Rate'] = 1.000;
                     $item['Rate'] = 1.000;
                     $item['sczl_ms'] = '0.00';
                     $item['sczl_ms'] = '0.00';
-                    $item['核算产量'] = $item['班组车头产量'] * $item['工序难度系数'];
-                    //工时占比
-                    if ($item['日定额'] > 0){
-                        $manHourRate = number_format($item['核算产量'] / $item['日定额'],4);
-                    }else{
-                        $manHourRate = '0.0000';
+                    $cl = $value[$clKey];
+                    if ($cl > 0){
+                        if (str_contains($item['sczl_type'],'包装')){
+                            $item['班组车头产量'] = $cl * $value[$pgclKey] / (int)$value[$typekey];
+                        }else{
+                            $item['班组车头产量'] = $cl;
+                        }
+                        $item['核算产量'] = $item['班组车头产量'] * $item['工序难度系数'];
+                        //工时占比
+                        if ($item['日定额'] > 0){
+                            $manHourRate = number_format($item['核算产量'] / $item['日定额'],4);
+                        }else{
+                            $manHourRate = '0.0000';
+                        }
+                        $item['工时占比'] = floatval($manHourRate);
+                        array_push($data,$item);
                     }
                     }
-                    $item['工时占比'] = floatval($manHourRate);
-                    array_push($data,$item);
+                    //返工
+                    if (!empty($value[$reworkKey])  && $value[$reworkKey] > 0){
+                        $item['sczl_type'] = '返工('.$item['sczl_type'].')';
+                        $cl = $value[$reworkKey];
+                        if (str_contains($item['sczl_type'],'包装')){
+                            $item['班组车头产量'] = $cl * $value[$pgclKey] / (int)$value[$typekey];
+                        }else{
+                            $item['班组车头产量'] = $cl;
+                        }
+                        $item['核算产量'] = $item['班组车头产量'] * $item['工序难度系数'];
+                        if ($item['日定额'] > 0){
+                            $manHourRate = number_format($item['核算产量'] / $item['日定额'],4);
+                        }else{
+                            $manHourRate = '0.0000';
+                        }
+                        $item['工时占比'] = floatval($manHourRate);
+                        array_push($data,$item);
+                    }
+
                 }
                 }
             }
             }
         }
         }
-//        halt($data);
-//         用于存储bh对应的工时占比总和
+//halt($data);
+         //用于存储bh对应的工时占比总和
         $bhTotals = [];
         $bhTotals = [];
         // 遍历原始数据
         // 遍历原始数据
         foreach ($data as $row) {
         foreach ($data as $row) {
@@ -490,7 +525,7 @@ class StaffSalary extends Api
         }
         }
         //用usort函数对$data数组按照sczl_rq的日期部分进行升序排序
         //用usort函数对$data数组按照sczl_rq的日期部分进行升序排序
         usort($data, function ($a, $b) {
         usort($data, function ($a, $b) {
-            return strtotime(substr($a['sczl_rq'], 0, 10)) - strtotime(substr($b['sczl_rq'], 0, 10));
+            return strtotime(substr($a['sc zl_rq'], 0, 10)) - strtotime(substr($b['sczl_rq'], 0, 10));
         });
         });
         $days = [];
         $days = [];
         foreach ($data as $key=>$item){
         foreach ($data as $key=>$item){
@@ -542,7 +577,6 @@ class StaffSalary extends Api
             $data[$key]['法定天数'] = $params['days'];
             $data[$key]['法定天数'] = $params['days'];
             $data[$key]['sczl_type'] = trim($item['sczl_type']);
             $data[$key]['sczl_type'] = trim($item['sczl_type']);
         }
         }
-//        halt($data);
         // 检查任务是否已经存在于队列中,如果不存在则推送任务到队列
         // 检查任务是否已经存在于队列中,如果不存在则推送任务到队列
         if (!$redis->has($taskIdentifier)) {
         if (!$redis->has($taskIdentifier)) {
             $job = new InsertDataJob($data); // 创建任务实例
             $job = new InsertDataJob($data); // 创建任务实例

File diff suppressed because it is too large
+ 292 - 292
application/api/controller/Synchronization.php


+ 10 - 3
application/api/controller/WorkOrder.php

@@ -1489,8 +1489,8 @@ class WorkOrder extends Api
             'Gd_khmc' =>$param['khmc'],
             'Gd_khmc' =>$param['khmc'],
             '客户料号' =>rtrim($productDetail['客户料号']),
             '客户料号' =>rtrim($productDetail['客户料号']),
             '客户ERP编码' =>$param['erp'],
             '客户ERP编码' =>$param['erp'],
-            'Gd_cpdh' =>$param['cpdh'],
-            'Gd_cpmc' =>$param['cpmc'],
+            'Gd_cpdh' =>'',
+            'Gd_cpmc' =>'',
             '成品代号' =>$param['cpdh'],
             '成品代号' =>$param['cpdh'],
             '成品名称' =>$param['cpmc'],
             '成品名称' =>$param['cpmc'],
             '产品版本号' =>$param['bbh'],
             '产品版本号' =>$param['bbh'],
@@ -1642,6 +1642,7 @@ class WorkOrder extends Api
         $list = \db('产品_基本资料')
         $list = \db('产品_基本资料')
             ->where($where)
             ->where($where)
             ->field('rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称')
             ->field('rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称')
+            ->limit(50)
             ->select();
             ->select();
         if (empty($list)){
         if (empty($list)){
             $this->success('未获取到产品数据');
             $this->success('未获取到产品数据');
@@ -1680,7 +1681,13 @@ class WorkOrder extends Api
         $param['Mod_rq'] = date('Y-m-d H:i:s',time());
         $param['Mod_rq'] = date('Y-m-d H:i:s',time());
         $sql = \db('工单_印件资料')->fetchSql(true)->insert($param);
         $sql = \db('工单_印件资料')->fetchSql(true)->insert($param);
         $res = \db()->query($sql);
         $res = \db()->query($sql);
-        if ($res !== false){
+        $workData = [
+            'Gd_cpdh' => $param['yj_Yjdh'],
+            'Gd_cpmc' => $param['yj_yjmc']
+        ];
+        $workSql = \db('工单_基本资料')->where('Gd_gdbh',$param['Yj_Gdbh'])->fetchSql(true)->update($workData);
+        $result = \db()->query($workSql);
+        if ($res !== false && $result !== false){
             $this->success('成功');
             $this->success('成功');
         }else{
         }else{
             $this->error('失败');
             $this->error('失败');

Some files were not shown because too many files changed in this diff