Quellcode durchsuchen

星科源 大版本修改

cqp vor 1 Tag
Ursprung
Commit
aef9e8f178

+ 13 - 0
app/Http/Controllers/Api/U8Controller.php

@@ -749,4 +749,17 @@ class U8Controller extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function submitAgain(Request $request)
+    {
+        $userData = $request->userData;
+        $service = new U8XkyServerService();
+        list($status,$data) = $service->submitAgain($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 1 - 1
app/Jobs/ProcessDataJob.php

@@ -167,7 +167,7 @@ class ProcessDataJob implements ShouldQueue
                 // 更新状态为 通过状态
                 U8State::updateOrCreate(
                     ['order_number' => $record['order_number'], 'login_type' => $record['login_type'], 'type' => $record['type']],
-                    ['state' => U8State::state_one]
+                    ['state' => U8State::state_one, 'msg' => '']
                 );
             }
 

+ 8 - 0
app/Model/Record.php

@@ -38,4 +38,12 @@ class Record extends Model
         self::state_one => '审核通过',
         self::state_two => '审核驳回|终止|删除',
     ];
+
+    const type_for_model = [
+        self::type_one => PoPomain::class,
+        self::type_two => PuAppVouch::class,
+        self::type_three => RdRecord01::class,
+//        self::type_four => '存货档案',
+//        self::type_five => '供应商档案',
+    ];
 }

+ 53 - 0
app/Service/U8XkyServerService.php

@@ -2,6 +2,7 @@
 
 namespace App\Service;
 
+use App\Jobs\ProcessDataJob;
 use App\Model\DDEmployee;
 use App\Model\Field;
 use App\Model\FieldData;
@@ -956,6 +957,7 @@ class U8XkyServerService extends Service
             $data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
             $data['data'][$key]['state_title'] = U8State::state_name[$value['state']];
+            $this->fillStateDetail($data['data'][$key]);
         }
 
         return $data;
@@ -1325,6 +1327,7 @@ class U8XkyServerService extends Service
             $data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
             $data['data'][$key]['state_title'] = U8State::state_name[$value['state']];
+            $this->fillStateDetail($data['data'][$key]);
         }
 
         return $data;
@@ -1702,6 +1705,7 @@ class U8XkyServerService extends Service
             $data['data'][$key]['crt_time']    = $value['crt_time'] ? date('Y-m-d H:i:s', $value['crt_time']) : '';
             $data['data'][$key]['state_title'] = U8State::state_name[$value['state']] ?? '';
             $data['data'][$key]['bredvouch_title'] = RdRecord01::$bredvouch_title[$value['bredvouch']] ?? '';
+            $this->fillStateDetail($data['data'][$key]);
         }
 
         return $data;
@@ -1760,4 +1764,53 @@ class U8XkyServerService extends Service
 
         return [true, ''];
     }
+
+    public function fillStateDetail(&$value){
+        $is_submit_again = 0;
+        if($value['state'] == U8State::state_one && $value['result'] != ''){
+            $is_submit_again = 1;
+        }
+        $value['is_submit_again'] = $is_submit_again;
+    }
+
+    public function submitAgain($data, $user){
+        if(empty($data['order_number'])) return [false, '流水号不能为空'];
+        //1 采购单 2 采购请购单 3 采购入库单
+        if(empty($data['type'])) return [false, 'type不能为空'];
+        if(! isset(Record::type_for_model[$data['type']])) return [false, 'type不存在'];
+        $model = Record::type_for_model[$data['type']];
+        $array = $model::where('login_type', $user['login_type'])
+            ->where('order_number', $data['order_number'])
+            ->where('del_time',0)
+            ->first();
+        if(empty($array)) return [false, '操作的来源单据不存在或已被删除'];
+        $model_array = $array->toArray();
+
+        //限制操作------------------------------------
+        list($status,$msg) = $this->limitingSendRequestBackgExpire($model_array['order_number'].$data['type'].$model_array['login_type']);
+        if(! $status) return [false,$msg];
+
+        $state = U8State::where('type', $data['type'])
+            ->where('del_time', 0)
+            ->where('order_number', $model_array['order_number'])
+            ->where('login_type', $model_array['login_type'])
+            ->first();
+        if(empty($state)) return [false,'操作来源单据暂未审批'];
+        $state_array = $state->toArray();
+        if($state_array['state'] != U8State::state_one || empty($state_array['result']) || $state_array['is_submit']) return [false, '操作的来源单据不允许提交'];
+
+        $record = Record::where("del_time",2)
+            ->where('login_type', $model_array['login_type'])
+            ->where('order_number', $model_array['order_number'])
+            ->where('type', $data['type'])
+            ->where('msg', '<>', '')
+            ->orderBy('id', 'desc')
+            ->first();
+        if(empty($record)) return [false, '提交记录数据不存在'];
+        $record_array = $record->toArray();
+
+        ProcessDataJob::dispatch($record_array)->onQueue(Record::$job);
+
+        return [true, '已进入队列后台,正在重新传输入用友服务器'];
+    }
 }

+ 3 - 0
routes/api.php

@@ -166,6 +166,9 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('purchaseOrderInMyDetail', 'Api\U8Controller@purchaseOrderInMyDetail');
     $route->any('purchaseOrderInList', 'Api\U8Controller@purchaseOrderInList');
 
+    //重新提交
+    $route->any('submitAgain', 'Api\U8Controller@submitAgain');
+
     //获取钉钉人员列表
     $route->any('ddEmployeeList', 'Api\U8Controller@ddEmployeeList');
     $route->any('getField', 'Api\U8Controller@getField');