Browse Source

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

曹鹤洋 1 year ago
parent
commit
683d3b75d6

+ 41 - 2
application/api/controller/Facility.php

@@ -47,14 +47,14 @@ class Facility extends Api
                 'rtrim(sczl_jtbh)' => '机台编号'
                 'rtrim(sczl_jtbh)' => '机台编号'
             ])
             ])
             ->where('sczl_rq','>',$date)
             ->where('sczl_rq','>',$date)
-            ->cache(true,86400)
+            ->cache(true,3600)
             ->order('sczl_rq desc')
             ->order('sczl_rq desc')
             ->select();
             ->select();
         if (empty($list)){
         if (empty($list)){
             $this->success('未找到机台生产记录');
             $this->success('未找到机台生产记录');
         }
         }
         foreach ($department as $value){
         foreach ($department as $value){
-            $machine = \db('设备_基本资料')->where('使用部门',$value)->where('sys_sbID','<>','')->where('使用部门',$value)->field('rtrim(设备编号) as 设备编号,rtrim(设备名称) as 设备名称')->cache(true)->select();
+            $machine = \db('设备_基本资料')->where('使用部门',$value)->where('sys_sbID','<>','')->where('使用部门',$value)->field('rtrim(设备编号) as 设备编号,rtrim(设备名称) as 设备名称')->select();
             foreach ($machine as $k=>$v){
             foreach ($machine as $k=>$v){
                 $data[rtrim($value)][$v['设备编号'].'-->'.$v['设备名称']] = [];
                 $data[rtrim($value)][$v['设备编号'].'-->'.$v['设备名称']] = [];
                 foreach ($list as $kk=>$vv){
                 foreach ($list as $kk=>$vv){
@@ -2213,4 +2213,43 @@ class Facility extends Api
             $this->success('修改成功');
             $this->success('修改成功');
         }
         }
     }
     }
+
+    /**
+     * 色度系数修改
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\exception\PDOException
+     */
+    public function PrintingModeDataEdit()
+    {
+        if (Request::instance()->isPost() === false){
+            $this->error('请求错误');
+        }
+        $params = Request::instance()->post();
+        if (empty($params['id'])){
+            $this->error('参数错误');
+        }
+        $idList = explode(',',$params['id']);
+        //获取工单印件工序
+        $orderList = \db('工单_产量计酬')
+            ->where('UniqId',$idList[0])
+            ->field('rtrim(sczl_gdbh) as 工单编号,rtrim(sczl_yjno) as 印件号,rtrim(sczl_gxh) as 工序号')
+            ->find();
+        //修改工艺资料
+        $sql = \db('工单_工艺资料')
+            ->where([
+                'Gy0_gdbh'=>$orderList['工单编号'],
+                'Gy0_yjno'=>$orderList['印件号'],
+                'Gy0_gxh'=>$orderList['工序号']
+            ])
+            ->fetchSql(true)
+            ->update(['版距'=>$params['plate'],'印刷方式'=>$params['mode']]);
+        $res = \db()->query($sql);
+        if ($res === false){
+            $this->error('修改失败');
+        }else{
+            $this->success('修改成功');
+        }
+    }
 }
 }

+ 2 - 6
application/api/controller/Machine.php

@@ -63,12 +63,8 @@ class Machine extends Api
             $this->error('非法请求');
             $this->error('非法请求');
         }
         }
         $list = [
         $list = [
-            0 => '胶印车间',
-            1 => '凹印车间',
-            2 => '丝印车间',
-            3 => '烫模车间',
-            4 => '检验车间',
-            5 => '研发中心',
+            0 => '印刷车间',
+            1 => '印后车间'
         ];
         ];
         $this->success('请求成功',$list);
         $this->success('请求成功',$list);
 
 

+ 83 - 0
application/api/controller/Product.php

@@ -927,4 +927,87 @@ class Product extends Api
             $this->error('新增失败');
             $this->error('新增失败');
         }
         }
     }
     }
+    /**
+     * 3.14工艺资料-获取损耗代号
+     * @ApiMethod GET
+     * @params code
+    */
+    public function getLossCode(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        if (empty($params) || !isset($params['code'])){
+            $this->error('参数不能为空');
+        }
+        $code = $params['code'];
+        $data = \db('dic_lzsh')->where('sys_bh','like',$code.'%')->field('rtrim(sys_bh) as sys_bh, rtrim(sys_mc) as sys_mc,sys_rate0,sys_rate1')->select();
+        $this->success('请求成功',$data);
+    }
+
+    /**
+     * 产品工艺资料删除
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function ProcessDetailDel()
+    {
+        if ($this->request->isGet() === false) {
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (isset($param['UniqId']) === false) {
+            $this->error('参数错误');
+        }
+        $printId = explode(',', $param['UniqId']);
+        $i = 0;
+        //循环删除工艺资料
+        foreach ($printId as $value){
+            $res = \db('产品_工艺资料')
+                ->where('UniqID',$value)
+                ->delete();
+            if ($res === false){
+                $i++;
+            }
+        }
+        if ($i === 0){
+            $this->success('删除成功');
+        }else{
+            $this->error('删除失败');
+        }
+    }
+
+    /**
+     * 产品印件资料删除
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function PrintDetailDel()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (isset($param['UniqId']) === false){
+            $this->error('参数错误');
+        }
+        $printId = explode(',',$param['UniqId']);
+        $i = 0;
+        foreach ($printId as $value){
+            $res = \db('产品_印件资料')
+                ->where('UniqId',$value)
+                ->delete();
+            if ($res === false){
+                $i++;
+            }
+        }
+        if ($i === 0){
+            $this->success('删除成功');
+        }else{
+            $this->error('删除失败');
+        }
+
+    }
 }
 }

+ 3 - 15
application/api/controller/ReportingWork.php

@@ -173,22 +173,10 @@ class ReportingWork extends Api
         if (!isset($params['code']) || empty($params['code'])) {
         if (!isset($params['code']) || empty($params['code'])) {
             $this->error('参数错误');
             $this->error('参数错误');
         }
         }
-        if (substr($params['code'],0,2) == 'ZM'){
-            $code = $params['code'];
-        }else{
-            if (strlen($params['code']) != 5){
-                $length = strlen($params['code']);
-                $len = 5 -$length;
-                $str = '';
-                for ($i=0;$i<$len;$i++){
-                    $str .= '0';
-                }
-                $code = 'ZM'.$str.$params['code'];
-            }else{
-                $code = 'ZM'.$params['code'];
-            }
+        $data = \db('人事_基本资料')->where('员工编号',$params['code'])->value('员工姓名');
+        if (empty($data)){
+            $data = \db('人事_基本资料')->where('pycode',$params['code'])->value('员工姓名');
         }
         }
-        $data = \db('人事_基本资料')->where('员工编号',$code)->value('员工姓名');
         $this->success('请求成功',rtrim($data));
         $this->success('请求成功',rtrim($data));
     }
     }
     /**
     /**

+ 19 - 7
application/api/controller/StaffSalary.php

@@ -99,8 +99,9 @@ class StaffSalary extends Api
         $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_gxmc as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
         $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_gxmc as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常停机工时 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常停机工时 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
-                a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,a.sczl_废品率系数,
-                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数
+                a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,
+                a.sczl_废品率系数,
+                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数,c.版距
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
@@ -129,10 +130,17 @@ class StaffSalary extends Api
         foreach ($list as $value){
         foreach ($list as $value){
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             //计件产量
             //计件产量
-            if (substr($value['sczl_jtbh'],0,2) == 'JP'){
-                $value['工序难度系数'] = $value['sczl_废品率系数'];
+            if (substr($value['sczl_jtbh'],0,2) == 'JP'){//检品机
+                $gx_rate = $value['sczl_废品率系数'];
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
                 $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
+            }elseif (substr($value['sczl_jtbh'],0,2) == 'WY' || substr($value['sczl_jtbh'],0,2) == 'DW'){//凹印机
+                $gx_rate = $value['工序难度系数'];
+                if ($value['版距'] > 0){
+                    $value['版距'] = $value['版距'] / 1000;
+                    $value['班组车头产量'] = $value['班组车头产量'] * $value['版距'];
+                }
+                $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
             }else{
             }else{
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                     //工序难度系数
                     //工序难度系数
@@ -141,7 +149,11 @@ class StaffSalary extends Api
                         $gx_rate = '1.0000';
                         $gx_rate = '1.0000';
                     }
                     }
                 }else{
                 }else{
-                    $gx_rate = number_format($value['sczl_工价系数'] * $value['工序难度系数'],3);
+                    if (floatval($value['工序难度系数']) > 0 ){
+                        $gx_rate = number_format($value['sczl_工价系数'] * $value['工序难度系数'],3);
+                    }else{
+                        $gx_rate = $value['sczl_工价系数'];
+                    }
                 }
                 }
                 $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
                 $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
             }
             }
@@ -204,7 +216,7 @@ class StaffSalary extends Api
                 }
                 }
             }
             }
         }
         }
-
+//        halt($data);
         /**
         /**
          * 拆片工序数据
          * 拆片工序数据
         */
         */
@@ -520,7 +532,7 @@ class StaffSalary extends Api
             // 推送任务到队列
             // 推送任务到队列
             Queue::push($job,'','default'); // 推送任务到队列
             Queue::push($job,'','default'); // 推送任务到队列
             // 设置任务的标识符到缓存中,并设置有效期,有效期为队列执行时间的两倍
             // 设置任务的标识符到缓存中,并设置有效期,有效期为队列执行时间的两倍
-            $redis->set($taskIdentifier, true,60*5);
+            $redis->set($taskIdentifier, true);
             $this->success('数据正在处理中,请等待...');
             $this->success('数据正在处理中,请等待...');
         }
         }
     }
     }

+ 121 - 4
application/api/controller/Synchronization.php

@@ -4,6 +4,7 @@ namespace app\api\controller;
 
 
 use app\common\controller\Api;
 use app\common\controller\Api;
 use think\Db;
 use think\Db;
+use Overtrue\Pinyin;
 
 
 /**
 /**
  * 中间表数据同步
  * 中间表数据同步
@@ -60,9 +61,15 @@ class Synchronization extends Api
                 }
                 }
             }
             }
             //插入工单资料
             //插入工单资料
+            if (preg_match("/[A-Za-z]/",$value['工单编号'])){
+                $workcode = $value['工单编号'];
+            }else{
+                $workcode = 'Y'.$value['工单编号'];
+            }
+
             $client = \db('产品_基本资料')->where('产品编号',$value['成品编号'])->field('rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称')->find();
             $client = \db('产品_基本资料')->where('产品编号',$value['成品编号'])->field('rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称')->find();
             $data = [
             $data = [
-                'Gd_gdbh' => $value['工单编号'],
+                'Gd_gdbh' => $workcode,
                 '行号' => $value['行号'],
                 '行号' => $value['行号'],
                 'Gd_客户代号' => $client['客户编号'],
                 'Gd_客户代号' => $client['客户编号'],
                 'Gd_客户名称' => $client['客户名称'],
                 'Gd_客户名称' => $client['客户名称'],
@@ -160,9 +167,14 @@ class Synchronization extends Api
         $j = $m = 0;
         $j = $m = 0;
         foreach ($BomDataList as $key=>$value){
         foreach ($BomDataList as $key=>$value){
             $res = \db('工单_bom资料')->where('UNIQID',$value['UNIQID'])->count();
             $res = \db('工单_bom资料')->where('UNIQID',$value['UNIQID'])->count();
+            if (preg_match("/[A-Za-z]/",$value['BOM_工单编号'])){
+                $workcode = $value['BOM_工单编号'];
+            }else{
+                $workcode = 'Y'.$value['BOM_工单编号'];
+            }
             $data = [
             $data = [
                 'BOM_方案' => '工单评审定案',
                 'BOM_方案' => '工单评审定案',
-                'BOM_工单编号' => $value['BOM_工单编号'],
+                'BOM_工单编号' => $workcode,
                 'BOM_版本' => $value['BOM_版本'],
                 'BOM_版本' => $value['BOM_版本'],
                 'BOM_工单行号' => $value['BOM_工单行号'],
                 'BOM_工单行号' => $value['BOM_工单行号'],
                 'BOM_行号' => $value['BOM_行号'],
                 'BOM_行号' => $value['BOM_行号'],
@@ -309,6 +321,8 @@ class Synchronization extends Api
      */
      */
     public function PersonnelData()
     public function PersonnelData()
     {
     {
+        //拼音类
+        $pinyin = new Pinyin\Pinyin();
         if ($this->request->isGet() === false){
         if ($this->request->isGet() === false){
             $this->error('请求错误');
             $this->error('请求错误');
         }
         }
@@ -322,6 +336,9 @@ class Synchronization extends Api
         }
         }
         $i = 0;
         $i = 0;
         foreach ($PersonnelDataList as $key=>$value){
         foreach ($PersonnelDataList as $key=>$value){
+            //获取姓名首字母
+            $pycode = $pinyin->abbr($value['员工姓名']);
+            $nameCode = strtoupper($pycode);
             $data = [
             $data = [
                 '工卡编号'=>'',
                 '工卡编号'=>'',
                 '卡钟设定'=>'',
                 '卡钟设定'=>'',
@@ -366,7 +383,7 @@ class Synchronization extends Api
                 '合同终止日期'=>'1900-01-01 00:00:00',
                 '合同终止日期'=>'1900-01-01 00:00:00',
                 '合同备注'=>'',
                 '合同备注'=>'',
                 '出生日期'=>$value['出生日期'],
                 '出生日期'=>$value['出生日期'],
-                'pycode'=>$value['pycode'],
+                'pycode'=>$nameCode,
                 '籍贯'=>'',
                 '籍贯'=>'',
                 '民族'=>'',
                 '民族'=>'',
                 '身份证号'=>$value['身份证号'],
                 '身份证号'=>$value['身份证号'],
@@ -720,10 +737,15 @@ class Synchronization extends Api
         }
         }
         $i = 0;
         $i = 0;
         foreach ($OrganizationalDataList as $key=>$value){
         foreach ($OrganizationalDataList as $key=>$value){
+            if (preg_match("/[A-Za-z]/",$value['工单编号'])){
+                $workcode = $value['工单编号'];
+            }else{
+                $workcode = 'Y'.$value['工单编号'];
+            }
             $data = [
             $data = [
                 'st_rq'=>$value['日期'],
                 'st_rq'=>$value['日期'],
                 'st_jylb'=>$value['交易类别'],
                 'st_jylb'=>$value['交易类别'],
-                'st_gdbh'=>$value['工单编号'],
+                'st_gdbh'=>$workcode,
                 '采购单号'=>$value['采购单号'],
                 '采购单号'=>$value['采购单号'],
                 '供方批次'=>$value['供方批次'],
                 '供方批次'=>$value['供方批次'],
                 'st_wlbh'=>$value['物料编号'],
                 'st_wlbh'=>$value['物料编号'],
@@ -944,4 +966,99 @@ class Synchronization extends Api
             $this->success('职位编码同步成功');
             $this->success('职位编码同步成功');
         }
         }
     }
     }
+
+    /**
+     * 设备产量计酬云中间表数据库同步
+     * @return void
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function ProductionData()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        if(is_dir(ROOT_PATH.'public/'.date('Y-m-d',time())) == null)
+        {
+            mkdir(ROOT_PATH.'public/'.date('Y-m-d',time()),0777,true);
+        }
+//        $lastID = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
+//        if (empty($lastID)){
+//            $lastID = 0;
+//        }
+        $db5 = \db()->connect(config('database.db5'));
+        $where = [
+//            'sczl_rq'=>date('Y-m-d',time()),
+//            'UniqId' =>['>',$lastID]
+            'sczl_rq' => ['>=','2024-04-01']
+        ];
+        $productData = $db5->name('设备_产量计酬')
+            ->where($where)
+            ->select();
+        //获取机台信息
+        $machineData = \db('设备_基本资料')
+            ->where('mn_设备编号','<>','')
+            ->field('rtrim(设备编号) as 设备编号,rtrim(mn_设备编号) as 美浓设备编号')
+            ->select();
+        //获取员工资料
+        $employeeData = \db('人事_基本资料')
+            ->where('mn_员工编号','<>','')
+            ->field('rtrim(员工编号) as 员工编号,rtrim(mn_员工编号) as 美浓员工编号')
+            ->select();
+        //循环判断机台、员工编号
+        $j = 0;
+        $data = [];
+        foreach ($productData as $key=>$value){
+            //判断机台编号
+            foreach ($machineData as $v){
+                if ($value['sczl_jtbh'] === $v['美浓设备编号']){
+                    $productData[$key]['sczl_jtbh'] = $v['设备编号'];
+                    array_push($data,$productData[$key]);
+                }
+            }
+        }
+        if (empty($data)){
+            $this->error('未找到新的生产数据');
+        }
+        foreach ($data as $key=>$value){
+            $name = [];
+            //判断员工编号,如果不存在写入日志文件
+            for($i=1;$i<=10;$i++){
+                foreach ($employeeData as $vv){
+                    if ($value['sczl_bh'.$i] === $vv['美浓员工编号']){
+                        $data[$key]['sczl_bh'.$i] = $vv['员工编号'];
+                    }else{
+                        array_push($name,$value['sczl_bh'.$i]);
+                    }
+                }
+            }
+            $name = array_unique($name);
+            $filename = ROOT_PATH.'public/'.date('Y-m-d',time()).'/'.$value['sczl_jtbh'].'日志文件.txt';
+            $handle = fopen($filename, 'w');
+            foreach ($name as $v){
+                fwrite($handle, $v);
+            }
+            fclose($handle);
+            //修改工单编号
+            if (preg_match("/[A-Za-z]/",$value['sczl_gdbh'])){
+                $workcode = $value['sczl_gdbh'];
+            }else{
+                $workcode = 'Y'.$value['sczl_gdbh'];
+            }
+            $data[$key]['sczl_gdbh'] = $workcode;
+        }
+        //插入设备产量计酬数据
+        \db()->startTrans();
+        try {
+            \db('设备_产量计酬')->where('sczl_rq','>=','2024-04-01 00:00:00')->delete();
+            $sql = \db('设备_产量计酬')->fetchSql(true)->insertAll($data);
+            $res = \db()->query($sql);
+        }catch (\Exception $e){
+            \db()->rollback();
+        }
+        $this->success('同步成功');
+    }
 }
 }

+ 224 - 31
application/api/controller/WorkOrder.php

@@ -38,7 +38,6 @@ class WorkOrder extends Api
             'progressAll' => $progressAll,
             'progressAll' => $progressAll,
             '印刷工单' => [],
             '印刷工单' => [],
             '糊盒工单' => []
             '糊盒工单' => []
-
         ];
         ];
         $sql = "SELECT DISTINCT
         $sql = "SELECT DISTINCT
                     (客户编号),rtrim(客户名称 ) as 客户名称
                     (客户编号),rtrim(客户名称 ) as 客户名称
@@ -236,15 +235,10 @@ class WorkOrder extends Api
                 if ($value['Gy0_gxh']<10){
                 if ($value['Gy0_gxh']<10){
                     $value['Gy0_gxh'] = '0'.$value['Gy0_gxh'];
                     $value['Gy0_gxh'] = '0'.$value['Gy0_gxh'];
                 }
                 }
-                if ((int)$value['Gy0_ms'] === 0){
-                    $scrap = ceil(($value['Gy0_Rate0']+((int)($value['Gy0_计划接货数']/$value['Gy0_ls']))*$value['Gy0_Rate1'])*$value['损耗系数']);
-                }else{
-                    $scrap = ceil(($value['Gy0_Rate0']+((int)($value['Gy0_计划接货数']/$value['Gy0_ls']))*$value['Gy0_Rate1'])*$value['损耗系数']*$value['Gy0_ms']);
-                }
                 if (rtrim($value['Gy0_sbbh']) == '' || $value['Gy0_计划接货数'] == 0){
                 if (rtrim($value['Gy0_sbbh']) == '' || $value['Gy0_计划接货数'] == 0){
                     $number = 0;
                     $number = 0;
                 }else{
                 }else{
-                    $number = round(($scrap/((int)($value['Gy0_计划接货数']/$value['Gy0_ls'])))*100,2).'%';
+                    $number = round(((int)$value['Gy0_计划损耗']/(int)($value['Gy0_计划接货数']))*100,2).'%';
                 }
                 }
                 if ($value['PD_WG'] !== '1900-01-01 00:00:00'){
                 if ($value['PD_WG'] !== '1900-01-01 00:00:00'){
                     $status = '已完工';
                     $status = '已完工';
@@ -256,11 +250,11 @@ class WorkOrder extends Api
                     '印件-工序' => rtrim($value['Gy0_yjno']).'-'.rtrim($value['Gy0_gxh']),
                     '印件-工序' => rtrim($value['Gy0_yjno']).'-'.rtrim($value['Gy0_gxh']),
                     '备选工序' => rtrim($value['备选工序']),
                     '备选工序' => rtrim($value['备选工序']),
                     '工序名称' => rtrim($value['Gy0_gxmc']).'【'.rtrim($value['Add_gxmc']).'】',
                     '工序名称' => rtrim($value['Gy0_gxmc']).'【'.rtrim($value['Add_gxmc']).'】',
-                    '计划产量' => (int)($value['Gy0_计划接货数']/$value['Gy0_ls']),
+                    '计划产量' => $value['Gy0_计划接货数'],
                     '基础损耗' => rtrim($value['Gy0_Rate0']),
                     '基础损耗' => rtrim($value['Gy0_Rate0']),
                     '损耗率' => rtrim($value['Gy0_Rate1']),
                     '损耗率' => rtrim($value['Gy0_Rate1']),
                     '机台编号' => rtrim($value['Gy0_sbbh']),
                     '机台编号' => rtrim($value['Gy0_sbbh']),
-                    '报废定额' => $scrap,
+                    '报废定额' => rtrim($value['Gy0_计划损耗']),
                     '允损比例' => $number,
                     '允损比例' => $number,
                     '难度系数' => isset($value['工价系数'])?rtrim($value['工价系数']):'',
                     '难度系数' => isset($value['工价系数'])?rtrim($value['工价系数']):'',
                     '损耗系数' => isset($value['损耗系数'])?rtrim($value['损耗系数']):'',
                     '损耗系数' => isset($value['损耗系数'])?rtrim($value['损耗系数']):'',
@@ -349,25 +343,23 @@ class WorkOrder extends Api
         $field = 'rtrim(Gd_lx) as 重点工单,rtrim(Gd_gdbh) as 工单编号,rtrim(Gd_生产分类) as 生产类型,rtrim(Gd_khdh) as 客户代号,rtrim(Gd_客户名称) as 客户名称,
         $field = 'rtrim(Gd_lx) as 重点工单,rtrim(Gd_gdbh) as 工单编号,rtrim(Gd_生产分类) as 生产类型,rtrim(Gd_khdh) as 客户代号,rtrim(Gd_客户名称) as 客户名称,
         rtrim(Gd_cpdh) as 印件代号,rtrim(Gd_cpmc) as 印件名称,rtrim(成品代号) as 产品代号,rtrim(成品名称) as 产品名称,rtrim(接单日期) as 开单日期,rtrim(订单数量) as 订单数量,rtrim(交货日期) as 交货日期,
         rtrim(Gd_cpdh) as 印件代号,rtrim(Gd_cpmc) as 印件名称,rtrim(成品代号) as 产品代号,rtrim(成品名称) as 产品名称,rtrim(接单日期) as 开单日期,rtrim(订单数量) as 订单数量,rtrim(交货日期) as 交货日期,
         rtrim(投料率) as 投料率,rtrim(实际投料) as 万小张,rtrim(计量单位) as 单位,rtrim(投料大箱) as 投料大箱,rtrim(排产时库存) as 库存大箱,rtrim(警语版面) as 警语版面,
         rtrim(投料率) as 投料率,rtrim(实际投料) as 万小张,rtrim(计量单位) as 单位,rtrim(投料大箱) as 投料大箱,rtrim(排产时库存) as 库存大箱,rtrim(警语版面) as 警语版面,
-        rtrim(销售订单号) as 销售订单号,rtrim(产品版本号) as 版本号,rtrim(客户ERP编码) as 客户ERP编码,rtrim(码源数量) as 码源数量,rtrim(进程备注) as 进程备注,rtrim(Gd_desc) as 备注,rtrim(Uniqid) as Uniqid';
+        rtrim(销售订单号) as 销售订单号,rtrim(产品版本号) as 版本号,rtrim(客户ERP编码) as 客户ERP编码,rtrim(码源数量) as 码源数量,rtrim(进程备注) as 进程备注,rtrim(Gd_desc) as 备注,rtrim(Uniqid) as Uniqid,rtrim(计划投料) as 平张投料';
         $list = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field($field)->find();
         $list = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field($field)->find();
         if (empty($list)){
         if (empty($list)){
             $this->error('未找到该工单信息');
             $this->error('未找到该工单信息');
         }
         }
         $printData = \db('工单_印件资料')
         $printData = \db('工单_印件资料')
             ->where('Yj_Gdbh',$workOrder)
             ->where('Yj_Gdbh',$workOrder)
-            ->field('rtrim(yj_yjmc) as 印件名称,rtrim(yj_Yjdh) as 印件代号,rtrim(yj_平张投料) as 平张投料,rtrim(Uniqid) as id')
+            ->field('rtrim(yj_yjmc) as 印件名称,rtrim(yj_Yjdh) as 印件代号,rtrim(Uniqid) as id')
             ->cache(true,84600)
             ->cache(true,84600)
             ->find();
             ->find();
         if (empty($printData)){
         if (empty($printData)){
             $list['印件名称'] = '';
             $list['印件名称'] = '';
             $list['印件代号'] = '';
             $list['印件代号'] = '';
-            $list['平张投料'] = '';
             $list['印件ID'] = '';
             $list['印件ID'] = '';
         }else{
         }else{
             $list['印件名称'] = $printData['印件名称'];
             $list['印件名称'] = $printData['印件名称'];
             $list['印件代号'] = $printData['印件代号'];
             $list['印件代号'] = $printData['印件代号'];
-            $list['平张投料'] = $printData['平张投料'];
             $list['印件ID'] = $printData['id'];
             $list['印件ID'] = $printData['id'];
         }
         }
         $this->success('成功',$list);
         $this->success('成功',$list);
@@ -417,8 +409,22 @@ class WorkOrder extends Api
             '排产时库存' => isset($param['kc'])?$param['kc']:'',
             '排产时库存' => isset($param['kc'])?$param['kc']:'',
             '平均合格率' => isset($param['avg'])?$param['avg']:'',
             '平均合格率' => isset($param['avg'])?$param['avg']:'',
         ];
         ];
+        //获取印件资料
+        $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('分配工序计划产量失败');
+        }
+        //修改工单信息
         $sql = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($row);
         $sql = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($row);
         $res = Db::query($sql);
         $res = Db::query($sql);
+        //修改印件信息
         $printSql = \db('工单_印件资料')
         $printSql = \db('工单_印件资料')
             ->where('Uniqid',$param['printID'])
             ->where('Uniqid',$param['printID'])
             ->fetchSql(true)
             ->fetchSql(true)
@@ -990,6 +996,16 @@ class WorkOrder extends Api
             'yj_ls' => isset($param['ls'])?$param['ls']:'',
             'yj_ls' => isset($param['ls'])?$param['ls']:'',
             'yj_desc' => isset($param['desc'])?$param['desc']:'',
             'yj_desc' => isset($param['desc'])?$param['desc']:'',
         ];
         ];
+        //获取工单编号
+        $workOrder = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->field('Yj_Gdbh,yj_Yjno')->find();
+        if (empty($workOrder)){
+            $this->success('未找到该工单印件资料');
+        }
+        //重新分配工序计划产量
+        $result = $this->PlannedProcessYield($workOrder['Yj_Gdbh'],$workOrder['yj_Yjno'],0,$param['pztl']);
+        if ($result === false){
+            $this->success('修改工序产量失败');
+        }
         $sql = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
         $sql = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
         $res = Db::query($sql);
         $res = Db::query($sql);
         if ($res !== false){
         if ($res !== false){
@@ -1038,8 +1054,10 @@ class WorkOrder extends Api
             'Gy0_小时产能' => $param['xscn'],
             'Gy0_小时产能' => $param['xscn'],
             'Mod_rq' => date('Y-m-d H:i:s',time()),
             'Mod_rq' => date('Y-m-d H:i:s',time()),
         ];
         ];
+        //修改工艺资料
         $sql = \db('工单_工艺资料')->where('UniqId',$param['UniqId'])->fetchSql(true)->update($data);
         $sql = \db('工单_工艺资料')->where('UniqId',$param['UniqId'])->fetchSql(true)->update($data);
         $res = Db::query($sql);
         $res = Db::query($sql);
+        //修改工单状态
         $status = \db('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->field('rtrim(gd_statu) as status')->find();
         $status = \db('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->field('rtrim(gd_statu) as status')->find();
         if ($status['status'] !== '2-生产中'){
         if ($status['status'] !== '2-生产中'){
             $statusSql = \db('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->fetchSql(true)->update(['gd_statu'=>'2-生产中']);
             $statusSql = \db('工单_基本资料')->where('Gd_gdbh',$param['workOrder'])->fetchSql(true)->update(['gd_statu'=>'2-生产中']);
@@ -1358,6 +1376,31 @@ class WorkOrder extends Api
             $this->error('参数错误');
             $this->error('参数错误');
         }
         }
         $num = \db('工单_基本资料')->where('Gd_gdbh',$param['gdbh'])->count();
         $num = \db('工单_基本资料')->where('Gd_gdbh',$param['gdbh'])->count();
+        //插入产品资料
+        $productData = \db('产品_基本资料')
+            ->where('产品编号',$param['cpdh'])
+            ->count();
+        if ($productData === 0) {
+            $clientCode = substr($param['cpdh'], 0, 5);
+            $product = [
+                '客户编号' => $clientCode,
+                '客户名称' => $param['khmc'],
+                '产品编号' => $param['cpdh'],
+                '产品名称' => $param['cpmc'],
+                '计量单位' => '万张',
+                '状态' => '',
+                'Mod_rq' => date('Y-m-d H:i:s', time()),
+                'UniqID' => \db('产品_基本资料')->order('UniqID desc')->value('UniqID') + 1,
+            ];
+            if (strpos($product['产品名称'], '小盒') === false) {
+                $product['产品类别'] = '条盒';
+            } else {
+                $product['产品类别'] = '小盒';
+            }
+            $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
+            \db()->query($productSql);
+        }
+        //添加工单
         $productDetail = \db('产品_基本资料')->where('产品编号',$param['cpdh'])->find();
         $productDetail = \db('产品_基本资料')->where('产品编号',$param['cpdh'])->find();
         if (empty($productDetail)){
         if (empty($productDetail)){
             $productDetail['客户料号'] = '';
             $productDetail['客户料号'] = '';
@@ -1429,15 +1472,15 @@ class WorkOrder extends Api
             '待摊其他费用' => 0,
             '待摊其他费用' => 0,
             '加工费' => 0,
             '加工费' => 0,
             '加工费单价' => 0,
             '加工费单价' => 0,
-            '成本考核_胶印' => 0,
-            '成本考核_凹印' => 0,
-            '成本考核_丝印' => 0,
-            '成本考核_模切' => 0,
-            '成本考核_检验' => 0,
+            '成本考核_胶印' => 1,
+            '成本考核_凹印' => 1,
+            '成本考核_丝印' => 1,
+            '成本考核_模切' => 1,
+            '成本考核_检验' => 1,
             '印版费' => 0,
             '印版费' => 0,
             'V23制造成本' => 0,
             'V23制造成本' => 0,
             'Prt_rq' => date('Y-m-d H:i:s',time()),
             'Prt_rq' => date('Y-m-d H:i:s',time()),
-            'Sys_id' => '',
+            'Sys_id' => $param['Sys_id'],
             'Sys_rq' => date('Y-m-d H:i:s',time()),
             'Sys_rq' => date('Y-m-d H:i:s',time()),
             'Mod_rq' => date('Y-m-d H:i:s',time()),
             'Mod_rq' => date('Y-m-d H:i:s',time()),
             'U8UID' => '',
             'U8UID' => '',
@@ -1556,8 +1599,8 @@ class WorkOrder extends Api
             $this->error('参数错误');
             $this->error('参数错误');
         }
         }
         $lastId = \db('工单_印件资料')->order('Uniqid desc')->value('Uniqid');
         $lastId = \db('工单_印件资料')->order('Uniqid desc')->value('Uniqid');
-        if ($lastId<1000000){
-            $lastId = 1000000;
+        if (empty($lastId)){
+            $lastId = 0;
         }else{
         }else{
             $lastId = $lastId + 1;
             $lastId = $lastId + 1;
         }
         }
@@ -1589,8 +1632,8 @@ class WorkOrder extends Api
             $this->error('参数错误');
             $this->error('参数错误');
         }
         }
         $lastId = \db('工单_工艺资料')->order('UniqId desc')->value('UniqId');
         $lastId = \db('工单_工艺资料')->order('UniqId desc')->value('UniqId');
-        if ($lastId<100000000){
-            $lastId = 100000000;
+        if (empty($lastId)){
+            $lastId = 0;
         }else{
         }else{
             $lastId = $lastId + 1;
             $lastId = $lastId + 1;
         }
         }
@@ -1612,6 +1655,13 @@ class WorkOrder extends Api
             ->fetchSql(true)
             ->fetchSql(true)
             ->insert($param);
             ->insert($param);
         $res = \db()->query($sql);
         $res = \db()->query($sql);
+        //获取平张投料
+        $number = \db('工单_印件资料')
+            ->where('Yj_Gdbh',$param['Gy0_gdbh'])
+            ->where('yj_Yjno',$param['Gy0_yjno'])
+            ->value('rtrim(yj_平张投料)');
+        //分配工艺计划产量
+        $this->PlannedProcessYield($param['Gy0_gdbh'],$param['Gy0_yjno'],$param['Gy0_gxh'],$number);
         if ($res !== false){
         if ($res !== false){
             $this->success('成功');
             $this->success('成功');
         }else{
         }else{
@@ -1701,6 +1751,19 @@ class WorkOrder extends Api
         }
         }
         $printId = explode(',',$param['UniqId']);
         $printId = explode(',',$param['UniqId']);
         $i = 0;
         $i = 0;
+        //获取工单编号、印件号
+        $codeList = \db('工单_工艺资料')
+            ->where('UniqId',$printId[0])
+            ->field('rtrim(Gy0_gdbh) as 工单编号,rtrim(Gy0_yjno) as 印件号')
+            ->find();
+        //获取平张投料数量
+        $number = \db('工单_印件资料')
+            ->where([
+                'Yj_Gdbh' => $codeList['工单编号'],
+                'yj_Yjno' => $codeList['印件号']
+            ])
+            ->value('rtrim(yj_平张投料)');
+        //循环删除工艺资料
         foreach ($printId as $value){
         foreach ($printId as $value){
             $res = \db('工单_工艺资料')
             $res = \db('工单_工艺资料')
                 ->where('UniqId',$value)
                 ->where('UniqId',$value)
@@ -1709,6 +1772,8 @@ class WorkOrder extends Api
                 $i++;
                 $i++;
             }
             }
         }
         }
+        //重新分配工艺计划产量
+        $this->PlannedProcessYield($codeList['工单编号'],$codeList['印件号'],0,$number);
         if ($i === 0){
         if ($i === 0){
             $this->success('删除成功');
             $this->success('删除成功');
         }else{
         }else{
@@ -1729,18 +1794,13 @@ class WorkOrder extends Api
             $this->error('请求错误');
             $this->error('请求错误');
         }
         }
         $param = $this->request->param();
         $param = $this->request->param();
-        if (isset($param['search']) === false){
+        if (empty($param['process'])){
             $this->error('参数错误');
             $this->error('参数错误');
         }
         }
         $order = \db('dic_lzsh')
         $order = \db('dic_lzsh')
-            ->where('sys_mc','like',substr($param['search'],0,6).'%')
+            ->where('sys_mc','like',$param['process'].'%')
             ->value('rtrim(sys_bh) as 编号');
             ->value('rtrim(sys_bh) as 编号');
-        $list = \db('dic_lzsh')
-            ->where('sys_bh','like',$order.'%')
-            ->where('sys_bh','<>',$order)
-            ->field('rtrim(sys_bh) as 编号,rtrim(sys_mc) as 名称,rtrim(UniqId) as UniqId')
-            ->select();
-        $this->success('成功',$list);
+        $this->success('成功',$order);
     }
     }
 
 
     /**
     /**
@@ -2040,6 +2100,11 @@ class WorkOrder extends Api
             $ProcessList[$key]['Gy0_ks'] = $value['Gy0_Ks'];
             $ProcessList[$key]['Gy0_ks'] = $value['Gy0_Ks'];
             $ProcessList[$key]['Gy0_ms'] = $value['Gy0_Ms'];
             $ProcessList[$key]['Gy0_ms'] = $value['Gy0_Ms'];
             $ProcessList[$key]['Gy0_oil'] = $value['Gy0_Oil'];
             $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_sj1'] = '1900-01-01 00:00:00';
             $ProcessList[$key]['Gy0_sj2'] = '1900-01-01 00:00:00';
             $ProcessList[$key]['Gy0_sj2'] = '1900-01-01 00:00:00';
             $ProcessList[$key]['UniqId'] = $ProcesslastId + $key + 1;
             $ProcessList[$key]['UniqId'] = $ProcesslastId + $key + 1;
@@ -2056,10 +2121,15 @@ class WorkOrder extends Api
             $this->error('未找到印件资料');
             $this->error('未找到印件资料');
         }
         }
         $PrintLastId = \db('工单_印件资料')->order('Uniqid desc')->value('rtrim(Uniqid)');
         $PrintLastId = \db('工单_印件资料')->order('Uniqid desc')->value('rtrim(Uniqid)');
+        $number = \db('工单_基本资料')
+            ->where('Gd_gdbh',$param['workorder'])
+            ->where('成品代号',$param['productCode'])
+            ->value('rtrim(计划投料)');
         foreach ($PrintList as $key => $value){
         foreach ($PrintList as $key => $value){
           $PrintList[$key]['Yj_Gdbh'] = $param['workorder'];
           $PrintList[$key]['Yj_Gdbh'] = $param['workorder'];
           $PrintList[$key]['yj_Yjno'] = $value['yj_yjno'];
           $PrintList[$key]['yj_Yjno'] = $value['yj_yjno'];
           $PrintList[$key]['yj_Yjdh'] = $value['yj_yjdh'];
           $PrintList[$key]['yj_Yjdh'] = $value['yj_yjdh'];
+          $PrintList[$key]['yj_平张投料'] = $number;
           $PrintList[$key]['Sys_id'] = $value['sys_id'];
           $PrintList[$key]['Sys_id'] = $value['sys_id'];
           $PrintList[$key]['Uniqid'] = $PrintLastId + $key + 1;
           $PrintList[$key]['Uniqid'] = $PrintLastId + $key + 1;
           $PrintList[$key]['Sys_rq'] = date('Y-m-d H:i:s',time());
           $PrintList[$key]['Sys_rq'] = date('Y-m-d H:i:s',time());
@@ -2077,6 +2147,12 @@ class WorkOrder extends Api
         if ($printRes === false){
         if ($printRes === false){
             $this->error('插入印件资料失败');
             $this->error('插入印件资料失败');
         }
         }
+        //计算工序计划生产数量
+        if ($number !== 0){
+            foreach ($PrintList as $value){
+                $this->PlannedProcessYield($param['workorder'],$value['yj_Yjno'],0,$number);
+            }
+        }
         $this->success('成功');
         $this->success('成功');
     }
     }
 
 
@@ -2120,4 +2196,121 @@ class WorkOrder extends Api
         $this->success('成功',$list);
         $this->success('成功',$list);
     }
     }
 
 
+
+    /**
+     * 工艺资料计划产量重新分配
+     * @param string $workOrder 工单
+     * @param int $yjno 印件号
+     * @param int $gxh 工序号
+     * @param int $feed 平张投料
+     * @return bool
+     * @throws \think\Exception
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function PlannedProcessYield($workOrder,$yjno,$gxh,$feed)
+    {
+        if ($gxh === 0){
+            $where = [
+                'Gy0_gdbh'=>$workOrder,
+                'Gy0_yjno'=>$yjno,
+            ];
+        }else{
+            $where = [
+                'Gy0_gdbh'=>$workOrder,
+                'Gy0_yjno'=>$yjno,
+                'Gy0_gxh'=>['>=',$gxh]
+            ];
+        }
+        //获取工艺资料
+        $processList = \db('工单_工艺资料')
+            ->where($where)
+            ->field('Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
+            ->select();
+        if (empty($processList)){
+            $this->success('未找到该工单工序资料');
+        }
+        //计算损耗定额和计划产量
+        $production = [];
+        $i = 0;
+        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];
+            }
+            array_push($production,ceil($number-$wastage));
+            $processSql = \db('工单_工艺资料')
+                ->where('UniqId',$value['UniqId'])
+                ->fetchSql(true)
+                ->update(['Gy0_计划接货数'=>$production[$key],'Gy0_计划损耗'=>$wastage]);
+            $res = \db()->query($processSql);
+            if ($res === false){
+                $i++;
+            }
+        }
+        if ($i===0){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    /**
+     * 工单资料删除
+     * @return void
+     * @throws \think\exception\PDOException
+     */
+    public function WorkOrderDel()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        $param = $this->request->param();
+        if (isset($param['UniqId']) === false){
+            $this->error('参数错误');
+        }
+        $WorkOrderId = explode(',',$param['UniqId']);
+        $i = 0;
+        foreach ($WorkOrderId as $key=>$value){
+            //获取工单编号
+            $workorder = \db('工单_基本资料')
+                ->where('Uniqid',$value)
+                ->value('rtrim(Gd_gdbh)');
+            //删除工单资料、工艺资料、印件资料
+            \db()->startTrans();
+            try {
+                \db('工单_基本资料')->where('Uniqid',$value)->delete();
+                if (!empty(\db('工单_工艺资料')->where('Gy0_gdbh',$workorder)->find())){
+                    \db('工单_工艺资料')->where('Gy0_gdbh',$workorder)->delete();
+                }
+                if (!empty(\db('工单_印件资料')->where('Yj_Gdbh',$workorder)->find())){
+                    \db('工单_印件资料')->where('Yj_Gdbh',$workorder)->delete();
+                }
+                \db()->commit();
+            }catch (\Exception $e){
+                \db()->rollback();
+                $i++;
+            }
+        }
+        if ($i === 0){
+            $this->success('删除成功');
+        }else{
+            $this->error('删除失败');
+        }
+    }
 }
 }

+ 83 - 8
application/database.php

@@ -16,16 +16,46 @@ return [
 
 
     // 数据库类型
     // 数据库类型
     'type'            => Env::get('database.type', 'mysql'),
     'type'            => Env::get('database.type', 'mysql'),
+//    // 服务器地址
+//    'hostname'        => Env::get('database.hostname', '127.0.0.1'),
+//    // 数据库名
+//    'database'        => Env::get('database.database', 'fastadmin'),
+//    // 用户名
+//    'username'        => Env::get('database.username', 'root'),
+//    // 密码
+//    'password'        => Env::get('database.password', ''),
+//    // 端口
+//    'hostport'        => Env::get('database.hostport', ''),
+//// 服务器地址
+//    'hostname'        => Env::get('database.hostname', 'rm-bp1y64151f8x1b37n0o.mysql.rds.aliyuncs.com'),
+//// 数据库名
+//    'database'        => Env::get('database.database', 'zjmn_mes'),
+//// 用户名
+//    'username'        => Env::get('database.username', 'zjminong'),
+//// 密码
+//    'password'        => Env::get('database.password', '83h2)$3^kd(up^w'),
+//    // 端口
+//    'hostport'        => Env::get('database.hostport', ''),
     // 服务器地址
     // 服务器地址
-    'hostname'        => Env::get('database.hostname', '20.0.16.161'),
+    //    'hostname'        => Env::get('database.hostname', '20.0.16.172'),
+    //    // 数据库名
+    //    'database'        => Env::get('database.database', 'mesdb'),
+    //    // 用户名
+    //    'username'        => Env::get('database.username', 'root'),
+    //    // 密码
+    //    'password'        => Env::get('database.password', 'ZJYX_Mes8052'),
+    //    // 端口
+    //    'hostport'        => Env::get('database.hostport', '3306'),
+    // 服务器地址
+    'hostname'        => Env::get('database.hostname', '20.0.51.77'),
     // 数据库名
     // 数据库名
     'database'        => Env::get('database.database', 'mesdb'),
     'database'        => Env::get('database.database', 'mesdb'),
     // 用户名
     // 用户名
-    'username'        => Env::get('database.username', 'root'),
+    'username'        => Env::get('database.username', 'mesdb'),
     // 密码
     // 密码
-    'password'        => Env::get('database.password', 'ZJYX_Mes8052'),
+    'password'        => Env::get('database.password', 'nY72kLdaXtpKdLNf'),
     // 端口
     // 端口
-    'hostport'        => Env::get('database.hostport', '8066'),
+    'hostport'        => Env::get('database.hostport', '3306'),
     // 连接dsn
     // 连接dsn
     'dsn'             => '',
     'dsn'             => '',
     // 数据库连接参数
     // 数据库连接参数
@@ -61,13 +91,58 @@ return [
         // 数据库类型
         // 数据库类型
         'type'            => Env::get('database3.type', 'sqlsrv'),
         'type'            => Env::get('database3.type', 'sqlsrv'),
         // 服务器地址
         // 服务器地址
-        'hostname'        => Env::get('database3.hostname', '10.10.4.8'),
+        'hostname'        => Env::get('database.hostname', '20.0.51.77'),
+        // 数据库名
+        'database'        => Env::get('database.database', 'mesdb'),
+        // 用户名
+        'username'        => Env::get('database.username', 'mesdb'),
+        // 密码
+        'password'        => Env::get('database.password', 'nY72kLdaXtpKdLNf'),
+        // 端口
+        'hostport'        => Env::get('database.hostport', '3306'),
+        // 连接dsn
+        'dsn'             => '',
+        // 数据库连接参数
+        'params'          => [],
+        // 数据库编码默认采用 utf8mb4
+        'charset'         => Env::get('database3.charset', 'utf8mb4'),
+        // 数据库表前缀
+        'prefix'          => Env::get('database3.prefix', ''),
+        // 数据库调试模式
+        'debug'           => Env::get('database3.debug', false),
+        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
+        'deploy'          => 0,
+        // 数据库读写是否分离 主从式有效
+        'rw_separate'     => false,
+        // 读写分离后 主服务器数量
+        'master_num'      => 1,
+        // 指定从服务器序号
+        'slave_no'        => '',
+        // 是否严格检查字段是否存在
+        'fields_strict'   => true,
+        // 数据集返回类型
+        'resultset_type'  => 'array',
+        // 自动写入时间戳字段
+        'auto_timestamp'  => false,
+        // 时间字段取出后的默认时间格式,默认为Y-m-d H:i:s
+        'datetime_format' => false,
+        // 是否需要进行SQL性能分析
+        'sql_explain'     => false,
+    ],
+    /**
+     * mes云同步数据库
+     */
+    'db4'             => [
+        // 数据库类型
+        'type'            => Env::get('database.type', 'mysql'),
+        // 服务器地址
+        'hostname'        => Env::get('database3.hostname', 'rm-bp1y64151f8x1b37n0o.mysql.rds.aliyuncs.com'),
         // 数据库名
         // 数据库名
-        'database'        => Env::get('database3.database', 'U8ERPDATA'),
+        'database'        => Env::get('database3.database', 'zjmn_mes'),
         // 用户名
         // 用户名
-        'username'        => Env::get('database3.username', 'sa'),
+        'username'        => Env::get('database3.username', 'zjminong'),
         // 密码
         // 密码
-        'password'        => Env::get('database3.password', 'ZJMN_ADMIN8052'),
+        'password'        => Env::get('database3.password', '83h2)$3^kd(up^w'),
         // 端口
         // 端口
         'hostport'        => Env::get('database3.hostport', ''),
         'hostport'        => Env::get('database3.hostport', ''),
         // 连接dsn
         // 连接dsn

+ 14 - 0
application/job/InsertDataJob.php

@@ -4,6 +4,7 @@ namespace app\job;
 
 
 use think\Db;
 use think\Db;
 use think\Cache;
 use think\Cache;
+use think\cache\driver\Redis;
 
 
 class InsertDataJob
 class InsertDataJob
 {
 {
@@ -16,6 +17,18 @@ class InsertDataJob
 
 
     public function handle()
     public function handle()
     {
     {
+        $options = [
+            'host'       => '127.0.0.1',
+            'port'       => 6379,
+            'password'   => '',
+            'select'     => 15,
+            'timeout'    => 0,
+            'expire'     => 0,
+            'persistent' => false,
+            'prefix'     => '',
+        ];
+        $redis = new Redis($options);
+        $taskIdentifier = md5(json_encode('date'));
         $handData = [];
         $handData = [];
         foreach ($this->data as $key=>$value){
         foreach ($this->data as $key=>$value){
             $handData[$key]['sczl_gdbh'] = $value['sczl_gdbh'];
             $handData[$key]['sczl_gdbh'] = $value['sczl_gdbh'];
@@ -58,6 +71,7 @@ class InsertDataJob
             $queueKey = 'default';
             $queueKey = 'default';
             // 删除队列
             // 删除队列
             Cache::store('redis')->handler()->del($queueKey);
             Cache::store('redis')->handler()->del($queueKey);
+            $redis->rm($taskIdentifier);
         }
         }
     }
     }
 }
 }