Explorar el Código

车间设备排程

qiuenguang hace 1 año
padre
commit
ae7b948f6c
Se han modificado 1 ficheros con 31 adiciones y 24 borrados
  1. 31 24
      application/api/controller/Manufacture.php

+ 31 - 24
application/api/controller/Manufacture.php

@@ -645,27 +645,40 @@ class Manufacture extends Api
             $this->error('参数错误');
         }
         $where = [
-            'Gy0_sbbh' => $param['machine'],
+            'Gy0_sbbh' => ['like','%'.$param['machine'].'%'],
             'Gy0_sj1' => ['between',['1900-01-01 00:00:01','2098-12-31 23:59:59']],
             'PD_WG' => '1900-01-01 00:00:00'
         ];
-        $machine = $where['Gy0_sbbh'];
-        if (isset($param['class'])){
-            $where['Gy0_班次安排'] = $param['class'];
-        }
-        $filed = 'rtrim(Gy0_gdbh) as 工单编号,rtrim(Gy0_计划接货数) as 计划接货数,rtrim(Gy0_小时产能) as 小时产能,
-        rtrim(Gy0_生产工时) as 生产工时,rtrim(Gy0_辅助工时) as 辅助工时,rtrim(Gy0_班次安排) as 班次安排,rtrim(工序备注) as 排单备注,
-        rtrim(Gy0_最早开工时间) as 最早开工时间,rtrim(Gy0_sj1) as 计划开工时间,rtrim(Gy0_sj2) as 计划完工时间,rtrim(Gy0_yjno) as yjno,
-        rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(Gy0_ls) as ls,rtrim(UniqId) as UniqId';
-        $list = \db('工单_工艺资料')->where($where)->field($filed)->cache(true)->select();
-        if (empty($list)){
-            $this->success('未找到该机台制程中产品');
-        }
-        $Sql = "SELECT SUM(c.sczl_cl) as 已完成,rtrim(c.sczl_gdbh) as gdbh
-                FROM `工单_工艺资料` AS a  JOIN `设备_产量计酬` AS c ON a.Gy0_gdbh = c.sczl_gdbh 
-                AND a.Gy0_gxh = c.sczl_gxh WHERE a.Gy0_sbbh = '{$machine}' AND a.Gy0_sj1 > '1900-01-01 00:00:00' 
-                AND a.Gy0_sj1 < '2099-01-01 00:00:00' AND a.PD_WG = '1900-01-01 00:00:00' GROUP BY a.Gy0_gdbh";
-        $res = Db::query($Sql);
+        $machine = $param['machine'];
+        $list = \db('工单_工艺资料')
+            ->alias('a')
+            ->field([
+                'rtrim(a.Gy0_gdbh)' => '工单编号',
+                'rtrim(a.Gy0_计划接货数)' => '计划接货数',
+                'rtrim(a.Gy0_小时产能)' => '小时产能',
+                'rtrim(a.Gy0_生产工时)' => '生产工时',
+                'rtrim(a.Gy0_辅助工时)' => '辅助工时',
+                'rtrim(a.Gy0_班次安排)' => '班次安排',
+                'rtrim(a.工序备注)' => '排单备注',
+                'rtrim(a.Gy0_最早开工时间)' => '最早开工时间',
+                'rtrim(a.Gy0_sj1)' => '计划开工时间',
+                'rtrim(a.Gy0_sj2)' => '计划完工时间',
+                'rtrim(a.Gy0_yjno)' => 'yjno',
+                'rtrim(a.Gy0_gxh)' => 'gxh',
+                'rtrim(a.Gy0_gxmc)' => 'gxmc',
+                'rtrim(a.Gy0_ls)' => 'ls',
+                'rtrim(a.UniqId)' => 'UniqId',
+                'SUM(b.sczl_cl)' => '已完成'
+            ])
+            ->join('设备_产量计酬 b','a.Gy0_gdbh = b.sczl_gdbh AND a.Gy0_gxh = b.sczl_gxh','LEFT')
+            ->where([
+                'a.Gy0_sbbh' => $machine,
+                'a.Gy0_sj1' => ['>','1900-01-01 00:00:00'],
+                'a.PD_WG' => '1900-01-01 00:00:00'
+            ])
+            ->where('a.Gy0_sj1','<','2099-01-01 00:00:00')
+            ->group('a.Gy0_gdbh')
+            ->select();
         foreach ($list as $key=>$value){
             $list[$key]['计划接货数'] = (int)round($value['计划接货数']/$value['ls']);
             if ($value['yjno']<10){
@@ -676,12 +689,6 @@ class Manufacture extends Api
             }
             $list[$key]['印件/工序'] = $value['yjno'].'-'.$value['gxh'].'-'.$value['gxmc'];
             unset($list[$key]['yjno'],$list[$key]['gxh'],$list[$key]['gxmc'],$list[$key]['ls']);
-            $list[$key]['已完成'] = 0;
-            foreach ($res as $k=>$v){
-                if ($value['工单编号'] === $v['gdbh']){
-                    $list[$key]['已完成'] = $v['已完成'];
-                }
-            }
         }
         $this->success('成功',$list);
     }