ソースを参照

优化超节损工序统计

huangsanjia 1 年間 前
コミット
15d1192c83
1 ファイル変更17 行追加7 行削除
  1. 17 7
      application/api/controller/OrderSuperLoss.php

+ 17 - 7
application/api/controller/OrderSuperLoss.php

@@ -435,6 +435,7 @@ class OrderSuperLoss extends Api
                 $gy_data[$k]['waste_quality'] = 0;
                 $gy_data[$k]['total_fp'] = $item['total_fp'] * $item['Gy0_ls'];
                 $gy_data[$k]['total_cl'] = $item['total_cl'] * $item['Gy0_ls'];
+                //无形损
                 $gy_data[$k]['intangible_loss'] = round($item['Gy0_计划损耗'] / $plan_total * $data['intangible_loss']);
                 foreach ($waste_out as $entry) {
                     for ($i = 1; $i <= 13; $i++) {
@@ -446,10 +447,23 @@ class OrderSuperLoss extends Api
                         }
                     }
                 }
-                $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['intangible_loss'] +  $gy_data[$k]['total_fp'];
+                //报废合计
+                if ($gy_data[$k]['intangible_loss'] < 0){
+                    $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality']  +  $gy_data[$k]['total_fp'];
+                }else{
+                    $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['intangible_loss'] +  $gy_data[$k]['total_fp'];
+                }
+                //工序节损数
                 $gy_data[$k]['loss'] = $item['Gy0_计划损耗'] - $gy_data[$k]['total_waste'];
+                //占投料报废率
                 $gy_data[$k]['loss_rate'] = number_format($gy_data[$k]['loss'] / $item['Gy0_计划接货数'],4) * 100 .'%';
-                $gy_data[$k]['target_loss_rate'] = number_format($item['Gy0_计划损耗'] / $item['Gy0_计划接货数'],4) * 100 .'%';
+                //工序目标报废率
+                $target_loss_rate = floor($item['Gy0_计划损耗'] / $item['Gy0_计划接货数'] * 10000) / 10000;
+                if ($target_loss_rate == 0){
+                    $target_loss_rate = round($item['Gy0_计划损耗'] / $item['Gy0_计划接货数'] * 10000) / 10000;
+                }
+                $gy_data[$k]['target_loss_rate'] = $target_loss_rate * 100 . '%';
+                //工序实际报废率
                 $gy_data[$k]['actual_loss_rate'] = number_format($gy_data[$k]['total_waste'] / $item['Gy0_计划接货数'],4) * 100 .'%';
                 $gy_data[$k]['超节损承担比例'] = number_format($item['超节损承担比例'],4) * 100 .'%';
 
@@ -492,13 +506,10 @@ class OrderSuperLoss extends Api
                     'a.Gy0_gdbh' => $order,
                     'a.Gy0_gxh' => ['in', $gxh_values]
                 ])
-//                ->group('b.sczl_gxh,b.sczl_bh1, b.sczl_bh2, b.sczl_bh3, b.sczl_bh4,b.sczl_bh5,b.sczl_bh6,b.sczl_bh7,b.sczl_bh8,b.sczl_bh9,b.sczl_bh10, c.sczl_bh')
                 ->group('b.sczl_gxh, b.sczl_bh1, CASE WHEN b.sczl_bh2 = "000000" THEN "" ELSE b.sczl_bh2 END, b.sczl_bh3, 
                          b.sczl_bh4, b.sczl_bh5, b.sczl_bh6, b.sczl_bh7, b.sczl_bh8, b.sczl_bh9, c.sczl_bh1')
                 ->order('a.Gy0_gxh asc, b.开工时间 asc, c.sczl_rq desc')
-//                ->fetchSql(true)
                 ->select();
-//            halt($gy_data);
             foreach ($gy_data as $key=>$value){
                 $gy_data[$key]['Gy0_yjno'] = $value['Gy0_yjno'] > 10 ? $value['Gy0_yjno'] : '0'.$value['Gy0_yjno'];
                 //每道工序的产量(按班组分)
@@ -543,10 +554,8 @@ class OrderSuperLoss extends Api
                         }
                     }
                 }
-
                 //无形损分摊
                 $gy_data[$key]['无形损分摊'] = round($gy_data[$key]['计划损耗'] / $plan_total * $data['intangible_loss']);
-
                 $gy_data[$key]['超节损承担比例'] = number_format($value['超节损承担比例'],4) * 100 .'%';
                 //班组成员
                 $nameArr = [];
@@ -563,6 +572,7 @@ class OrderSuperLoss extends Api
                 unset($gy_data[$key]['cl']);
                 unset($gy_data[$key]['fp']);
                 unset($gy_data[$key]['sczl_bh']);
+
             }
             //重新计算多班组同组长的质检废,质检废 = 班组产量 / 总产量 * 质检废
             $totals = [];