Browse Source

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

曹鹤洋 1 year ago
parent
commit
30e49b1884

+ 70 - 0
application/api/controller/Facility.php

@@ -250,7 +250,9 @@ class Facility extends Api
             $list['产品名称'] = '';
             $list['工序名称'] = '';
         }
+        $list['状态'] = rtrim($data['当前状态']);
         $list['班组编号'] = rtrim($data['班组编号']);
+        $list['班组Id'] = rtrim($data['班组ID']);
         $class = \db('设备_班组资料')->where('UniqId',$data['班组ID'])->field("rtrim(sczl_bh1) as bh1,rtrim(sczl_bh2) as bh2,rtrim(sczl_bh3) as bh3,rtrim(sczl_bh4) as bh4,
         rtrim(sczl_bh5) as bh5,rtrim(sczl_bh6) as bh6,rtrim(sczl_bh7) as bh7,rtrim(sczl_bh8) as bh8,rtrim(sczl_bh9) as bh9,
         rtrim(sczl_bh10) as bh10")->find();
@@ -1481,4 +1483,72 @@ class Facility extends Api
          }
          $this->success('成功',$list);
      }
+
+    /**
+     * 设置机台班组信息
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+
+    public function setMachineTeam()
+    {
+        if (Request::instance()->isPost() == false) {
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (!isset($params['machine']) || empty($params['machine'])) {
+            $this->error('参数不能为空');
+        }
+        $machine = $params['machine'] . '#';
+        $data = [];
+        $lastData = \db('设备_产量采集')
+            ->order('UniqId desc')
+            ->find();
+        if ($lastData['UniqId'] < 160000000) {
+            $id = 160000000;
+        } else {
+            $id = $lastData['UniqId'] + 1;
+        }
+        $data['当前状态'] = $params['status'];
+        $data['时间'] = date('Y-m-d H:i:s');
+        $data['设备编号'] = $machine;
+        $data['工单编号'] = $params['order'];
+        $data['印件号'] = $params['yjno'];
+        $data['工序号'] = (int)substr($params['gy_name'], 0, 2);
+        $data['工序名称'] = $params['gy_name'];
+        $data['当班产量'] = $params['production_now'];
+        $data['累计产量'] = $params['production_all'];
+        $data['班组编号'] = $params['sczl_bzdh'];
+        $data['班组ID'] = $params['team_id'];
+        // 获取当前时间
+        $current_time = time();
+        // 设置时间范围
+        $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00');
+        $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00');
+        $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00');
+        $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00');
+        // 判断当前时间属于哪个时间范围
+        if ($current_time >= $start_time1 && $current_time <= $end_time1) {
+            $data['开工时间'] = date('Y-m-d') . ' 08:30:00';
+        } elseif ($current_time > $end_time1 && $current_time <= $end_time2) {
+            $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
+
+        } elseif ($current_time > $end_time1 && $current_time <= $start_time3) {
+            $data['开工时间'] = date('Y-m-d', strtotime('+1 day')) . ' 08:30:00';
+        }
+        $option['Gy0_gdbh'] = $params['order'];
+        $option['Gy0_yjno'] = $params['yjno'];
+        $option['Gy0_gxh'] = $data['工序号'];
+        $data['任务ID'] = \db('工单_工艺资料')->where($option)->value('UniqId');
+        $data['UniqId'] = $id;
+        $sql = \db('设备_产量采集')->fetchSql(true)->insert($data);
+        $res = Db::query($sql);
+        if ($res === false) {
+            $this->error('设置失败');
+        } else {
+            $this->success('设置成功');
+        }
+    }
 }

+ 0 - 2
application/api/controller/OrderSuperLoss.php

@@ -141,8 +141,6 @@ class OrderSuperLoss extends Api
                 ->join('工单_基本资料 b', 'a.Gd_gdbh = b.Gd_gdbh','left')
                 ->join('工单_印件资料 c', 'a.Gd_gdbh = c.Yj_Gdbh','left')
                 ->where($where)
-                ->field('a.Gd_gdbh, SUM(a.废品数量) AS 废品合计, a.年月, rtrim(a.Gd_cpmc) as Gd_cpmc, a.Gd_cpdh, a.实际投料, b.计量单位, c.yj_Yjno, c.yj_ls')
-                ->group('a.Gd_gdbh')
                 ->count();
 
             foreach ($data as $key => $value){

+ 114 - 29
application/api/controller/WorkOrder.php

@@ -187,7 +187,7 @@ class WorkOrder extends Api
         //印件资料
         $printList = \db('工单_印件资料')
             ->where('Yj_Gdbh',$Gd_gdbh)
-            ->cache(true,84600)
+//            ->cache(true,84600)
             ->select();
         if (!empty($printList)){
             foreach ($printList as $key=>$value){
@@ -228,7 +228,7 @@ class WorkOrder extends Api
         //工艺资料
         $processList = \db('工单_工艺资料')
             ->where('Gy0_gdbh',$Gd_gdbh)
-            ->cache(true,84600)
+//            ->cache(true,84600)
             ->select();
         if (!empty($processList)){
             foreach ($processList as $key=>$value){
@@ -238,11 +238,12 @@ class WorkOrder extends Api
                 if ($value['Gy0_gxh']<10){
                     $value['Gy0_gxh'] = '0'.$value['Gy0_gxh'];
                 }
-                if ((int)$value['Gy0_计划损耗'] !== 0){
-                    $number = round(((int)$value['Gy0_计划损耗']/(int)($value['Gy0_计划接货数']/$value['Gy0_ls'])),2).'%';
+                if ((int)$value['Gy0_ms'] === 0){
+                    $scrap = ceil(($value['Gy0_Rate0']+((int)($value['Gy0_计划接货数']/$value['Gy0_ls']))*$value['Gy0_Rate1'])*$value['损耗系数']);
                 }else{
-                    $number = 0;
+                    $scrap = ceil(($value['Gy0_Rate0']+((int)($value['Gy0_计划接货数']/$value['Gy0_ls']))*$value['Gy0_Rate1'])*$value['损耗系数']*$value['Gy0_ms']);
                 }
+                $number = round(($scrap/((int)($value['Gy0_计划接货数']/$value['Gy0_ls'])))*100,2).'%';
                 if ($value['PD_WG'] !== '1900-01-01 00:00:00'){
                     $status = '已完工';
                 }else{
@@ -256,7 +257,7 @@ class WorkOrder extends Api
                     '计划产量' => (int)($value['Gy0_计划接货数']/$value['Gy0_ls']),
                     '基础损耗' => rtrim($value['Gy0_Rate0']),
                     '损耗率' => rtrim($value['Gy0_Rate1']),
-                    '报废定额' => rtrim($value['Gy0_计划损耗']),
+                    '报废定额' => $scrap,
                     '允损比例' => $number,
                     '难度系数' => isset($value['工价系数'])?rtrim($value['工价系数']):'',
                     '损耗系数' => isset($value['损耗系数'])?rtrim($value['损耗系数']):'',
@@ -294,7 +295,6 @@ class WorkOrder extends Api
         $bomList = \db('工单_bom资料')
             ->where('BOM_工单编号',$Gd_gdbh)
             ->field($field)
-            ->cache(true,84600)
             ->select();
         if (!empty($bomList)){
             foreach ($bomList as $key=>$value){
@@ -505,27 +505,40 @@ class WorkOrder extends Api
         {
             $this->error('参数错误');
         }
+        $lastId = \db('工单_工艺资料')->order('UniqId desc')->value('UniqId');
+        if ($lastId<10000000){
+            $lastId = 10000000;
+        }else{
+            $lastId = $lastId + 1;
+        }
         //获取原工单工艺资料
-        $oldProcessData = \db('工单_工艺资料')->where('Gy0_gdbh',$oldWorkOrder)->select();
+        $oldProcessData = \db('工单_工艺资料')->where('Gy0_gdbh',$newWorkOrder)->select();
         $ProsessUniqId = \db('工单_工艺资料')->field('UniqId')->order('UniqId desc')->find();
         foreach ($oldProcessData as $k=>$v){
-            $oldProcessData[$k]['Gy0_gdbh']  = $newWorkOrder;
+            $oldProcessData[$k]['Gy0_gdbh']  = $oldWorkOrder;
             $oldProcessData[$k]['Sys_id'] = '';
-            $oldProcessData[$k]['UniqId'] = $ProsessUniqId['UniqId'] + $k + 1;
+            $oldProcessData[$k]['UniqId'] = $lastId + $k;
+            $oldProcessData[$k]['PD_WG'] = '1900-01-01 00:00:00';
         }
-        if (\db('工单_工艺资料')->where('Gy0_gdbh',$newWorkOrder)->find()){
-            \db('工单_工艺资料')->where('Gy0_gdbh',$newWorkOrder)->delete();
+        if (\db('工单_工艺资料')->where('Gy0_gdbh',$oldWorkOrder)->find()){
+            \db('工单_工艺资料')->where('Gy0_gdbh',$oldWorkOrder)->delete();
         }
         //获取原工单印件资料
-        $oldPrintData = \db('工单_印件资料')->where('Yj_Gdbh',$oldWorkOrder)->select();
+        $lastUniqId = \db('工单_印件资料')->order('UniqId desc')->value('UniqId');
+        if ($lastUniqId<1000000){
+            $lastUniqId = 1000000;
+        }else{
+            $lastUniqId = $lastUniqId + 1;
+        }
+        $oldPrintData = \db('工单_印件资料')->where('Yj_Gdbh',$newWorkOrder)->select();
         $PrintUniqId = \db('工单_印件资料')->field('Uniqid')->order('Uniqid desc')->find();
         foreach ($oldPrintData as $k=>$v){
-            $oldPrintData[$k]['Yj_Gdbh']  = $newWorkOrder;
+            $oldPrintData[$k]['Yj_Gdbh']  = $oldWorkOrder;
             $oldPrintData[$k]['Sys_id'] = '';
-            $oldPrintData[$k]['Uniqid'] = $PrintUniqId['Uniqid'] +$k +1;
+            $oldPrintData[$k]['Uniqid'] = $lastUniqId +$k +1;
         }
-        if (\db('工单_印件资料')->where('Yj_Gdbh',$newWorkOrder)->find()){
-            \db('工单_印件资料')->where('Yj_Gdbh',$newWorkOrder)->delete();
+        if (\db('工单_印件资料')->where('Yj_Gdbh',$oldWorkOrder)->find()){
+            \db('工单_印件资料')->where('Yj_Gdbh',$oldWorkOrder)->delete();
         }
         //复制印件、工艺资料
         $ProcessSQL = \db('工单_工艺资料')->fetchSql(true)->insertAll($oldProcessData);
@@ -1464,18 +1477,90 @@ class WorkOrder extends Api
         $this->success('成功',$list);
     }
 
+    /**
+     * 新增印件资料->印件资料添加
+     * @return void
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\exception\PDOException
+     */
+    public function PrintDetailAdd()
+    {
+        if (Request::instance()->isPost() === false){
+            $this->error('请求错误');
+        }
+        $param = Request::instance()->post();
+        if (empty($param)){
+            $this->error('参数错误');
+        }
+        $lastId = \db('工单_印件资料')->order('Uniqid desc')->value('Uniqid');
+        if ($lastId<1000000){
+            $lastId = 1000000;
+        }else{
+            $lastId = $lastId + 1;
+        }
+        $param['Uniqid'] = $lastId;
+        $param['Sys_rq'] = date('Y-m-d H:i:s',time());
+        $param['Mod_rq'] = date('Y-m-d H:i:s',time());
+        $sql = \db('工单_印件资料')->fetchSql(true)->insert($param);
+        $res = \db()->query($sql);
+        if ($res !== false){
+            $this->success('成功');
+        }else{
+            $this->error('失败');
+        }
+    }
+
+
+    //新增工艺资料->工艺资料添加
+
+    public function ProcessDetailAdd()
+    {
+        if (Request::instance()->isPost() === false){
+            $this->error('请求错误');
+        }
+        $param = Request::instance()->post();
+        if (empty($param)){
+            $this->error('参数错误');
+        }
+        $lastId = \db('工单_工艺资料')->order('UniqId desc')->value('UniqId');
+        if ($lastId<100000000){
+            $lastId = 100000000;
+        }else{
+            $lastId = $lastId + 1;
+        }
+
+    }
+
+    /**
+     * 新增工艺资料->印件编号获取
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public function PrintDetailList()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (empty($param)){
+            $this->error('参数错误');
+        }
+        $printList = \db('工单_印件资料')
+            ->where('Yj_Gdbh',$param['workOrder'])
+            ->order('yj_Yjno')
+            ->select();
+        if (empty($printList)){
+            $this->success('未找到该工单印件资料');
+        }
+        $list = [];
+        foreach ($printList as $key=>$value){
+            $list[$key]['name'] = rtrim($value['yj_Yjno']).'-->'.rtrim($value['yj_yjmc']);
+            $list[$key]['no'] = rtrim($value['yj_Yjno']);
+        }
+        $this->success('成功',$list);
+    }
 
-    //新增印件资料->印件资料添加
 
-//    public function PrintDetailAdd()
-//    {
-//        if (Request::instance()->isPost() === false){
-//            $this->error('请求错误');
-//        }
-//        $param = Request::instance()->post();
-//        if (empty($param)){
-//            $this->error('参数错误');
-//        }
-//
-//    }
 }