瀏覽代碼

大屏接口

liuhairui 1 年之前
父節點
當前提交
a5252ee138
共有 1 個文件被更改,包括 285 次插入417 次删除
  1. 285 417
      application/api/controller/Index.php

+ 285 - 417
application/api/controller/Index.php

@@ -1,473 +1,341 @@
 <?php
-
 namespace app\api\controller;
-
 use app\common\controller\Api;
-
+use think\Controller;
+use think\Db;
 /**
- * 首页接口
+ * 达成大屏数据接口
  */
-class Index extends Api
-{
+class Index extends Controller{
     protected $noNeedLogin = ['*'];
     protected $noNeedRight = ['*'];
+    /**首页*/
+    public function index(){$this->success('成功');}
 
     /**
-     * 首页
-     *
+     *近30天班组生产效率完成情况【缓存】
      */
-    public function index()
-    {
-        $this->success('请求成功');
-    }
-
-    //计划/排程/制程工单数量同步Redis
-    public function numDbToRedis()
-    {
-        $numDbToRedis = [];
-
-        //获取计划中的订单数量
-        $jhz = db('工单_基本资料')
-            ->where('gd_statu','like','%计划中%')
-            ->count('Gd_gdbh');
-
-        if($jhz!==false){
-            $numDbToRedis['jhz'] = $jhz;
-        }else{
-            $numDbToRedis['jhz'] = 0;
-        }
-
-        //获取生产中的所有数据
-        $rows = db('工单_基本资料')
-            ->distinct('Gd_gdbh')
-            ->where('gd_statu','like','%生产中%')
-            ->column('Gd_gdbh');
-
-        if($rows===false){
-            $numDbToRedis['pcz'] = 0;
-            $numDbToRedis['zcz'] = 0;
-            $bool = cache('numDbToRedis',$jhz);
-            if($bool===false) $this->error('订单数量存入redis失败','','000001');
-            $this->success('请求成功');
-        }
-        
-        //查询Gy0_sj1不等于1900-01-01 00:00:00的数据
-        $data = db('工单_印件资料')->alias('y')
-            ->join('工单_工艺资料 g','y.Yj_Gdbh = g.Gy0_gdbh AND y.yj_Yjno = g.Gy0_yjno')
-            ->where('g.Gy0_sj1','<>','1900-01-01 00:00:00')
-            ->where('y.Yj_Gdbh','in',$rows)
-            ->group('y.Yj_Gdbh')
-            ->column('y.Yj_Gdbh');
-        $zcz = count($data);
-        $pcz = count($rows) - count($data);
+    public function bzDbToRedis(){
+        //存缓存Redis
+        $redis = redis();
+        $redis_key = md5('bzDbToRedis');
 
-        $numDbToRedis['pcz'] = $pcz;
-        $numDbToRedis['zcz'] = $zcz;
-        $bool = cache('numDbToRedis',$numDbToRedis);
-        if($bool===false) $this->error('订单数量存入redis失败','','000002');
-        $this->success('同步成功');
+        // 获取当天的日期
+        $todays = date('Y-8-d');
+        $today = date('Y-m-d');
+        // 查询设备_产量计酬表,当日班组报工产量情况,排除车缝班组,按班组和日期分组并累计数量
+        $res = db('设备_产量计酬')
+            ->alias('c')
+            ->where('c.sczl_bh', 'not like', '%车缝%') // 排除车缝班组
+            ->where('c.sys_rq', '>=', $todays . ' 00:00:00') // 当日开始时间
+            ->where('c.sys_rq', '<=', $today . ' 23:59:59') // 当日结束时间
+            ->whereNull('c.mod_rq') // 删除日期为空
+            ->field('c.sczl_bh, SUM(c.ci_num) as total_num, DATE(c.sys_rq) as date') // 班组编号,数量累计,日期
+            ->group('c.sczl_bh, DATE(c.sys_rq)') // 按班组编号和日期分组
+            ->select();
+        $redis->set($redis_key, json_encode($res));
+        echo date("Y-m-d H:i:s").'存进去了';
+        return $res;
     }
 
-    //获取计划中工单数量
-    public function getJhzByRedis()
-    {
-        $row = cache('numDbToRedis');
-        if($row){
-            $data = [
-                'status'=>0,
-                'msg'=>'',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>$row['jhz']
-                ]
-            ];
-            return json($data);
-        }else{
-            $data = [
-                'status'=>0,
-                'msg'=>'失败',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>''
-                ]
-            ];
-            return json($data);
-        }
+    /**
+     *近30天班组生产效率完成情况【接口】
+     */
+    public function getBzByRedis(){
+        $redis = redis();
+        $row = json_decode($redis->get(md5('bzDbToRedis')), true);
+        echo "<pre>";
+        print_r($row);
+        echo "<pre>";
     }
 
-    //获取排程中工单数量
-    public function getPczByRedis()
-    {
-        $row = cache('numDbToRedis');
-        if($row){
-            $data = [
-                'status'=>0,
-                'msg'=>'',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>$row['pcz']
-                ]
-            ];
-            return json($data);
-        }else{
-            $data = [
-                'status'=>0,
-                'msg'=>'失败',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>''
-                ]
-            ];
-            return json($data);
-        }
-    }
+    /**
+     *当日班组报工产量【缓存】
+     */
+    public function numDbToRedis(){
+        //存缓存Redis
+        $redis = redis();
+        $redis_key = md5('numDbToRedis');
 
-    //获取制程中工单数量
-    public function getZczByRedis()
-    {
-        $row = cache('numDbToRedis');
-        if($row){
-            $data = [
-                'status'=>0,
-                'msg'=>'',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>$row['zcz']
-                ]
-            ];
-            return json($data);
-        }else{
-            $data = [
-                'status'=>0,
-                'msg'=>'失败',
-                'data'=>[
-                    'name'=>'',
-                    'value'=>''
-                ]
-            ];
-            return json($data);
-        }
+        // 获取当天的日期
+        $todays = date('Y-8-d');
+        $today = date('Y-m-d');
+        // 查询设备_产量计酬表,当日班组报工产量情况,排除车缝班组,按班组和日期分组并累计数量
+        $res = db('设备_产量计酬')
+            ->alias('c')
+            ->where('c.sczl_bh', 'not like', '%车缝%') // 排除车缝班组
+            ->where('c.sys_rq', '>=', $todays . ' 00:00:00') // 当日开始时间
+            ->where('c.sys_rq', '<=', $today . ' 23:59:59') // 当日结束时间
+            ->whereNull('c.mod_rq')
+            ->field('c.sczl_bh, SUM(c.ci_num) as total_num, DATE(c.sys_rq) as date') // 班组编号,数量累计,日期
+            ->group('c.sczl_bh, DATE(c.sys_rq)') // 按班组编号和日期分组
+            ->select();
+        echo "<pre>";
+        print_r($res);
+        echo "<pre>";die;
+        $redis->set($redis_key, json_encode($res));
+        echo date("Y-m-d H:i:s").'存进去了';
+        return $res;
     }
 
-    //印刷车间生产进度数据同步Redis
-    public function yscjDbToRedis()
-    {
-        $yscjDbToRedis = [];
-
-        //获取所有印刷车间
-        $rows = db('设备_基本资料')
-            ->where('使用部门','印刷车间')
-            ->column('设备编号');
+    /**
+     *当日班组报工产量【接口】
+     */
+    public function getPczByRedis(){
+//        $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'色令数',
+//            'data'=>[round($list2021['nyssl']/10000),round($list2022['nyssl']/10000),round($list2023['nyssl']/10000)]]]];
+//        $res['status']=0;
+//        $res['msg']='';
+//        $res['data']=$list;
+//        $redis->set($redis_key, json_encode($res));
+//        return json_encode($res);
 
-        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 = redis();
+        $row = json_decode($redis->get(md5('numDbToRedis')), true);
+        echo "<pre>";
+        print_r($row);
+        echo "<pre>";
     }
 
-    //印后车间生产进度数据同步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 getJhzByRedis(){
+        //存缓存Redis
+        $redis = redis();
+        $redis_key = md5('getJhzByRedis');
 
-    //获取印刷车间生产进度数据
-    public function getYscjByRedis()
-    {
-        $row = cache('yscjDbToRedis');
-        $result['columns']=[
-            ['name'=>'机台号','id'=>'jtbh','width'=>'11','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'在产工单号','id'=>'gdbh','width'=>'15','textAlign'=>'left'],
-            ['name'=>'工单名称','id'=>'gdmc','width'=>'35','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'工序','id'=>'gx','width'=>'15','textAlign'=>'left'],
-            ['name'=>'计划产量','id'=>'jhcl','width'=>'8','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'已完成产量','id'=>'wccl','width'=>'9','autoWrap'=>"true",'textAlign'=>'center'],
-            ['name'=>'小时产能','id'=>'xscn','width'=>'8','autoWrap'=>"true",'textAlign'=>'center'],
-            ['name'=>'机台状态','id'=>'status','width'=>'8','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['机台状态'];
+        $startTime = date('Y-m-d', strtotime('-30 days'));
+        $endTime = date('Y-m-d');
+        // 修改查询条件为近30天
+        $where['b.Sys_rq'] = ['between', [$startTime, $endTime]];
+        $list = \db('设备_产量计酬')
+            ->alias('a')
+            ->join('工单_基本资料 b','a.订单编号 = b.订单编号')
+            ->join('工单_印件资料 c','a.订单编号 = c.订单编号 AND a.子订单编号 = c.子订单编号')
+            ->field('c.订单编号,c.子订单编号,c.款号,c.颜色,c.zdtotal as 制单总数,c.sctotal as 裁切总数,c.ck_rq as 出库日期,
+            SUM(a.数量) as 产量,a.工序名称,b.客户编号,b.单位')
+            ->where($where)
+            ->group('a.订单编号,a.工序名称')
+            ->order('c.Uniqid')
+            ->select();
+        $orderList = \db('设备_产量计酬')
+            ->alias('a')
+            ->join('工单_基本资料 b','a.订单编号 = b.订单编号')
+            ->join('工单_印件资料 c','a.订单编号 = c.订单编号 AND a.子订单编号 = c.子订单编号')
+            ->field('c.订单编号,c.子订单编号,c.款号,c.颜色,c.zdtotal as 制单总数,c.sctotal as 裁切总数,c.ck_rq as 出库日期,b.客户编号,b.单位')
+            ->where($where)
+            ->group('a.子订单编号')
+            ->order('c.Uniqid')
+            ->select();
+        foreach ($orderList as $key=>$value){
+            $data[$key] = $value;
+            foreach ($list as $k=>$v){
+                if ($value['子订单编号'] === $v['子订单编号']){
+                    if (isset($data[$key][$v['工序名称']]) === false){
+                        $data[$key][$v['工序名称']] = $v['产量'];
+                    }
+                }
             }
         }
-        
-        $res['status']=0;
-        $res['msg']='';
-        $res['data']=$result;
-        return json($res);
+        $redis->set($redis_key, json_encode($data));
+        echo date("Y-m-d H:i:s").'存进去了';
+        return $data;
     }
 
-    //获取印后车间生产进度数据
-    public function getYhcjByRedis()
-    {
-        $row = cache('yhcjDbToRedis');
-        $result['columns']=[
-            ['name'=>'机台号','id'=>'jtbh','width'=>'11','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'在产工单号','id'=>'gdbh','width'=>'15','textAlign'=>'left'],
-            ['name'=>'工单名称','id'=>'gdmc','width'=>'35','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'工序','id'=>'gx','width'=>'15','textAlign'=>'left'],
-            ['name'=>'计划产量','id'=>'jhcl','width'=>'8','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'已完成产量','id'=>'wccl','width'=>'9','autoWrap'=>"true",'textAlign'=>'center'],
-            ['name'=>'小时产能','id'=>'xscn','width'=>'8','autoWrap'=>"true",'textAlign'=>'center'],
-            ['name'=>'机台状态','id'=>'status','width'=>'8','autoWrap'=>"true",'textAlign'=>'center'],
+    /**
+     * 在产订单工序完工详情【接口】
+     */
+    public function getZczByRedis(){
+        $redis = redis();
+        $row = json_decode($redis->get(md5('getJhzByRedis')), true);
+
+        // 列定义
+        $result['columns'] = [
+            ['name' => '订单编号', 'id' => 'order', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'left'],
+            ['name' => '客户', 'id' => 'kehu', 'width' => '16', 'textAlign' => 'left'],
+            ['name' => '制单总数', 'id' => 'zdnum', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'left'],
+            ['name' => '单位', 'id' => 'dw', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'left'],
+            ['name' => '出库确认', 'id' => 'chuku', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'left'],
+            ['name' => '裁切', 'id' => 'caiqie', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
+            ['name' => '缝制小烫', 'id' => 'fegnzhi', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
+            ['name' => '后道收样', 'id' => 'houdao', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
+            ['name' => '大烫', 'id' => 'datang', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
+            ['name' => '总检', 'id' => 'zongjian', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
+            ['name' => '包装', 'id' => 'baozhaung', '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['机台状态'];
+
+        if ($row) {
+            foreach ($row as $k => $v) {
+                $result['rows'][$k]['order'] = $v['订单编号'];
+                $result['rows'][$k]['kehu'] = $v['客户编号'];
+                $result['rows'][$k]['zdnum'] = $v['制单总数'];
+                $result['rows'][$k]['dw'] = $v['单位'];
+
+                // 判断出库日期,设置出库确认
+                $result['rows'][$k]['chuku'] = isset($v['出库日期']) && !empty($v['出库日期']) ? '已出库' : '未出库';
+
+                $result['rows'][$k]['caiqie'] = $v['裁切'] ?? '';
+                $result['rows'][$k]['fegnzhi'] = $v['缝制小烫'] ?? '';
+                $result['rows'][$k]['houdao'] = $v['后道收样'] ?? '';
+                $result['rows'][$k]['datang'] = $v['大烫'] ?? '';
+                $result['rows'][$k]['zongjian'] = $v['总检'] ?? '';
+                $result['rows'][$k]['baozhaung'] = $v['包装'] ?? '';
             }
+        } else {
+            // 如果没有数据,初始化空行
+            $result['rows'][0] = [
+                'order' => '', 'kehu' => '', 'zdnum' => '', 'dw' => '', 'chuku' => '',
+                'caiqie' => '', 'fegnzhi' => '', 'houdao' => '', 'datang' => '', 'zongjian' => '', 'baozhaung' => ''
+            ];
         }
-        
-        $res['status']=0;
-        $res['msg']='';
-        $res['data']=$result;
+//        echo "<pre>";print_r($result);echo "<pre>";die;
+
+        // 构造最终的返回数据
+        $res['status'] = 0;
+        $res['msg'] = '';
+        $res['data'] = $result;
+
         return json($res);
     }
 
-    //车间产量数据同步Redis
-    public function jtClDbToRedis()
-    {
-        $jtClDbToRedis = [];
-
-        //获取机台
-        $rows = db('设备_基本资料')
-            ->whereNotNull('sys_sbID')
-            ->column('设备编号');
 
-        //获取24小时内的hour组成数组
-        $hour = date('H');
-        $arr1 = range($hour+1,'23');
-        $arr2 = range('00',$hour);
-        $arr = array_merge($arr1,$arr2);
-        $arr = array_map(function($num) {
-            return sprintf("%02d", $num);
-        }, $arr);
+    /**
+     *已制单样衣未审、已审核待生产、生产中未完成【缓存】
+     */
+    public function yscjDbToRedis(){
+        //存缓存Redis
+        $redis = redis();
+        $redis_key = md5('yscjDbToRedis');
+        $res = \db('工单_基本资料')
+            ->where('sys_rq', '>=', date('Y-m-d', strtotime('-30 days')))
+            ->select();
+        $redis->set($redis_key, json_encode($res));
+        echo date("Y-m-d H:i:s").'存进去了';
+        return $res;
+    }
 
-        foreach($rows as $value){
-            $brr = [];
-            //查询该机台24内的产量数据
-            $row = db('设备_产量计酬')
-                ->where('sys_rq', '>', date('Y-m-d H:i:s', strtotime('-23 hours')))
-                ->where('sczl_jtbh', $value)
-                ->group('LEFT(sys_rq, 13)')
-                ->order('sys_rq')
-                ->column('DATE_FORMAT(sys_rq, "%H") as hour, SUM(sczl_cl) as total_cl');
-            //将产量数据赋值给小时
-            foreach($arr as $v){
-                $brr[$v] = array_key_exists($v,$row) ? $row[$v] : '0';
+    /**
+     *已制单样衣未审【接口】
+     */
+    public function yhcjDbToRedis(){
+        $redis = redis();
+        // 从 Redis 中获取数据
+        $row = json_decode($redis->get(md5('yscjDbToRedis')), true);
+        // 初始化计数器
+        $count = 0;
+        // 遍历数据,统计审核日期为空、mod_rq 为空、审核状态为空的数据
+        foreach ($row as $item) {
+            if (empty($item['审核日期']) && empty($item['Mod_rq']) && empty($item['审核'])) {
+                $count++;
             }
-            $jtClDbToRedis[$value] = $brr;
         }
-        $bool = cache('jtClDbToRedis',$jtClDbToRedis);
-        if($bool===false) $this->error('存入redis失败','','000002');
-        $this->success('同步成功');
+        // 构造返回数据
+        $result = [
+            'name' => '已制单样衣未审',
+            'value' => $count,
+        ];
+        // 构造最终的返回结构
+        $res = [
+            'status' => 0,
+            'msg' => '',
+            'data' => [$result],
+        ];
+        // 返回JSON格式的结果
+        return json($res);
     }
 
-    //获取机台产量数据
-    public function getJtClDbByRedis()
-    {
-        $req = $this->request->param();
-        if (isset($req['jtbh']) && !empty($req['jtbh'])){
-            $jtbh = $req['jtbh'];
-        }else{
-            $this->error('参数错误');
-        }
-        $row = cache('jtClDbToRedis');
-        $result['categories']=[];
-        $result['series'][0]['name']=$jtbh;
-        $result['series'][0]['data']=[];
-        if($row && array_key_exists($jtbh,$row)){
-            $result['categories'] = array_map('strval', array_keys($row[$jtbh]));
-            $result['series'][0]['data'] = array_values($row[$jtbh]);
+    /**
+     *已审核待生产【接口】
+     */
+    public function getYscjByRedis(){
+        $redis = redis();
+        // 从 Redis 中获取数据
+        $row = json_decode($redis->get(md5('yscjDbToRedis')), true);
+        // 初始化计数器
+        $count = 0;
+        // 遍历数据,统计审核日期为空、mod_rq 为空、审核状态为空的数据
+        foreach ($row as $item) {
+            if (empty($item['出库日期'])) {
+                $count++;
+            }
         }
-        
-        $res['status']=0;
-        $res['msg']='';
-        $res['data']=$result;
+        // 构造返回数据
+        $result = [
+            'name' => '已审核待生产',
+            'value' => $count,
+        ];
+        // 构造最终的返回结构
+        $res = [
+            'status' => 0,
+            'msg' => '',
+            'data' => [$result],
+        ];
+        // 返回JSON格式的结果
         return json($res);
     }
 
     /**
-     * 班组工作中心负荷
-     * @return void
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
+     *生产中未完成【缓存】
      */
-    public function bzDbToRedis()
-    {
-        $bzDbToRedis = [];
-        //计算当天时间
-        $sczlTime = date('Y-m-d H:i:s',time());
-        if ($sczlTime>date('Y-m-d 00:00:00') && $sczlTime<date('Y-m-d 08:30:00')){
-            $time = date('Y-m-d 00:00:00',time()-86400);
-        }else{
-            $time = date('Y-m-d 00:00:00');
-        }
-        //获取所有机台数据
-        $machineList = db('设备_基本资料')
-            ->where('sys_sbID','<>','')
-            ->where('使用部门','in',['印刷车间','印后车间'])
-            ->field('设备编号')
+    public function getJtClDbByRedis(){
+        //存缓存Redis
+        $redis = redis();
+        $redis_key = md5('getJtClDbByRedis');
+        $res = \db('工单_排程班次')
+            ->alias('a')
+            ->join('工单_印件资料 b','b.订单编号 = a.订单编号 AND a.子订单编号 = a.子订单编号')
+            ->join('设备_产量计酬 c','a.订单编号 = c.订单编号 AND a.子订单编号 = c.子订单编号','LEFT')
+            ->field('a.订单编号,a.子订单编号,b.款号,b.颜色,b.船样,b.zdtotal as 制单数,SUM(c.数量) as 已完成')
+            ->where('a.mod_rq',null)
             ->select();
-        //循环获取班组、工单、生产数据
-        foreach ($machineList as $key=>$value){
-            //获取正在生产工单信息
-            $workOrder = \db('设备_产量采集')
-                ->where('设备编号',$value['设备编号'])
-                ->field('工单编号,印件号,工序号,工序名称,当前状态')
-                ->order('UniqId desc')
-                ->find();
-            if (!$workOrder) continue;
-            //获取生产信息
-            $list = db('设备_产量计酬')
-                ->alias('a')
-                ->join('工单_基本资料 b','b.Gd_gdbh = a.sczl_gdbh')
-                ->join('工单_工艺资料 c','a.sczl_gdbh = c.Gy0_gdbh AND a.sczl_yjno = c.Gy0_yjno AND a.sczl_gxh = c.Gy0_gxh')
-                ->field([
-                    'SUM(a.sczl_cl)' => '已完成产量',
-                    'b.成品名称' => '产品名称',
-                    'c.Gy0_计划接货数' => '计划产量',
-                    'c.Gy0_小时产能' => '小时产能',
-                    'a.sczl_bzdh' => '班组代号'
-                ])
-                ->where([
-                    'a.sczl_jtbh' => $value['设备编号'],
-                    'a.sczl_gdbh' => $workOrder['工单编号'],
-                    'a.sczl_yjno' => $workOrder['印件号'],
-                    'a.sczl_gxh' => $workOrder['工序号'],
-                    'a.sczl_rq' => $time
-                ])
-                ->group('a.sczl_jtbh,a.sczl_bzdh')
-                ->select();
-            if (!$list) continue;
-            foreach ($list as $v){
-                $v['机台号'] = $value['设备编号'];
-                $v['机台状态'] = $workOrder['当前状态'];
-                $v['工单编号'] = $workOrder['工单编号'];
-                $v['印件号'] = $workOrder['印件号'];
-                $v['工序名称'] = $workOrder['工序名称'];
-                array_push($bzDbToRedis,$v);
-            }
-        }
-        $bool = cache('bzDbToRedis',$bzDbToRedis);
-        if($bool===false) $this->error('存入redis失败','','000002');
-        $this->success('同步成功');
+        $redis->set($redis_key, json_encode($res));
+        echo date("Y-m-d H:i:s").'存进去了';
+        return $res;
     }
 
     /**
-     * 获取班组工作负荷数据
-     * @return \think\response\Json
+     *生产中未完成【接口】
      */
-    public function getBzByRedis()
-    {
-        $row = cache('bzDbToRedis');
-        $result['columns']=[
-            ['name'=>'机台号','id'=>'jtbh','width'=>'14','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'班组','id'=>'bzdh','width'=>'16','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'在产工单号','id'=>'gdbh','width'=>'16','textAlign'=>'left'],
-            ['name'=>'工单名称','id'=>'gdmc','width'=>'20','autoWrap'=>"true",'textAlign'=>'left'],
-            ['name'=>'印件号','id'=>'yjno','width'=>'16','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]['bzdh']=$v['班组代号'];
-                $result['rows'][$k]['gdbh']=$v['工单编号'];
-                $result['rows'][$k]['gdmc']=$v['产品名称'];
-                $result['rows'][$k]['yjno']=$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['机台状态'];
+    public function getYhcjByRedis(){
+        $redis = redis();
+        // 从 Redis 中获取数据
+        $row = json_decode($redis->get(md5('getJtClDbByRedis')), true);
+        // 初始化计数器
+        $count = 0;
+        // 遍历数据,统计未完成的记录条数
+        foreach ($row as $item) {
+            // 假设 '制单数' 是生产总数,'已完成' 是完成的数量
+            if (isset($item['制单数']) && isset($item['已完成'])) {
+                // 判断未完成数量是否大于0
+                if ($item['制单数'] > $item['已完成']) {
+                    $count++;
+                }
             }
-        }else{
-            $result['rows'][0]['jtbh']='';
-            $result['rows'][0]['bzdh']='';
-            $result['rows'][0]['gdbh']='';
-            $result['rows'][0]['gdmc']='';
-            $result['rows'][0]['yjno']='';
-            $result['rows'][0]['gx']='';
-            $result['rows'][0]['jhcl'] = '';
-            $result['rows'][0]['wccl'] = '';
-            $result['rows'][0]['xscn'] = '';
-            $result['rows'][0]['status'] = '';
         }
-        $res['status']=0;
-        $res['msg']='';
-        $res['data']=$result;
+        // 构造返回数据
+        $result = [
+            'name' => '生产中未完成',
+            'value' => $count,
+        ];
+        // 构造最终的返回结构
+        $res = [
+            'status' => 0,
+            'msg' => '',
+            'data' => [$result],
+        ];
+        // 返回JSON格式的结果
         return json($res);
     }
+
+
+
+
+
+    public function jtClDbToRedis(){
+
+    }
+
 }