Bladeren bron

优化生产中工单工序接口

qiuenguang 1 jaar geleden
bovenliggende
commit
881c7ad56f
1 gewijzigde bestanden met toevoegingen van 16 en 15 verwijderingen
  1. 16 15
      application/api/controller/Manufacture.php

+ 16 - 15
application/api/controller/Manufacture.php

@@ -192,15 +192,21 @@ class Manufacture extends Api
         if (empty($Gd_gdbh)){
             $this->error('参数错误');
         }
-        $where = [
-            'Gy0_gdbh' => $Gd_gdbh,
-            'Gy0_sbbh' =>['neq',''],
-        ];
-        $field = 'rtrim(Gy0_gdbh) as 工单编号,Gy0_yjno,Gy0_gxh,Gy0_gxmc,Add_gxmc,rtrim(Gy0_sbbh) as 设备编号,rtrim(Gy0_小时产能) as 小时产能,
-        rtrim(工价系数) as 产能系数,rtrim(Gy0_生产工时) as 生产工时,rtrim(Gy0_辅助工时) as 辅助工时,rtrim(Gy0_最早开工时间) as 最早开工时间,
-        rtrim(Gy0_sj1) as 计划开工时间,rtrim(Gy0_sj2) as 计划完工时间,rtrim(Gy0_班次安排) as 班次安排,rtrim(工序备注) as 排单备注,
-        rtrim(PD_WG) as 工序完工,rtrim(UniqId) as UNIQID';
-        $list = Db::table('工单_工艺资料')->where($where)->field($field)->select();
+        $sql = "SELECT rtrim(a.Gy0_gdbh) as 工单编号,a.Gy0_yjno,a.Gy0_gxh,a.Gy0_gxmc,a.Add_gxmc,rtrim(a.Gy0_sbbh) as 设备编号,rtrim(a.Gy0_小时产能) as 小时产能,
+                rtrim(a.工价系数) as 产能系数,rtrim(a.Gy0_生产工时) as 生产工时,rtrim(a.Gy0_辅助工时) as 辅助工时,rtrim(a.Gy0_最早开工时间) as 最早开工时间,
+                rtrim(a.Gy0_sj1) as 计划开工时间,rtrim(a.Gy0_sj2) as 计划完工时间,rtrim(a.Gy0_班次安排) as 班次安排,rtrim(a.工序备注) as 排单备注,
+                rtrim(a.PD_WG) as 工序完工,rtrim(a.UniqId) as UniqId,COALESCE(b.cl, 0) AS 产量, c.设备名称,rtrim(d.计划投料) as 工序产量
+                FROM `工单_工艺资料` AS a
+                JOIN `设备_基本资料` AS c ON a.Gy0_sbbh = c.设备编号
+                JOIN `工单_基本资料` As d ON a.Gy0_gdbh = d.Gd_Gdbh
+                LEFT JOIN (
+                        SELECT sczl_gdbh, sczl_gxh, SUM(sczl_cl) AS cl
+                        FROM `设备_产量计酬`
+                        GROUP BY sczl_gdbh, sczl_gxh
+                ) AS b ON a.Gy0_gdbh = b.sczl_gdbh AND (a.Gy0_gxh = b.sczl_gxh OR b.sczl_gxh IS NULL)
+                WHERE a.Gy0_gdbh = '{$Gd_gdbh}' AND a.Gy0_sbbh != ''
+                GROUP BY a.Gy0_gxh";
+        $list = Db::query($sql);
         if (empty($list)){
             $this->error('未找到工序');
         }
@@ -218,12 +224,7 @@ class Manufacture extends Api
             }
             unset($list[$key]['Gy0_gxmc'],$list[$key]['Add_gxmc']);
             $list[$key]['机组'] = $value['设备编号'];
-            $orderDetail = Db::table('工单_基本资料')->where('Gd_gdbh',$list[$key]['工单编号'])->field('rtrim(计划投料) as 计划投料')->find();
-            $list[$key]['工序产量'] = $orderDetail['计划投料'];
-            $end = Db::table('设备_产量计酬')->where('sczl_gdbh',$value['工单编号'])->where('sczl_jtbh',$value['设备编号'])
-                ->field('SUM(sczl_cl) as 已完成产量')->select();
-            $list[$key]['已完成产量'] = (int)$end[0]['已完成产量'];
-            $list[$key]['剩余产量'] = (int)$list[$key]['工序产量']-(int)$list[$key]['已完成产量'];
+            $list[$key]['剩余产量'] = (int)$list[$key]['工序产量']-(int)$list[$key]['产量'];
         }
         $this->success('成功',$list);
     }