Bladeren bron

Merge branch 'master' of https://git.7in6.com/Minong/mes-server-api

曹鹤洋 1 jaar geleden
bovenliggende
commit
88704288ce

+ 179 - 158
application/api/controller/EmployeeDailySalary.php

@@ -90,7 +90,7 @@ class EmployeeDailySalary extends Api
     
 
     /**
-     * 员工日工资查询列表
+     * 员工日工资查询上侧列表
      * @ApiMethod (GET)
      * @param string $date 年月
      * @param string $department 部门
@@ -108,7 +108,7 @@ class EmployeeDailySalary extends Api
             sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
             ->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
             ->where('sys_ny',$req['date'])
-            ->where('人事_基本资料.所在部门',$req['department'])
+            ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             ->select();
         if(!$res){
             $this->error('失败');
@@ -122,35 +122,35 @@ class EmployeeDailySalary extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $res1=db()->table('db_wgjs1')
+        $res1=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh1','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res2=db()->table('db_wgjs1')
+        $res2=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh2','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res3=db()->table('db_wgjs1')
+        $res3=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh3','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res4=db()->table('db_wgjs1')
+        $res4=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh4','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res5=db()->table('db_wgjs1')
+        $res5=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh5','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res6=db()->table('db_wgjs1')
+        $res6=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh6','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->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){
@@ -161,17 +161,17 @@ class EmployeeDailySalary extends Api
             }
         }
         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['计时']='';
             }  
+            $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
         }
         $this->success('成功',$res);
     }
     /**
-     * 员工日工资查询列表
+     * 员工日工资查询下侧列表
      * @ApiMethod (GET)
      * @param string $date 年月
      * @param string $code 员工编号
@@ -324,34 +324,34 @@ class EmployeeDailySalary extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $res1=db()->table('db_wgjs1')
+        $res1=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh1','LEFT')
+        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
         ->select();
-        $res2=db()->table('db_wgjs1')
+        $res2=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh2','LEFT')
+        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh2'=>$req['search']])
         ->select();
-        $res3=db()->table('db_wgjs1')
+        $res3=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh3','LEFT')
+        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh3'=>$req['search']])
         ->select();
-        $res4=db()->table('db_wgjs1')
+        $res4=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh4','LEFT')
+        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh4'=>$req['search']])
         ->select();
-        $res5=db()->table('db_wgjs1')
+        $res5=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh5','LEFT')
+        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh5'=>$req['search']])
         ->select();
-        $res6=db()->table('db_wgjs1')
+        $res6=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh6','LEFT')
+        // ->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);
@@ -372,155 +372,176 @@ class EmployeeDailySalary extends Api
         }
         $this->success('成功',$res);
     }
-    /**
-     * 详情
+     /**
+     * 员工计件明细
      * @ApiMethod (GET)
-     * @param string $wgjs_rq 日期
-     * @param string $wgjs_bh1 员工编号
-    */
-    public function detail(){
+     * @param string $start_time
+     * @param string $end_time
+     * @param string $code 员工编号
+     */
+    public function getPieceDetail()
+    {
         //get请求
         if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-
-        if (!isset($req['wgjs_rq']) || !isset($req['wgjs_bh1']) ){
-            $this->error('参数错误');
-        }else{
-        }
-        if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
-            $this->error('参数不能为空');
-        }
-        $rows = db()->table('db_wgjs1')
-        ->field('LEFT(wgjs_rq, 10) as wgjs_rq, 
-        wgjs_bh1, 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,wgjs_冲定额1,wgjs_冲定额2,wgjs_冲定额3,wgjs_冲定额4,wgjs_冲定额5,wgjs_冲定额6')
-        ->join('人事_基本资料 rs1','rs1.员工编号=db_wgjs1.wgjs_bh1','LEFT')
-        ->join('人事_基本资料 rs2','rs2.员工编号=db_wgjs1.wgjs_bh2','LEFT')
-        ->join('人事_基本资料 rs3','rs3.员工编号=db_wgjs1.wgjs_bh3','LEFT')
-        ->join('人事_基本资料 rs4','rs4.员工编号=db_wgjs1.wgjs_bh4','LEFT')
-        ->join('人事_基本资料 rs5','rs5.员工编号=db_wgjs1.wgjs_bh5','LEFT')
-        ->join('人事_基本资料 rs6','rs6.员工编号=db_wgjs1.wgjs_bh6','LEFT')
-        ->where(['wgjs_rq'=>$req['wgjs_rq'].' 00:00:00','wgjs_bh1'=>$req['wgjs_bh1']])
-        ->find();
-        if($rows){
-        $this->success('成功',$rows);
-        }else{
+        $req['start_time']=str_replace('.','-',$req['start_time']);
+        $req['end_time']=str_replace('.','-',$req['end_time']);
+        $start_time=$req['start_time'].' 00:00:00';
+        $end_time=$req['end_time'].' 23:59:59';
+        $res=db()->table('绩效工资汇总')
+           ->field('LEFT(sczl_rq, 10) as sczl_rq,sczl_gdbh,rtrim(g.员工姓名) as 员工资料,sczl_yjno,sczl_gxh,sczl_type,
+            sczl_jtbh,班组车头产量,保养工时,装版工时,打样工时,异常停机工时,补产标准,计时补差额工资 as 班组补产,日定额,达标定额,千件工价,
+            个人计件工资,个人加班工资,Rate as 个人比例')
+            ->join('人事_基本资料 g','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
+            ->where(['sczl_rq'=>['between',"$start_time,$end_time"],'bh'=>$req['code']])
+            ->select();
+        if(!$res){
             $this->error('失败');
-        }   
-    }
-     /**
-     * 修改
-     * @ApiMethod POST
-    */
-    public function edit()
-    {
-        if(!$this->request->isPost()){
-            $this->error('请求方式错误');
         }
-        $req = $this->request->param();
-        // $req = ['wgjs_js1'=>12,'wgjs_rq'=>'2023-10-12','wgjs_bh1'=>'ZM01269'];
-
-        if (!isset($req['wgjs_rq']) || !isset($req['wgjs_bh1']) ){
-            $this->error('参数错误');
-        }
-        if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
-            $this->error('参数不能为空');
-        }
-
-        $req['wgjs_rq'] = $req['wgjs_rq'].' 00:00:00';
-        $req['mod_rq'] = date('Y-m-d H:i:s');
-
-        //开启事务
-        db()->startTrans();
-        try{
-            $sql = db()->table('db_wgjs1')->where(['wgjs_rq'=>$req['wgjs_rq'],'wgjs_bh1'=>$req['wgjs_bh1']])
-            ->fetchSql(true)->update($req);
-            $res= db()->query($sql);
-            // 提交事务
-            db()->commit();
-        } catch (\Exception $e) {
-            // 回滚事务
-            db()->rollback();
-            $this->error($e->getMessage());
+        foreach($res as &$v){
+            $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
+            if($v['sczl_yjno']>9){
+                $sczl_yjno=$v['sczl_yjno'];
+            }else{
+                $sczl_yjno='0'.$v['sczl_yjno'];
+            }
+            unset($v['sczl_yjno']);
+            if($v['sczl_gxh']>9){
+                $sczl_gxh=$v['sczl_gxh'];
+            }else{
+                $sczl_gxh='0'.$v['sczl_gxh'];
+            }
+            unset($v['sczl_gxh']);
+            $v['sczl_type']=$sczl_yjno.'-'.$sczl_gxh.'-->'.$v['sczl_type'];
+            $v['班组补产']=$v['补产标准']*($v['保养工时']+$v['装版工时']+$v['打样工时']+$v['异常停机工时']);
         }
-
-        if($res===false) $this->error('失败');
-
-        $this->success('成功');
+        $this->success('成功',$res);
     }
-      /**
-     * 新增
-     * @ApiMethod POST
-    */
-    public function add()
+     /**
+     * 每日工资统计
+     * @ApiMethod (GET)
+     * @param string $date 年月
+     * @param string $department 部门
+     */
+    public function statistics()
     {
-        if(!$this->request->isPost()){
+        //get请求
+        if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-
-        if (!isset($req['wgjs_rq']) || !isset($req['wgjs_bh1']) ){
-            $this->error('参数错误');
+        $res=db()->table('绩效工资汇总')
+            ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
+            ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
+            sum(个人加班工资) as 加班工资')
+            ->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
+            ->where('sys_ny',$req['date'])
+            ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
+            ->select();
+        if(!$res){
+            $this->error('失败');
         }
-        if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
-            $this->error('参数不能为空');
+        $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';
         }
-
-        $req['wgjs_rq'] = $req['wgjs_rq'].' 00:00:00';
-        $req['sys_rq'] = date('Y-m-d H:i:s');
-
-        //开启事务
-        db()->startTrans();
-        try{
-            $sql = db()->table('db_wgjs1')->fetchSql(true)->insert($req);
-            $res= db()->query($sql);
-            // 提交事务
-            db()->commit();
-        } catch (\Exception $e) {
-            // 回滚事务
-            db()->rollback();
-            $this->error($e->getMessage());
+        $res1=db()->table('db_wgjs')
+        ->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()->table('db_wgjs')
+        ->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()->table('db_wgjs')
+        ->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()->table('db_wgjs')
+        ->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()->table('db_wgjs')
+        ->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()->table('db_wgjs')
+        ->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'];
+            }else{
+                $list[$v['wgjs_rq']][$v['wgjs_bh']]=$v['wgjs_js'];
+            }
         }
-
-        if($res===false) $this->error('失败');
-
-        $this->success('成功');
+        foreach($res as &$v){
+            if(isset($list[$v['sczl_rq']][$v['bh']])){
+                $v['计时工资']=$list[$v['sczl_rq']][$v['bh']];
+            }else{
+                $v['计时工资']='';
+            } 
+            $v['部门']=$req['department']; 
+            $v['sczl_rq']=str_replace('-','.',$v['sczl_rq']);
+        }
+        $this->success('成功',$res);
     }
-    /**
-     * 删除
+       /**
+     * 月度计时工资调整
      * @ApiMethod (GET)
-     * @param string $wgjs_rq 日期
-     * @param string $wgjs_bh1 员工编号
-    */
-    public function del(){
+     * @param string $date 年月
+     * @param string $code 员工编号
+     */
+    public function wageAdjustment()
+    {
         //get请求
         if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-
-        if (!isset($req['wgjs_rq']) || !isset($req['wgjs_bh1']) ){
-            $this->error('参数错误');
-        }else{
+        $res=db()->table('绩效加班工资月度修正')
+            ->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
+            New_计件工资,sum(New_加班工资) as New_加班工资,调整量_合计')
+            ->join('人事_基本资料','人事_基本资料.员工编号=绩效加班工资月度修正.bh','LEFT')
+            ->group('LEFT(sczl_rq, 10),sczl_gdbh')
+            ->where(['sys_ny'=>$req['date'],'bh'=>$req['code']])
+            ->select();
+        if(!$res){
+            $this->error('失败');
         }
-        if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
-            $this->error('参数不能为空');
+        foreach($res as &$v){
+            if($v['sczl_yjno']>9){
+                $sczl_yjno=$v['sczl_yjno'];
+            }else{
+                $sczl_yjno='0'.$v['sczl_yjno'];
+            }
+            unset($v['sczl_yjno']);
+            if($v['sczl_gxh']>9){
+                $sczl_gxh=$v['sczl_gxh'];
+            }else{
+                $sczl_gxh='0'.$v['sczl_gxh'];
+            }
+            unset($v['sczl_gxh']);
+            $v['sczl_gdbh']=$v['sczl_gdbh'].'-'.$sczl_yjno.'-'.$sczl_gxh;
+            $v['bh']=$v['bh'].' '.$v['xm'];
+            unset($v['xm']); 
         }
-        $rows = db()->table('db_wgjs1')->where(['wgjs_rq'=>$req['wgjs_rq'].' 00:00:00','wgjs_bh1'=>$req['wgjs_bh1']])
-        ->delete();
-        if($rows){
-        $this->success('成功');
-        }else{
-            $this->error('失败');
-        }   
+        $this->success('成功',$res);
     }
 }

+ 3 - 2
application/api/controller/LargeWasteRewardPunish.php

@@ -63,7 +63,7 @@ class LargeWasteRewardPunish extends Api
             ->order('sczl_gdbh desc')
             ->select();
         foreach($rows as $key=>$value){
-            $data[$key]['lable']=$value['sczl_gdbh'].' 【'.$value['成品名称'].'】';
+            $data[$key]['label']=$value['sczl_gdbh'].' 【'.$value['成品名称'].'】';
             $data[$key]['sczl_gdbh']=$value['sczl_gdbh'];
         }
         $this->success('成功',$data);
@@ -103,6 +103,7 @@ class LargeWasteRewardPunish extends Api
         ->select();
         if($res){
             $rows=$res;
+            $total = db()->table('db_大废品')->where('sczl_gdbh',$req['date'])->count();;
         }else{
             $rows = db()->table('db_大废品')
             ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, 
@@ -113,8 +114,8 @@ class LargeWasteRewardPunish extends Api
             ->order('UniqId desc')
             ->page($page,$limit)
             ->select();
+           $total = db()->table('db_大废品')->where($where)->count();
         }
-        $total = db()->table('db_大废品')->where($where)->count();
         $gd = db()->table('工单_印件资料')->column('Yj_Gdbh, yj_yjmc');
         $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
         foreach ($rows as $key=>$value) {

+ 16 - 15
application/api/controller/Manufacture.php

@@ -192,15 +192,21 @@ class Manufacture extends Api
         if (empty($Gd_gdbh)){
             $this->error('参数错误');
         }
-        $where = [
-            'Gy0_gdbh' => $Gd_gdbh,
-            'Gy0_sbbh' =>['neq',''],
-        ];
-        $field = 'rtrim(Gy0_gdbh) as 工单编号,Gy0_yjno,Gy0_gxh,Gy0_gxmc,Add_gxmc,rtrim(Gy0_sbbh) as 设备编号,rtrim(Gy0_小时产能) as 小时产能,
-        rtrim(工价系数) as 产能系数,rtrim(Gy0_生产工时) as 生产工时,rtrim(Gy0_辅助工时) as 辅助工时,rtrim(Gy0_最早开工时间) as 最早开工时间,
-        rtrim(Gy0_sj1) as 计划开工时间,rtrim(Gy0_sj2) as 计划完工时间,rtrim(Gy0_班次安排) as 班次安排,rtrim(工序备注) as 排单备注,
-        rtrim(PD_WG) as 工序完工,rtrim(UniqId) as UNIQID';
-        $list = Db::table('工单_工艺资料')->where($where)->field($field)->select();
+        $sql = "SELECT rtrim(a.Gy0_gdbh) as 工单编号,a.Gy0_yjno,a.Gy0_gxh,a.Gy0_gxmc,a.Add_gxmc,rtrim(a.Gy0_sbbh) as 设备编号,rtrim(a.Gy0_小时产能) as 小时产能,
+                rtrim(a.工价系数) as 产能系数,rtrim(a.Gy0_生产工时) as 生产工时,rtrim(a.Gy0_辅助工时) as 辅助工时,rtrim(a.Gy0_最早开工时间) as 最早开工时间,
+                rtrim(a.Gy0_sj1) as 计划开工时间,rtrim(a.Gy0_sj2) as 计划完工时间,rtrim(a.Gy0_班次安排) as 班次安排,rtrim(a.工序备注) as 排单备注,
+                rtrim(a.PD_WG) as 工序完工,rtrim(a.UniqId) as UniqId,COALESCE(b.cl, 0) AS 产量, c.设备名称,rtrim(d.计划投料) as 工序产量
+                FROM `工单_工艺资料` AS a
+                JOIN `设备_基本资料` AS c ON a.Gy0_sbbh = c.设备编号
+                JOIN `工单_基本资料` As d ON a.Gy0_gdbh = d.Gd_Gdbh
+                LEFT JOIN (
+                        SELECT sczl_gdbh, sczl_gxh, SUM(sczl_cl) AS cl
+                        FROM `设备_产量计酬`
+                        GROUP BY sczl_gdbh, sczl_gxh
+                ) AS b ON a.Gy0_gdbh = b.sczl_gdbh AND (a.Gy0_gxh = b.sczl_gxh OR b.sczl_gxh IS NULL)
+                WHERE a.Gy0_gdbh = '{$Gd_gdbh}' AND a.Gy0_sbbh != ''
+                GROUP BY a.Gy0_gxh";
+        $list = Db::query($sql);
         if (empty($list)){
             $this->error('未找到工序');
         }
@@ -218,12 +224,7 @@ class Manufacture extends Api
             }
             unset($list[$key]['Gy0_gxmc'],$list[$key]['Add_gxmc']);
             $list[$key]['机组'] = $value['设备编号'];
-            $orderDetail = Db::table('工单_基本资料')->where('Gd_gdbh',$list[$key]['工单编号'])->field('rtrim(计划投料) as 计划投料')->find();
-            $list[$key]['工序产量'] = $orderDetail['计划投料'];
-            $end = Db::table('设备_产量计酬')->where('sczl_gdbh',$value['工单编号'])->where('sczl_jtbh',$value['设备编号'])
-                ->field('SUM(sczl_cl) as 已完成产量')->select();
-            $list[$key]['已完成产量'] = (int)$end[0]['已完成产量'];
-            $list[$key]['剩余产量'] = (int)$list[$key]['工序产量']-(int)$list[$key]['已完成产量'];
+            $list[$key]['剩余产量'] = (int)$list[$key]['工序产量']-(int)$list[$key]['产量'];
         }
         $this->success('成功',$list);
     }

+ 25 - 25
application/api/controller/OvertimeVerification.php

@@ -121,7 +121,7 @@ class OvertimeVerification extends Api
             ->group('LEFT(sczl_rq, 10),绩效工资汇总.bh')
             // ->group('绩效工资汇总.bh')
             ->where('sys_ny',$req['date'])
-            ->where('人事_基本资料.所在部门',$req['department'])
+            ->where(['人事_基本资料.所在部门'=>['like',$req['department'].'%']])
             ->buildSql(true);
             // ->select();
         if(!$res){
@@ -141,35 +141,35 @@ class OvertimeVerification extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $res1=db()->table('db_wgjs1')
+        $res1=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh1','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res2=db()->table('db_wgjs1')
+        $res2=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh2','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res3=db()->table('db_wgjs1')
+        $res3=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh3','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res4=db()->table('db_wgjs1')
+        $res4=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh4','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res5=db()->table('db_wgjs1')
+        $res5=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh5','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
+        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res6=db()->table('db_wgjs1')
+        $res6=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
-        ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs1.wgjs_bh6','LEFT')
-        ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>$req['department']])
+        ->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){
@@ -316,27 +316,27 @@ class OvertimeVerification extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $res1=db()->table('db_wgjs1')
+        $res1=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
         ->select();
-        $res2=db()->table('db_wgjs1')
+        $res2=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh2'=>$req['search']])
         ->select();
-        $res3=db()->table('db_wgjs1')
+        $res3=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh3'=>$req['search']])
         ->select();
-        $res4=db()->table('db_wgjs1')
+        $res4=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh4'=>$req['search']])
         ->select();
-        $res5=db()->table('db_wgjs1')
+        $res5=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh5'=>$req['search']])
         ->select();
-        $res6=db()->table('db_wgjs1')
+        $res6=db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh6'=>$req['search']])
         ->select();

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

@@ -32,7 +32,7 @@ class PieceWorkSchedule extends Api
         if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
-        $rows = db()->table('db_wgjs1')
+        $rows = db()->table('db_wgjs')
             ->field('LEFT(wgjs_rq, 7) as date')
             ->group('date')
             ->order('UniqId desc')
@@ -70,7 +70,7 @@ class PieceWorkSchedule extends Api
             $this->error('参数错误');
         }
 
-        $rows = db()->table('db_wgjs1')
+        $rows = db()->table('db_wgjs')
             ->field('LEFT(wgjs_rq, 10) as wgjs_rq, 
             wgjs_bh1, 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, 
@@ -82,7 +82,7 @@ class PieceWorkSchedule extends Api
             ->order('wgjs_rq desc, UniqId asc')
             ->page($page,$limit)
             ->select();
-        $total = db()->table('db_wgjs1')->where($where)->count();
+        $total = db()->table('db_wgjs')->where($where)->count();
 
         $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名, 所在部门');
 
@@ -178,7 +178,7 @@ class PieceWorkSchedule extends Api
         if($yg){
             $req['search']=$yg;
         }
-        $rows = db()->table('db_wgjs1')
+        $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, 
@@ -189,15 +189,15 @@ class PieceWorkSchedule extends Api
         rtrim(rs1.员工姓名) as name1,rtrim(rs2.员工姓名) as name2,rtrim(rs3.员工姓名)
         as name3,rtrim(rs4.员工姓名) as name4,rtrim(rs5.员工姓名) as name5,rtrim(rs6.员工姓名)
         as name6')
-        ->join('人事_基本资料 rs1','rs1.员工编号=db_wgjs1.wgjs_bh1','LEFT')
-        ->join('人事_基本资料 rs2','rs2.员工编号=db_wgjs1.wgjs_bh2','LEFT')
-        ->join('人事_基本资料 rs3','rs3.员工编号=db_wgjs1.wgjs_bh3','LEFT')
-        ->join('人事_基本资料 rs4','rs4.员工编号=db_wgjs1.wgjs_bh4','LEFT')
-        ->join('人事_基本资料 rs5','rs5.员工编号=db_wgjs1.wgjs_bh5','LEFT')
-        ->join('人事_基本资料 rs6','rs6.员工编号=db_wgjs1.wgjs_bh6','LEFT')
+        ->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']])
         ->select();
-        $total = db()->table('db_wgjs1')->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])->count();
+        $total = db()->table('db_wgjs')->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])->count();
         $data = ['total'=> $total,'rows'=> $rows];
         if($rows){
             $this->success('成功',$data);
@@ -225,7 +225,7 @@ class PieceWorkSchedule extends Api
         if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
             $this->error('参数不能为空');
         }
-        $rows = db()->table('db_wgjs1')
+        $rows = db()->table('db_wgjs')
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq, 
         wgjs_bh1, 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, 
@@ -236,12 +236,12 @@ class PieceWorkSchedule extends Api
         rtrim(rs1.员工姓名) as name1,rtrim(rs2.员工姓名) as name2,rtrim(rs3.员工姓名)
         as name3,rtrim(rs4.员工姓名) as name4,rtrim(rs5.员工姓名) as name5,rtrim(rs6.员工姓名)
         as name6,wgjs_冲定额1,wgjs_冲定额2,wgjs_冲定额3,wgjs_冲定额4,wgjs_冲定额5,wgjs_冲定额6')
-        ->join('人事_基本资料 rs1','rs1.员工编号=db_wgjs1.wgjs_bh1','LEFT')
-        ->join('人事_基本资料 rs2','rs2.员工编号=db_wgjs1.wgjs_bh2','LEFT')
-        ->join('人事_基本资料 rs3','rs3.员工编号=db_wgjs1.wgjs_bh3','LEFT')
-        ->join('人事_基本资料 rs4','rs4.员工编号=db_wgjs1.wgjs_bh4','LEFT')
-        ->join('人事_基本资料 rs5','rs5.员工编号=db_wgjs1.wgjs_bh5','LEFT')
-        ->join('人事_基本资料 rs6','rs6.员工编号=db_wgjs1.wgjs_bh6','LEFT')
+        ->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'=>$req['wgjs_rq'].' 00:00:00','wgjs_bh1'=>$req['wgjs_bh1']])
         ->find();
         if($rows){
@@ -275,7 +275,7 @@ class PieceWorkSchedule extends Api
         //开启事务
         db()->startTrans();
         try{
-            $sql = db()->table('db_wgjs1')->where(['wgjs_rq'=>$req['wgjs_rq'],'wgjs_bh1'=>$req['wgjs_bh1']])
+            $sql = db()->table('db_wgjs')->where(['wgjs_rq'=>$req['wgjs_rq'],'wgjs_bh1'=>$req['wgjs_bh1']])
             ->fetchSql(true)->update($req);
             $res= db()->query($sql);
             // 提交事务
@@ -314,7 +314,7 @@ class PieceWorkSchedule extends Api
         //开启事务
         db()->startTrans();
         try{
-            $sql = db()->table('db_wgjs1')->fetchSql(true)->insert($req);
+            $sql = db()->table('db_wgjs')->fetchSql(true)->insert($req);
             $res= db()->query($sql);
             // 提交事务
             db()->commit();
@@ -348,7 +348,7 @@ class PieceWorkSchedule extends Api
         if (empty($req['wgjs_rq']) || empty($req['wgjs_bh1'])){
             $this->error('参数不能为空');
         }
-        $rows = db()->table('db_wgjs1')->where(['wgjs_rq'=>$req['wgjs_rq'].' 00:00:00','wgjs_bh1'=>$req['wgjs_bh1']])
+        $rows = db()->table('db_wgjs')->where(['wgjs_rq'=>$req['wgjs_rq'].' 00:00:00','wgjs_bh1'=>$req['wgjs_bh1']])
         ->delete();
         if($rows){
         $this->success('成功');

+ 653 - 0
application/api/controller/RelatedSalaryAccounting.php

@@ -0,0 +1,653 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+use \think\Request;
+use \think\Db;
+/**
+ * 关联工资核算接口
+ */
+class RelatedSalaryAccounting extends Api
+{
+    protected $noNeedLogin = ['*'];
+    protected $noNeedRight = ['*'];
+
+    /**
+     * 首页
+     *
+     */
+    public function index()
+    {
+        $this->success('请求成功');
+    }
+
+    /**
+     * 关联工资核算侧边栏
+     * @ApiMethod (GET)
+     */
+    public function getTab()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        // $rows = db()->table('绩效工资汇总')
+        // ->whereTime('sczl_rq', '>=', strtotime('-25 months'))
+        // ->group('sys_ny')
+        // ->order('sys_ny desc')
+        // ->limit(25)
+        // ->column('sys_ny');
+        $rows = db()->table('db_大废品')
+        ->whereTime('sys_rq', '>=', strtotime('-25 months'))
+        ->group("DATE_FORMAT(`sys_rq`, '%Y%m')")
+        ->order('sys_rq desc')
+        ->limit(25)
+        ->column("DATE_FORMAT(`sys_rq`, '%Y%m')");
+        foreach($rows as $k=>$v){
+            $datas[$k]['label']=$v;
+            $datas[$k]['children']=[
+                ['label'=>'胶印车间','rq'=>$v],
+                ['label'=>'凹印车间','rq'=>$v],
+                ['label'=>'丝印车间','rq'=>$v],
+                ['label'=>'模切车间','rq'=>$v],
+                ['label'=>'检验车间','rq'=>$v]];
+        }
+        $this->success('成功',$datas);
+    }
+    
+
+    /**
+     * 关联工资核算上侧列表
+     * @ApiMethod (GET)
+     * @param string $date 年月
+     * @param string $department 部门
+     */
+    public function getList()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $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';
+        }
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sys_ny'=>$req['date']])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,rtrim(人事_基本资料.职称职务) as 职称职务,
+            人事_基本资料.所在部门,DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联系数,count(被关联员工) as 关联人数')
+            ->group('LEFT(日期, 10),关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
+            ->order('关联员工,日期')
+            ->select();
+        foreach($res as &$v){
+            if(isset($data[$v['员工编号']][$v['日期']])){
+                $v['个人计件工资']=$data[$v['员工编号']][$v['日期']]['个人计件工资'];
+                $v['个人加班工资']=$data[$v['员工编号']][$v['日期']]['个人加班工资'];
+            }else{
+                $v['个人计件工资']='';
+                $v['个人加班工资']='';
+            }
+        }
+        if(!$res){
+            $this->error('失败');
+        }
+        $this->success('成功',$res);
+    }
+    /**
+     * 关联工资核算下侧列表
+     * @ApiMethod (GET)
+     * @param string $date 年月
+     * @param string $code 员工编号
+     */
+    public function getAllList()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $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';
+        }
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sys_ny'=>$req['date']])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,
+            rtrim(人事_基本资料.职称职务) as 职称职务,人事_基本资料.所在部门,被关联员工,权重')
+            ->group('LEFT(日期, 10),被关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'关联员工'=>$req['code']])
+            ->order('关联员工,日期')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+         foreach($res as &$v){
+            if(isset($data[$v['被关联员工']][$v['日期']])){
+                $v['被关联姓名']=$data[$v['被关联员工']][$v['日期']]['姓名'];
+                $v['个人计件工资']=$data[$v['被关联员工']][$v['日期']]['个人计件工资'];
+                $v['个人加班工资']=$data[$v['被关联员工']][$v['日期']]['个人加班工资'];
+            }else{
+                $v['个人计件工资']='';
+                $v['个人加班工资']='';
+            }
+        }
+        $this->success('成功',$res);
+    }
+     /**
+     * 关联工资核算详情
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $code 员工编号
+     */
+    public function getDetail()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sczl_rq'=>$start_time])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,
+            rtrim(人事_基本资料.职称职务) as 职称职务,人事_基本资料.所在部门,被关联员工,权重')
+            ->group('LEFT(日期, 10),被关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'关联员工'=>$req['code']])
+            ->order('关联员工,日期')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+         foreach($res as &$v){
+            if(isset($data[$v['被关联员工']][$v['日期']])){
+                $v['被关联姓名']=$data[$v['被关联员工']][$v['日期']]['姓名'];
+                $v['个人计件工资']=$data[$v['被关联员工']][$v['日期']]['个人计件工资'];
+                $v['个人加班工资']=$data[$v['被关联员工']][$v['日期']]['个人加班工资'];
+            }else{
+                $v['个人计件工资']='';
+                $v['个人加班工资']='';
+            }
+        }
+        $this->success('成功',$res);
+    }
+    /**
+     * 定位
+     * @ApiMethod GET
+    */
+    public function search(){
+      //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $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';
+        }
+        $gd = db()->table('工单_基本资料')->where('Gd_cpmc',$req['search'])->value('Gd_gdbh');
+        if($gd){
+            $req['search']=$gd;
+        }
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sys_ny'=>$req['date']])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,rtrim(人事_基本资料.职称职务) as 职称职务,
+            人事_基本资料.所在部门,DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联系数,count(被关联员工) as 关联人数')
+            ->group('LEFT(日期, 10),关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'关联员工'=>$req['search']])
+            ->order('关联员工,日期')
+            ->select();
+        foreach($res as &$v){
+            if(isset($data[$v['员工编号']][$v['日期']])){
+                $v['个人计件工资']=$data[$v['员工编号']][$v['日期']]['个人计件工资'];
+                $v['个人加班工资']=$data[$v['员工编号']][$v['日期']]['个人加班工资'];
+            }else{
+                $v['个人计件工资']='';
+                $v['个人加班工资']='';
+            }
+        }
+        if(!$res){
+            $this->error('失败');
+        }
+        $this->success('成功',$res);
+    }
+     /**
+     * 关联工资设置
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $code 员工编号
+     */
+    public function setting()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sczl_rq'=>$start_time])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 关联人员工号,rtrim(人事_基本资料.员工姓名) as 关联人员姓名,
+            被关联员工 as 班组员工编号,权重 as 组员权重,关联系数 as 日关联系数,人事_关联工资设置.UniqID')
+            ->group('被关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'关联员工'=>$req['code']])
+            ->order('关联员工,日期')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+         foreach($res as &$v){
+            if(isset($data[$v['班组员工编号']][$v['日期']])){
+                $bh=$v['班组员工编号'];
+                $rq=$v['日期'];
+                $v['班组员工编号']=$bh.'('.$data[$bh][$rq]['姓名'].')';
+                $v['计件工资基数']=$data[$bh][$rq]['个人计件工资'];
+                $v['加班工资基数']=$data[$bh][$rq]['个人加班工资'];
+                $v['日关联人数']=count($res);
+            }else{
+                $v['个人计件工资']='';
+                $v['个人加班工资']='';
+            }
+        }
+        $this->success('成功',$res);
+    }
+      /**
+     * 更新关联系数
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $code 员工编号
+     */
+    public function updateNum()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        // $sql=db()->table('人事_关联工资设置')
+        //     ->where(['日期'=>$start_time,'关联员工'=>$req['code']])
+        //     ->fetchSql(true)
+        //     ->setField('关联系数',$req['num']);
+        // Db::query($sql);
+        $data['mod_rq'] = date('Y-m-d H:i:s');
+        $data['关联系数']=$req['num'];
+        //开启事务
+        db()->startTrans();
+        try{
+            $sql=db()->table('人事_关联工资设置')
+            ->where(['日期'=>$start_time,'关联员工'=>$req['code']])
+            ->fetchSql(true)
+            ->update($data);
+            $res=Db::query($sql);
+            // 提交事务
+            db()->commit();
+        } catch (\Exception $e) {
+            // 回滚事务
+            db()->rollback();
+            $this->error($e->getMessage());
+        }
+
+        if($res===false) $this->error('失败');
+        $this->success('成功');
+    }
+    /**
+     * 关联组员权重查询
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $code 员工编号
+     */
+    public function weightDetail()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $res=db()->table('人事_基本资料')
+            ->join('人事_关联工资设置','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
+            ->join('人事_员工照片','人事_基本资料.照片ID=人事_员工照片.UniqId','LEFT')
+            ->field('人事_关联工资设置.被关联员工 as 员工编号,rtrim(员工姓名) as 姓名,rtrim(所在部门) as 部门名称,人事_基本资料.职称职务 as 职务,
+            DATE_FORMAT(聘用日期,"%Y.%m.%d") as 入职日期,权重 as 关联权重')
+            ->group('被关联员工')
+            ->where(['人事_关联工资设置.日期'=>['between',"$start_time,$end_time"],'人事_关联工资设置.被关联员工'=>$req['code']])
+            ->order('关联员工,日期')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+        $this->success('成功',$res);
+    }
+    /**
+     * 批量附加组员列表
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $code 员工编号
+     */
+    public function batchAddLst()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,sczl_bzdh')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sczl_rq'=>$start_time])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
+            ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,人事_基本资料.所在部门,人事_基本资料.职称职务,被关联员工 as 班组员工编号,人事_关联工资设置.UniqID')
+            // ->group('被关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'关联员工'=>['NEQ',$req['code']]])
+            ->order('人事_基本资料.所在部门')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+         foreach($res as &$v){
+            if(isset($data[$v['班组员工编号']][$v['日期']])){
+                $bh=$v['班组员工编号'];
+                $rq=$v['日期'];
+                $v['班组员工编号']=$bh.'('.$data[$bh][$rq]['姓名'].')';
+                $v['班组']=$data[$bh][$rq]['sczl_bzdh'];
+                $v['计件工资基数']=$data[$bh][$rq]['个人计件工资'];
+                $v['加班工资基数']=$data[$bh][$rq]['个人加班工资'];
+            }else{
+                $v['计件工资基数']='删除';
+                $v['加班工资基数']='';
+            }
+        }
+        foreach($res as $k=>$v){
+            if($v['计件工资基数']=='删除'){
+                unset($res[$k]);
+            }
+        }
+        array_multisort($res);
+        $this->success('成功',$res);
+    }
+     /**
+     * 批量附加组员定位
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     * @param string $search 员工编号
+     */
+    public function batchAddSearch()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $gd = db()->table('工单_基本资料')->where('Gd_cpmc',$req['search'])->value('Gd_gdbh');
+        if($gd){
+            $req['search']=$gd;
+        }
+        $gz=db()->table('绩效工资汇总')
+            ->field('bh,rtrim(xm) as 姓名,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,
+            DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,sczl_bzdh')
+            ->group('LEFT(sczl_rq, 10),bh')
+            ->where(['sczl_rq'=>$start_time])
+            ->select();
+        foreach($gz as $v){
+           $data[$v['bh']][$v['sczl_rq']]=$v;
+        }
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
+            ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,人事_基本资料.所在部门,人事_基本资料.职称职务,被关联员工 as 班组员工编号,人事_关联工资设置.UniqID')
+            // ->group('被关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"],'被关联员工'=>['EQ',$req['search']]])
+            ->order('人事_基本资料.所在部门')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+         foreach($res as &$v){
+            if(isset($data[$v['班组员工编号']][$v['日期']])){
+                $bh=$v['班组员工编号'];
+                $rq=$v['日期'];
+                $v['班组员工编号']=$bh.'('.$data[$bh][$rq]['姓名'].')';
+                $v['班组']=$data[$bh][$rq]['sczl_bzdh'];
+                $v['计件工资基数']=$data[$bh][$rq]['个人计件工资'];
+                $v['加班工资基数']=$data[$bh][$rq]['个人加班工资'];
+            }else{
+                $v['计件工资基数']='删除';
+                $v['加班工资基数']='';
+            }
+        }
+        foreach($res as $k=>$v){
+            if($v['计件工资基数']=='删除'){
+                unset($res[$k]);
+            }
+        }
+        $this->success('成功',$res);
+    }
+     /**
+     * 关联组员复制列表
+     * @ApiMethod (GET)
+     * @param string $date 日期
+     */
+    public function copyLst()
+    {
+       //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $req['date']=str_replace('.','-',$req['date']);
+        $start_time=$req['date'].' 00:00:00';
+        $end_time=$req['date'].' 23:59:59';
+        $res=db()->table('人事_关联工资设置')
+            ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
+            ->field('关联员工 as 员工编号,人事_基本资料.员工姓名,人事_基本资料.所在部门,人事_基本资料.职称职务,人事_关联工资设置.UniqID')
+            ->group('关联员工')
+            ->where(['日期'=>['between',"$start_time,$end_time"]])
+            // ->order('人事_关联工资设置.关联员工')
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+        $this->success('成功',$res);
+    }
+     /**
+     * 批量附加组员
+     * @ApiMethod POST
+     * @params string UniqID
+    */
+    public function batchAdd(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+
+        if (!isset($params) || !isset($params[0]['UniqID'])){
+            $this->error('参数不能为空');
+        }
+         //开启事务
+         db()->startTrans();
+         try{
+            foreach($params as $k=>$v){
+                $v['mod_rq']=date('Y-m-d H:i:s');
+                $sql=db()->table('人事_关联工资设置')
+                   ->where(['UniqID'=>$v['UniqID']])
+                   ->fetchSql(true)
+                   ->update($v);
+                $res=Db::query($sql);
+            }  
+             // 提交事务
+             db()->commit();
+         } catch (\Exception $e) {
+             // 回滚事务
+             db()->rollback();
+             $this->error($e->getMessage());
+         }
+         if($res===false) $this->error('失败');
+         $this->success('成功');
+    }
+      /**
+     * 批量删除组员
+     * @ApiMethod POST
+     * @params string UniqID
+    */
+    public function batchDel(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+
+        if (!isset($params) || !isset($params[0]['UniqID'])){
+            $this->error('参数不能为空');
+        }
+         //开启事务
+         db()->startTrans();
+         try{
+            foreach($params as $k=>$v){
+                $v['mod_rq']=date('Y-m-d H:i:s');
+                $v['关联员工']='';
+                $sql=db()->table('人事_关联工资设置')
+                   ->where(['UniqID'=>$v['UniqID']])
+                   ->fetchSql(true)
+                   ->update($v);
+                $res=Db::query($sql);
+            }  
+             // 提交事务
+             db()->commit();
+         } catch (\Exception $e) {
+             // 回滚事务
+             db()->rollback();
+             $this->error($e->getMessage());
+         }
+         if($res===false) $this->error('失败');
+         $this->success('成功');
+    }
+      /**
+     * 关联组员复制
+     * @ApiMethod POST
+     * @params string UniqID
+    */
+    public function copy(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+
+        if (!isset($params) || !isset($params[0])){
+            $this->error('参数不能为空');
+        }
+         //开启事务
+         db()->startTrans();
+         try{
+            foreach($params as $v){
+                $v['old_time']=str_replace('.','-',$v['old_time']).' 00:00:00';
+                $v['new_time']=str_replace('.','-',$v['new_time']).' 00:00:00';
+                db()->table('人事_关联工资设置')
+                   ->where(['关联员工'=>$v['关联员工'],'日期'=>$v['new_time']])
+                   ->delete();
+                $data=Db::table('人事_关联工资设置')
+                   ->field('日期,关联员工,关联系数,被关联员工,权重,sys_id')
+                   ->where(['关联员工'=>$v['关联员工'],'日期'=>$v['old_time']])
+                   ->select();
+                $id=Db::table('人事_关联工资设置')->order('UniqID desc')->limit(1)->value('UniqID');
+                $i=1;
+                foreach($data as &$value){
+                    $value['日期']=$v['new_time'];
+                    $value['UniqID']=$i+$id;
+                    $value['sys_rq']=date('Y-m-d H:i:s');
+                    $i++;
+                }
+                $sql=db()->table('人事_关联工资设置')
+                   ->fetchSql(true)
+                   ->insertAll($data);
+                $res=Db::query($sql);
+            }  
+             // 提交事务
+             db()->commit();
+         } catch (\Exception $e) {
+             // 回滚事务
+             db()->rollback();
+             $this->error($e->getMessage());
+         }
+         if($res===false) $this->error('失败');
+         $this->success('成功');
+    }
+}

+ 208 - 0
application/api/controller/ReportingWork.php

@@ -191,6 +191,214 @@ class ReportingWork extends Api
      * @params
     */
     public function submitPatrolRecord(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (empty($params['machine']) || empty($params['type']) || empty($params['order'])) {
+            $this->error('参数错误');
+        }
+        if (empty($params['yjno']) || empty($params['process']) || empty($params['no'])) {
+            $this->error('参数错误');
+        }
+        $data = [];
+        $data['类别'] = $params['type'];
+        $data['工单编号'] = $params['order'];
+        $data['印件号'] = $params['yjno'];
+        $data['工序名称'] = '';
+        $data['班组编号'] = '';
+        $data['开工时间'] = '';
+        $data['流程单号'] = $params['process'];
+        $data['设备编号'] = $params['machine'].'#';
+        $data['检验项目'] = '['.$params['no'].'/'.$params['name'].']';
+        $data['检验备注'] = $params['remark'];
+        $data['提交时间'] = date('Y-m-d H:i:s');
+        $produce = Db::name('设备_产量采集')->where('设备编号',$params['machine'].'#')->where('工单编号',$params['order'])->order('UniqId desc')->find();
+        if (!empty($produce)){
+            $data['工序名称'] = $produce['工序名称'];
+            $data['班组编号'] = rtrim($produce['班组编号']);
+            $data['开工时间'] = $produce['开工时间'];
+        }
+        $res = Db::name('制程检验_记录')->field('UniqId')->order('UniqId desc')->find();
+        if ($res['UniqId'] < 100000000){
+            $data['UniqId'] = 100000000;
+        }else{
+            $data['UniqId'] = $res['UniqId'] + 1;
+        }
+        $sql = Db::name('制程检验_记录')->fetchSql(true)->insert($data);
+        $result = Db::query($sql);
+        if ($result === false){
+            $this->success('提交失败');
+        }else{
+            $this->error('提交成功');
+        }
+    }
+    /**
+     * 获取报工单其他信息
+     * @ApiMethod Get
+     * @params string machine
+    */
+    public function getMachineReportInfo(){
+        if (Request::instance()->isGet() == false) {
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (!isset($params['machine']) || empty($params['machine'])) {
+            $this->error('参数错误');
+        }
+        $machine = $params['machine'].'#';
+        $data = [];
+        $produce = Db::name('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
+        $data['order_info']['order'] = $produce['工单编号'];
+        $data['order_info']['yjno'] = $produce['印件号'];
+        $data['order_info']['gxh'] = $produce['工序号'];
+        $data['order_info']['gxmc'] = $produce['工序名称'];
+        $product = Db::name('工单_基本资料')->alias('a')
+            ->join('工单_工艺资料 b','a.Gd_Gdbh = b.Gy0_gdbh','left')
+            ->join('工单_印件资料 c','a.Gd_Gdbh = c.Yj_gdbh','left')
+            ->field('a.成品名称,b.Gy0_gxmc,c.yj_yjmc')
+            ->where('a.Gd_Gdbh',$produce['工单编号'])
+            ->where('b.Gy0_yjno',$produce['印件号'])
+            ->where('b.Gy0_gxh',$produce['工序号'])
+            ->where('c.Yj_yjno',$produce['印件号'])
+            ->select();
+        $data['order_info']['product_name'] = '';
+        $data['order_info']['yj_name'] = '';
+        $data['order_info']['gy_name'] = '';
+        if (!empty($product)){
+            $data['order_info']['product_name'] = rtrim($product[0]['成品名称']);
+            $data['order_info']['yj_name'] = rtrim($product[0]['yj_yjmc']);
+            $data['order_info']['gy_name'] = rtrim($product[0]['Gy0_gxmc']);
+        }
+        $class = Db::name('设备_班组资料')->where('UniqId',$produce['班组ID'])->find();
+        for ($i=1;$i<11;$i++){
+            $name = '';
+            if (!empty($class['sczl_bh'.$i])){
+                $name = Db::name('人事_基本资料')->where('员工编号',$class['sczl_bh'.$i])->value('员工姓名');
+            }
+            $class['sczl_name'.$i] = rtrim($name);
+        }
+        $data['class'] = $class;
+        $where['st_gdbh'] = $produce['工单编号'];
+        $machine = substr($machine,0,2);
+        if ($machine == 'JY' || $machine == 'QZ'){
+            $where['st_dpt'] = '胶印车间';
+        }elseif ($machine == 'WY' || $machine == 'DW'){
+            $where['st_dpt'] = '凹印车间';
+        }elseif ($machine == 'SY' || $machine == 'PM'){
+            $where['st_dpt'] = '丝印车间';
+        }elseif ($machine == 'MQ' || $machine == 'TJ'){
+            $where['st_dpt'] = '烫模车间';
+        }elseif ($machine == 'JP'){
+            $where['st_dpt'] = '检验车间';
+        }
+        $sql = "SELECT RTRIM(a.供方批次) as batch, rtrim(采购单号) as 采购单号,st_wlbh, MIN(a.Uniqid) AS Uniqid,rtrim(b.`BOM_物料名称`) as `BOM_物料名称`
+                FROM `物料_收发记录` a
+                LEFT JOIN `工单_bom资料` b ON a.st_gdbh = b.`BOM_工单编号` AND a.st_wlbh = b.`BOM_物料编码`
+                WHERE a.st_gdbh = '{$where['st_gdbh']}' AND a.st_dpt = '{$where['st_dpt']}'
+                GROUP BY batch ORDER BY a.st_wlbh";
+        $material = Db::query($sql);
+        $data['bom'] = $material;
+        $this->success('请求成功',$data);
+    }
+    /**
+     * 日产量上报
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function submitDailyProduction(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        $machine = $params['sczl_jtbh'].'#';
+        $batchData = []; //批次追踪数据
+        $batch = $params['bom'];
+        $data = $params;//产量数据
+        $data['sczl_type'] = $params['sczl_gxmc'];
+        $data['sczl_前工序废'] = $params['last_fp'];
+        $data['sczl_来料少数'] = $params['less_sl'];
+        $data['sczl_装版总工时'] = $params['zb_time'];
+        $data['sczl_打样总工时'] = $params['dy_time'];
+        $data['sczl_设备运行工时'] = $params['run_time'];
+        $data['sczl_jtbh'] = $machine;
+        $data['码包'] = $params['code'];
+        $data['主电表'] = $params['main_meter'];
+        $data['辅电表'] = $params['auxiliary_meter'];
+        unset($data['last_fp']);
+        unset($data['less_sl']);
+        unset($data['zb_time']);
+        unset($data['dy_time']);
+        unset($data['run_time']);
+        unset($data['code']);
+        unset($data['main_meter']);
+        unset($data['auxiliary_meter']);
+        unset($data['bom']);
+        $start_time = Db::name('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
+        $data['开工时间'] = $start_time['开工时间'];
+        $sys_id = Db::name('设备_基本资料')->where('设备编号',$machine)->value('sys_sbID');
+        $data['sys_id'] = '['.$sys_id.'/'.$machine.']';
+        $UniqId = Db::name('设备_产量计酬')->order('UniqId desc')->value('UniqId');
+        if ($UniqId < 10000000){
+            $data['UniqId'] = 10000000;
+        }else{
+            $data['UniqId'] = $UniqId + 1;
+        }
+        $data['sczl_Pgcl'] = 0;
+        $data['sczl_oil'] = 0;
+        $data['sczl_计产系数'] = 0;
+        $data['sczl_工价系数'] = 0;
+        $data['sczl_装版工时'] = 0;
+        $data['sczl_保养工时'] = 0;
+        $data['sczl_打样工时'] = 0;
+        $data['sczl_异常停机工时'] = 0;
+        $data['sczl_异常工时1'] = 0;
+        $data['sczl_异常类型1'] = '';
+        $data['sczl_废品率系数'] = '';
+        $data['sczl_desc'] = '';
+        $data['sczl_wgsj'] = '1900-01-01 00:00:00';
+        $data['码开始行'] = 0;
+        $data['码结束行'] = 0;
+        $data['mod_rq'] = '1900-01-01 00:00:00';
+        $data['sys_rq'] = date('Y-m-d H:i:s');
+
+        $batchData = explode(',',$batch);
+        $newData = [];
+        $batchUniqId = Db::name('物料_批次跟踪')->order('UniqId desc')->value('UniqId');
+        if ($batchUniqId < 10000000){
+            $batchUniqId = 10000000;
+        }
+        foreach ($batchData as $key=>$item){
+            $batchUniqId++;
+            $val = explode('-',$item);
+            $newData[$key]['wlbh'] = $val[0];
+            $newData[$key]['wlBatch'] = $val[1];
+            $newData[$key]['sczl_gdbh'] = $data['sczl_gdbh'];
+            $newData[$key]['sczl_yjno'] = $data['sczl_yjno'];
+            $newData[$key]['sczl_gxh'] = $data['sczl_gxh'];
+            $newData[$key]['sczl_gxmc'] = $data['sczl_gxmc'];
+            $newData[$key]['sczl_num'] = $data['sczl_num'];
+            $newData[$key]['sys_id'] = $data['sys_id'];
+            $newData[$key]['sys_rq'] = $data['sys_rq'];
+            $newData[$key]['UniqID'] = $batchUniqId;
+        }
+        $res = true;
+        $batch_res = true;
+        Db::startTrans();
+        try {
+            $sql = Db::name('设备_产量计酬')->fetchSql(true)->insert($data);
+            $res = Db::query($sql);
+            $batch_sql = Db::name('物料_批次跟踪')->fetchSql(true)->insertAll($newData);
+            $batch_res = Db::query($batch_sql);
+            Db::commit();
+        }catch (\Exception $e){
+            Db::rollback();
+        }
+        if ($res === false || $batch_res === false){
+            $this->error('报工失败');
+        }else{
+            $this->success('报工成功');
+        }
 
     }
 }

+ 18 - 18
application/api/controller/WorkOrderSpotCheck.php

@@ -31,14 +31,14 @@ class WorkOrderSpotCheck extends Api
         if(!$this->request->isGet()){
             $this->error('请求方式错误');
         }
-        $rows = db()->table('db_抽检记录1')
+        $rows = db()->table('db_抽检记录')
             ->field('LEFT(Sys_rq, 10) as date, COUNT(*) as counts')
             ->group('date')
             ->order('UniqId desc')
             ->limit(45)
             ->select();
 
-        $arr = db()->table('db_抽检记录1')
+        $arr = db()->table('db_抽检记录')
             ->field('LEFT(Sys_rq, 10) as date, rtrim(Sys_id) as Sys_id, COUNT(Sys_id) as count')
             ->where('Sys_rq','>=',$rows[44]['date'])
             ->group('date, Sys_id')
@@ -86,7 +86,7 @@ class WorkOrderSpotCheck extends Api
         }
         if (isset($req['sys_id']) && !empty($req['sys_id'])) $where['Sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
 
-        $rows = db()->table('db_抽检记录1')
+        $rows = db()->table('db_抽检记录')
             ->field('LEFT(Sczl_rq, 10) as Sczl_rq, Sczl_bh, Sczl_gdbh, rtrim(Sczl_gxmc) as Sczl_gxmc,
             sczl_yjno, sczl_gxh, Sczl_num, Sczl_抽检数, sczl_A类废, sczl_B类废, sczl_C类废,
             rtrim(Sczl_desc) as Sczl_desc, rtrim(Sys_id) as Sys_id, Sys_rq, Mod_rq, UniqId')
@@ -95,7 +95,7 @@ class WorkOrderSpotCheck extends Api
             ->page($page,$limit)
             ->select();
 
-        $total = db()->table('db_抽检记录1')->where($where)->count();
+        $total = db()->table('db_抽检记录')->where($where)->count();
         $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
         $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
         foreach ($rows as $key=>$value) {
@@ -132,13 +132,13 @@ class WorkOrderSpotCheck extends Api
             $this->error('参数错误');
         }
 
-        $rows = db()->table('db_抽检记录1')
+        $rows = db()->table('db_抽检记录')
         ->field('Sczl_bh,rtrim(rs.员工姓名) as name,rtrim(sczl_bzdh) as sczl_bzdh ,LEFT(Sczl_rq, 10) as Sczl_rq,
         Sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc, rtrim(Sczl_gxmc) as Sczl_gxmc,sczl_gxh,Sczl_num,Sczl_抽检数,
         Sczl_A类废,Sczl_B类废,Sczl_C类废,rtrim(Sczl_desc) as Sczl_desc')
-        ->join('人事_基本资料 rs','rs.员工编号=db_抽检记录1.Sczl_bh','LEFT')
-        ->join('工单_基本资料 g','g.Gd_gdbh=db_抽检记录1.Sczl_gdbh','LEFT')
-        ->where('db_抽检记录1.UniqId',$UniqId)->limit(1)->select();
+        ->join('人事_基本资料 rs','rs.员工编号=db_抽检记录.Sczl_bh','LEFT')
+        ->join('工单_基本资料 g','g.Gd_gdbh=db_抽检记录.Sczl_gdbh','LEFT')
+        ->where('db_抽检记录.UniqId',$UniqId)->limit(1)->select();
 
         if($rows){
             $this->success('成功',$rows);
@@ -172,16 +172,16 @@ class WorkOrderSpotCheck extends Api
         if($gd){
             $search=$gd;
         }
-        $rows = db()->table('db_抽检记录1')
+        $rows = db()->table('db_抽检记录')
         ->field('Sczl_bh,sczl_yjno,rtrim(rs.员工姓名) as name,LEFT(Sczl_rq, 10) as Sczl_rq,
         Sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc, rtrim(Sczl_gxmc) as Sczl_gxmc,sczl_gxh,Sczl_num,Sczl_抽检数,
-        Sczl_A类废,Sczl_B类废,Sczl_C类废,rtrim(Sczl_desc) as Sczl_desc,rtrim(db_抽检记录1.Sys_id) as Sys_id,
-        db_抽检记录1.Sys_rq,db_抽检记录1.Mod_rq,db_抽检记录1.UniqId')
-        ->join('人事_基本资料 rs','rs.员工编号=db_抽检记录1.Sczl_bh','LEFT')
-        ->join('工单_基本资料 g','g.Gd_gdbh=db_抽检记录1.Sczl_gdbh','LEFT')
-        ->where('db_抽检记录1.Sczl_gdbh',$search)
+        Sczl_A类废,Sczl_B类废,Sczl_C类废,rtrim(Sczl_desc) as Sczl_desc,rtrim(db_抽检记录.Sys_id) as Sys_id,
+        db_抽检记录.Sys_rq,db_抽检记录.Mod_rq,db_抽检记录.UniqId')
+        ->join('人事_基本资料 rs','rs.员工编号=db_抽检记录.Sczl_bh','LEFT')
+        ->join('工单_基本资料 g','g.Gd_gdbh=db_抽检记录.Sczl_gdbh','LEFT')
+        ->where('db_抽检记录.Sczl_gdbh',$search)
         ->page($page,$limit)->select();
-        $total = db()->table('db_抽检记录1')->where('db_抽检记录1.Sczl_gdbh',$search)->count();
+        $total = db()->table('db_抽检记录')->where('db_抽检记录.Sczl_gdbh',$search)->count();
         $data = ['total'=> $total,'rows'=> $rows];
          if($rows){
             $this->success('成功',$data);
@@ -215,7 +215,7 @@ class WorkOrderSpotCheck extends Api
         //开启事务
         db()->startTrans();
         try{
-            $sql = db()->table('db_抽检记录1')->where('UniqId',$UniqId)->fetchSql(true)->update($req);
+            $sql = db()->table('db_抽检记录')->where('UniqId',$UniqId)->fetchSql(true)->update($req);
             $res= db()->query($sql);
             // 提交事务
             db()->commit();
@@ -255,7 +255,7 @@ class WorkOrderSpotCheck extends Api
         //开启事务
         db()->startTrans();
         try{
-            $sql = db()->table('db_抽检记录1')->fetchSql(true)->insert($req);
+            $sql = db()->table('db_抽检记录')->fetchSql(true)->insert($req);
             $res= db()->query($sql);
             // 提交事务
             db()->commit();
@@ -286,7 +286,7 @@ class WorkOrderSpotCheck extends Api
             $this->error('参数错误');
         }
 
-        $rows = db()->table('db_抽检记录1')->where('UniqId',$UniqId)->delete();
+        $rows = db()->table('db_抽检记录')->where('UniqId',$UniqId)->delete();
         if($rows){
            $this->success('成功');
         }else{