Эх сурвалжийг харах

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

曹鹤洋 1 жил өмнө
parent
commit
4bf640dde9

+ 21 - 28
application/api/controller/EmployeeDailySalary.php

@@ -44,31 +44,22 @@ class EmployeeDailySalary extends Api
         ->order('sys_rq desc')
         ->limit(15)
         ->column("DATE_FORMAT(`sys_rq`, '%Y%m')");
-        // $row = db()->table('绩效工资汇总')
-        // ->field('sys_ny,人事_基本资料.所在部门')
-        // ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
-        // ->group('sys_ny,人事_基本资料.所在部门')
-        // ->where(['sys_ny'=>['between',"$rows[14],$rows[0]"]])
-        // ->order('sys_ny desc')
-        // ->fetchSql(true)
-        // ->select();
-        foreach($rows as $k=>$v){
-            $res[$k]['ny']=$v;
-            $res[$k]['bh']=db()->table('绩效工资汇总')
-            ->group('bh')
-            ->where('sys_ny',$v)
-            ->column('bh');
+        $res=db()->table('绩效工资汇总')
+            ->field('sys_ny,bh')
+            ->group('sys_ny,bh')
+            ->where(['sys_ny'=>['between',"$rows[14],$rows[0]"]])
+            ->order('sys_ny desc')
+            ->select();
+        foreach($res as $v){
+            $arr[$v['sys_ny'].'-'][]=$v['bh'];
         }
         $rs = db()->table('人事_基本资料')->column('员工编号,所在部门');
-        foreach($res as $k=>$v){
-            foreach($v['bh'] as $value){
-                $res[$k]['bm'][]=rtrim($rs[$value]);
+        foreach($arr as $k=>$v){
+            foreach($v as $key=>$value){
+                $data[$k][$key]=rtrim($rs[$value]);
             }
-        }
-        foreach($res as &$v){
-            unset($v['bh']);
-            $v['bm']=array_unique($v['bm']);
-            usort($v['bm'], function($a, $b) {
+            $data[$k]=array_unique($data[$k]);
+            usort($data[$k], function($a, $b) {
                 $order = array(
                     '胶印车间',
                     '凹印车间',
@@ -86,13 +77,15 @@ class EmployeeDailySalary extends Api
                 return $a_index - $b_index;
             });
         }
-        foreach($res as $k=>$v){
-            $data[$k]['lable']=$v['ny'];
-            foreach($v['bm'] as $value){
-                $data[$k]['children'][]['lable']=$value;
+        $i=0;
+        foreach($data as $k=>$v){
+            $datas[$i]['lable']=str_replace('-','',$k);
+            foreach($v as $value){
+                $datas[$i]['children'][]['lable']=$value;
             }
+            $i++;
         }
-        $this->success('成功',$data);
+        $this->success('成功',$datas);
     }
     
 
@@ -111,7 +104,7 @@ class EmployeeDailySalary extends Api
         $req = $this->request->param();
         $res=db()->table('绩效工资汇总')
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
-            ->field('bh,xm as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
+            ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
             sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
             ->group('绩效工资汇总.bh,LEFT(sczl_rq, 10)')
             ->where('sys_ny',$req['date'])

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

@@ -45,6 +45,29 @@ class LargeWasteRewardPunish extends Api
         $this->success('成功',$rows);
     }
 
+    /**
+     * 获取工序大废品惩奖侧边栏根据工单
+     * @ApiMethod (GET)
+     */
+    public function getTabByGd()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $rows = db()->table('db_大废品')
+            ->field('sczl_gdbh,rtrim(g.成品名称) as 成品名称')
+            ->join('工单_基本资料 g','g.Gd_gdbh=db_大废品.sczl_gdbh','LEFT')
+            ->group('sczl_gdbh')
+            ->whereTime('db_大废品.sys_rq', '>=', strtotime('-60 days'))
+            ->order('sczl_gdbh desc')
+            ->select();
+        foreach($rows as $key=>$value){
+            $data[$key]['lable']=$value['sczl_gdbh'].' 【'.$value['成品名称'].'】';
+            $data[$key]['sczl_gdbh']=$value['sczl_gdbh'];
+        }
+        $this->success('成功',$data);
+    }
     /**
      * 获取工序大废品惩奖列表
      * @ApiMethod (GET)
@@ -69,8 +92,19 @@ class LargeWasteRewardPunish extends Api
         }else{
             $this->error('参数错误');
         }
-
-        $rows = db()->table('db_大废品')
+        $res = db()->table('db_大废品')
+        ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno, 
+        rtrim(责任部门) as 责任部门, CAST(sczl_cl AS SIGNED) as sczl_cl, 
+        rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, Jl_bzdh, JL_bh1, 
+        sczl_bzdh, sczl_bh1, sczl_bh2, rtrim(sys_id) as sys_id, sys_rq, UniqId')
+        ->where('sczl_gdbh',$req['date'])
+        ->order('UniqId desc')
+        ->page($page,$limit)
+        ->select();
+        if($res){
+            $rows=$res;
+        }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, 
             rtrim(责任部门) as 责任部门, CAST(sczl_cl AS SIGNED) as sczl_cl, 
             rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, Jl_bzdh, JL_bh1, 
@@ -79,7 +113,7 @@ class LargeWasteRewardPunish extends Api
             ->order('UniqId desc')
             ->page($page,$limit)
             ->select();
-
+        }
         $total = db()->table('db_大废品')->where($where)->count();
         $gd = db()->table('工单_印件资料')->column('Yj_Gdbh, yj_yjmc');
         $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');

+ 353 - 0
application/api/controller/OvertimeVerification.php

@@ -0,0 +1,353 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+use \think\Request;
+use \think\Db;
+/**
+ * 计件员工加班费核查接口
+ */
+class OvertimeVerification 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('-15 months'))
+        // ->group('sys_ny')
+        // ->order('sys_ny desc')
+        // ->limit(15)
+        // ->column('sys_ny');
+        $rows = db()->table('db_大废品')
+        ->whereTime('sys_rq', '>=', strtotime('-15 months'))
+        ->group("DATE_FORMAT(`sys_rq`, '%Y%m')")
+        ->order('sys_rq desc')
+        ->limit(15)
+        ->column("DATE_FORMAT(`sys_rq`, '%Y%m')");
+        $res=db()->table('绩效工资汇总')
+            ->field('sys_ny,bh')
+            ->group('sys_ny,bh')
+            ->where(['sys_ny'=>['between',"$rows[14],$rows[0]"]])
+            ->order('sys_ny desc')
+            ->select();
+        foreach($res as $v){
+            $arr[$v['sys_ny'].'('][]=$v['bh'];
+        }
+        $rs = db()->table('人事_基本资料')->column('员工编号,所在部门');
+        foreach($arr as $k=>$v){
+            foreach($v as $value){
+                $data[$k.count($v).'人)'][rtrim($rs[$value])][]=rtrim($rs[$value]);
+            }
+            $j=0;
+            foreach($data[$k.count($v).'人)'] as $keys=>$values){
+                $data[$k.count($v).'人)']['bm'][$j]=$keys;
+                $data[$k.count($v).'人)'][$keys]=count($values);
+                $j++;
+            }
+            usort($data[$k.count($v).'人)']['bm'], function($a, $b) {
+                $order = array(
+                    '胶印车间',
+                    '凹印车间',
+                    '丝印车间',
+                    '模切车间',
+                    '检验车间',
+                    '精品试验车间',
+                    '品保部',
+                    '人力资源部',
+                    '生产部',
+                    '营销部'
+                );
+                $a_index = array_search($a, $order);
+                $b_index = array_search($b, $order);
+                return $a_index - $b_index;
+            });
+            foreach($data[$k.count($v).'人)']['bm'] as &$va){
+                $va=$va.'('.$data[$k.count($v).'人)'][$va].'人)';
+            }
+            $data[$k.count($v).'人)']=$data[$k.count($v).'人)']['bm'];
+        }
+        $i=0;
+        foreach($data as $k=>$v){
+            $datas[$i]['lable']=$k;
+            foreach($v as $value){
+                $datas[$i]['children'][]['lable']=$value;
+            }
+            $i++;
+        }
+        $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();
+        $res=db()->table('绩效工资汇总')
+            ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
+            ->field('bh,rtrim(xm) as 员工姓名,人事_基本资料.工资表类别,LEFT(人事_基本资料.聘用日期, 10) as 聘用日期,法定天数,
+            sum(日定额) as 当月定额,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
+            sum(个人加班工资) as 个人加班工资,sum(计时补差额工资) as 计时补差,LEFT(sczl_rq, 7) as sczl_rq')
+            ->group('绩效工资汇总.bh')
+            ->where('sys_ny',$req['date'])
+            ->where('人事_基本资料.所在部门',$req['department'])
+            ->select();
+        if(!$res){
+            $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';
+        }
+        $res1=db()->table('db_wgjs1')
+        ->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']])
+        ->select();
+        $res2=db()->table('db_wgjs1')
+        ->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']])
+        ->select();
+        $res3=db()->table('db_wgjs1')
+        ->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']])
+        ->select();
+        $res4=db()->table('db_wgjs1')
+        ->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']])
+        ->select();
+        $res5=db()->table('db_wgjs1')
+        ->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']])
+        ->select();
+        $res6=db()->table('db_wgjs1')
+        ->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']])
+        ->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'];
+            }
+        }
+        foreach($res as &$v){
+            $v['聘用日期']=str_replace('-','.',$v['聘用日期']);
+            if(isset($list[$v['sczl_rq']][$v['bh']])){
+                $v['月计时时数']=$list[$v['sczl_rq']][$v['bh']];
+            }else{
+                $v['月计时时数']='';
+            }  
+            unset($v['sczl_rq']);
+        }
+        $this->success('成功',$res);
+    }
+    /**
+     * 计件员工加班费核查下侧列表
+     * @ApiMethod (GET)
+     * @param string $date 年月
+     * @param string $code 员工编号
+     */
+    public function getAllList()
+    {
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $res=db()->table('绩效工资汇总')
+            ->field('LEFT(sczl_rq, 10) as sczl_rq,sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc,sczl_yjno,sczl_gxh,sczl_type,
+            sczl_jtbh,sum(班组车头产量) as 班组车头产量,工序难度系数 as 产量系数,(sum(班组车头产量*工序难度系数)) as 计件产量,
+            sum(班组换算产量) as 补产产量,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 核算产量,日定额,sum(达标定额)
+            as 达标定额,千件工价,补产标准,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,Rate as 个人比例,
+            sum(装版工时) as 装版工时,sum(保养工时) as 保养工时,sum(打样工时) as 打样工时,sum(计时补差额工资) as 计时补差')
+            ->join('工单_基本资料 g','g.Gd_gdbh=绩效工资汇总.sczl_gdbh','LEFT')
+            ->group('LEFT(sczl_rq, 10),sczl_gdbh')
+            ->where(['sys_ny'=>$req['date'],'bh'=>$req['code']])
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+        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'];
+        }
+        $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';
+        $res=db()->table('绩效工资汇总')
+           ->field('LEFT(sczl_rq, 10) as sczl_rq,sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc,sczl_yjno,sczl_gxh,sczl_type,
+            sczl_jtbh,sum(班组车头产量) as 班组车头产量,工序难度系数 as 产量系数,(sum(班组车头产量*工序难度系数)) as 计件产量,
+            sum(班组换算产量) as 补产产量,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 核算产量,日定额,sum(达标定额)
+            as 达标定额,千件工价,补产标准,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,Rate as 个人比例,
+            sum(装版工时) as 装版工时,sum(保养工时) as 保养工时,sum(打样工时) as 打样工时,sum(计时补差额工资) as 计时补差')
+            ->join('工单_基本资料 g','g.Gd_gdbh=绩效工资汇总.sczl_gdbh','LEFT')
+            ->group('LEFT(sczl_rq, 10),sczl_gdbh')
+            ->where(['sczl_rq'=>['between',"$start_time,$end_time"],'bh'=>$req['code']])
+            ->select();
+        if(!$res){
+            $this->error('失败');
+        }
+        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'];
+        }
+        $this->success('成功',$res);
+    }
+    /**
+     * 定位
+     * @ApiMethod GET
+    */
+    public function search(){
+      
+        //get请求
+        if(!$this->request->isGet()){
+            $this->error('请求方式错误');
+        }
+        $req = $this->request->param();
+        $yg = db()->table('人事_基本资料')->where('员工姓名',$req['search'])->value('员工编号');
+        if($yg){
+            $req['search']=$yg;
+        }
+        $res=db()->table('绩效工资汇总')
+            ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
+            ->field('bh,rtrim(xm) as 员工姓名,人事_基本资料.工资表类别,LEFT(人事_基本资料.聘用日期, 10) as 聘用日期,法定天数,
+            sum(日定额) as 当月定额,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
+            sum(个人加班工资) as 个人加班工资,sum(计时补差额工资) as 计时补差,LEFT(sczl_rq, 7) as sczl_rq')
+            ->group('绩效工资汇总.bh')
+            ->where('sys_ny',$req['date'])
+            ->where('bh',$req['search'])
+            ->select();
+        if(!$res){
+            $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';
+        }
+        $res1=db()->table('db_wgjs1')
+        ->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')
+        ->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')
+        ->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')
+        ->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')
+        ->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')
+        ->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();
+        $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'];
+            }
+        }
+        foreach($res as &$v){
+            $v['聘用日期']=str_replace('-','.',$v['聘用日期']);
+            if(isset($list[$v['sczl_rq']][$v['bh']])){
+                $v['月计时时数']=$list[$v['sczl_rq']][$v['bh']];
+            }else{
+                $v['月计时时数']='';
+            }  
+            unset($v['sczl_rq']);
+        }
+        $this->success('成功',$res);
+    }
+}

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

@@ -0,0 +1,196 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+use \think\Request;
+use \think\Db;
+/**
+ * 车间报工接口
+ */
+class ReportingWork extends Api
+{
+    protected $noNeedLogin = ['*'];
+    protected $noNeedRight = ['*'];
+
+    /**
+     * 首页
+     *
+     */
+    public function index()
+    {
+        $this->success('请求成功');
+    }
+    /**
+     * 设置机台状态
+     * @ApiMethod POST
+     * @params
+    */
+    public function setMachineStatus(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (!isset($params['machine']) || empty($params['machine'])){
+            $this->error('参数不能为空');
+        }
+        $machine = $params['machine'].'#';
+        $data = [];
+        $lastData = Db::name('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
+        if ($lastData['UniqId'] < 160000000){
+            $id = 160000000;
+        }else{
+            $id = $lastData['UniqId'] + 1;
+        }
+        if (empty($params['order'])){
+            unset($lastData['UniqId']);
+            $data = $lastData;
+            $data['当前状态'] = $params['status'];
+        }else{
+            $data['当前状态'] = $params['status'];
+            $data['时间'] = date('Y-m-d H:i:s');
+            $data['设备编号'] = $machine;
+            $data['工单编号'] = $params['order'];
+            $data['印件号'] = $params['yjno'];
+            $data['工序号'] = (int)substr($params['gy_name'],0,2);
+            $data['工序名称'] = $params['gy_name'];
+            $data['当班产量'] = $params['production_now'];
+            $data['累计产量'] = $params['production_all'];
+            $class = explode(',',$params['class']);
+            $where = [];
+            $where['sczl_jtbh'] = $machine;
+            for ($i=1;$i<=count($class);$i++){
+                $where['sczl_bh'.$i] = $class[$i-1];
+            }
+            $classData = Db::name('设备_班组资料')->where($where)->field('sczl_bzdh,UniqId')->find();
+            $data['班组编号'] = $classData['sczl_bzdh'];
+            $data['班组ID'] = $classData['UniqId'];
+            // 获取当前时间
+            $current_time = time();
+            // 设置时间范围
+            $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00');
+            $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00');
+            $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00');
+            $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00');
+            // 判断当前时间属于哪个时间范围
+            if ($current_time >= $start_time1 && $current_time <= $end_time1) {
+                $data['开工时间'] = date('Y-m-d') . ' 08:30:00';
+            } elseif ($current_time > $end_time1 && $current_time <= $end_time2) {
+                $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
+
+            } elseif ($current_time > $end_time1 && $current_time <= $start_time3) {
+                $data['开工时间'] = date('Y-m-d',strtotime('+1 day')) . ' 08:30:00';
+            }
+            $option['Gy0_gdbh'] = $params['order'];
+            $option['Gy0_yjno'] = $params['yjno'];
+            $option['Gy0_gxh'] = $data['工序号'];
+            $data['任务ID'] = Db::name('工单_工艺资料')->where($option)->value('UniqId');
+        }
+        $data['UniqId'] = $id;
+        $sql = Db::name('设备_产量采集')->fetchSql(true)->insert($data);
+        $res = Db::query($sql);
+        if ($res === false){
+            $this->success('设置失败');
+        }else{
+            $this->error('设置成功');
+        }
+    }
+    /**
+     * 设置工单工序完工
+     * @ApiMethod POST
+     * @params string order
+     * @params string yjno
+     * @params string gxh
+    */
+    public function setProcessStatus(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (!isset($params['order']) || empty($params['order'])){
+            $this->error('参数不能为空');
+        }
+        if (!isset($params['yjno']) || empty($params['yjno'])){
+            $this->error('参数不能为空');
+        }
+        if (!isset($params['gxh']) || empty($params['gxh'])){
+            $this->error('参数不能为空');
+        }
+        $where['Gy0_gdbh'] = $params['order'];
+        $where['Gy0_yjno'] = $params['yjno'];
+        $where['Gy0_gxh'] = $params['gxh'];
+        $date = date('Y-m-d H:i:s');
+        $res = Db::name('工单_工艺资料')->where($where)->setField('PD_WG',$date);
+        if ($res === false){
+            $this->success('设置失败');
+        }else{
+            $this->error('设置成功');
+        }
+    }
+    /**
+     * 根据机台获取生产信息
+     * @ApiMethod GET
+     * @params string machine
+    */
+    public function getProduceInfo(){
+        if (Request::instance()->isGet() == false) {
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (!isset($params['machine']) || empty($params['machine'])) {
+            $this->error('参数错误');
+        }
+        $machine = $params['machine'].'#';
+        $data = Db::name('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
+        $list = [];
+        $list['order'] = $data['工单编号'];
+        $list['yjno'] = $data['印件号'];
+        $name = Db::name('工单_基本资料')->where('Gd_Gdbh',$data['工单编号'])->value('成品名称');
+        $list['product_name'] = rtrim($name);
+        $where['Gy0_gdbh'] = $data['工单编号'];
+        $where['Gy0_yjno'] = $data['印件号'];
+        $where['Gy0_gxh'] = $data['工序号'];
+        $gxmc = Db::name('工单_工艺资料')->where($where)->value('Gy0_gxmc');
+        $list['gxmc'] = rtrim($gxmc);
+        $this->success('请求成功',$list);
+    }
+    /**
+     * 根据员工编号获取姓名
+     * @ApiMethod GET
+     * @params string code
+    */
+    public function getStaffName(){
+        if (Request::instance()->isGet() == false) {
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (!isset($params['code']) || empty($params['code'])) {
+            $this->error('参数错误');
+        }
+        if (substr($params['code'],0,2) == 'ZM'){
+            $code = $params['code'];
+        }else{
+            if (strlen($params['code']) != 5){
+                $length = strlen($params['code']);
+                $len = 5 -$length;
+                $str = '';
+                for ($i=0;$i<$len;$i++){
+                    $str .= '0';
+                }
+                $code = 'ZM'.$str.$params['code'];
+            }else{
+                $code = 'ZM'.$params['code'];
+            }
+        }
+        $data = Db::name('人事_基本资料')->where('员工编号',$code)->value('员工姓名');
+        $this->success('请求成功',rtrim($data));
+    }
+    /**
+     * 提交巡查记录
+     * @ApiMethod POST
+     * @params
+    */
+    public function submitPatrolRecord(){
+
+    }
+}

+ 128 - 40
application/api/controller/WorkOrder.php

@@ -6,6 +6,7 @@ namespace app\api\controller;
 use app\common\controller\Api;
 use Monolog\Handler\IFTTTHandler;
 use think\Db;
+use think\Request;
 
 /**
  * 工单资料管理
@@ -160,6 +161,21 @@ class WorkOrder extends Api
                     '建档用户' => rtrim($value['Sys_id']),
                     '建档时间' => rtrim($value['Sys_rq']),
                     '更新时间' => rtrim($value['Mod_rq']),
+                    'zzdh1'  => rtrim($value['yj_zzdh1']),
+                    'zzdh2'  => rtrim($value['yj_zzdh2']),
+                    'zzdh3'  => rtrim($value['yj_zzdh3']),
+                    'zzdh4'  => rtrim($value['yj_zzdh4']),
+                    'zzmc1'  => rtrim($value['yj_zzmc1']),
+                    'zzmc2'  => rtrim($value['yj_zzmc2']),
+                    'zzmc3'  => rtrim($value['yj_zzmc3']),
+                    'zzmc4'  => rtrim($value['yj_zzmc4']),
+                    '订单数量' => rtrim($value['yj_成品数量']),
+                    '万小张' => rtrim($value['yj_实际投料']),
+                    '开数' => rtrim($value['yj_ks']),
+                    '联数' => rtrim($value['yj_ls']),
+                    '核算规格' => rtrim($value['Yj_核算规格']),
+                    '备注' => rtrim($value['yj_desc']),
+                    'Uniqid' => rtrim($value['Uniqid'])
                 ];
             }
         }
@@ -228,6 +244,11 @@ class WorkOrder extends Api
                     '建档用户' => rtrim($value['Sys_id']),
                     '建档日期' => isset($value['Sys_rq'])?rtrim($value['Sys_rq']):'',
                     '更新时间' => isset($value['Mod_rq'])?rtrim($value['Mod_rq']):'',
+                    '车间名称' => rtrim($value['Gy0_SITE']),
+                    '质量要求' => rtrim($value['质量要求']),
+                    '质量隐患' => rtrim($value['质量隐患']),
+                    '开数' => rtrim($value['Gy0_ks']),
+                    '联数' => rtrim($value['Gy0_ls'])
                 ];
             }
         }
@@ -576,6 +597,33 @@ class WorkOrder extends Api
         }
     }
 
+    /**
+     * U8工单列表
+     * @ApiMethod (GET)
+     * @param  void
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public function U8workOrder()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (empty($param)){
+            $this->error('参数错误');
+        }
+        $filed = 'rtrim(Gd_gdbh) as 工单编号,rtrim(行号) as 行号,rtrim(Gd_客户代号) as 客户代号,rtrim(Gd_客户名称) as 客户名称,
+        rtrim(成品代号) as 成品代号,rtrim(成品名称) as 成品名称,rtrim(Mod_rq) as 获取日期,rtrim(Uniqid) as 序号';
+        $list = Db::table('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->field($filed)->select();
+        if (empty($list)){
+            $this->error('未找到工单');
+        }
+        $this->success('成功',$list);
+    }
+
     /**
      * U8工单资料删除
      * @param string $workOrder  工单编号
@@ -588,11 +636,17 @@ class WorkOrder extends Api
         if($this->request->isGet() === false){
             $this->error('请求错误');
         }
-        $workOrder = input('workOrder');
+        $workOrder = input('Uniqid');
         if (empty($workOrder)){
             $this->error('参数错误');
         }
-        $res = Db::table('工单_基本资料')->where('Gd_gdbh',$workOrder)->delete();
+        $data = [];
+        if (strpos($workOrder,',')){
+            $data = explode(',',$workOrder);
+        }else{
+            $data[0] = $workOrder;
+        }
+        $res = Db::table('工单_基本资料')->where('Uniqid','in',$data)->delete();
         if ($res !== false){
             $this->success('成功');
         }else{
@@ -624,7 +678,8 @@ class WorkOrder extends Api
             'Gy0_gxmc' => ['like','%检%']
         ];
         $filed = 'rtrim(Gy0_gdbh) as gdbh,rtrim(Gy0_yjno) as yjno,rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(人工检_正品板) as 人工正品板,
-        rtrim(人工检_次品板) as 人工次品板,rtrim(人工检_废检) as 人工废检,rtrim(机检_正品板) as 机检正品板,rtrim(机检_次品板) as 机检次品板,rtrim(机检_废检) as 机检废检,rtrim(Gy0_sbbh) as 设备编号';
+        rtrim(人工检_次品板) as 人工次品板,rtrim(人工检_废检) as 人工废检,rtrim(机检_正品板) as 机检正品板,rtrim(机检_次品板) as 机检次品板,
+        rtrim(机检_废检) as 机检废检,rtrim(Gy0_sbbh) as 设备编号,rtrim(Uniqid) as Uniqid';
         $list = Db::table('工单_工艺资料')->where($where)->field($filed)->select();
         if (empty($list)){
             $this->error('未找到该工单工艺');
@@ -719,7 +774,7 @@ class WorkOrder extends Api
         }
         $field = 'rtrim(Gy0_方案) as 方案,rtrim(Gy0_yjno) as yjno,rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(Add_gxmc) as add_gxmc,
         rtrim(Gy0_sbbh) as 参照设备,rtrim(工价系数) as 难度系数,rtrim(Gy0_shdh) as 损耗代号,rtrim(Gy0_Rate0) as 基础损耗,rtrim(Gy0_Rate1) as 损耗率,
-        rtrim(印刷方式) as 印刷方式,rtrim(版距) as 版距,rtrim(Gy0_ms) as 计损色数,rtrim(损耗系数) as 损耗系数';
+        rtrim(印刷方式) as 印刷方式,rtrim(版距) as 版距,rtrim(Gy0_ms) as 计损色数,rtrim(损耗系数) as 损耗系数,rtrim(UniqId) as UniqId';
         $list = Db::table('工单_工艺资料')->where('Gy0_gdbh',$workOrder)->field($field)->select();
         if (empty($list)){
             $this->error('未找到该工单工艺资料');
@@ -737,19 +792,11 @@ class WorkOrder extends Api
         $this->success('成功',$list);
     }
 
-    //
 
     /**
      * 修正工单核算参数->参数修改
-     * @ApiMethod (GET)
-     * @param string workorder   工单编号
-     * @param string processCode   工序号
-     * @param float  difficulty  难度系数
-     * @param string loss  损耗代号
-     * @param string peintMode  印刷方式
-     * @param float  plate  版距
-     * @param float chromatic  计损色数
-     * @param float wastage 损耗系数
+     * @ApiMethod (POST)
+     * @param  void
      * @return void
      * @throws \think\Exception
      * @throws \think\db\exception\DataNotFoundException
@@ -759,47 +806,88 @@ class WorkOrder extends Api
      */
     public function AccountingParameterEdit()
     {
-        if ($this->request->isPost() === false){
+        if (Request::instance()->isPost() === false){
             $this->error('请求错误');
         }
-        $workOrder = input('workOrder');
-        $processCode = input('processCode');
-        if (empty($workOrder) || empty($processCode)){
+        $param = Request::instance()->post();
+        if (empty($param) || isset($param[0]['Uniqid']) === false){
             $this->error('参数错误');
         }
-        $row = [
-            '工价系数' => input('difficulty'),
-            'Gy0_shdh' => input('loss'),
-            '印刷方式' => input('printMode'),
-            '版距' => input('plate'),
-            'Gy0_ms' => input('chromatic'),
-            '损耗系数' => input('wastage'),
-        ];
-        //根据损耗代号获取基础损耗、损耗率
-        $data = Db::table('dic_lzsh')->where('sys_bh',$row['Gy0_shdh'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
-        $row['基础损耗'] = $data['rate0'];
-        $row['损耗率'] = $data['rate1'];
-        $sql = Db::table('工单_工艺资料')->where(['Gy0_gdbh'=>$workOrder,'Gy0_gxh'=>$processCode])->fetchSql(true)->update($row);
-        $res = Db::query($sql);
-        if ($res !== false){
+        $i = 0;
+        foreach ($param as $key=>$value){
+            $data = Db::table('dic_lzsh')->where('sys_bh',$value['loss'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
+            $row = [
+                '工价系数' => $value['difficulty']?:'',
+                'Gy0_shdh' => $value['loss']?:'',
+                '印刷方式' => $value['printMode']?:'',
+                '版距' => $value['plate']?:'',
+                'Gy0_ms' => $value['chromatic']?:'',
+                '损耗系数' => $value['wastage']?:'',
+                'Gy0_Rate0' => $data['rate0'],
+                'Gy0_Rate1' => $data['rate1']
+            ];
+            $sql = Db::table('工单_工艺资料')->where('Uniqid',$value['Uniqid'])->fetchSql(true)->update($row);
+            $res = Db::query($sql);
+            if ($res !== false){
+                $i++;
+            }
+        }
+        if ($i !== 0){
             $this->success('成功');
         }else{
             $this->error('失败');
         }
     }
 
-    //工单工序产量统计
+    /**
+     * 印件资料修改
+     * @ApiMethod (POST)
+     * @param  void
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
 
-    public function OutputStatistics()
+    public function PrintedEdit()
     {
-        if ($this->request->isGet() === false){
+        if ($this->request->isPost() === false){
             $this->error('请求错误');
         }
-        $workOrder  = input('workOrder');
-        if (empty($workOrder)){
+        $param = $this->request->param();
+        if (empty($param) || isset($param['Uniqid']) === false){
             $this->error('参数错误');
         }
-//        $filed = 'rtrim(Gy0_yjno) as yjno,rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(Add_gxmc) as add_gxmc,rtrim(Gy0_计划接货数) as 工序计划产量,
-//        rtrim(Gy0_ls) as 联数,'
+        $data = [
+            'yj_Yjno' => isset($param['yjno'])?$param['yjno']:'',
+            'yj_Yjdh' => isset($param['yjdh'])?$param['yjdh']:'',
+            'yj_yjmc' => isset($param['yjmc'])?$param['yjmc']:'',
+            'yj_zzdh' => isset($param['zzdh'])?$param['zzdh']:'',
+            'yj_zzdh1' => isset($param['zzdh1'])?$param['zzdh1']:'',
+            'yj_zzdh2' => isset($param['zzdh2'])?$param['zzdh2']:'',
+            'yj_zzdh3' => isset($param['zzdh3'])?$param['zzdh3']:'',
+            'yj_zzdh4' => isset($param['zzdh4'])?$param['zzdh4']:'',
+            'yj_zzmc' => isset($param['zzmc'])?$param['zzmc']:'',
+            'yj_zzmc1' => isset($param['zzmc1'])?$param['zzmc1']:'',
+            'yj_zzmc2' => isset($param['zzmc2'])?$param['zzmc2']:'',
+            'yj_zzmc3' => isset($param['zzmc3'])?$param['zzmc3']:'',
+            'yj_zzmc4' => isset($param['zzmc4'])?$param['zzmc4']:'',
+            'yj_成品数量' => isset($param['cpsl'])?$param['cpsl']:'',
+            'yj_实际投料' => isset($param['sjtl'])?$param['sjtl']:'',
+            'yj_平张投料' => isset($param['pztl'])?$param['pztl']:'',
+            'yj_tlgg' => isset($param['tlgg'])?$param['tlgg']:'',
+            'yj_klgg' => isset($param['klgg'])?$param['klgg']:'',
+            'Yj_核算规格' => isset($param['hsgg'])?$param['hsgg']:'',
+            'yj_ks' => isset($param['ks'])?$param['ks']:'',
+            'yj_ls' => isset($param['ls'])?$param['ls']:'',
+            'yj_desc' => isset($param['desc'])?$param['desc']:'',
+        ];
+        $sql = Db::table('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
+        $res = Db::query($sql);
+        if ($res !== false){
+            $this->success('成功');
+        }else{
+            $this->error('失败');
+        }
+
     }
 }