Преглед изворни кода

Merge branch 'master' of https://git.7in6.com/Minong/mes-server-api

曹鹤洋 пре 1 година
родитељ
комит
ad347a399d

+ 20 - 13
application/api/controller/Facility.php

@@ -47,7 +47,6 @@ class Facility extends Api
                 'rtrim(sczl_jtbh)' => '机台编号'
             ])
             ->where('sczl_rq','>',$date)
-            ->cache(true,3600)
             ->order('sczl_rq desc')
             ->select();
         if (empty($list)){
@@ -87,7 +86,7 @@ class Facility extends Api
         $date = input('date');
         $where = [
             'sczl_jtbh' => $machine,
-            '开工时间' => date('Y-m-d H:i:s',strtotime($date.' 00:00:00')),
+            'sczl_rq' => date('Y-m-d H:i:s',strtotime($date.' 00:00:00')),
         ];
         $field = 'rtrim(sczl_gdbh) as 工单编号,rtrim(sczl_dedh) as dedh,rtrim(sczl_yjno) as yjno,rtrim(sczl_gxh) as gxh,rtrim(sczl_gxmc) as gxmc,rtrim(sczl_num) as num,rtrim(sczl_sj1) as sj1,
         rtrim(sczl_sj2) as sj2,rtrim(sczl_cl) as 产量,rtrim(sczl_bzdh) as bzdh,rtrim(sczl_zcfp) as 制程废品,rtrim(sczl_zccp) as 制程次品,rtrim(sczl_前工序废) as 前工序废,rtrim(sczl_来料少数) as 来料异常,
@@ -95,7 +94,7 @@ class Facility extends Api
         rtrim(码开始行) as 码开始行,rtrim(码结束行) as 码结束行,rtrim(码包) as 码包,rtrim(主电表) as 主电表,rtrim(辅电表) as 辅电表,rtrim(sczl_ms) as 色度数,
         rtrim(sys_id) as 用户,rtrim(mod_rq) as 更新时间,rtrim(sczl_异常工时1) as 异常补时,rtrim(sczl_异常类型1) as 异常类型,sczl_bh1,sczl_bh2,
         sczl_bh3,sczl_bh4,sczl_bh5,sczl_bh6,sczl_bh7,sczl_bh8,sczl_bh9,sczl_bh10,sczl_rate1,sczl_rate2,sczl_rate3,sczl_rate4,sczl_rate5,sczl_rate6,sczl_rate7,
-        sczl_rate8,sczl_rate9,sczl_rate10,sczl_bh98,rtrim(UniqId) as UniqId,rtrim(sczl_工价系数) as 难度系数';
+        sczl_rate8,sczl_rate9,sczl_rate10,sczl_bh98,rtrim(UniqId) as UniqId,rtrim(sczl_工价系数) as 难度系数,rtrim(sczl_dedh) as 定额代号';
         //机台信息
         $machineDetail = \db('设备_基本资料')->where('设备编号',$machine)->field('rtrim(千件工价) as 千件工价,rtrim(日定额) as 日定额')->find();
         //组员信息
@@ -120,9 +119,9 @@ class Facility extends Api
                 $list[$key]['产品名称'] = $value['工单编号'];
                 $list[$key]['cpmc'] = '';
             }
-
             $process = \db('工单_工艺资料')
                 ->where('Gy0_gdbh',$value['工单编号'])
+                ->where('Gy0_yjno',$value['yjno'])
                 ->where('Gy0_gxh',$value['gxh'])
                 ->field('rtrim(工价系数) as 工价系数,rtrim(印刷方式) as 印刷方式,rtrim(版距) as 版距')
                 ->find();
@@ -140,13 +139,10 @@ class Facility extends Api
             if ($value['yjno']<10){
                 $list[$key]['yjno'] = '0'.$value['yjno'];
             }
-            if (!empty($machineDetail)){
-                $list[$key]['千件工价'] = $machineDetail['千件工价'];
-                $list[$key]['日定额'] = $machineDetail['日定额'];
-            }else{
-                $list[$key]['千件工价'] = '';
-                $list[$key]['日定额'] = '';
-            }
+            $row = \db('dic_lzde')->where('sys_bh',$value['定额代号'])->field('rtrim(千件工价) as 千件工价,rtrim(日定额) as 日定额,rtrim(补产标准) as 补产标准')->find();
+            $list[$key]['千件工价'] = $row['千件工价'];
+            $list[$key]['日定额'] = $row['日定额'];
+            $list[$key]['补产标准'] = $row['补产标准'];
             $list[$key]['工序'] = $list[$key]['yjno'].'-'.$list[$key]['gxmc'];
             $list[$key]['备注'] = $value['bzdh'].'('.$value['num'].')'.date('H:i',strtotime($value['sj1'])).'<-->'.date('H:i',strtotime($value['sj2']));
             for ($i=1;$i<11;$i++){
@@ -362,9 +358,12 @@ class Facility extends Api
         $data = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
         foreach ($orderList as $key=>$value){
             $orderList[$key]['status'] = 0;
-            if ($value['gdbh'] === $data['工单编号'] && $value['yjno'] === $data['印件号'] && $value['gxh'] === $data['工序号']) {
-                $orderList[$key]['status'] = 1;
+            if (!empty($data)){
+                if ($value['gdbh'] === $data['工单编号'] && $value['yjno'] === $data['印件号'] && $value['gxh'] === $data['工序号']) {
+                    $orderList[$key]['status'] = 1;
+                }
             }
+
             $orderList[$key]['工单编号|质量信息'] = $value['gdbh'].'|'.$value['质量信息'];
             $orderList[$key]['印件号'] = $value['yjno'];
             $orderList[$key]['工序号'] = $value['gxh'];
@@ -643,6 +642,14 @@ class Facility extends Api
         if (empty($lastId)){
             $lastId = 0;
         }
+        for($i=1;$i<11;$i++){
+            if (!empty($param['sczl_bh'.$i])){
+                $name = \db('人事_基本资料')->where('员工编号',$param['sczl_bh'.$i])->value('员工编号');
+                if (empty($name)){
+                    $this->error('未找到编号'.$param['sczl_bh'.$i].'员工信息,无法添加,请输入正确的员工编号');
+                }
+            }
+        }
         $param['sys_rq'] = date('Y-m-d H:i:s',time());
         $param['UniqId'] = $lastId + 1;
         $param['mod_rq'] = date('Y-m-d H:i:s',time());

+ 1 - 1
application/api/controller/ProcessDocument.php

@@ -50,7 +50,7 @@ class ProcessDocument extends Api
         }
         $res =array();
 
-        $res['yjData'] = \db('工单_印件资料')->where('Yj_gdbh',$order)->field('yj_Yjno,yj_Yjdh,yj_yjmc')->select();
+        $res['yjData'] = \db('工单_印件资料')->where('Yj_gdbh',$order)->field('yj_Yjno,yj_Yjdh,yj_yjmc')->order('yj_Yjno')->select();
         if (count($info) > 1){
             foreach ($info as $k=>$v){
                 $str = rtrim($v['BOM_物料名称']);

+ 116 - 58
application/api/controller/WorkOrder.php

@@ -423,24 +423,26 @@ class WorkOrder extends Api
         $printCode = \db('工单_印件资料')
             ->where('Uniqid',$param['printID'])
             ->value('yj_Yjno');
-        if (empty($printCode)){
-            $this->success('未找到该工单印件资料');
-        }
-        //修改工单工艺计划产量
-        $result = $this->PlannedProcessYield($param['gdbh'],$printCode,0,$param['jhtl']);
-        if ($result === false){
-            $this->success('分配工序计划产量失败');
+        if (!empty($printCode)){
+            if ((int)$param['jhtl'] >0){
+                //修改工单工艺计划产量
+                $result = $this->PlannedProcessYield($param['gdbh'],$printCode,0,$param['jhtl']);
+                if ($result === false){
+                    $this->success('分配工序计划产量失败');
+                }
+            }
+
+            //修改印件信息
+            $printSql = \db('工单_印件资料')
+                ->where('Uniqid',$param['printID'])
+                ->fetchSql(true)
+                ->update(['Yj_Gdbh'=>$param['gdbh'],'yj_yjmc'=>$param['yjmc'],'yj_Yjdh'=>$param['yjdh'],'yj_平张投料'=>$param['jhtl']]);
+            $printRes = Db::query($printSql);
         }
         //修改工单信息
         $sql = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($row);
         $res = Db::query($sql);
-        //修改印件信息
-        $printSql = \db('工单_印件资料')
-            ->where('Uniqid',$param['printID'])
-            ->fetchSql(true)
-            ->update(['yj_yjmc'=>$param['yjmc'],'yj_Yjdh'=>$param['yjdh'],'yj_平张投料'=>$param['jhtl']]);
-        $printRes = Db::query($printSql);
-        if ($res !== false && $printRes !== false){
+        if ($res !== false){
             $this->success('成功');
         }else{
             $this->error('失败');
@@ -986,14 +988,41 @@ class WorkOrder extends Api
         if (empty($param) || isset($param['Uniqid']) === false){
             $this->error('参数错误');
         }
-        //重新分配工序计划产量
-        $result = $this->PlannedProcessYield($param['Yj_Gdbh'],$param['yj_Yjno'],0,$param['pztl']);
-        if ($result === false){
-            $this->success('修改工序产量失败');
+        $param['Yj_Gdbh'] = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->value('Yj_Gdbh');
+        $data = [
+            'Yj_Gdbh' =>$param['Yj_Gdbh'],
+            'yj_Yjno' =>$param['yjno'],
+            'yj_Yjdh' =>$param['yjdh'],
+            'yj_yjmc' =>$param['yjmc'],
+            'yj_zzdh' =>$param['zzdh'],
+            'yj_zzdh1' =>$param['zzdh1'],
+            'yj_zzdh2' =>$param['zzdh2'],
+            'yj_zzdh3' =>$param['zzdh3'],
+            'yj_zzdh4' =>$param['zzdh4'],
+            'yj_zzmc' =>$param['zzmc'],
+            'yj_zzmc1' =>$param['zzmc1'],
+            'yj_zzmc2' =>$param['zzmc2'],
+            'yj_zzmc3' =>$param['zzmc3'],
+            'yj_zzmc4' =>$param['zzmc4'],
+            'yj_tlgg' =>$param['tlgg'],
+            'yj_klgg' =>$param['klgg'],
+            'Yj_核算规格' =>$param['hsgg'],
+            'yj_成品数量' =>$param['cpsl'],
+            'yj_平张投料' =>$param['pztl'],
+            'yj_ks' =>$param['ks'],
+            'yj_ls' =>$param['ls'],
+            'yj_desc' =>$param['desc'],
+        ];
+        if ((int)$data['yj_平张投料'] > 0 ){
+            //重新分配工序计划产量
+            $result = $this->PlannedProcessYield($data['Yj_Gdbh'],$data['yj_Yjno'],0,$data['yj_平张投料']);
+            if ($result === false){
+                $this->success('修改工序产量失败');
+            }
         }
+
         $UniqId = $param['Uniqid'];
-        unset($param['Uniqid']);
-        $sql = \db('工单_印件资料')->where('Uniqid',$UniqId)->fetchSql(true)->update($param);
+        $sql = \db('工单_印件资料')->where('Uniqid',$UniqId)->fetchSql(true)->update($data);
         $res = Db::query($sql);
         if ($res !== false){
             $this->success('成功');
@@ -1045,7 +1074,9 @@ class WorkOrder extends Api
             Db::query($statusSql);
         }
         //重新分配工序计划产量
-        $result = $this->PlannedProcessYield($param['Gy0_gdbh'],$list['Gy0_yjno'],$list['Gy0_gxh'],$list['计划接货数']);
+        if ((int)$list['计划接货数'] > 0){
+            $result = $this->PlannedProcessYield($param['Gy0_gdbh'],$list['Gy0_yjno'],$list['Gy0_gxh'],$list['计划接货数']);
+        }
         if ($res !== false){
             $this->success('成功');
         }else{
@@ -1640,7 +1671,9 @@ class WorkOrder extends Api
             ->where('yj_Yjno',$param['Gy0_yjno'])
             ->value('rtrim(yj_平张投料)');
         //分配工艺计划产量
-        $this->PlannedProcessYield($param['Gy0_gdbh'],$param['Gy0_yjno'],$param['Gy0_gxh'],$number);
+        if ((int)$number >0){
+            $this->PlannedProcessYield($param['Gy0_gdbh'],$param['Gy0_yjno'],$param['Gy0_gxh'],$number);
+        }
         if ($res !== false){
             $this->success('成功');
         }else{
@@ -1752,7 +1785,9 @@ class WorkOrder extends Api
             }
         }
         //重新分配工艺计划产量
-        $this->PlannedProcessYield($codeList['工单编号'],$codeList['印件号'],0,$number);
+        if ((int)$number>0){
+            $this->PlannedProcessYield($codeList['工单编号'],$codeList['印件号'],0,$number);
+        }
         if ($i === 0){
             $this->success('删除成功');
         }else{
@@ -2082,7 +2117,7 @@ class WorkOrder extends Api
             foreach ($list as $k=>$v){
                 if ($value['yj_yjdh'] === $v['Gd_cpdh']){
                     $PrintList[$key]['Yj_Gdbh'] = $param['workorder'];
-                    $PrintList[$key]['yj_Yjno'] = $v['行号'];
+                    $PrintList[$key]['yj_Yjno'] = $value['yj_yjno'];
                     $PrintList[$key]['yj_Yjdh'] = $value['yj_yjdh'];
                     $PrintList[$key]['yj_ks'] = $value['yj_ks'];
                     $PrintList[$key]['yj_ls'] = $value['yj_ls'];
@@ -2093,6 +2128,12 @@ class WorkOrder extends Api
                     $PrintList[$key]['Mod_rq'] = date('Y-m-d H:i:s',time());
                     array_push($arr,[$value['yj_yjno'],$v['行号']]);
                 }
+                $sql = \db('工单_基本资料')
+                    ->where('Gd_gdbh',$param['workorder'])
+                    ->where('Gd_cpdh',$value['yj_yjdh'])
+                    ->fetchSql(true)
+                    ->update(['行号'=>$value['yj_yjno']]);
+                \db()->query($sql);
             }
             unset($PrintList[$key]['mod_rq'],$PrintList[$key]['sys_rq'],$PrintList[$key]['sys_id'],$PrintList[$key]['KgToPages'],$PrintList[$key]['yj_tll'],$PrintList[$key]['yj_yjdh'],$PrintList[$key]['yj_yjno'],$PrintList[$key]['UniqId']);
         }
@@ -2103,52 +2144,68 @@ class WorkOrder extends Api
         ];
         $ProcessList = \db('产品_工艺资料')
             ->where($processWhere)
+            ->order('Gy0_yjno,Gy0_gxh')
             ->select();
         if (empty($ProcessList)){
             $this->error('未找到产品工艺资料');
         }
         $ProcesslastId = \db('工单_工艺资料')->order('UniqId desc')->value('rtrim(UniqId)');
         foreach ($ProcessList as $key=>$value){
-            foreach ($arr as $k=>$v){
-                if ($value['Gy0_yjno'] === $v[0]) {
-                    $ProcessList[$key]['Gy0_yjno'] = $v[1];
-                    $ProcessList[$key]['Gy0_gdbh'] = $param['workorder'];
-                    $ProcessList[$key]['Gy0_gxmc'] = $value['gy0_gxmc'];
-                    $ProcessList[$key]['Gy0_SITE'] = $value['Gy0_site'];
-                    $ProcessList[$key]['Gy0_ks'] = $value['Gy0_Ks'];
-                    $ProcessList[$key]['Gy0_ms'] = $value['Gy0_Ms'];
-                    $ProcessList[$key]['Gy0_oil'] = $value['Gy0_Oil'];
-                    $ProcessList[$key]['Gy0_计划接货数'] = 0;
-                    $ProcessList[$key]['Gy0_计划损耗'] = 0;
-                    $ProcessList[$key]['无形损承担比例'] = 0;
-                    $ProcessList[$key]['超节损承担比例'] = 0;
-                    $ProcessList[$key]['超节损核算单价'] = 0;
-                    $ProcessList[$key]['Gy0_sj1'] = '1900-01-01 00:00:00';
-                    $ProcessList[$key]['Gy0_sj2'] = '1900-01-01 00:00:00';
-                    $ProcessList[$key]['UniqId'] = $ProcesslastId + $key + 1;
-                    $ProcessList[$key]['PD_WG'] = '1900-01-01 00:00:00';
-                    $ProcessList[$key]['Sys_rq'] = date('Y-m-d H:i:s', time());
-                    $ProcessList[$key]['Mod_rq'] = date('Y-m-d H:i:s', time());
-                }
+            if (empty($value['Gy0_shdh'])){
+                $rate['rate0'] = 0;
+                $rate['rate1'] = 0;
+            }else{
+                $rate = \db('dic_lzsh')->where('sys_bh',$value['Gy0_shdh'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
+            }
+            //设置默认机台
+            $machineList = \db('设备_基本资料')
+                ->where('生产工序','like','%'.$value['gy0_gxmc'].'%')
+                ->order('设备编号')
+                ->value('设备编号');
+            $ProcessList[$key]['Gy0_sbbh'] = '';
+            if (!empty($machineList)){
+                $ProcessList[$key]['Gy0_sbbh'] = $machineList;
             }
+            $ProcessList[$key]['Gy0_yjno'] = $value['Gy0_yjno'];
+            $ProcessList[$key]['Gy0_gdbh'] = $param['workorder'];
+            $ProcessList[$key]['Gy0_gxmc'] = $value['gy0_gxmc'];
+            $ProcessList[$key]['Gy0_SITE'] = $value['Gy0_site'];
+            $ProcessList[$key]['Gy0_shdh'] = $value['Gy0_shdh'];
+            $ProcessList[$key]['Gy0_Rate0'] = $rate['rate0'];
+            $ProcessList[$key]['Gy0_Rate1'] = $rate['rate1'];
+            $ProcessList[$key]['Gy0_ks'] = $value['Gy0_Ks'];
+            $ProcessList[$key]['Gy0_ms'] = $value['Gy0_Ms'];
+            $ProcessList[$key]['Gy0_oil'] = $value['Gy0_Oil'];
+            $ProcessList[$key]['Gy0_计划接货数'] = 0;
+            $ProcessList[$key]['Gy0_计划损耗'] = 0;
+            $ProcessList[$key]['无形损承担比例'] = 0;
+            $ProcessList[$key]['超节损承担比例'] = 0;
+            $ProcessList[$key]['超节损核算单价'] = 0;
+            $ProcessList[$key]['Gy0_sj1'] = '1900-01-01 00:00:00';
+            $ProcessList[$key]['Gy0_sj2'] = '1900-01-01 00:00:00';
+            $ProcessList[$key]['UniqId'] = $ProcesslastId + $key + 1;
+            $ProcessList[$key]['PD_WG'] = '1900-01-01 00:00:00';
+            $ProcessList[$key]['Sys_rq'] = date('Y-m-d H:i:s', time());
             unset($ProcessList[$key]['Gy0_Oil'],$ProcessList[$key]['Gy0_Ms'],$ProcessList[$key]['Gy0_Ks'],$ProcessList[$key]['UniqID'],$ProcessList[$key]['Gy0_cpdh'],$ProcessList[$key]['gy0_gxmc'],$ProcessList[$key]['Gy0_site']);
         }
-
         //插入数据
-        $processSql = \db('工单_工艺资料')->fetchSql(true)->insertAll($ProcessList);
-        $processRes = \db()->query($processSql);
-        if ($processRes === false){
-            $this->error('插入工艺资料失败');
-        }
-        $printSql = \db('工单_印件资料')->fetchSql(true)->insertAll($PrintList);
-        $printRes = \db()->query($printSql);
-        if ($printRes === false){
-            $this->error('插入印件资料失败');
+        \db()->startTrans();
+        try {
+            \db('工单_工艺资料')->where('Gy0_gdbh',$param['workorder'])->delete();
+            $processSql = \db('工单_工艺资料')->fetchSql(true)->insertAll($ProcessList);
+            \db()->query($processSql);
+            \db('工单_印件资料')->where('Yj_Gdbh',$param['workorder'])->delete();
+            $printSql = \db('工单_印件资料')->fetchSql(true)->insertAll($PrintList);
+            \db()->query($printSql);
+            \db()->commit();
+        }catch (\Exception $e){
+            \db()->rollback();
         }
         //计算工序计划生产数量
-        if ($number !== 0){
-            foreach ($PrintList as $value){
-                $this->PlannedProcessYield($param['workorder'],$value['yj_Yjno'],0,$number);
+        $list = \db('工单_印件资料')->where('Yj_Gdbh',$param['workorder'])->field('yj_Yjno,yj_平张投料')->select();
+        foreach ($list as $value){
+            if ((int)$value['yj_平张投料'] >0){
+                $this->PlannedProcessYield($param['workorder'],$value['yj_Yjno'],0,$value['yj_平张投料']);
             }
         }
         $this->success('成功');
@@ -2227,6 +2284,7 @@ class WorkOrder extends Api
         $processList = \db('工单_工艺资料')
             ->where($where)
             ->field('Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
+            ->order('Gy0_gxh')
             ->select();
         if (empty($processList)){
             $this->success('未找到该工单工序资料');