qiuenguang 1 rok pred
rodič
commit
aa1fcda94c
1 zmenil súbory, kde vykonal 34 pridanie a 1 odobranie
  1. 34 1
      application/api/controller/WorkOrder.php

+ 34 - 1
application/api/controller/WorkOrder.php

@@ -38,7 +38,6 @@ class WorkOrder extends Api
             'progressAll' => $progressAll,
             '印刷工单' => [],
             '糊盒工单' => []
-
         ];
         $sql = "SELECT DISTINCT
                     (客户编号),rtrim(客户名称 ) as 客户名称
@@ -990,6 +989,40 @@ class WorkOrder extends Api
             'yj_ls' => isset($param['ls'])?$param['ls']:'',
             'yj_desc' => isset($param['desc'])?$param['desc']:'',
         ];
+        //获取工单编号
+        $workOrder = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->field('Yj_Gdbh,yj_Yjno')->find();
+        //获取工艺资料
+        $processList = \db('工单_工艺资料')
+            ->where('Gy0_gdbh',$workOrder['Yj_Gdbh'])
+            ->where('Gy0_yjno',$workOrder['yj_Yjno'])
+            ->field('Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
+            ->select();
+        //计算损耗定额和计划产量
+        $production = [];
+        foreach ($processList as $key=>$value){
+            if ($key === 0){
+                array_push($production,$param['pztl']);
+            }
+            $wastage = 0;
+            if ($value['损耗率'] !== 0 && !empty($value['损耗率'])){
+                $wastage = ($production[$key]*$value['损耗率']+$value['损耗定额'])*$value['损耗系数'];
+            }
+
+            if ($value['Gy0_ms'] >0 && !empty($value['Gy0_ms'])){
+                $wastage = round($wastage * $value['Gy0_ms']);
+            }
+            if ((int)$value['Gy0_ls'] === 1 && $key>=1){
+                $number = $production[$key]*$processList[$key-1]['Gy0_ls'];
+            }else{
+                $number = $production[$key];
+            }
+            array_push($production,ceil($number-$wastage));
+            $processSql = \db('工单_工艺资料')
+                ->where('UniqId',$value['UniqId'])
+                ->fetchSql(true)
+                ->update(['Gy0_计划接货数'=>$production[$key],'Gy0_计划损耗'=>$wastage]);
+            \db()->query($processSql);
+        }
         $sql = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
         $res = Db::query($sql);
         if ($res !== false){