cqpCow 2 жил өмнө
parent
commit
a139136420

+ 37 - 19
app/Jobs/ProcessDataJob.php

@@ -121,10 +121,12 @@ class ProcessDataJob implements ShouldQueue
         //数据回退
         $data = $this->data['data'];
 
-        //进入队列的数据
-        DispatchSub::whereIn('id',$data['id'])->update([
-            'job_status' => 0,
-        ]);
+        $database = $this->settleDatabase();
+
+        // 连接到指定数据库连接
+        DB::connection($database)->table('dispatch_sub')
+            ->whereIn('id',$data['id'])
+            ->update(['job_status' => 0]);
     }
 
     //产成品入库 相关数据回退
@@ -132,10 +134,12 @@ class ProcessDataJob implements ShouldQueue
         //数据回退
         $data = $this->data['data'];
 
-        //进入队列的数据
-        DispatchSub::whereIn('id',array_column($data,'id'))->update([
-            'job_status' => 0,
-        ]);
+        $database = $this->settleDatabase();
+
+        // 连接到指定数据库连接
+        DB::connection($database)->table('dispatch_sub')
+            ->whereIn('id',array_column($data,'id'))
+            ->update(['job_status' => 0]);
     }
 
     //销售单出库
@@ -150,10 +154,12 @@ class ProcessDataJob implements ShouldQueue
         //数据回退
         $data = $this->data['data'];
 
-        //进入队列的数据
-        Box::whereIn('order_no',$data['order_no'])->update([
-            'state' => 0,
-        ]);
+        $database = $this->settleDatabase();
+
+        // 连接到指定数据库连接
+        DB::connection($database)->table('box')
+            ->whereIn('order_no',$data['order_no'])
+            ->update(['state' => 0]);
     }
 
     private function errorSettle($msg){
@@ -184,13 +190,16 @@ class ProcessDataJob implements ShouldQueue
     }
 
     private function recordErrorTable($msg){
-        $model = new ErrorTable();
-        $model->msg = $msg;
-        $model->data = json_encode($this->data);
-        $model->user_id = $this->user['id'];
-        $model->user_operation_time = $this->user['operate_time'];
-        $model->type = $this->type;
-        $model->save();
+        $database = $this->settleDatabase();
+
+        // 连接到指定数据库连接
+        DB::connection($database)->table('error_table')->insert([
+            'msg' => $msg,
+            'data' => json_encode($this->data),
+            'user_id' => $this->user['id'],
+            'user_operation_time' => $this->user['operate_time'],
+            'type' => $this->type
+        ]);
     }
 
     public function failed($exception)
@@ -199,4 +208,13 @@ class ProcessDataJob implements ShouldQueue
         $errorMessage = $exception->getFile() . $exception->getMessage() . $exception->getLine();
         $this->recordErrorTable($errorMessage);
     }
+
+    public function settleDatabase(){
+        $zt = $this->user['zt'] ?? '';
+        $mysql = "mysql";
+        if($zt === '001') $mysql = "mysql_001";
+        if($zt === '002') $mysql = "mysql_002";
+
+        return $mysql;
+    }
 }

+ 7 - 1
app/Model/Box.php

@@ -15,5 +15,11 @@ class Box extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 8 - 0
app/Model/BoxDetail.php

@@ -66,4 +66,12 @@ class BoxDetail extends Model
             DB::update('create table '.$channel.' like box_detail');
         }
     }
+
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 7 - 1
app/Model/DispatchSub.php

@@ -15,5 +15,11 @@ class DispatchSub extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 8 - 0
app/Model/Employee.php

@@ -33,4 +33,12 @@ class Employee extends Model
         1 => '正常',
         2 => '停用'
     ];
+
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 7 - 1
app/Model/OrdersProduct.php

@@ -15,5 +15,11 @@ class OrdersProduct extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 8 - 0
app/Model/OrdersProductProcess.php

@@ -52,6 +52,14 @@ class OrdersProductProcess extends Model
         }
     }
 
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
+
     public function setTableById($channel)
     {
         if ($channel > 0) {

+ 7 - 1
app/Model/SaleOrdersProduct.php

@@ -10,5 +10,11 @@ class SaleOrdersProduct extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 7 - 1
app/Model/ScrappCount.php

@@ -10,5 +10,11 @@ class ScrappCount extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public function setConnection($name)
+    {
+        $mysql = "mysql";
+        if($name === '001') $mysql = "mysql_001";
+        if($name === '002') $mysql = "mysql_002";
+        return parent::setConnection($mysql); // TODO: Change the autogenerated stub
+    }
 }

+ 40 - 14
app/Service/FinishedOrderService.php

@@ -88,6 +88,8 @@ class FinishedOrderService extends Service
 
                 //工序表
                 $process_model = new OrdersProductProcess(['channel' => date("Ymd",$value['out_order_no_time'])]);
+                $process_model->setConnection($user['zt']);
+
                 $process_id = $process_model->select('process_id')
                     ->where('sort',$process_model->where('del_time',0)
                         ->where('order_product_id',$value['order_product_id'])
@@ -125,7 +127,9 @@ class FinishedOrderService extends Service
                 $equipment_id_tmp = $data['equipment_id'][$key];
                 $finished_num = $value['quantity'] + $value['finished_num'];
 
-                DispatchSub::where('id',$value['id'])->update([
+                $model = new DispatchSub();
+                $model->setConnection($user['zt']);
+                $model->where('id',$value['id'])->update([
                     'finished_num' => $finished_num,
                     'waste_num' => $waste[$key],
                     'job_status' => 0,
@@ -193,6 +197,7 @@ class FinishedOrderService extends Service
 
                 //工序表
                 $process_model = new OrdersProductProcess(['channel' => date("Ymd",$value['out_order_no_time'])]);
+                $process_model->setConnection($user['zt']);
                 $process_model->where('order_product_id',$value['order_product_id'])
                     ->where('process_id',$value['process_id'])
                     ->where('dispatch_no',$value['dispatch_no'])
@@ -207,12 +212,18 @@ class FinishedOrderService extends Service
 
                 if(! empty($insert_waste)) $process_model->insert($insert_waste);
                 if(! empty($insert_dispatch)) $process_model->insert($insert_dispatch);
-                if(! empty($scrapp)) ScrappCount::insert($scrapp);
+                if(! empty($scrapp)) {
+                    $scrapp_model = new ScrappCount();
+                    $scrapp_model->setConnection($user['zt']);
+                    $scrapp_model->insert($scrapp);
+                }
 
                 //生产订单数量
                 if(! empty($waste[$key])){
                     $num = $waste[$key];
-                    OrdersProduct::where('id',$value['order_product_id'])->update([
+                    $model2 = new OrdersProduct();
+                    $model2->setConnection($user['zt']);
+                    $model2->where('id',$value['order_product_id'])->update([
                         'production_quantity' => DB::raw("production_quantity + {$num}"),
                         'scrapp_num' => DB::raw("scrapp_num + {$num}"),
                         'dispatch_complete_quantity' => DB::raw("dispatch_complete_quantity + {$num}"),//已派工数量增加
@@ -221,8 +232,8 @@ class FinishedOrderService extends Service
             }
 
             //反写数量
-            $this->writeFinishedQuantity(array_column($result,'sale_orders_product_id'));
-            $this->writeFinishedQuantityByOrdersProductId(array_column($result,'order_product_id'));
+            $this->writeFinishedQuantity(array_column($result,'sale_orders_product_id'),$user['zt']);
+            $this->writeFinishedQuantityByOrdersProductId(array_column($result,'order_product_id'),$user['zt']);
             DB::commit();
         }catch (\Exception $e){
             DB::rollBack();
@@ -413,10 +424,12 @@ class FinishedOrderService extends Service
     }
 
     //反写写完工数量(根据销售订单id)
-    public function writeFinishedQuantity($sale_orders_product_id){
+    public function writeFinishedQuantity($sale_orders_product_id,$zt){
         if(empty($sale_orders_product_id)) return;
 
-        $result = DispatchSub::where('del_time',0)
+        $models = new DispatchSub();
+        $models->setConnection($zt);
+        $result = $models->where('del_time',0)
             ->whereIn('sale_orders_product_id',$sale_orders_product_id)
             ->select(DB::raw("sum(finished_num) as finished_num"),'sale_orders_product_id')
             ->groupby('sale_orders_product_id')
@@ -425,15 +438,17 @@ class FinishedOrderService extends Service
 
         if(empty($result)) return;
 
+        $models = new SaleOrdersProduct();
+        $models->setConnection($zt);
         foreach ($result as $key => $value){
-            SaleOrdersProduct::where('id',$key)->update([
+            $models->where('id',$key)->update([
                 'finished_num' => $value
             ]);
         }
     }
 
     //反写写完工数量(根据生产订单id)
-    public function writeFinishedQuantityByOrdersProductId($order_product_id){
+    public function writeFinishedQuantityByOrdersProductId($order_product_id,$zt){
         if(empty($order_product_id)) return;
 
         $result = DispatchSub::where('del_time',0)
@@ -491,6 +506,8 @@ class FinishedOrderService extends Service
                 $result[$key]['quantity'] = $quantity_tmp;
 
                 $process_model = new OrdersProductProcess(['channel' => date("Ymd",$value['out_order_no_time'])]);
+                $process_model->setConnection($user['zt']);
+
                 $process_id = $process_model->select('process_id')
                     ->where('sort',$process_model->where('del_time',0)
                         ->where('order_product_id',$value['order_product_id'])
@@ -536,7 +553,9 @@ class FinishedOrderService extends Service
             foreach ($result as $value){
                 $finished_num = $value['quantity'] + $value['finished_num'];
                 $watste_num = $waste[$value['id']] ?? 0;
-                DispatchSub::where('id',$value['id'])
+                $model = new DispatchSub();
+                $model->setConnection($user['zt']);
+                $model->where('id',$value['id'])
                     ->update([
                         'finished_num' => $finished_num,
                         'waste_num' => $watste_num,
@@ -546,7 +565,9 @@ class FinishedOrderService extends Service
                 //生产订单数量
                 if(! empty($waste2[$value['order_product_id']])){
                     $num = $waste2[$value['order_product_id']];
-                    OrdersProduct::where('id',$value['order_product_id'])->update([
+                    $model2 = new OrdersProduct();
+                    $model2->setConnection($user['zt']);
+                    $model2->where('id',$value['order_product_id'])->update([
                         'production_quantity' => DB::raw("production_quantity + {$num}"),
                         'scrapp_num' => DB::raw("scrapp_num + {$num}"),
                         'dispatch_complete_quantity' => DB::raw("dispatch_complete_quantity + {$num}"),//已派工数量增加
@@ -556,6 +577,7 @@ class FinishedOrderService extends Service
                 $insert_waste = $insert_dispatch = $scrapp = [];
                 //工序
                 $process_model = new OrdersProductProcess(['channel' => date("Ymd",$value['out_order_no_time'])]);
+                $process_model->setConnection($user['zt']);
                 foreach ($data as $d){
                     if($d['id'] == $value['id']){
                         $process_model->where('order_product_id',$value['order_product_id'])
@@ -632,12 +654,16 @@ class FinishedOrderService extends Service
                 }
                 if(! empty($insert_waste)) $process_model->insert($insert_waste);
                 if(! empty($insert_dispatch)) $process_model->insert($insert_dispatch);
-                if(! empty($scrapp)) ScrappCount::insert($scrapp);
+                if(! empty($scrapp)) {
+                    $scrapp_model = new ScrappCount();
+                    $scrapp_model->setConnection($user['zt']);
+                    $scrapp_model->insert($scrapp);
+                }
             }
 
             //反写数量
-            $this->writeFinishedQuantity(array_column($result,'sale_orders_product_id'));
-            $this->writeFinishedQuantityByOrdersProductId(array_column($result,'order_product_id'));
+            $this->writeFinishedQuantity(array_column($result,'sale_orders_product_id'),$user['zt']);
+            $this->writeFinishedQuantityByOrdersProductId(array_column($result,'order_product_id'),$user['zt']);
             DB::commit();
             //本地数据写入结束-----------
         }catch (\Exception $e){

+ 7 - 2
app/Service/FyyOrderService.php

@@ -241,17 +241,22 @@ class FyyOrderService extends Service
 
             //更新
             DB::beginTransaction();
-            Box::whereIn('order_no',$data['order_no'])->update([
+            $modelbox = new Box();
+            $modelbox->setConnection($user['zt']);
+            $modelbox->whereIn('order_no',$data['order_no'])->update([
                 'state' => 2,
                 'shipment_order_no' => $data['shipment_code'],//发货单号
             ]);
             $box = new BoxDetail(['channel'=>$data['top_order_no']]);
+            $box->setConnection($user['zt']);
             $box->where('order_no',$data['order_no'])->update([
                 'shipment_order_no' => $data['shipment_code']//发货单号
             ]);
 
+            $models = new SaleOrdersProduct();
+            $models->setConnection($user['zt']);
             foreach ($data['box_data'] as $value){
-                SaleOrdersProduct::where('id',$value['top_id'])->update([
+                $models->where('id',$value['top_id'])->update([
                     'shipment_num' => DB::raw("shipment_num + {$value['num']}"),
                 ]);
             }

+ 14 - 7
app/Service/FyySqlServerService.php

@@ -36,7 +36,20 @@ class FyySqlServerService extends Service
             $this->error = '福羊羊数据库连接用户参数不能为空!';
             return;
         }
-        $emp = Employee::where('id',$user_id['id'])->select('sqlserver_account','sqlserver_password')->first();
+        //账套
+        $zt = Request()->header('zt');
+        if(! $zt && isset($user_id['zt'])) $zt = $user_id['zt'];
+        $this->database = $this->database_select[$zt] ?? '';
+        $this->sAccID = '(default)@' . $zt;
+
+        //获取用友账号密码
+        if(isset($user_id['zt'])){
+            $model = new Employee();
+            $model->setConnection($user_id['zt']);
+            $emp = $model->where('id',$user_id['id'])->select('sqlserver_account','sqlserver_password')->first();
+        }else{
+            $emp = Employee::where('id',$user_id['id'])->select('sqlserver_account','sqlserver_password')->first();
+        }
         if(empty($emp)) {
             $this->error = '福羊羊连接构造失败!';
             return;
@@ -45,12 +58,6 @@ class FyySqlServerService extends Service
         $this->sUserID = $emp->sqlserver_account ?? '';
         $this->sPassword = $emp->sqlserver_password ?? '';
 
-        //账套
-        $zt = Request()->header('zt');
-        if(! $zt && isset($user_id['zt'])) $zt = $user_id['zt'];
-        $this->database = $this->database_select[$zt] ?? '';
-        $this->sAccID = '(default)@' . $zt;
-
         //之前测试留下的入口  现在没用
         $key = 'fyy_sql_server' . $user_id['id'];
         $fyy_array = Redis::get($key);