Ver código fonte

工序状态更正优化

qiuenguang 1 ano atrás
pai
commit
8f5a1cab4f
1 arquivos alterados com 13 adições e 10 exclusões
  1. 13 10
      application/api/controller/Manufacture.php

+ 13 - 10
application/api/controller/Manufacture.php

@@ -540,15 +540,15 @@ class Manufacture extends Api
         }
         $where = [
             'Gy0_gdbh' => $param['workOrder'],
-            'Gy0_sbbh' => ['<>','']
         ];
         $workOrder = $where['Gy0_gdbh'];
         $field = 'rtrim(Gy0_yjno) as yjno,rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc,rtrim(Gy0_sbbh) as 设备代号,rtrim(Gy0_计划接货数) as 计划接货数,rtrim(Gy0_ls) as ls,rtrim(PD_WG) as 完工时间,rtrim(UniqId) as UniqId';
-        $list = \db('工单_工艺资料')->where($where)->field($field)->order('Gy0_gxh')->select();
+        $list = \db('工单_工艺资料')->where($where)->field($field)->order('Gy0_yjno,Gy0_gxh')->select();
         if (empty($list)){
             $this->success('未找到该工单工艺资料');
         }
         $yieldSql = "SELECT
+            a.Gy0_yjno AS yjno,
             a.Gy0_gxh AS gxh,
             SUM( b.sczl_cl ) AS cl 
         FROM
@@ -557,7 +557,7 @@ class Manufacture extends Api
         WHERE
             a.Gy0_gdbh = '{$workOrder}' 
         GROUP BY
-            a.Gy0_gxh";
+            a.Gy0_yjno,a.Gy0_gxh";
         $yield = Db::query($yieldSql);
         foreach ($list as $key=>$value){
             if ($value['yjno']<10){
@@ -568,16 +568,19 @@ class Manufacture extends Api
             }
             $list[$key]['印件及工序'] = $value['yjno'].'-'.$value['gxh'].'-->'.$value['gxmc'];
             foreach ($yield as $k=>$v){
-                if ($v['gxh'] === $list[$key]['gxh']){
-                    $list[$key]['计划产量/已完成'] = (int)($value['计划接货数']).'/'.$v['cl'];
-                    if ($value['计划接货数'] !== 0 && $value['计划接货数'] !== '' &&  !empty($value['计划接货数'])){
-                        $list[$key]['完成率'] = number_format($v['cl']/$value['计划接货数'],4)*100 . '%';
+                if ($v['yjno'] === $list[$key]['yjno']) {
+                    if ($v['gxh'] === $list[$key]['gxh']){
+                        $list[$key]['计划产量/已完成'] = (int)$value['计划接货数'] . '/' . $v['cl'];
+                        if ($value['计划接货数'] !== 0 && $value['计划接货数'] !== '' && !empty($value['计划接货数'])) {
+                            $num = (float)number_format(intval($v['cl']) / intval($value['计划接货数']), 4);
+                            $list[$key]['完成率'] = $num * 100 . '%';
+                        } else {
+                            $list[$key]['完成率'] = '';
+                        }
                     }else{
+                        $list[$key]['计划产量/已完成'] = $value['计划接货数'].'/0';
                         $list[$key]['完成率'] = '';
                     }
-                }else{
-                    $list[$key]['计划产量/已完成'] = ($value['计划接货数']/$value['ls']).'/0';
-                    $list[$key]['完成率'] = '';
                 }
             }
             if ($value['完工时间'] == '1900-01-01 00:00:00') {