浏览代码

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

曹鹤洋 1 年之前
父节点
当前提交
a730aed72b

+ 29 - 57
application/api/controller/EmployeeDailySalary.php

@@ -38,13 +38,13 @@ class EmployeeDailySalary extends Api
         // ->order('sys_ny desc')
         // ->limit(15)
         // ->column('sys_ny');
-        $rows = db()->table('db_大废品')
+        $rows = db('db_大废品')->cache(true,86400)
         ->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('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->field('sys_ny,bh')
             ->group('sys_ny,bh')
             ->where(['sys_ny'=>['between',"$rows[14],$rows[0]"]])
@@ -53,7 +53,7 @@ class EmployeeDailySalary extends Api
         foreach($res as $v){
             $arr[$v['sys_ny'].'-'][]=$v['bh'];
         }
-        $rs = db()->table('人事_基本资料')->column('员工编号,所在部门');
+        $rs = db('人事_基本资料')->cache(true,86400)->column('员工编号,所在部门');
         foreach($arr as $k=>$v){
             foreach($v as $key=>$value){
                 $data[$k][$key]=rtrim($rs[$value]);
@@ -102,7 +102,7 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
             ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
             sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
@@ -122,32 +122,32 @@ 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_wgjs')
+        $res1=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res2=db()->table('db_wgjs')
+        $res2=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res3=db()->table('db_wgjs')
+        $res3=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res4=db()->table('db_wgjs')
+        $res4=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res5=db()->table('db_wgjs')
+        $res5=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res6=db()->table('db_wgjs')
+        $res6=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh6','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
@@ -183,7 +183,7 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->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 班组车头产量,sum(班组换算产量) as 班组换算产量,工序难度系数,sum(个人计件工资)
             as 个人计件工资,sum(个人加班工资) as 个人加班工资,sum(装版工时) as 装版工时,sum(保养工时) as 保养工时,
@@ -229,7 +229,7 @@ class EmployeeDailySalary extends Api
         $req = $this->request->param();
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->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 班组车头产量,sum(班组换算产量) as 班组换算产量,工序难度系数,sum(个人计件工资)
             as 个人计件工资,sum(个人加班工资) as 个人加班工资,sum(装版工时) as 装版工时,sum(保养工时) as 保养工时,
@@ -260,34 +260,6 @@ class EmployeeDailySalary extends Api
         }
         $this->success('成功',$res);
     }
-
-    /**
-     * 获取计件工计时单信息
-     * @ApiMethod (GET)
-     * @param string $UniqId UniqId
-     */
-    public function getInfo()
-    {
-        //get请求
-        if(!$this->request->isGet()){
-            $this->error('请求方式错误');
-        }
-        $req = $this->request->param();
-        if (isset($req['UniqId']) && !empty($req['UniqId'])){
-            $UniqId = $req['UniqId'];
-        }else{
-            $this->error('参数错误');
-        }
-
-        $rows = db()->table('db_wgjs')->alias('d')
-            ->field('d.*, ')
-            ->join('工单_基本资料 g', 'd.')
-            ->where('d.UniqId',$UniqId)
-            ->select();
-
-
-        $this->success('成功',$rows);
-    }
     /**
      * 定位
      * @ApiMethod GET
@@ -299,11 +271,11 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $yg = db()->table('人事_基本资料')->where('员工姓名',$req['search'])->value('员工编号');
+        $yg = db('人事_基本资料')->cache(true,86400)->where('员工姓名',$req['search'])->value('员工编号');
         if($yg){
             $req['search']=$yg;
         }
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             // ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
             ->field('bh,xm as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
             sum(个人加班工资) as 加班工资,(sum(个人计件工资)+sum(个人加班工资)) as 日工资合计')
@@ -324,32 +296,32 @@ 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_wgjs')
+        $res1=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
         ->select();
-        $res2=db()->table('db_wgjs')
+        $res2=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh2'=>$req['search']])
         ->select();
-        $res3=db()->table('db_wgjs')
+        $res3=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh3'=>$req['search']])
         ->select();
-        $res4=db()->table('db_wgjs')
+        $res4=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh4'=>$req['search']])
         ->select();
-        $res5=db()->table('db_wgjs')
+        $res5=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh5'=>$req['search']])
         ->select();
-        $res6=db()->table('db_wgjs')
+        $res6=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         // ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh6','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh6'=>$req['search']])
@@ -390,7 +362,7 @@ class EmployeeDailySalary extends Api
         $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('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
            ->field('LEFT(sczl_rq, 10) as sczl_rq,sczl_gdbh,rtrim(g.员工姓名) as 员工资料,sczl_yjno,sczl_gxh,sczl_type,
             sczl_jtbh,班组车头产量,保养工时,装版工时,打样工时,异常停机工时,补产标准,计时补差额工资 as 班组补产,日定额,达标定额,千件工价,
             个人计件工资,个人加班工资,Rate as 个人比例')
@@ -432,7 +404,7 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
             ->field('bh,rtrim(xm) as 员工姓名,LEFT(sczl_rq, 10) as sczl_rq,sum(个人计件工资) as 计件工资,
             sum(个人加班工资) as 加班工资')
@@ -452,32 +424,32 @@ 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_wgjs')
+        $res1=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res2=db()->table('db_wgjs')
+        $res2=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res3=db()->table('db_wgjs')
+        $res3=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res4=db()->table('db_wgjs')
+        $res4=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res5=db()->table('db_wgjs')
+        $res5=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res6=db()->table('db_wgjs')
+        $res6=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 10) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh6','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
@@ -514,7 +486,7 @@ class EmployeeDailySalary extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效加班工资月度修正')
+        $res=db('绩效加班工资月度修正')->cache(true,86400)
             ->field('人事_基本资料.所在部门,bh,rtrim(xm) as xm,月计时时数,DATE_FORMAT(sczl_rq,"%Y.%m.%d") as sczl_rq,sczl_gdbh,sczl_yjno,sczl_gxh,
             千件工价,Rate,sum(达标定额) as 达标定额,sum(个人计件工资) as 个人计件工资,sum(个人加班工资) as 个人加班工资,计时冲定额,sum(New_计件工资) as
             New_计件工资,sum(New_加班工资) as New_加班工资,调整量_合计')

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

@@ -93,7 +93,7 @@ class Facility extends Api
         //产品名称
         $productName = \db('工单_基本资料')->whereIn('Gd_gdbh',$Gd_gdbh)->column('Gd_cpmc','Gd_gdbh');
         //组员信息
-        $list = \db('设备_产量计酬')->where($where)->field($field)->select();
+        $list = \db('设备_产量计酬')->where($where)->field($field)->cache(true,86400)->select();
         $totalA = \db('设备_产量计酬')->where($where)->where('sczl_bzdh','A班')->field('SUM(sczl_cl) as 产量')->select();
         $totalB = \db('设备_产量计酬')->where($where)->where('sczl_bzdh','B班')->field('SUM(sczl_cl) as 产量')->select();
         if (empty($list)){
@@ -149,62 +149,45 @@ class Facility extends Api
             '开工时间' => ['between',[date('Y-m-d 08:00:00',strtotime($date)),date('Y-m-d 08:00:00',strtotime($date)+86400)]],
             '类别' => ['in',['IPQC检验','机台检验']],
         ];
-        //检验项目筛选
-        $itemA = \db('制程检验_记录')->where($where)->distinct(true)->cache(true,3600)->where('班组编号','A班')->column('rtrim(检验项目)');
-        $itemB = \db('制程检验_记录')->where($where)->distinct(true)->cache(true,3600)->where('班组编号','B班')->column('rtrim(检验项目)');
-        //检验时间
-        $InspectionTime = \db('制程检验_记录')->where($where)->distinct(true)->column('提交时间');
-        foreach ($InspectionTime as $k=>$v){
-            $InspectionTime[$k] = date('H:i',strtotime($v));
-        }
-        //检测记录详情
-        $field = 'rtrim(工单编号) as 工单编号,rtrim(印件号) as 印件号,rtrim(工序名称) as 工序名称';
-        $nameDetailA = \db('制程检验_记录')->cache(true,3600)->where($where)->field($field)->where('班组编号','A班')->find();
-        $nameDetailB = \db('制程检验_记录')->cache(true,3600)->where($where)->field($field)->where('班组编号','B班')->find();
-        $list = $data1 = $data2 = [];
-        //A班检测数据
-        foreach ($itemA as $key=>$value){
-            $SubmissionTime = \db('制程检验_记录')->where($where)
-                ->where('班组编号','A班')
-                ->where('检验项目',$value)
-                ->where('检验结果','合格')
-                ->field('rtrim(提交时间) as 提交时间')
-                ->select();
-            $time = [];
-            foreach ($SubmissionTime as $k=>$v){
-                $time[$k] = date('H:i',strtotime($v['提交时间']));
-            }
-            $data1[$key] = [
-                '工单编号' => $nameDetailA['工单编号'],
-                '印件号' => $nameDetailA['印件号'],
-                '工序名称' => $nameDetailA['工序名称'],
-                '检验项目' => $value,
-                'inspectresult' => implode(',',$time),
-            ];
+        $field = 'rtrim(工单编号) as 工单编号,rtrim(印件号) as 印件号,rtrim(工序名称) as 工序名称,提交时间,rtrim(检验项目) as 检验项目';
+        $list = \db('制程检验_记录')
+            ->where($where)
+            ->field($field)
+            ->cache(true,86400)
+            ->select();
+        if (empty($list)){
+            $this->success('未找到检验记录');
         }
-        //B班数据详情
-        foreach ($itemB as $key=>$value){
-            $SubmissionTime = \db('制程检验_记录')->where($where)
-                ->where('班组编号','B班')
-                ->where('检验项目',$value)
-                ->where('检验结果','合格')
-                ->field('rtrim(提交时间) as 提交时间')
-                ->select();
-            $time = [];
-            foreach ($SubmissionTime as $k=>$v){
-                $time[$k] = date('H:i',strtotime($v['提交时间']));
+        $data = [];
+        foreach ($list as $key=>$value)
+        {
+            $data['item'][$key] = $value['检验项目'];
+            $data['InspectionTime'][$key] = date('H:i',strtotime($value['提交时间']));
+            $data['工单编号'][$key] = $value['工单编号'];
+        }
+        $data['item'] = array_unique($data['item']);
+        $data['InspectionTime'] = array_values(array_unique($data['InspectionTime']));
+        $data['工单编号'] = array_values(array_unique($data['工单编号']));
+        foreach ($data['工单编号'] as $key => $value){
+            foreach ($data['item'] as $k=>$v){
+                $time = '';
+                foreach ($list as $kk=>$vv){
+                    if ($vv['工单编号'] === $value && $vv['检验项目'] === $v){
+                        $time = $time.date('H:i',strtotime($vv['提交时间'])).',';
+                        $data['row'][$key][$k] = [
+                            '工单编号' => $value,
+                            '印件号' => $vv['印件号'],
+                            '工序名称' => $vv['工序名称'],
+                            '检验项目' => $v,
+                            'time' => substr($time,0,-1),
+                        ];
+                    }
+                }
             }
-            $data2[$key] = [
-                '工单编号' => $nameDetailB['工单编号'],
-                '印件号' => $nameDetailB['印件号'],
-                '工序名称' => $nameDetailB['工序名称'],
-                '检验项目' => $value,
-                'inspectresult' => implode(',',$time),
-            ];
+            $data['row'][$key] = array_values($data['row'][$key]);
         }
-        $list = array_merge($data2,$data1);
-        $list['inspectiontime'] = $InspectionTime;
-        $this->success('成功',$list);
+        unset($data['item'],$data['工单编号']);
+        $this->success('成功',$data);
     }
 
     /**
@@ -249,8 +232,6 @@ class Facility extends Api
                 AND b.Gy0_sj1 <> '1900-01-01 00:00:00'
             GROUP BY
                 a.Gd_gdbh
-            ORDER BY
-                b.Gy0_sj1
             LIMIT 1";
         $list = Db::query($sql);
         if (empty($list)){
@@ -361,17 +342,13 @@ class Facility extends Api
         if (empty($workOrder)){
             $this->error('参数错误');
         }
-//        $lastUniqid = \db('设备_产量计酬')->field('UniqId')->order('UniqId desc')->find();
-//        $startUniqid = $lastUniqid['UniqId']-100000;
         //右边工艺及完成数量
         $Process = \db('设备_产量计酬')->where('sczl_gdbh',$workOrder)
-//            ->where('UniqId','>',$startUniqid)
             ->distinct(true)->order('sczl_gxh')
             ->column('sczl_gxh');
         $data = [];
         foreach ($Process as $k=>$v){
             $res= \db('设备_产量计酬')->where('sczl_gdbh',$workOrder)
-//                ->where('UniqId','>',$startUniqid)
                 ->where('sczl_gxh',$v)
                 ->field('rtrim(sczl_yjno) as sczl_yjno,rtrim(sczl_gxmc) as sczl_gxmc')
                 ->find();
@@ -465,11 +442,8 @@ class Facility extends Api
         if (empty($machine) || empty($workOrder) || empty($team)){
             $this->error('参数错误');
         }
-//        $lastUniqid = \db('设备_产量计酬')->field('UniqId')->order('UniqId desc')->find();
-//        $startUniqid = $lastUniqid['UniqId']-100000;
         $name = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field('rtrim(Gd_cpmc) as productName')->find();
         $where = [
-//            'UniqId' => ['>',$startUniqid],
             'sczl_gdbh' => $workOrder,
             'sczl_jtbh' => $machine,
             'sczl_cl' => ['<>',0.0],
@@ -1090,17 +1064,17 @@ class Facility extends Api
         }
         $data = [];
         //机台状态时间
-
         $startTime = \db('设备_产量采集')
             ->where('设备编号',$param['machine'])
             ->where('开工时间',$param['start'])
-            ->field('rtrim()')
+            ->field('rtrim(时间) as 时间,当班产量,rtrim(当前状态) as 状态,MAX(时间) as 最大时间,MAX(当班产量) as 最大产量')
             ->order('UniqId')
+            ->group('当前状态')
             ->find();
-        if (!empty($startTime) && !empty($endTime)){
-            $timeDifference = ($startTime($endTime['时间'])-strtotime($startTime['时间']))/3600;
+        if (!empty($startTime)){
+            $timeDifference = round((strtotime($startTime['最大时间'])-strtotime($startTime['时间']))/3600,2);
             $data['timeDifference'] = $timeDifference;
-            $data['field'] = $endTime['当班产量']-$startTime['当班产量'];
+            $data['field'] = $startTime['最大产量']-$startTime['当班产量'];
         }else{
             $data['timeDifference'] = 0;
             $data['field'] = 0;
@@ -1109,7 +1083,7 @@ class Facility extends Api
         $row = \db('设备_产量采集')
             ->where('设备编号',$param['machine'])
             ->where('开工时间',$param['start'])
-            ->field('rtrim(时间) as 时间,rtrim(当产量) as 产量,rtrim(当前状态) as 状态')
+            ->field('rtrim(时间) as 时间,rtrim(当产量) as 产量,rtrim(当前状态) as 状态')
             ->select();
         if (empty($row)){
             $data['row'] = '';
@@ -1120,15 +1094,41 @@ class Facility extends Api
             if ($key<2){
                 $data['row'][$key]['产能'] = 0;
             }else{
-                $data['row'][$key]['产能'] = ($row[$key-1]['产能']-$row[$key-2]['产能'])*60;
+                $data['row'][$key]['产能'] = ($row[$key-1]['产量']-$row[$key-2]['产量'])*60;
             }
         }
         //机台状态
-        $status = end($row)['状态'];
+        $status = end($row);
         if (empty($status['状态'])){
             $data['status'] = '待单';
         }else{
             $data['status'] = $status['状态'];
         }
+        //检验数据
+        $list = \db('制程检验_记录')
+            ->where('开工时间',$param['start'])
+            ->where('设备编号',$param['machine'])
+            ->where('sys_rq','>',$param['start'])
+            ->field('rtrim(类别) as 类别,提交时间')
+            ->select();
+        $data['首件'] = $data['自检'] = $data['IPQC'] = [];
+        if (empty($list)){
+            $this->success('未找到检验记录');
+        }
+        foreach ($list as $key=>$value){
+            if ($value['类别'] == '现场巡查记录'){
+                array_push($data['首件'],$value['提交时间']);
+            }
+            if ($value['类别'] == '机台自检'){
+                array_push($data['自检'],$value['提交时间']);
+            }
+            if ($value['类别'] == 'IPQC检验'){
+                array_push($data['IPQC'],$value['提交时间']);
+            }
+        }
+        $data['首件'] = array_values(array_unique($data['首件']));
+        $data['自检'] = array_values(array_unique($data['自检']));
+        $data['IPQC'] = array_values(array_unique($data['IPQC']));
+        $this->success('成功',$data);
     }
 }

+ 52 - 55
application/api/controller/Manufacture.php

@@ -738,63 +738,55 @@ class Manufacture extends Api
         if (empty($param)){
             $this->error('参数错误');
         }
-        if ($param['status'] === '制程'){
-            $where = "a.gd_statu = '2-生产中' 
-                        AND a.`行号` = '1' 
-                        AND b.Gy0_sbbh LIKE '%{$param['machine']}%' 
-                        AND b.PD_WG = '1900-01-01 00:00:00' 
-                        AND b.Gy0_sj1 != '1900-01-01 00:00:00' ";
-        }else{
-            $where = "a.gd_statu = '2-生产中' 
-                        AND a.`行号` = '1' 
-                        AND b.Gy0_sbbh LIKE '%{$param['machine']}%' 
-                        AND b.PD_WG = '1900-01-01 00:00:00' 
-                        AND b.Gy0_sj1 = '1900-01-01 00:00:00' ";
-        }
-        $sql = "SELECT
-                RTRIM( a.Gd_gdbh ) AS 工单编号,
-                RTRIM( a.`销售订单号` ) AS 销售订单号,
-                RTRIM( c.yj_yjmc ) AS 印件名称,
-                RTRIM( b.Gy0_yjno ) AS yjno,
-                RTRIM( b.Gy0_gxh ) AS gxh,
-                RTRIM( b.Gy0_gxmc ) AS gxmc,
-                RTRIM( b.Add_gxmc ) AS Add_gxmc,
-                RTRIM( b.`Gy0_计划接货数` ) AS 计划接货数,
-                RTRIM( b.`Gy0_小时产能` ) AS 小时产能,
-                RTRIM( b.`工价系数` ) AS 产能系数,
-                RTRIM( b.`Gy0_生产工时` ) AS 生产工时,
-                RTRIM( b.Gy0_ls ) AS ls,
-                RTRIM( b.`Gy0_辅助工时` ) AS 辅助工时,
-                RTRIM( b.`Gy0_最早开工时间` ) AS 最早开工时间,
-                RTRIM( b.Gy0_sj1 ) AS 计划开工时间,
-                RTRIM( b.Gy0_sj2 ) AS 计划完工时间,
-                RTRIM( b.`Gy0_班次安排` ) AS 班次安排,
-                RTRIM( b.`工序备注` ) AS 排单备注,
-                RTRIM( a.Gd_cpmc ) AS 产品名称,
-                RTRIM( a.`成品名称` ) AS 成品名称,
-                RTRIM( a.`订单数量` ) AS 订单数量,
-                RTRIM( a.`计量单位` ) AS 计量单位,
-                RTRIM( a.`交货日期` ) AS 交货日期,
-                RTRIM( a.Gd_cpdh ) AS 产品代号,
-                RTRIM( a.`成品代号` ) AS 成品代号,
-                RTRIM( b.Gy0_sbbh ) AS 设备编号,
-                RTRIM( b.Gy0_SITE ) AS 车间名称,
-                RTRIM( b.UniqId ) AS GYUID,
-                SUM( d.sczl_cl ) AS 已完成产量 
-            FROM
-                `工单_基本资料` AS a
-                JOIN `工单_工艺资料` AS b ON a.Gd_gdbh = b.Gy0_gdbh
-                JOIN `工单_印件资料` AS c ON c.Yj_Gdbh = a.Gd_gdbh
-                LEFT JOIN `设备_产量计酬` AS d ON a.Gd_gdbh = d.sczl_gdbh 
-                AND b.Gy0_sbbh = d.sczl_jtbh 
-            WHERE
-                ".$where."
-            GROUP BY
-                A.Gd_gdbh";
-        $list = \db()->query($sql);
+        $list = \db('工单_基本资料')
+            ->alias('a')
+            ->field([
+                'RTRIM( a.Gd_gdbh )' => '工单编号',
+                'RTRIM( a.`销售订单号` )' => '销售订单号',
+                'RTRIM( c.yj_yjmc )' => '印件名称',
+                'RTRIM( b.Gy0_yjno )' =>'yjno',
+                'RTRIM( b.Gy0_gxh )' => 'gxh',
+                'RTRIM( b.Gy0_gxmc )' => 'gxmc',
+                'RTRIM( b.Add_gxmc )' => 'Add_gxmc',
+                'RTRIM( b.`Gy0_计划接货数` )' => '计划接货数',
+                'RTRIM( b.`Gy0_小时产能` )' => '小时产能',
+                'RTRIM( b.`工价系数` )' => '产能系数',
+                'RTRIM( b.`Gy0_生产工时` )' => '生产工时',
+                'RTRIM( b.Gy0_ls )' => 'ls',
+                'RTRIM( b.`Gy0_辅助工时` )' => '辅助工时',
+                'RTRIM( b.`Gy0_最早开工时间` )' => '最早开工时间',
+                'RTRIM( b.Gy0_sj1 )' => '计划开工时间',
+                'RTRIM( b.Gy0_sj2 )' => '计划完工时间',
+                'RTRIM( b.`Gy0_班次安排` )' => '班次安排',
+                'RTRIM( b.`工序备注` )' => '排单备注',
+                'RTRIM( a.Gd_cpmc )' => '产品名称',
+                'RTRIM( a.`成品名称` )' => '成品名称',
+                'RTRIM( a.`订单数量` )' => '订单数量',
+                'RTRIM( a.`计量单位` )' => '计量单位',
+                'RTRIM( a.`交货日期` )' => '交货日期',
+                'RTRIM( a.Gd_cpdh )' => '产品代号',
+                'RTRIM( a.`成品代号` )' => '成品代号',
+                'RTRIM( b.Gy0_sbbh )' => '设备编号',
+                'RTRIM( b.Gy0_SITE )' => '车间名称',
+                'RTRIM( b.UniqId )' => 'GYUID',
+                'SUM( d.sczl_cl )' => '已完成产量'
+            ])
+            ->join('工单_工艺资料 b','a.Gd_gdbh = b.Gy0_gdbh')
+            ->join('工单_印件资料 c','c.Yj_Gdbh = a.Gd_gdbh')
+            ->join('设备_产量计酬 d','a.Gd_gdbh = d.sczl_gdbh AND b.Gy0_sbbh = d.sczl_jtbh','LEFT')
+            ->where([
+                'a.gd_statu' => '2-生产中',
+                'a.行号'=> '1',
+                'b.Gy0_sbbh' => ['LIKE','%'.$param['machine'].'%'],
+                'b.PD_WG' => '1900-01-01 00:00:00'
+            ])
+            ->group('a.Gd_gdbh')
+            ->cache(true,720)
+            ->select();
         if (empty($list)){
             $this->success('',[]);
         }
+        $data['制程'] = $data['排程'] = [];
         foreach ($list as $key=>$value){
             if ((int)$value['yjno'] <10){
                 $value['yjno'] = '0'.rtrim($value['yjno']);
@@ -815,7 +807,12 @@ class Manufacture extends Api
                 $list[$key]['产品代号'] = $value['成品代号'];
             }
             unset($list[$key]['成品代号'],$list[$key]['成品名称']);
+            if ($list[$key]['计划开工时间'] !== '1900-01-01 00:00:00'){
+                array_push($data['制程'],$list[$key]);
+            }else{
+                array_push($data['排程'],$list[$key]);
+            }
         }
-        $this->success('成功',$list);
+        $this->success('成功',$data);
     }
 }

+ 91 - 74
application/api/controller/OrderSuperLoss.php

@@ -124,92 +124,109 @@ class OrderSuperLoss extends Api
         if (empty($pages)){
             $pages = 1;
         }
-        $data = Db::table('rec_月度废品汇总')->alias('a')
-            ->join('工单_基本资料 b', 'a.Gd_gdbh = b.Gd_gdbh','left')
-            ->join('工单_印件资料 c', 'a.Gd_gdbh = c.Yj_Gdbh','left')
-            ->where($where)
-            ->field('a.Gd_gdbh, SUM(a.废品数量) AS 废品合计, a.年月, rtrim(a.Gd_cpmc) as Gd_cpmc, a.Gd_cpdh, a.实际投料, b.计量单位, c.yj_Yjno, c.yj_ls')
-            ->group('a.Gd_gdbh')
-            ->order('a.Gd_cpdh asc,a.年月 desc')
-            ->fetchSql(true)
-            ->page($pages)
-            ->limit($limit)
-            ->select();
-        foreach ($data as $key => $value){
-            //查出成品数量及日期
-            $cp_sql = "SELECT SUM(jjcp_sl) as cp_sl,MAX(jjcp_sj) as jjcp_sj FROM `成品入仓` WHERE jjcp_gdbh = '{$value['Gd_gdbh']}' GROUP BY jjcp_gdbh";
-            $cp_data = Db::query($cp_sql);
-            $data[$key]['warehousing_num'] = $cp_data[0]['cp_sl'];
-            $data[$key]['warehousing_date'] = substr($cp_data[0]['jjcp_sj'],0,10);
-            //查出进入超节损的工序,有上报产量的工序就进入超节损
-            $gxh_sql = "SELECT sczl_gxh FROM 
+        $is_have_cache = Cache::get('OrderSuperLoss/getList'.$params['date']);
+        if ($is_have_cache === false){
+            $data = db('rec_月度废品汇总')->alias('a')
+                ->join('工单_基本资料 b', 'a.Gd_gdbh = b.Gd_gdbh','left')
+                ->join('工单_印件资料 c', 'a.Gd_gdbh = c.Yj_Gdbh','left')
+                ->where($where)
+                ->field('a.Gd_gdbh, SUM(a.废品数量) AS 废品合计, a.年月, rtrim(a.Gd_cpmc) as Gd_cpmc, a.Gd_cpdh, a.实际投料, b.计量单位, c.yj_Yjno, c.yj_ls')
+                ->group('a.Gd_gdbh')
+                ->order('a.Gd_cpdh asc,a.年月 desc')
+                ->page($pages)
+                ->limit($limit)
+                ->select();
+            $total = db('rec_月度废品汇总')->alias('a')
+                ->join('工单_基本资料 b', 'a.Gd_gdbh = b.Gd_gdbh','left')
+                ->join('工单_印件资料 c', 'a.Gd_gdbh = c.Yj_Gdbh','left')
+                ->where($where)
+                ->field('a.Gd_gdbh, SUM(a.废品数量) AS 废品合计, a.年月, rtrim(a.Gd_cpmc) as Gd_cpmc, a.Gd_cpdh, a.实际投料, b.计量单位, c.yj_Yjno, c.yj_ls')
+                ->group('a.Gd_gdbh')
+                ->count();
+            foreach ($data as $key => $value){
+                //查出成品数量及日期
+                $cp_sql = "SELECT SUM(jjcp_sl) as cp_sl,MAX(jjcp_sj) as jjcp_sj FROM `成品入仓` WHERE jjcp_gdbh = '{$value['Gd_gdbh']}' GROUP BY jjcp_gdbh";
+                $cp_data = Db::query($cp_sql);
+                $data[$key]['warehousing_num'] = $cp_data[0]['cp_sl'];
+                $data[$key]['warehousing_date'] = substr($cp_data[0]['jjcp_sj'],0,10);
+                //查出进入超节损的工序,有上报产量的工序就进入超节损
+                $gxh_sql = "SELECT sczl_gxh FROM 
                         (SELECT sczl_gxh FROM 设备_产量计酬 WHERE sczl_gdbh = '{$value['Gd_gdbh']}' 
                         UNION SELECT sczl_gxh FROM db_sczl WHERE sczl_gdbh = '{$value['Gd_gdbh']}') AS combined_result";
-            $gxh_arr = Db::query($gxh_sql);
-            $gxh_values = array_column($gxh_arr, 'sczl_gxh');
-            $gy_data =db('工单_工艺资料')->where('Gy0_gdbh',$value['Gd_gdbh'])->where('Gy0_gxh','in',$gxh_values)->field('Gy0_计划接货数,Gy0_计划损耗')->select();
-            $arr = [];
-            $plan_loss = [];//工单计划损耗
-            foreach ($gy_data as $k=>$v){
-                $rate =  round($v['Gy0_计划损耗'] / $v['Gy0_计划接货数'],5);
-                $arr[$k] = floor($rate * 10000) /10000;
-                $plan_loss[$k] = $v['Gy0_计划损耗'];
-            }
-            $target_rate =  (1-array_sum($arr))*100;
-            $data[$key]['target_rate'] =$target_rate.'%'; //目标合格率
-            $real_rate = $cp_data[0]['cp_sl'] / ($value['实际投料'] * 10000) *100;
-            $data[$key]['real_rate'] = number_format($real_rate,2) . '%';//实际合格率
-            //奖惩系数及金额
-            $data[$key]['reward_rate'] = '';
-            $data[$key]['reward_money'] = '';
-            //制程废品
-            $zzfp_data =db('设备_产量计酬')->where('sczl_gdbh',$value['Gd_gdbh'])->field('SUM(sczl_zcfp) as sczl_zcfp')->select();
-            $data[$key]['zcfp'] = $zzfp_data[0]['sczl_zcfp'] * $value['yj_ls'];//制程废品
-            $data[$key]['废品合计'] = $data[$key]['zcfp'] + $value['废品合计'];//废品合计
-            $data[$key]['intangible_loss'] = $value['实际投料'] *10000 - $cp_data[0]['cp_sl'] - $data[$key]['废品合计'];//工单无形损
-            //材料废
-            $waste_l =db('rec_月度废品汇总')->where('Gd_gdbh',$value['Gd_gdbh'])->where('废品类别','like','%L%')->field('SUM(废品数量) as 废品数量')->select();
-            $data[$key]['material_waste'] = $waste_l[0]['废品数量'];
-            //零头处理
-            $waste_w = db('rec_月度废品汇总')->where('Gd_gdbh',$value['Gd_gdbh'])->where('废品类别','like','%M%')->field('SUM(废品数量) as 废品数量')->select();
-            $data[$key]['minor_processing'] = $waste_w[0]['废品数量'];
-            //外发废
-            $out_sql = "SELECT fp_sl1,fp_sl2,fp_sl3,fp_sl4,fp_sl5,fp_sl6,fp_sl7,fp_sl8,fp_sl9,fp_sl10,fp_sl11,fp_sl12,fp_sl13,
+                $gxh_arr = Db::query($gxh_sql);
+                $gxh_values = array_column($gxh_arr, 'sczl_gxh');
+                $gy_data =db('工单_工艺资料')->where('Gy0_gdbh',$value['Gd_gdbh'])->where('Gy0_gxh','in',$gxh_values)->field('Gy0_计划接货数,Gy0_计划损耗')->select();
+                $arr = [];
+                $plan_loss = [];//工单计划损耗
+                foreach ($gy_data as $k=>$v){
+                    $rate =  round($v['Gy0_计划损耗'] / $v['Gy0_计划接货数'],5);
+                    $arr[$k] = floor($rate * 10000) /10000;
+                    $plan_loss[$k] = $v['Gy0_计划损耗'];
+                }
+                $target_rate =  (1-array_sum($arr))*100;
+                $data[$key]['target_rate'] =$target_rate.'%'; //目标合格率
+                $real_rate = $cp_data[0]['cp_sl'] / ($value['实际投料'] * 10000) *100;
+                $data[$key]['real_rate'] = number_format($real_rate,2) . '%';//实际合格率
+                //奖惩系数及金额
+                $data[$key]['reward_rate'] = '';
+                $data[$key]['reward_money'] = '';
+                //制程废品
+                $zzfp_data =db('设备_产量计酬')->where('sczl_gdbh',$value['Gd_gdbh'])->field('SUM(sczl_zcfp) as sczl_zcfp')->select();
+                $data[$key]['zcfp'] = $zzfp_data[0]['sczl_zcfp'] * $value['yj_ls'];//制程废品
+                $data[$key]['废品合计'] = $data[$key]['zcfp'] + $value['废品合计'];//废品合计
+                $data[$key]['intangible_loss'] = $value['实际投料'] *10000 - $cp_data[0]['cp_sl'] - $data[$key]['废品合计'];//工单无形损
+                //材料废
+                $waste_l =db('rec_月度废品汇总')->where('Gd_gdbh',$value['Gd_gdbh'])->where('废品类别','like','%L%')->field('SUM(废品数量) as 废品数量')->select();
+                $data[$key]['material_waste'] = $waste_l[0]['废品数量'];
+                //零头处理
+                $waste_w = db('rec_月度废品汇总')->where('Gd_gdbh',$value['Gd_gdbh'])->where('废品类别','like','%M%')->field('SUM(废品数量) as 废品数量')->select();
+                $data[$key]['minor_processing'] = $waste_w[0]['废品数量'];
+                //外发废
+                $out_sql = "SELECT fp_sl1,fp_sl2,fp_sl3,fp_sl4,fp_sl5,fp_sl6,fp_sl7,fp_sl8,fp_sl9,fp_sl10,fp_sl11,fp_sl12,fp_sl13,
                         fp_lb1,fp_lb2,fp_lb3,fp_lb4,fp_lb5,fp_lb6,fp_lb7,fp_lb8,fp_lb9,fp_lb10,fp_lb11,fp_lb12,fp_lb13, 
                         fp_bh1,fp_bh2,fp_bh3,fp_bh4,fp_bh5,fp_bh6,fp_bh7,fp_bh8,fp_bh9,fp_bh10,fp_bh11,fp_bh12,fp_bh13,
                         fp_gxmc1,fp_gxmc2,fp_gxmc3,fp_gxmc4,fp_gxmc5,fp_gxmc6,fp_gxmc7,fp_gxmc8,fp_gxmc9,fp_gxmc10,fp_gxmc11,fp_gxmc12,fp_gxmc13 
                         FROM db_qczl WHERE qczl_gdbh = '{$value['Gd_gdbh']}'";
-            $waste_out = Db::query($out_sql);
-            $list = [];
-            $quality = [];
-            $j = 0;
-            $m = 0;
-            foreach ($waste_out as $entry) {
-                for ($i = 1; $i <= 13; $i++) {
-                    $labelKey = "fp_lb" . $i;
-                    $bhKey = "fp_bh" . $i;
-                    $gxmcKey = "fp_gxmc" . $i;
-                    $slKey = "fp_sl" . $i;
-                    if (!empty($entry[$labelKey])) {
-                        if (substr($entry[$gxmcKey],0,2) == '99'){
-                            $list[$j]= $entry[$slKey];
-                            $j++;
+                $waste_out = Db::query($out_sql);
+                $list = [];
+                $quality = [];
+                $j = 0;
+                $m = 0;
+                foreach ($waste_out as $entry) {
+                    for ($i = 1; $i <= 13; $i++) {
+                        $labelKey = "fp_lb" . $i;
+                        $bhKey = "fp_bh" . $i;
+                        $gxmcKey = "fp_gxmc" . $i;
+                        $slKey = "fp_sl" . $i;
+                        if (!empty($entry[$labelKey])) {
+                            if (substr($entry[$gxmcKey],0,2) == '99'){
+                                $list[$j]= $entry[$slKey];
+                                $j++;
+                            }
                         }
-                    }
-                    if (!empty($entry[$bhKey])) {
-                        if ($entry[$bhKey] != '000000' && $entry[$slKey] > 0){
-                            $quality[$m]= $entry[$slKey];
-                            $m++;
+                        if (!empty($entry[$bhKey])) {
+                            if ($entry[$bhKey] != '000000' && $entry[$slKey] > 0){
+                                $quality[$m]= $entry[$slKey];
+                                $m++;
+                            }
                         }
                     }
                 }
+                $data[$key]['waste_out'] = array_sum($list);//外发废
+                $data[$key]['waste_share'] = '';//分摊废
+                $data[$key]['plan_loss'] = array_sum($plan_loss);//工单计划损耗
+                $data[$key]['waste_quality'] =  array_sum($quality);  //质检废
             }
-            $data[$key]['waste_out'] = array_sum($list);//外发废
-            $data[$key]['waste_share'] = '';//分摊废
-            $data[$key]['plan_loss'] = array_sum($plan_loss);//工单计划损耗
-            $data[$key]['waste_quality'] =  array_sum($quality);  //质检废
+            $res = [
+                'data'=>$data,
+                'total' => $total
+            ];
+            Cache::set('OrderSuperLoss/getList'.$params['date'],$res,86400);
+        }else{
+            $res = Cache::get('OrderSuperLoss/getList'.$params['date']);
         }
-        $this->success('请求成功',$data);
+
+        $this->success('请求成功',$res);
     }
     /**
      * 获取工单超节损工艺

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

@@ -38,13 +38,13 @@ class OvertimeVerification extends Api
         // ->order('sys_ny desc')
         // ->limit(15)
         // ->column('sys_ny');
-        $rows = db()->table('db_大废品')
+        $rows = db('db_大废品')->cache(true,86400)
         ->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('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->field('sys_ny,bh')
             ->group('sys_ny,bh')
             ->where(['sys_ny'=>['between',"$rows[14],$rows[0]"]])
@@ -53,7 +53,7 @@ class OvertimeVerification extends Api
         foreach($res as $v){
             $arr[$v['sys_ny'].'('][]=$v['bh'];
         }
-        $rs = db()->table('人事_基本资料')->column('员工编号,所在部门');
+        $rs = db('人事_基本资料')->cache(true,86400)->column('员工编号,所在部门');
         foreach($arr as $k=>$v){
             foreach($v as $value){
                 $data[$k.count($v).'人)'][rtrim($rs[$value])][]=rtrim($rs[$value]);
@@ -113,7 +113,7 @@ class OvertimeVerification extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
             ->field('bh,rtrim(xm) as 员工姓名,人事_基本资料.工资表类别,LEFT(人事_基本资料.聘用日期, 10) as 聘用日期,法定天数,
             日定额,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
@@ -127,7 +127,7 @@ class OvertimeVerification extends Api
         if(!$res){
             $this->error('失败');
         }
-        $res=Db::table("$res gz")->field("bh,员工姓名,工资表类别,聘用日期,法定天数,
+        $res=Db::table("$res gz")->cache(true,86400)->field("bh,员工姓名,工资表类别,聘用日期,法定天数,
             sum(日定额) as 当月定额,sum(月度合计产量) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
             sum(个人加班工资) as 个人加班工资,sum(计时补差) as 计时补差,sczl_rq")
             ->group('bh')
@@ -141,32 +141,32 @@ 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_wgjs')
+        $res1=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh1','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res2=db()->table('db_wgjs')
+        $res2=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh2','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res3=db()->table('db_wgjs')
+        $res3=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh3','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res4=db()->table('db_wgjs')
+        $res4=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh4','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res5=db()->table('db_wgjs')
+        $res5=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh5','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
         ->select();
-        $res6=db()->table('db_wgjs')
+        $res6=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         ->join('人事_基本资料','人事_基本资料.员工编号=db_wgjs.wgjs_bh6','LEFT')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'人事_基本资料.所在部门'=>['like',$req['department'].'%']])
@@ -203,7 +203,7 @@ class OvertimeVerification extends Api
             $this->error('请求方式错误');
         }
         $req = $this->request->param();
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->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(达标定额)
@@ -249,7 +249,7 @@ class OvertimeVerification extends Api
         $req = $this->request->param();
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
            ->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(达标定额)
@@ -295,7 +295,7 @@ class OvertimeVerification extends Api
         if($yg){
             $req['search']=$yg;
         }
-        $res=db()->table('绩效工资汇总')
+        $res=db('绩效工资汇总')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=绩效工资汇总.bh','LEFT')
             ->field('bh,rtrim(xm) as 员工姓名,人事_基本资料.工资表类别,LEFT(人事_基本资料.聘用日期, 10) as 聘用日期,法定天数,
             sum(日定额) as 当月定额,(sum(班组车头产量*工序难度系数)+sum(班组换算产量)) as 月度合计产量,sum(个人计件工资) as 个人计件工资,
@@ -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_wgjs')
+        $res1=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh1 as wgjs_bh,wgjs_js1 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh1'=>$req['search']])
         ->select();
-        $res2=db()->table('db_wgjs')
+        $res2=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh2 as wgjs_bh,wgjs_js2 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh2'=>$req['search']])
         ->select();
-        $res3=db()->table('db_wgjs')
+        $res3=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh3 as wgjs_bh,wgjs_js3 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh3'=>$req['search']])
         ->select();
-        $res4=db()->table('db_wgjs')
+        $res4=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh4 as wgjs_bh,wgjs_js4 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh4'=>$req['search']])
         ->select();
-        $res5=db()->table('db_wgjs')
+        $res5=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh5 as wgjs_bh,wgjs_js5  as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh5'=>$req['search']])
         ->select();
-        $res6=db()->table('db_wgjs')
+        $res6=db('db_wgjs')->cache(true,86400)
         ->field('LEFT(wgjs_rq, 7) as wgjs_rq,wgjs_bh6 as wgjs_bh,wgjs_js6 as wgjs_js')
         ->where(['wgjs_rq'=>['between',"$start_time,$end_time"],'wgjs_bh6'=>$req['search']])
         ->select();

+ 134 - 3
application/api/controller/Product.php

@@ -112,18 +112,18 @@ class Product extends Api
         $option['a.Gy0_cpdh'] = $code;
         $gy_field = 'rtrim(a.Gy0_方案) as 方案,a.Gy0_yjno,a.Gy0_gxh,rtrim(a.gy0_gxmc) as gy0_gxmc,rtrim(a.Add_gxmc) as add_gxmc,a.Gy0_Ks,a.Gy0_ls,rtrim(a.工序备注) as 备注,
         a.工价系数,a.损耗系数,a.Gy0_Ms,a.人工检_正品板,a.人工检_次品板,a.人工检_废检,a.机检_正品板,a.机检_次品板,a.机检_废检,rtrim(a.Gy0_sbmc) as Gy0_sbmc,rtrim(a.Sys_id) as Sys_id,
-        a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率';
+        a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率,a.UniqID';
         $gyRes = db('产品_工艺资料')->alias('a')
             ->join('dic_lzsh b','a.Gy0_shdh = b.sys_bh','left')
             ->where($option)->field($gy_field)->order('a.Gy0_yjno asc,a.Gy0_gxh asc')->select();
         //印件资料
         $where['yj_cpdh'] = $code;
         $field = 'yj_yjno,rtrim(yj_yjdh) as yj_yjdh,yj_yjmc,rtrim(yj_zzdh) as yj_zzdh,rtrim(yj_zzmc) as yj_zzmc,rtrim(yj_tlgg) as yj_tlgg,
-        rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,rtrim(yj_desc) as yj_desc,rtrim(sys_id) as sys_id,sys_rq,mod_rq';
+        rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,rtrim(yj_desc) as yj_desc,rtrim(sys_id) as sys_id,sys_rq,mod_rq,UniqId';
         $yjRes = db('产品_印件资料')->where($where)->field($field)->select();
         //印版资料
         $filter['a.YB_Cpdh'] = $code;
-        $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称';
+        $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称,a.UniqID';
         $ybRes = db('产品_印版资料')->alias('a')
             ->join('物料_存货编码 b','a.存货编码 = b.物料代码')
             ->where($filter)->field($yb_field)->select();
@@ -517,4 +517,135 @@ class Product extends Api
             $this->error('更新失败');
         }
     }
+    /**
+     * 获取产品印件资料
+     * @ApiMethod GET
+     * @params string UniqId
+    */
+    public function getProductYjInfo(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (empty($params['UniqId']) || empty($params['UniqId'])){
+            $this->error('参数错误');
+        }
+        $field = "yj_yjno,rtrim(yj_yjdh) as yj_yjdh,rtrim(yj_yjmc) as yj_yjmc,rtrim(yj_zzdh) as yj_zzdh,rtrim(yj_zzmc) as yj_zzmc,rtrim(yj_zzdh1) as yj_zzdh1,rtrim(yj_zzdh2) as yj_zzdh2,
+        rtrim(yj_zzdh3) as yj_zzdh3,rtrim(yj_zzdh4) as yj_zzdh4,rtrim(yj_zzmc1) as yj_zzmc1,rtrim(yj_zzmc2) as yj_zzmc2,rtrim(yj_zzmc3) as yj_zzmc3,
+        rtrim(yj_zzmc4) as yj_zzmc4,rtrim(yj_tlgg) as yj_tlgg,rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,KgToPages,rtrim(yj_desc) as yj_desc,";
+        $list = \db('产品_印件资料')->where('UniqId',$params['UniqId'])->field($field)->select();
+        $this->success('请求成功',$list);
+    }
+    /**
+     * 修改产品印件资料
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function editProductYjInfo(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (empty($params) || !isset($params['UniqId'])){
+            $this->error('参数不能为空');
+        }
+        $UniqId = $params['UniqId'];
+        unset($params['UniqId']);
+        $res = \db('产品_印件资料')->where('UniqId',$UniqId)->update($params);
+        if ($res !== false){
+            $this->success('更新成功');
+        }else{
+            $this->error('更新失败');
+        }
+    }
+    /**
+     * 新增产品印件资料
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function addProductYjInfo(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        $UniqId = \db('产品_印件资料')->order('UniqId desc')->value('UniqId');
+        if ($UniqId < 2000000){
+            $UniqId = 2000000;
+        }else{
+            $UniqId = $UniqId + 1;
+        }
+        $params['UniqId'] = $UniqId;
+        $params['sys_rq'] = date('Y-m-d H:i:s');
+        $res = \db('产品_印件资料')->insert($params);
+        if ($res !== false){
+            $this->success('新增成功');
+        }else{
+            $this->error('新增失败');
+        }
+    }
+    /**
+     * 获取印件代码及名称
+     * @ApiMethod GET
+     *
+    */
+    public function getProductYjList(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        $search = $params['search'];
+        if (!empty($search)){
+            $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
+                FROM `物料_存货编码` a
+                JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
+                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') AND a.`物料名称` LIKE '%{$search}%'
+                ORDER BY a.`物料代码` ASC;";
+        }else{
+            $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
+                FROM `物料_存货编码` a
+                JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
+                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') 
+                ORDER BY a.`物料代码` ASC;";
+        }
+        $data = Db::query($sql);
+        // 初始化一个关联数组,用于存储相同客户编号的数据
+        $groupedData = [];
+
+        foreach ($data as $row) {
+            $customerCode = substr($row['物料代码'],0,4).substr($row['客户编号'],2,2).'/'.$row['客户名称'];
+            $materialCodePrefix = substr($row['物料代码'], 0, 4);
+            if ($materialCodePrefix == '1401'){
+                $materialCodePrefix = $materialCodePrefix.'/糊盒类产品(含贴码)';
+            }else{
+                $materialCodePrefix = $materialCodePrefix.'/直接领用产品';
+            }
+            // 如果关联数组中不存在该物料代码前四位的键,则创建一个空数组
+            if (!isset($groupedData[$materialCodePrefix])) {
+                $groupedData[$materialCodePrefix] = [];
+            }
+            // 如果物料代码前四位数组中不存在该客户编号的键,则创建一个空数组
+            if (!isset($groupedData[$materialCodePrefix][$customerCode])) {
+                $groupedData[$materialCodePrefix][$customerCode] = [];
+            }
+            // 去除客户编号和客户名称
+            unset($row['客户编号']);
+            unset($row['客户名称']);
+            // 将当前行的数据添加到相应的物料代码前四位和客户编号的数组中
+            $groupedData[$materialCodePrefix][$customerCode][] = $row;
+        }
+        $this->success('请求成功',$groupedData);
+    }
+    /**
+     * 获取纸张代号及名称
+     * @ApiMethod GET
+     * @params string search
+    */
+    public function getProductZzList(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        $search = $params['search'];
+//        $list = \db('物料_存货结构')->where('LEFT(编号)')
+    }
 }

+ 32 - 17
application/api/controller/RelatedSalaryAccounting.php

@@ -38,7 +38,8 @@ class RelatedSalaryAccounting extends Api
         // ->order('sys_ny desc')
         // ->limit(25)
         // ->column('sys_ny');
-        $rows = db()->table('db_大废品')
+        $rows = db('db_大废品')
+        ->cache(true,86400)
         ->whereTime('sys_rq', '>=', strtotime('-25 months'))
         ->group("DATE_FORMAT(`sys_rq`, '%Y%m')")
         ->order('sys_rq desc')
@@ -79,7 +80,8 @@ class RelatedSalaryAccounting extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -88,7 +90,8 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')
+            ->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,rtrim(人事_基本资料.职称职务) as 职称职务,
             人事_基本资料.所在部门,DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联系数,count(被关联员工) as 关联人数')
@@ -132,7 +135,8 @@ class RelatedSalaryAccounting extends Api
             $start_time=$year.'-'.$month.'-01 00:00:00';
             $end_time=$year.'-'.($month+1).'-01 00:00:00';
         }
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -141,7 +145,7 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,
             rtrim(人事_基本资料.职称职务) as 职称职务,人事_基本资料.所在部门,被关联员工,权重')
@@ -179,7 +183,8 @@ class RelatedSalaryAccounting extends Api
         $req = $this->request->param();
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -188,7 +193,7 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,
             rtrim(人事_基本资料.职称职务) as 职称职务,人事_基本资料.所在部门,被关联员工,权重')
@@ -234,7 +239,8 @@ class RelatedSalaryAccounting extends Api
         if($gd){
             $req['search']=$gd;
         }
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -243,7 +249,7 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('关联员工 as 员工编号,rtrim(人事_基本资料.员工姓名) as 员工姓名,rtrim(人事_基本资料.职称职务) as 职称职务,
             人事_基本资料.所在部门,DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联系数,count(被关联员工) as 关联人数')
@@ -281,7 +287,8 @@ class RelatedSalaryAccounting extends Api
         $req['date']=str_replace('.','-',$req['date']);
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -290,7 +297,8 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')
+            ->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,关联员工 as 关联人员工号,rtrim(人事_基本资料.员工姓名) as 关联人员姓名,
             被关联员工 as 班组员工编号,权重 as 组员权重,关联系数 as 日关联系数,人事_关联工资设置.UniqID')
@@ -344,6 +352,7 @@ class RelatedSalaryAccounting extends Api
             $sql=db()->table('人事_关联工资设置')
             ->where(['日期'=>$start_time,'关联员工'=>$req['code']])
             ->fetchSql(true)
+            // ->cache(true,86400)
             ->update($data);
             $res=Db::query($sql);
             // 提交事务
@@ -373,7 +382,8 @@ class RelatedSalaryAccounting extends Api
         $req['date']=str_replace('.','-',$req['date']);
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $res=db()->table('人事_基本资料')
+        $res=db('人事_基本资料')
+            ->cache(true,86400)
             ->join('人事_关联工资设置','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
             ->join('人事_员工照片','人事_基本资料.照片ID=人事_员工照片.UniqId','LEFT')
             ->field('人事_关联工资设置.被关联员工 as 员工编号,rtrim(员工姓名) as 姓名,rtrim(所在部门) as 部门名称,人事_基本资料.职称职务 as 职务,
@@ -403,7 +413,8 @@ class RelatedSalaryAccounting extends Api
         $req['date']=str_replace('.','-',$req['date']);
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -412,7 +423,8 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')
+            ->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
             ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,人事_基本资料.所在部门,人事_基本资料.职称职务,被关联员工 as 班组员工编号,人事_关联工资设置.UniqID')
             // ->group('被关联员工')
@@ -463,7 +475,8 @@ class RelatedSalaryAccounting extends Api
         if($gd){
             $req['search']=$gd;
         }
-        $gz=db()->table('绩效工资汇总')
+        $gz=db('绩效工资汇总')
+            ->cache(true,86400)
             ->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')
@@ -472,7 +485,8 @@ class RelatedSalaryAccounting extends Api
         foreach($gz as $v){
            $data[$v['bh']][$v['sczl_rq']]=$v;
         }
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')
+            ->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.被关联员工','LEFT')
             ->field('DATE_FORMAT(日期,"%Y.%m.%d") as 日期,人事_基本资料.所在部门,人事_基本资料.职称职务,被关联员工 as 班组员工编号,人事_关联工资设置.UniqID')
             // ->group('被关联员工')
@@ -517,7 +531,8 @@ class RelatedSalaryAccounting extends Api
         $req['date']=str_replace('.','-',$req['date']);
         $start_time=$req['date'].' 00:00:00';
         $end_time=$req['date'].' 23:59:59';
-        $res=db()->table('人事_关联工资设置')
+        $res=db('人事_关联工资设置')
+            ->cache(true,86400)
             ->join('人事_基本资料','人事_基本资料.员工编号=人事_关联工资设置.关联员工','LEFT')
             ->field('关联员工 as 员工编号,人事_基本资料.员工姓名,人事_基本资料.所在部门,人事_基本资料.职称职务,人事_关联工资设置.UniqID')
             ->group('关联员工')

+ 2 - 0
application/api/controller/WorkOrder.php

@@ -53,6 +53,8 @@ class WorkOrder extends Api
             $this->success('',[]);
         }
         foreach ($list as $key=>$value){
+            //这条sql查出来的数据可能不对,试一下以下sql
+            //SELECT COUNT(*) FROM `工单_基本资料` WHERE (SUBSTRING( `成品代号`, 1, 4 ) = '1001' OR (`Gd_客户名称`='浙江中烟' AND `Gd_客户代号` = '1001')) AND gd_statu = '2-生产中' AND `行号` = '1'
             $productIng = \db('工单_基本资料')->where('行号','1')->where('成品代号','LIKE',$value['prefix'].'%')->where('gd_statu','2-生产中')->count();
             $proGress = \db('工单_基本资料')->where('行号','1')->where('成品代号','LIKE',$value['prefix'].'%')->where('gd_statu','3-计划中')->count();
             $string = '';

+ 25 - 0
application/api/controller/WorkOrderVerification.php

@@ -388,6 +388,31 @@ class WorkOrderVerification extends Api
             $this->error('更新失败');
         }
     }
+    /**
+     * 新增工单核检单
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function add(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        $UniqId = db('db_qczl')->order('UniqId desc')->value('UniqId');
+        if ($UniqId < 10000000){
+            $UniqId = 10000000;
+        }else{
+            $UniqId = $UniqId + 1;
+        }
+        $params['UniqId'] = $UniqId;
+        $params['sys_rq'] = date('Y-m-d H:i:s');
+        $res = \db('db_qczl')->insert($params);
+        if ($res !== false){
+            $this->success('新增成功');
+        }else{
+            $this->error('新增失败');
+        }
+    }
     /**
      * 工单核检废品分布
      * @ApiMethod GET