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

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

曹鹤洋 пре 1 година
родитељ
комит
583338047b
2 измењених фајлова са 113 додато и 149 уклоњено
  1. 57 67
      application/api/controller/Manufacture.php
  2. 56 82
      application/api/controller/WorkOrder.php

+ 57 - 67
application/api/controller/Manufacture.php

@@ -163,79 +163,69 @@ class Manufacture extends Api
         $where = '';
         if (isset($param['search'])){
             $where = "
-                        a.Gd_lx LIKE '%{$param['search']}%' 
-                        OR a.Gd_gdbh LIKE '%{$param['search']}%' 
-                        OR a.`Gd_客户代号` LIKE '%{$param['search']}%' 
-                        OR a.`Gd_客户名称` LIKE '%{$param['search']}%' 
-                        OR a.Gd_khdh LIKE '%{$param['search']}%' 
-                        OR a.Gd_khmc LIKE '%{$param['search']}%' 
-                        OR a.Gd_cpdh LIKE '%{$param['search']}%' 
-                        OR a.Gd_cpmc LIKE '%{$param['search']}%' 
-                        OR a.`成品代号` LIKE '%{$param['search']}%' 
+                        a.Gd_gdbh LIKE '%{$param['search']}%' 
                         OR a.`成品名称` LIKE '%{$param['search']}%' 
-                        OR a.`产品版本号` LIKE '%{$param['search']}%' 
                     ";
         }
         if ($param['status'] === '排程中'){
-            $sql = "SELECT
-                    rtrim( a.Gd_gdbh ) AS 工单编号,
-                    rtrim( a.Gd_cpdh ) AS 产品代号,
-                    rtrim( a.Gd_cpmc ) AS 产品名称,
-                    rtrim( a.接单日期 ) AS 接单日期,
-                    rtrim( a.交货日期 ) AS 交货日期,
-                    rtrim( a.订单数量 ) AS 订单数量,
-                    rtrim( a.计量单位 ) AS 计量单位,
-                    rtrim( a.销售订单号 ) AS 销售订单号,
-                    rtrim( a.Gd_客户代号 ) AS 客户编号,
-                    rtrim( a.Gd_客户名称 ) AS 客户名称,
-                    rtrim( a.客户料号 ) AS 客户料号,
-                    rtrim( a.Uniqid ) AS GDUID 
-                FROM
-                    `工单_基本资料` AS a
-                    INNER JOIN `工单_工艺资料` AS b ON a.Gd_gdbh = b.Gy0_gdbh
-                    JOIN `产品_基本资料` AS c ON a.Gd_cpdh = c.产品编号 
-                WHERE
-                    a.gd_statu = '2-生产中' 
-                    AND a.行号 = '1' 
-                    AND b.PD_WG = '1900-01-01 00:00:00' 
-                    AND b.Gy0_sj1 = '1900-01-01 00:00:00' 
-                    AND c.状态 = ''
-                    AND (".
-                        $where
-                    .")
-                GROUP BY
-                    a.Gd_gdbh";
+            $list = db('工单_基本资料')->alias('a')
+                ->field([
+                    'rtrim(a.Gd_gdbh)' => '工单编号',
+                    'rtrim(a.Gd_cpdh)' => '产品代号',
+                    'rtrim(a.Gd_cpmc)' => '产品名称',
+                    'rtrim(a.接单日期)' => '接单日期',
+                    'rtrim(a.交货日期)' => '交货日期',
+                    'rtrim(a.订单数量)' => '订单数量',
+                    'rtrim(a.计量单位)' => '计量单位',
+                    'rtrim(a.销售订单号)' => '销售订单号',
+                    'rtrim(a.Gd_客户代号)' => '客户编号',
+                    'rtrim(a.Gd_客户名称)' => '客户名称',
+                    'rtrim(a.客户料号)' => '客户料号',
+                    'rtrim(a.Uniqid)' => 'GDUID',
+                ])
+                ->join('工单_工艺资料 b', 'a.Gd_gdbh = b.Gy0_gdbh')
+                ->join('产品_基本资料 c', 'a.Gd_cpdh = c.产品编号')
+                ->where([
+                    'a.gd_statu' => '2-生产中',
+                    'a.行号' => '1',
+                    'b.PD_WG' => '1900-01-01 00:00:00',
+                    'b.Gy0_sj1' => '1900-01-01 00:00:00',
+                    'c.状态' => '',
+                ])
+                ->where($where)
+                ->cache(true,720)
+                ->group('a.Gd_gdbh')
+                ->select();
         }else{
-            $sql = "SELECT
-                rtrim(a.Gd_gdbh) AS 工单编号,
-                rtrim(a.Gd_cpdh) AS 产品代号,
-                rtrim(a.Gd_cpmc) AS 产品名称,
-                rtrim(a.接单日期) AS 接单日期,
-                rtrim(a.交货日期) AS 交货日期,
-                rtrim(a.订单数量) AS 订单数量,
-                rtrim(a.计量单位) AS 计量单位,
-                rtrim(a.销售订单号) AS 销售订单号,
-                rtrim(a.Gd_客户代号) AS 客户编号,
-                rtrim(a.Gd_客户名称) AS 客户名称,
-                rtrim(a.客户料号) AS 客户料号,
-                rtrim(a.Uniqid) AS GDUID
-            FROM
-                `工单_基本资料` AS a
-            INNER JOIN `工单_工艺资料` AS b ON a.Gd_gdbh = b.Gy0_gdbh
-            JOIN `产品_基本资料` AS c ON a.Gd_cpdh = c.产品编号
-            WHERE
-                a.gd_statu = '2-生产中'
-                AND a.行号 = '1'
-                AND b.PD_WG = '1900-01-01 00:00:00'
-                AND b.Gy0_sj1 != '1900-01-01 00:00:00'
-                AND c.状态 = ''
-                AND (".
-                    $where
-                    .")
-                GROUP BY
-                    a.Gd_gdbh";
+            $list = db('工单_基本资料')->alias('a')
+                ->field([
+                    'rtrim(a.Gd_gdbh)' => '工单编号',
+                    'rtrim(a.Gd_cpdh)' => '产品代号',
+                    'rtrim(a.Gd_cpmc)' => '产品名称',
+                    'rtrim(a.接单日期)' => '接单日期',
+                    'rtrim(a.交货日期)' => '交货日期',
+                    'rtrim(a.订单数量)' => '订单数量',
+                    'rtrim(a.计量单位)' => '计量单位',
+                    'rtrim(a.销售订单号)' => '销售订单号',
+                    'rtrim(a.Gd_客户代号)' => '客户编号',
+                    'rtrim(a.Gd_客户名称)' => '客户名称',
+                    'rtrim(a.客户料号)' => '客户料号',
+                    'rtrim(a.Uniqid)' => 'GDUID',
+                ])
+                ->join('工单_工艺资料 b', 'a.Gd_gdbh = b.Gy0_gdbh')
+                ->join('产品_基本资料 c', 'a.Gd_cpdh = c.产品编号')
+                ->where([
+                    'a.gd_statu' => '2-生产中',
+                    'a.行号' => '1',
+                    'b.PD_WG' => '1900-01-01 00:00:00',
+                    'b.Gy0_sj1' => ['<>', '1900-01-01 00:00:00'],
+                    'c.状态' => '',
+                ])
+                ->where($where)
+                ->cache(true,720)
+                ->group('a.Gd_gdbh')
+                ->select();
         }
-        $list = Db::query($sql);
         if (empty($list)){
             $this->success('未找到工单信息');
         }

+ 56 - 82
application/api/controller/WorkOrder.php

@@ -150,15 +150,15 @@ class WorkOrder extends Api
     }
 
     /**
-     * 印件资料
-     * @ApiMethod (GET)
-     * @param string $Gd_gdbh  工单编号
-     * @return \think\response\Json
+     * 工单详情
+     * @ApiMethod  (GET)
+     * @param  void
+     * @return void
      * @throws \think\db\exception\DataNotFoundException
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-    public function Printed()
+    public function workOrderListDetail()
     {
         if ($this->request->isGet() === false){
             $this->error('请求错误');
@@ -167,11 +167,15 @@ class WorkOrder extends Api
         if (empty($Gd_gdbh)){
             $this->error('参数错误');
         }
-        $list = \db('工单_印件资料')->where('Yj_Gdbh',$Gd_gdbh)->select();
         $data = [];
-        if ($list){
-            foreach ($list as $key=>$value){
-                $data[$key] = [
+        //印件资料
+        $printList = \db('工单_印件资料')
+            ->where('Yj_Gdbh',$Gd_gdbh)
+            ->cache(true,84600)
+            ->select();
+        if (!empty($printList)){
+            foreach ($printList as $key=>$value){
+                $data['printList'][$key] = [
                     '印件号' => rtrim($value['yj_Yjno']),
                     '印件代号' => rtrim($value['yj_Yjdh']),
                     '印件名称' => rtrim($value['yj_yjmc']),
@@ -201,47 +205,29 @@ class WorkOrder extends Api
                     'Uniqid' => rtrim($value['Uniqid'])
                 ];
             }
-        }
-        $this->success('成功',$data);
-    }
-
-    /**
-     * 工艺资料
-     * @ApiMethod (GET)
-     * @param string $Gd_gdbh  工单编号
-     * @return \think\response\Json
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     */
-    public function Craft()
-    {
-        if ($this->request->isGet() === false){
-            $this->error('请求错误');
+        }else{
+            $data['printList'] = [];
         }
 
-        $Gd_gdbh = input('Gd_gdbh');
-        if (empty($Gd_gdbh)){
-            $this->error('参数错误');
-        }
-        $list = \db('工单_工艺资料')
+        //工艺资料
+        $processList = \db('工单_工艺资料')
             ->where('Gy0_gdbh',$Gd_gdbh)
+            ->cache(true,84600)
             ->select();
-        $data = [];
-        if ($list){
-            foreach ($list as $key=>$value){
+        if (!empty($processList)){
+            foreach ($processList as $key=>$value){
                 if ($value['Gy0_yjno']<10){
                     $value['Gy0_yjno'] = '0'.$value['Gy0_yjno'];
                 }
                 if ($value['Gy0_gxh']<10){
                     $value['Gy0_gxh'] = '0'.$value['Gy0_gxh'];
                 }
-                if ($value['Gy0_计划损耗'] !== 0){
-                    $number = round(($value['Gy0_计划损耗']/(int)($value['Gy0_计划接货数']/$value['Gy0_ls'])),2).'%';
+                if ((int)$value['Gy0_计划损耗'] !== 0){
+                    $number = round(((int)$value['Gy0_计划损耗']/(int)($value['Gy0_计划接货数']/$value['Gy0_ls'])),2).'%';
                 }else{
                     $number = 0;
                 }
-                $data[$key] = [
+                $data['processList'][$key] = [
                     '重点工序' => rtrim($value['重点工序']),
                     '印件-工序' => rtrim($value['Gy0_yjno']).'-'.rtrim($value['Gy0_gxh']),
                     '备选工序' => rtrim($value['备选工序']),
@@ -276,42 +262,31 @@ class WorkOrder extends Api
                     '小时产能' => rtrim($value['Gy0_小时产能'])
                 ];
             }
+        }else{
+            $data['processList'] = [];
         }
-        $this->success('成功',$data);
-    }
 
-    /**
-     * BOM资料
-     * @ApiMethod (GET)
-     * @param string $Gd_gdbh   工单编号
-     * @return \think\response\Json
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     */
-    public function Bom()
-    {
-        if ($this->request->isGet() === false){
-            $this->error('请求错误');
-        }
-        $Gd_gdbh = input('Gd_gdbh');
-        if (empty($Gd_gdbh)){
-            $this->error('参数错误');
-        }
+        //BOM资料
         $field = 'rtrim(BOM_方案) as 方案,rtrim(BOM_物料编码) as 物料编号,rtrim(BOM_物料名称) as 物料名称,BOM_投料单位,
         BOM_投入数,BOM_产出数,BOM_产出单位,rtrim(BOM_计划用量) as 计划用量,rtrim(Sys_ID) as 建档用户,rtrim(Sys_rq) as 建档时间,rtrim(Mod_rq) as 更新时间';
-        $list = \db('工单_bom资料')
+        $bomList = \db('工单_bom资料')
             ->where('BOM_工单编号',$Gd_gdbh)
             ->field($field)
+            ->cache(true,84600)
             ->select();
-        foreach ($list as $key=>$value){
-            $list[$key]['消耗定量'] = rtrim($value['BOM_投入数']).rtrim($value['BOM_投料单位']).'/'.rtrim($value['BOM_产出数']).rtrim($value['BOM_产出单位']);
-            unset($list[$key]['BOM_投料单位'],$list[$key]['BOM_投入数'],$list[$key]['BOM_产出数'],$list[$key]['BOM_产出单位']);
-            $list[$key]['计划用量'] = rtrim((float)$value['计划用量']);
+        if (!empty($bomList)){
+            foreach ($bomList as $key=>$value){
+                $bomList[$key]['消耗定量'] = rtrim($value['BOM_投入数']).rtrim($value['BOM_投料单位']).'/'.rtrim($value['BOM_产出数']).rtrim($value['BOM_产出单位']);
+                unset($bomList[$key]['BOM_投料单位'],$bomList[$key]['BOM_投入数'],$bomList[$key]['BOM_产出数'],$bomList[$key]['BOM_产出单位']);
+                $bomList[$key]['计划用量'] = rtrim((float)$value['计划用量']);
+            }
+            $data['BOM'] = $bomList;
+        }else{
+            $data['BOM'] = [];
         }
-        $this->success('成功',$list);
-    }
 
+        $this->success('成功',$data);
+    }
 
     /**
      * 编辑页面展示
@@ -342,6 +317,7 @@ class WorkOrder extends Api
         $printData = \db('工单_印件资料')
             ->where('Yj_Gdbh',$workOrder)
             ->field('rtrim(yj_yjmc) as 印件名称,rtrim(yj_Yjdh) as 印件代号,rtrim(yj_平张投料) as 平张投料,rtrim(Uniqid) as id')
+            ->cache(true,84600)
             ->find();
         if (empty($printData)){
             $this->error('未找到该工单印件资料');
@@ -436,7 +412,7 @@ class WorkOrder extends Api
         rtrim(Gy0_Ms) as 墨色数,rtrim(Gy0_shdh) as 损耗代号,rtrim(损耗系数) as 损耗系数,rtrim(Gy0_ls) as 加工联数';
         $list = \db('产品_工艺资料')->where('Gy0_cpdh',$productCode)->field($field)->select();
         if (empty($list)){
-            $this->error('未找到该产品工序');
+            $this->success('未找到该产品工序');
         }
         foreach ($list as $key=>$value){
             $data = \db('dic_lzsh')->where('sys_bh',$value['损耗代号'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->cache(true)->find();
@@ -476,7 +452,7 @@ class WorkOrder extends Api
         $field = 'rtrim(Gd_gdbh) as 工单编号,rtrim(Gd_客户名称) as 客户名称,rtrim(成品代号) as 产品代号,rtrim(成品名称) as 产品名称';
         $Detail = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field($field)->find();
         if (empty($Detail)){
-            $this->error('未找到工单信息');
+            $this->success('未找到工单信息');
         }
         $Detail['客户代号'] = substr($Detail['产品代号'],0,4);
         $this->success('成功',$Detail);
@@ -562,12 +538,12 @@ class WorkOrder extends Api
         }
         $list = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field('rtrim(成品代号) as 成品编号,rtrim(成品名称) as 成品名称')->find();
         if (empty($list)){
-            $this->error('未找到工单信息');
+            $this->success('未找到工单信息');
         }
         $filed = 'rtrim(Gy0_方案) as 方案,rtrim(Gy0_yjno) as 印件号,rtrim(Gy0_gxh) as 工序号,rtrim(Gy0_gxmc) as gxmc,rtrim(Add_gxmc) as add_gxmc,
         rtrim(工价系数) as 工价系数,rtrim(损耗系数) as 损耗系数,rtrim(Gy0_ks) as ks,rtrim(Gy0_ls) as ls,rtrim(工序备注) as 备注,rtrim(Gy0_SITE) as 车间,
         rtrim(Gy0_sbbh) as 设备编号,rtrim(Gy0_sbmc) as 设备名称,rtrim(Sys_id) as 建档用户,rtrim(Sys_rq) as 建档时间,rtrim(Mod_rq) as 更新时间';
-        $process = \db('工单_工艺资料')->where('Gy0_gdbh',$workOrder)->field($filed)->select();
+        $process = \db('工单_工艺资料')->where('Gy0_gdbh',$workOrder)->cache(true,84600)->field($filed)->select();
         if (empty($process)){
             $this->error('未找到该工单工艺资料');
         }
@@ -604,7 +580,7 @@ class WorkOrder extends Api
         }
         $list = \db('工单_基本资料')->where('成品代号',$productCode)->where('Gd_gdbh','<>',$workOrder)->column('Gd_gdbh');
         if (empty($list)){
-            $this->error('未获取该产品其他工单信息');
+            $this->success('未获取该产品其他工单信息');
         }
         $this->success('成功',$list);
     }
@@ -677,7 +653,7 @@ class WorkOrder extends Api
         rtrim(成品代号) as 成品代号,rtrim(成品名称) as 成品名称,rtrim(Mod_rq) as 获取日期,rtrim(Uniqid) as 序号';
         $list = \db('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->field($filed)->select();
         if (empty($list)){
-            $this->error('未找到工单');
+            $this->success('未找到工单');
         }
         $this->success('成功',$list);
     }
@@ -740,14 +716,14 @@ class WorkOrder extends Api
         rtrim(机检_废检) as 机检废检,rtrim(Gy0_sbbh) as 设备编号,rtrim(Uniqid) as Uniqid';
         $list = \db('工单_工艺资料')->where($where)->field($filed)->select();
         if (empty($list)){
-            $this->error('未找到该工单工艺');
+            $this->success('未找到该工单工艺');
         }
         $name = \db('工单_基本资料')
             ->where('Gd_gdbh',$workOrder)
             ->field('rtrim(Gd_cpdh) as 产品代号,rtrim(Gd_khmc) as 客户名称,rtrim(Gd_cpmc) as 产品名称')
             ->find();
         if (empty($name)){
-            $this->error('未找到该工单');
+            $this->success('未找到该工单');
         }
         foreach ($list as $key=>$value){
             if ($value['yjno']<10){
@@ -835,7 +811,7 @@ class WorkOrder extends Api
         rtrim(印刷方式) as 印刷方式,rtrim(版距) as 版距,rtrim(Gy0_ms) as 计损色数,rtrim(损耗系数) as 损耗系数,rtrim(UniqId) as UniqId';
         $list = \db('工单_工艺资料')->where('Gy0_gdbh',$workOrder)->field($field)->select();
         if (empty($list)){
-            $this->error('未找到该工单工艺资料');
+            $this->success('未找到该工单工艺资料');
         }
         foreach ($list as $key=>$value){
             if ($value['yjno']<10){
@@ -917,7 +893,6 @@ class WorkOrder extends Api
         if (empty($param) || isset($param['Uniqid']) === false){
             $this->error('参数错误');
         }
-//        halt($param);
         $data = [
             'yj_Yjno' => isset($param['yjno'])?$param['yjno']:'',
             'yj_Yjdh' => isset($param['yjdh'])?$param['yjdh']:'',
@@ -942,7 +917,6 @@ class WorkOrder extends Api
             'yj_ls' => isset($param['ls'])?$param['ls']:'',
             'yj_desc' => isset($param['desc'])?$param['desc']:'',
         ];
-        halt($data);
         $sql = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
         $res = Db::query($sql);
         if ($res !== false){
@@ -1020,7 +994,7 @@ class WorkOrder extends Api
             ->field('rtrim(设备编号) as 设备编号,rtrim(设备名称) as 设备名称')
             ->select();
         if (empty($list)){
-            $this->error('未找到该车间机台');
+            $this->success('未找到该车间机台');
         }
         $data = [];
         foreach ($list as $key=>$value){
@@ -1049,15 +1023,15 @@ class WorkOrder extends Api
         }
         $data = $this->workOrderDetailGet($param['workOrder']);
         if (empty($data)){
-            $this->error('未找到工单信息');
+            $this->success('未找到工单信息');
         }
         $materiel = $this->MaterielDetailGet($param['workOrder']);
         if (empty($materiel)){
-            $this->error('未找到物料信息');
+            $this->success('未找到物料信息');
         }
         $printDetail = $this->PrintDetailGet($param['workOrder']);
         if (empty($printDetail)){
-            $this->error('未找到工艺信息');
+            $this->success('未找到工艺信息');
         }
         $number = 0;
         foreach ($printDetail as $key=>$value){
@@ -1113,7 +1087,7 @@ class WorkOrder extends Api
                 a.Gd_gdbh = '{$workOrder}' AND a.行号 = 1";
         $list = Db::query($sql);
         if (empty($list)){
-            $this->error('未找到订单数据');
+            $this->success('未找到订单数据');
         }
         $list[0]['开单日期'] = date('Y-m-d',strtotime($list[0]['开单日期']));
         $list[0]['交货日期'] = date('Y-m-d',strtotime($list[0]['交货日期']));
@@ -1140,7 +1114,7 @@ class WorkOrder extends Api
         $filed = 'rtrim(BOM_物料编码) as 物料编码,rtrim(BOM_物料名称) as 物料名称,rtrim(BOM_投料单位) as 投料单位,rtrim(BOM_计划用量) as 计划用量';
         $list = \db('工单_bom资料')->where($where)->field($filed)->select();
         if (empty($list)){
-            $this->error('未找到物料资料信息');
+            $this->success('未找到物料资料信息');
         }
         foreach ($list as $key=>$value){
             $list[$key]['物料代码及名称'] = $value['物料编码'].' '.$value['物料名称'];
@@ -1171,7 +1145,7 @@ class WorkOrder extends Api
             ->field($filed)
             ->select();
         if (empty($list)){
-            $this->error('工单工艺为空');
+            $this->success('工单工艺为空');
         }
         foreach ($list  as $key=>$value){
             if ($value['yjno']<10){