Browse Source

印刷印后车间进度数据同步及获取

曹鹤洋 1 year ago
parent
commit
a3ca3ae25a
1 changed files with 140 additions and 0 deletions
  1. 140 0
      application/api/controller/Index.php

+ 140 - 0
application/api/controller/Index.php

@@ -149,4 +149,144 @@ class Index extends Api
         }
     }
 
+    //印刷车间生产进度数据同步Redis
+    public function yscjDbToRedis()
+    {
+        $yscjDbToRedis = [];
+
+        //获取所有印刷车间
+        $rows = db('设备_基本资料')
+            ->where('使用部门','印刷车间')
+            ->column('设备编号');
+
+        foreach($rows as $value){
+            $row = db('设备_产量采集')->alias('c')
+                ->field('c.设备编号 as 机台号, 
+                    c.工单编号 as 在产工单号, 
+                    j.Gd_cpmc as 工单名称, 
+                    c.工序名称 as 工序, 
+                    g.Gy0_计划接货数 as 计划产量, 
+                    g.Gy0_小时产能 as 小时产能, 
+                    c.当前状态 as 机台状态
+                    ')
+                ->join('工单_工艺资料 g','c.设备编号 = g.Gy0_sbbh AND c.工单编号 = g.Gy0_gdbh AND c.印件号 = g.Gy0_yjno')
+                ->join('工单_基本资料 j','j.Gd_gdbh = c.工单编号')
+                ->where('c.设备编号',$value)
+                ->order('c.UniqId desc')
+                ->find();
+            if(!$row) continue;
+            $cl = db('设备_产量计酬')
+                ->where(['sczl_gdbh'=>$row['在产工单号'], 'sczl_jtbh' => $row['机台号']])
+                ->sum('sczl_cl');
+            $row['已完成产量'] = $cl;
+            array_push($yscjDbToRedis, $row);
+        }
+        $bool = cache('yscjDbToRedis',$yscjDbToRedis);
+        if($bool===false) $this->error('存入redis失败','','000002');
+        $this->success('同步成功');
+    }
+
+    //印后车间生产进度数据同步Redis
+    public function yhcjDbToRedis()
+    {
+        $yhcjDbToRedis = [];
+
+        //获取所有印刷车间
+        $rows = db('设备_基本资料')
+            ->where('使用部门','印后车间')
+            ->column('设备编号');
+
+        foreach($rows as $value){
+            $row = db('设备_产量采集')->alias('c')
+                ->field('c.设备编号 as 机台号, 
+                    c.工单编号 as 在产工单号, 
+                    j.Gd_cpmc as 工单名称, 
+                    c.工序名称 as 工序, 
+                    g.Gy0_计划接货数 as 计划产量, 
+                    g.Gy0_小时产能 as 小时产能, 
+                    c.当前状态 as 机台状态
+                    ')
+                ->join('工单_工艺资料 g','c.设备编号 = g.Gy0_sbbh AND c.工单编号 = g.Gy0_gdbh AND c.印件号 = g.Gy0_yjno')
+                ->join('工单_基本资料 j','j.Gd_gdbh = c.工单编号')
+                ->where('c.设备编号',$value)
+                ->order('c.UniqId desc')
+                ->find();
+            if(!$row) continue;
+            $cl = db('设备_产量计酬')
+                ->where(['sczl_gdbh'=>$row['在产工单号'], 'sczl_jtbh' => $row['机台号']])
+                ->sum('sczl_cl');
+            $row['已完成产量'] = $cl;
+            array_push($yhcjDbToRedis, $row);
+        }
+        $bool = cache('yhcjDbToRedis',$yhcjDbToRedis);
+        if($bool===false) $this->error('存入redis失败','','000002');
+        $this->success('同步成功');
+    }
+
+    //获取印刷车间生产进度数据
+    public function getYscjByRedis()
+    {
+        $row = cache('yscjDbToRedis');
+        $result['columns']=[
+            ['name'=>'机台号','id'=>'jtbh','width'=>'14','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'在产工单号','id'=>'gdbh','width'=>'16','textAlign'=>'left'],
+            ['name'=>'工单名称','id'=>'gdmc','width'=>'20','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'工序','id'=>'gx','width'=>'16','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'计划产量','id'=>'jhcl','width'=>'14','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'已完成产量','id'=>'wccl','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+            ['name'=>'小时产能','id'=>'xscn','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+            ['name'=>'机台状态','id'=>'status','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+        ];
+        if($row){
+            foreach($row as $k=>$v){
+                $result['rows'][$k]['jtbh']=$v['机台号'];
+                $result['rows'][$k]['gdbh']=$v['在产工单号'];
+                $result['rows'][$k]['gdmc']=$v['工单名称'];
+                $result['rows'][$k]['gx']=$v['工序'];
+                $result['rows'][$k]['jhcl'] = $v['计划产量'];
+                $result['rows'][$k]['wccl'] = $v['已完成产量'];
+                $result['rows'][$k]['xscn'] = $v['小时产能'];
+                $result['rows'][$k]['status'] = $v['机台状态'];
+            }
+        }
+        
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$result;
+        return json($res);
+    }
+
+    //获取印后车间生产进度数据
+    public function getYhcjByRedis()
+    {
+        $row = cache('yhcjDbToRedis');
+        $result['columns']=[
+            ['name'=>'机台号','id'=>'jtbh','width'=>'14','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'在产工单号','id'=>'gdbh','width'=>'16','textAlign'=>'left'],
+            ['name'=>'工单名称','id'=>'gdmc','width'=>'20','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'工序','id'=>'gx','width'=>'16','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'计划产量','id'=>'jhcl','width'=>'14','autoWrap'=>"true",'textAlign'=>'left'],
+            ['name'=>'已完成产量','id'=>'wccl','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+            ['name'=>'小时产能','id'=>'xscn','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+            ['name'=>'机台状态','id'=>'status','width'=>'14','autoWrap'=>"true",'textAlign'=>'center'],
+        ];
+        if($row){
+            foreach($row as $k=>$v){
+                $result['rows'][$k]['jtbh']=$v['机台号'];
+                $result['rows'][$k]['gdbh']=$v['在产工单号'];
+                $result['rows'][$k]['gdmc']=$v['工单名称'];
+                $result['rows'][$k]['gx']=$v['工序'];
+                $result['rows'][$k]['jhcl'] = $v['计划产量'];
+                $result['rows'][$k]['wccl'] = $v['已完成产量'];
+                $result['rows'][$k]['xscn'] = $v['小时产能'];
+                $result['rows'][$k]['status'] = $v['机台状态'];
+            }
+        }
+        
+        $res['status']=0;
+        $res['msg']='';
+        $res['data']=$result;
+        return json($res);
+    }
+
 }