فهرست منبع

超节损优化

qiuenguang 1 سال پیش
والد
کامیت
1029e08203
1فایلهای تغییر یافته به همراه44 افزوده شده و 20 حذف شده
  1. 44 20
      application/api/controller/OrderSuperLoss.php

+ 44 - 20
application/api/controller/OrderSuperLoss.php

@@ -1141,8 +1141,11 @@ class OrderSuperLoss extends Api
             }else{
                 $data[$key]['PD_WG'] = '完工';
             }
+            //印刷方式为卷对卷时候:上报产量/版距*1000
             if ($item['印刷方式'] === '卷对卷'){
                 $data[$key]['sczl_cl'] = ceil($data[$key]['sczl_cl']/$item['版距']*1000);
+                $data[$key]['sczl_zcfp'] = ceil($data[$key]['sczl_zcfp']/$item['版距']*1000);
+                $data[$key]['来料异常'] = ceil($data[$key]['来料异常']/$item['版距']*1000);
             }
         }
         $this->success('请求成功',$data);
@@ -1240,7 +1243,6 @@ class OrderSuperLoss extends Api
             'gdbh' => $gdbh,
             'yjno' => $yjno
         ];
-//
         //查询工单入仓数据
         $workOrderData = \db('成品入仓')
             ->where('jjcp_gdbh', $param['gdbh'])
@@ -1255,7 +1257,7 @@ class OrderSuperLoss extends Api
         //查询工单资料、投料数据
         $field = 'a.Gd_gdbh,rtrim(a.成品代号) as 成品代号,rtrim(a.成品名称) as 成品名称,
                   rtrim(a.销售订单号) as 销售订单号,a.订单数量,c.yj_ls as ls,c.yj_ks as ks,SUM(b.st_sl) as 投料,
-                  b.st_dw,c.yj_zzmc';
+                  b.st_dw,c.yj_zzmc,c.yj_tlgg';
         $data = db('工单_基本资料')
             ->alias('a')
             ->join('物料_收发记录 b', 'a.Gd_gdbh = b.st_gdbh AND a.Gd_cpdh = b.cpdh')
@@ -1271,9 +1273,13 @@ class OrderSuperLoss extends Api
         if ($data['投料'] == null){
             return false;
         }
-        preg_match('/(\d+)g/',$data['yj_zzmc'], $matches);
-        if ($data['st_dw'] === '吨'){
-            $data['投料'] = round(($data['投料']*1000*1000)/$matches[1]);
+        if (!empty($data['yj_tlgg'])){
+            $number1 = (int)substr($data['yj_tlgg'],0,3);
+            $number2 = (int)substr($data['yj_tlgg'],4,3);
+            preg_match('/(\d+)g/',$data['yj_zzmc'], $matches);
+            if ($data['st_dw'] === '吨'){
+                $data['投料'] = round(($data['投料']*1000*1000)/$matches[1]/($number1*$number2)*1000000);
+            }
         }
         //将开数、联数为0重新赋值
         if ($data['ls'] == 0) {
@@ -1813,7 +1819,7 @@ class OrderSuperLoss extends Api
             SUM(`班组分摊计划损耗`) AS Gy0_计划损耗,  
             `计划产量` AS Gy0_计划接货数,  
             SUM(`班组分摊无形损`) AS Gy0_无形损,  
-            `CjsSl` AS loss,  
+            SUM(`CjsSl`) AS loss,  
             `印件工序产量` AS total_cl,  
             SUM(`班组制程废品`) AS total_fp,  
             SUM(`班组质检废品`) AS waste_quality,
@@ -1839,20 +1845,38 @@ class OrderSuperLoss extends Api
         }
         $list['gy_data'] = $gy_data;
         //工单节损数据
-        $total_field = '
-            `班组分摊质检废品` as total_waste,
-            SUM(`班组质检废品`) as total_zjfp,
-            SUM(`班组制程废品`) as total_fp,
-            SUM(DISTINCT `计划损耗`) AS plan_loss,
-            `材料废`,
-            `印件无形损` as waste_intangible,
-            SUM(CjsSl) as loss,
-            SUM(CjsJe) as reward
-        ';
-        $total = \db('工单_质量考核汇总')
-            ->where($where)
-            ->field($total_field)
-            ->find();
+//        $total_field = '
+//            `班组分摊质检废品` as total_waste,
+//            SUM(`班组质检废品`) as total_zjfp,
+//            SUM(`班组制程废品`) as total_fp,
+//            SUM(DISTINCT `计划损耗`) AS plan_loss,
+//            `材料废`,
+//            `印件无形损` as waste_intangible,
+//            SUM(CjsSl) as loss,
+//            SUM(CjsJe) as reward
+//        ';
+//        $total = \db('工单_质量考核汇总')
+//            ->where($where)
+//            ->field($total_field)
+//            ->find();
+        $total = [
+            'total_waste' => 0,
+            'total_zjfp' => 0,
+            'total_fp' => 0,
+            'plan_loss' => 0,
+            'waste_intangible' => 0,
+            'loss' => 0,
+            'reward' => 0,
+        ];
+        foreach ($gy_data as $item){
+            $total['total_waste'] += $item['total_waste'];
+            $total['total_zjfp'] += $item['waste_quality'];
+            $total['total_fp'] += $item['total_fp'];
+            $total['plan_loss'] += $item['Gy0_计划损耗'];
+            $total['waste_intangible'] += $item['Gy0_无形损'];
+            $total['loss'] += $item['loss'];
+            $total['reward'] += $item['工序超节损金额'];
+        }
         //查询废品数量
         $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,