qiuenguang 11 месяцев назад
Родитель
Сommit
934866e5db
1 измененных файлов с 31 добавлено и 12 удалено
  1. 31 12
      application/api/controller/OrderSuperLoss.php

+ 31 - 12
application/api/controller/OrderSuperLoss.php

@@ -1245,6 +1245,7 @@ class OrderSuperLoss extends Api
             'gdbh' => $gdbh,
             'gdbh' => $gdbh,
             'yjno' => $yjno
             'yjno' => $yjno
         ];
         ];
+
         //查询工单入仓数据
         //查询工单入仓数据
         $workOrderData = \db('成品入仓')
         $workOrderData = \db('成品入仓')
             ->where('jjcp_gdbh', $param['gdbh'])
             ->where('jjcp_gdbh', $param['gdbh'])
@@ -1341,6 +1342,7 @@ class OrderSuperLoss extends Api
         $out_sql = "SELECT qczl_num,fp_sl1,fp_sl2,fp_sl3,fp_sl4,fp_sl5,fp_sl6,fp_sl7,fp_sl8,fp_sl9,fp_sl10,fp_sl11,fp_sl12,fp_sl13,
         $out_sql = "SELECT qczl_num,fp_sl1,fp_sl2,fp_sl3,fp_sl4,fp_sl5,fp_sl6,fp_sl7,fp_sl8,fp_sl9,fp_sl10,fp_sl11,fp_sl12,fp_sl13,
                         fp_lb1,fp_lb2,fp_lb3,fp_lb4,fp_lb5,fp_lb6,fp_lb7,fp_lb8,fp_lb9,fp_lb10,fp_lb11,fp_lb12,fp_lb13, 
                         fp_lb1,fp_lb2,fp_lb3,fp_lb4,fp_lb5,fp_lb6,fp_lb7,fp_lb8,fp_lb9,fp_lb10,fp_lb11,fp_lb12,fp_lb13, 
                         fp_bh1,fp_bh2,fp_bh3,fp_bh4,fp_bh5,fp_bh6,fp_bh7,fp_bh8,fp_bh9,fp_bh10,fp_bh11,fp_bh12,fp_bh13,
                         fp_bh1,fp_bh2,fp_bh3,fp_bh4,fp_bh5,fp_bh6,fp_bh7,fp_bh8,fp_bh9,fp_bh10,fp_bh11,fp_bh12,fp_bh13,
+                        fp_bz1,fp_bz2,fp_bz3,fp_bz4,fp_bz5,fp_bz6,fp_bz7,fp_bz8,fp_bz9,fp_bz10,fp_bz11,fp_bz12,fp_bz13,
                         fp_gxmc1,fp_gxmc2,fp_gxmc3,fp_gxmc4,fp_gxmc5,fp_gxmc6,fp_gxmc7,fp_gxmc8,fp_gxmc9,fp_gxmc10,fp_gxmc11,fp_gxmc12,fp_gxmc13,UniqId
                         fp_gxmc1,fp_gxmc2,fp_gxmc3,fp_gxmc4,fp_gxmc5,fp_gxmc6,fp_gxmc7,fp_gxmc8,fp_gxmc9,fp_gxmc10,fp_gxmc11,fp_gxmc12,fp_gxmc13,UniqId
                         FROM db_qczl WHERE qczl_gdbh = '{$workOrderData['jjcp_gdbh']}' AND qczl_yjno = '{$workOrderData['jjcp_yjno']}'";
                         FROM db_qczl WHERE qczl_gdbh = '{$workOrderData['jjcp_gdbh']}' AND qczl_yjno = '{$workOrderData['jjcp_yjno']}'";
         $waste_out = Db::query($out_sql);
         $waste_out = Db::query($out_sql);
@@ -1378,7 +1380,7 @@ class OrderSuperLoss extends Api
                     }
                     }
 
 
                     //机检废品
                     //机检废品
-                    if (substr($entry[$labelKey],0,1) == 'K' ){
+                    if (substr($entry[$gxmcKey],0,2) == '01' ){
                         $machine[$o]= $entry[$slKey];
                         $machine[$o]= $entry[$slKey];
                         $o++;
                         $o++;
                     }
                     }
@@ -1446,8 +1448,23 @@ class OrderSuperLoss extends Api
                          b.sczl_bh4, b.sczl_bh5, b.sczl_bh6, b.sczl_bh7, b.sczl_bh8, b.sczl_bh9, c.sczl_bh1')
                          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')
             ->order('a.Gy0_gxh asc, b.开工时间 asc, c.sczl_rq desc')
             ->select();
             ->select();
+        $sumBz = [];
+        foreach ($gy_data as $kk => $vv){
+            //每道工序的产量(按班组分)
+            $vv['total_cl'] = $vv['total_cl'] * $vv['Gy0_ls'] * $vv['Gy0_ks'];
+            if (empty($vv['total_cl'])) {
+                $vv['total_cl'] = $vv['cl'] * $vv['Gy0_ls'] * $vv['Gy0_ks'];
+            }
+            if (empty($vv['sczl_bh1'])){
+                $vv['sczl_bh1'] = $vv['sczl_bh'];
+            }
+            if (isset($sumBz[$vv['sczl_bh1']])){
+                $sumBz[$vv['sczl_bh1']] += $vv['total_cl'];
+            }else{
+                $sumBz[$vv['sczl_bh1']] = $vv['total_cl'];
+            }
+        }
         foreach ($gy_data as $kk => $vv) {
         foreach ($gy_data as $kk => $vv) {
-            $num_data = explode(',',$vv['流程单']);
             //每道工序的产量(按班组分)
             //每道工序的产量(按班组分)
             $gy_data[$kk]['total_cl'] = $vv['total_cl'] * $vv['Gy0_ls'] * $vv['Gy0_ks'];
             $gy_data[$kk]['total_cl'] = $vv['total_cl'] * $vv['Gy0_ls'] * $vv['Gy0_ks'];
             if (empty($vv['total_cl'])) {
             if (empty($vv['total_cl'])) {
@@ -1481,17 +1498,19 @@ class OrderSuperLoss extends Api
             }
             }
             $gy_data[$kk]['sczl_bh1'] = $vv['sczl_bh1'];
             $gy_data[$kk]['sczl_bh1'] = $vv['sczl_bh1'];
             $gy_data[$kk]['质检废'] = 0;
             $gy_data[$kk]['质检废'] = 0;
+            $gy_data[$kk]['zjfp'] = 0;
             foreach ($waste_out as $entry) {
             foreach ($waste_out as $entry) {
                 for ($i = 1; $i <= 13; $i++) {
                 for ($i = 1; $i <= 13; $i++) {
                     $gxmcKey = "fp_gxmc" . $i;
                     $gxmcKey = "fp_gxmc" . $i;
                     $gxlbKey = "fp_lb" . $i;
                     $gxlbKey = "fp_lb" . $i;
                     $slKey = "fp_sl" . $i;
                     $slKey = "fp_sl" . $i;
                     $bhKey = "fp_bh" . $i;
                     $bhKey = "fp_bh" . $i;
-                    if ((int)substr($entry[$gxmcKey], 0, 2) == $vv['Gy0_gxh'] && $entry[$bhKey] == $vv['sczl_bh1'] && in_array($entry['qczl_num'],$num_data)) {
-                        $gy_data[$kk]['质检废'] += $entry[$slKey];
+                    if ((int)substr($entry[$gxmcKey], 0, 2) == $vv['Gy0_gxh'] && $entry[$bhKey] == $vv['sczl_bh1']) {
+                        $gy_data[$kk]['zjfp'] += $entry[$slKey];
                     }
                     }
                 }
                 }
             }
             }
+            $gy_data[$kk]['质检废'] = round($gy_data[$kk]['zjfp']*($gy_data[$kk]['total_cl']/$sumBz[$vv['sczl_bh1']]));
             //无形损分摊
             //无形损分摊
             if ($plan_total > 0) {
             if ($plan_total > 0) {
                 $gy_data[$kk]['无形损分摊'] = round($gy_data[$kk]['计划损耗'] / $plan_total * $data['intangible_loss']);
                 $gy_data[$kk]['无形损分摊'] = round($gy_data[$kk]['计划损耗'] / $plan_total * $data['intangible_loss']);
@@ -1578,8 +1597,8 @@ class OrderSuperLoss extends Api
                 '印件工序产量' => $value['工序产量'],
                 '印件工序产量' => $value['工序产量'],
                 '班组产量' => $value['total_cl'],
                 '班组产量' => $value['total_cl'],
                 '班组制程废品' => $value['sczl_zcfp'],
                 '班组制程废品' => $value['sczl_zcfp'],
-                '班组质检废品' => $value['质检废'],
-                '班组分摊质检废品' => $data['工单质检废'],
+                '班组质检废品' => $value['zjfp'],
+                '班组分摊质检废品' => $value['质检废'],
                 '无班组废品' => 0,
                 '无班组废品' => 0,
                 '外发废' => $data['外发废'],
                 '外发废' => $data['外发废'],
                 '材料废' => $data['材料废'],
                 '材料废' => $data['材料废'],
@@ -1714,7 +1733,7 @@ class OrderSuperLoss extends Api
         b.`零头处理`,  
         b.`零头处理`,  
         b.`外发废`,  
         b.`外发废`,  
         SUM(b.`班组制程废品`) AS zcfp,  
         SUM(b.`班组制程废品`) AS zcfp,  
-        b.`班组分摊质检废品` AS 工单质检废  
+        SUM(b.`班组分摊质检废品`) AS 工单质检废  
     ';
     ';
         $list = \db('成品入仓')
         $list = \db('成品入仓')
             ->alias('a')
             ->alias('a')
@@ -1801,7 +1820,7 @@ class OrderSuperLoss extends Api
             `零头处理`,  
             `零头处理`,  
             `外发废`,  
             `外发废`,  
             SUM(`班组制程废品`) AS `zcfp`,  
             SUM(`班组制程废品`) AS `zcfp`,  
-            `班组分摊质检废品`,  
+            SUM(`班组分摊质检废品`) AS `班组分摊质检废品`,  
             `订单数量`,  
             `订单数量`,  
             `销售订单号`
             `销售订单号`
             
             
@@ -1835,7 +1854,7 @@ class OrderSuperLoss extends Api
             SUM(`CjsSl`) AS loss,  
             SUM(`CjsSl`) AS loss,  
             `印件工序产量` AS total_cl,  
             `印件工序产量` AS total_cl,  
             SUM(`班组制程废品`) AS total_fp,  
             SUM(`班组制程废品`) AS total_fp,  
-            SUM(`班组质检废品`) AS waste_quality,
+            SUM(`班组分摊质检废品`) AS waste_quality,
             SUM(`CjsJe`) AS 工序超节损金额,
             SUM(`CjsJe`) AS 工序超节损金额,
             `无形损承担比例`,
             `无形损承担比例`,
             `超节损承担比例`
             `超节损承担比例`
@@ -1933,7 +1952,7 @@ class OrderSuperLoss extends Api
             `零头处理`,  
             `零头处理`,  
             `外发废`,  
             `外发废`,  
             SUM(`班组制程废品`) AS `zcfp`,  
             SUM(`班组制程废品`) AS `zcfp`,  
-            `班组分摊质检废品`,  
+            SUM(`班组分摊质检废品`) AS `班组分摊质检废品`,  
             `订单数量`,  
             `订单数量`,  
             `销售订单号`
             `销售订单号`
             
             
@@ -1975,7 +1994,7 @@ class OrderSuperLoss extends Api
                 '节损奖' => $item['CjsJe'],
                 '节损奖' => $item['CjsJe'],
                 '节损数量' => $item['CjsSl'],
                 '节损数量' => $item['CjsSl'],
                 'sczl_zcfp' => $item['班组制程废品'],
                 'sczl_zcfp' => $item['班组制程废品'],
-                '质检废' => $item['班组质检废品'],
+                '质检废' => $item['班组分摊质检废品'],
                 '超节损承担比例' => ($item['超节损承担比例']*100).'%',
                 '超节损承担比例' => ($item['超节损承担比例']*100).'%',
             ];
             ];
             array_push($class_data,$data);
             array_push($class_data,$data);
@@ -1983,7 +2002,7 @@ class OrderSuperLoss extends Api
         $list['gy_data'] = $class_data;
         $list['gy_data'] = $class_data;
         //工单节损数据
         //工单节损数据
         $total_field = '
         $total_field = '
-            `班组分摊质检废品` as total_waste,
+            SUM(`班组分摊质检废品`) as total_waste,
             SUM(`班组质检废品`) as total_zjfp,
             SUM(`班组质检废品`) as total_zjfp,
             SUM(`班组制程废品`) as total_fp,
             SUM(`班组制程废品`) as total_fp,
             SUM(DISTINCT `计划损耗`) AS plan_loss,
             SUM(DISTINCT `计划损耗`) AS plan_loss,