Просмотр исходного кода

计划产量重新分配优化

unknown 6 месяцев назад
Родитель
Сommit
cd4bf93c7c
1 измененных файлов с 52 добавлено и 22 удалено
  1. 52 22
      application/api/controller/WorkOrder.php

+ 52 - 22
application/api/controller/WorkOrder.php

@@ -2696,36 +2696,33 @@ class WorkOrder extends Api
         //获取工艺资料
         //获取工艺资料
         $processList = \db('工单_工艺资料')
         $processList = \db('工单_工艺资料')
             ->where($where)
             ->where($where)
-            ->field('Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
+            ->field('CONCAT(rtrim(Gy0_gxmc),"[",rtrim(Add_gxmc),"]") as 工序名称,Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
             ->order('Gy0_gxh')
             ->order('Gy0_gxh')
             ->select();
             ->select();
         if (empty($processList)){
         if (empty($processList)){
             $this->success('未找到该工单工序资料');
             $this->success('未找到该工单工序资料');
         }
         }
+        $processDetail = \db('工单_工艺资料')
+            ->where($where)
+            ->field('CONCAT(rtrim(Gy0_gxmc),"[",rtrim(Add_gxmc),"]") as 工序名称,Gy0_ls as 联数')
+            ->select();
+        $number1 = $number2 = 1;
+        foreach ($processDetail as $k => $v) {
+            if (strpos($v['工序名称'],'分切') !== false) {
+                $number1 = $v['联数'];
+            }
+            if (strpos($v['工序名称'],'分切') === false && $v['联数'] > 1) {
+                $number2 = $v['联数'];
+            }
+        }
+        $Multiple = $number1/$number2;
+        if (is_int($Multiple) === false) {
+            $Multiple = 1;
+        }
         //计算损耗定额和计划产量
         //计算损耗定额和计划产量
         $production = [];
         $production = [];
         $i = 0;
         $i = 0;
         foreach ($processList as $key=>$value){
         foreach ($processList as $key=>$value){
-//            if ($key === 0){
-//                array_push($production,$feed);
-//            }
-//            $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];
-//            }
-//            if ($key>=1 && (int)$processList[$key-1]['Gy0_ls'] === 1 &&  (int)$value['Gy0_ls'] > 1){
-//                $number = $number/(int)$value['Gy0_ls'];
-//            }
-//            array_push($production,ceil($number-$wastage));
             if ($key === 0){
             if ($key === 0){
                 array_push($production,$feed);
                 array_push($production,$feed);
             }else{
             }else{
@@ -2738,7 +2735,7 @@ class WorkOrder extends Api
             if ($value['Gy0_ms'] >0 && !empty($value['Gy0_ms'])){
             if ($value['Gy0_ms'] >0 && !empty($value['Gy0_ms'])){
                 $wastage = round($wastage * $value['Gy0_ms']);
                 $wastage = round($wastage * $value['Gy0_ms']);
             }
             }
-            array_push($production,ceil($production[$key]-$wastage)*$value['Gy0_ls']);
+            array_push($production,ceil($production[$key]-$wastage)*$value['Gy0_ls']/$Multiple);
             $processSql = \db('工单_工艺资料')
             $processSql = \db('工单_工艺资料')
                 ->where('UniqId',$value['UniqId'])
                 ->where('UniqId',$value['UniqId'])
                 ->fetchSql(true)
                 ->fetchSql(true)
@@ -2865,4 +2862,37 @@ class WorkOrder extends Api
         $list['工序号'] = $process + 1;
         $list['工序号'] = $process + 1;
         $this->success('成功',$list);
         $this->success('成功',$list);
     }
     }
+
+    /**
+     * 糊盒工单配件完成度查询
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public function Accessories()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (empty($param['batch'])){
+            $this->error('参数错误');
+        }
+        $list = \db('工单_基本资料')
+            ->alias('a')
+            ->join('工单_印件资料 b','a.Gd_gdbh=b.Yj_Gdbh')
+            ->join('成品入仓 c','a.Gd_gdbh=c.jjcp_gdbh and a.销售订单号 = c.订单编号 and b.yj_Yjno = c.jjcp_yjno','left')
+            ->where('a.销售订单号',$param['batch'])
+            ->field('a.Gd_gdbh as 工单编号,b.yj_Yjno as 印件号,b.yj_yjmc as 印件名称,b.yj_平张投料*b.yj_ls*b.yj_ks as 计划产量,SUM(c.jjcp_sl) as 入仓数量')
+            ->group('a.Gd_gdbh,b.yj_Yjno')
+            ->order('a.Gd_gdbh,b.yj_Yjno')
+            ->select();
+        if (empty($list)){
+            $this->error('未找到数据');
+        }else{
+            $this->success('成功',$list);
+        }
+    }
+
 }
 }