dongxiaoqin 1 gadu atpakaļ
vecāks
revīzija
87afbb22de

+ 5 - 6
app/adminapi/logic/master_worker/MasterWorkerTemporaryLogic.php

@@ -40,10 +40,6 @@ class MasterWorkerTemporaryLogic extends BaseLogic
     {
         Db::startTrans();
         try {
-            if (MasterWorkerTemporary::where('worker_number', $params['worker_number'])->value('worker_number')) {
-                self::setError('该工号已存在!');
-                return false;
-            }
             if (MasterWorkerTemporary::where('mobile', $params['mobile'])->value('mobile')) {
                 self::setError('该手机号已存在!');
                 return false;
@@ -54,8 +50,11 @@ class MasterWorkerTemporaryLogic extends BaseLogic
                 }
                 $params['category_ids'] = implode(',',$ids);
             }
-            $masterWorker = MasterWorkerTemporary::create([
-                'worker_number' => $params['worker_number'],
+            $number = MasterWorkerTemporary::count();
+            $number++;
+            $worker_number = str_pad($number, 6, '0', STR_PAD_LEFT);
+            MasterWorkerTemporary::create([
+                'worker_number' => $worker_number,
                 'real_name' => $params['real_name'],
                 'mobile' => $params['mobile'],
                 'is_disable' => $params['is_disable'],

+ 33 - 0
app/adminapi/logic/works/GroupServiceWorkLogic.php

@@ -155,6 +155,38 @@ class GroupServiceWorkLogic extends BaseLogic
             return false;
         }
     }
+
+    public static function againDoor($params)
+    {
+        Db::startTrans();
+        try {
+            $work = GroupServiceWork::where('work_sn',$params['work_sn'])->findOrEmpty();
+            if($work->isEmpty()){
+                throw new \Exception('工单不存在');
+            }
+            if ($work->service_status >= 1) {
+                throw new \Exception('工单已完成或服务中');
+            }
+
+            //添加变更日志
+            $work_log = [
+                'type' => 6,
+                'work_id'=>$work->id,
+                'master_worker_id'=>$work->master_worker_id,
+                'opera_log'=>'编号['.$params['user_info']['worker_number'].']'.$params['user_info']['real_name'].'于'.date('y-m-d H:i:s',time()).'修改预约上门时间',
+            ];
+            GroupServiceWorkLogLogic::add($work_log);
+
+            $work->appointment_time = strtotime($params['appointment_time']);
+            $work->save();
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
     
     public static function allocateWorker($params,$userInfo){
         Db::startTrans();
@@ -461,4 +493,5 @@ class GroupServiceWorkLogic extends BaseLogic
             return false;
         }
     }
+    
 }

+ 1 - 3
app/adminapi/validate/master_worker/MasterWorkerTemporaryValidate.php

@@ -32,7 +32,6 @@ class MasterWorkerTemporaryValidate extends BaseValidate
       */
     protected $rule = [
         'id' => 'require',
-        'worker_number' => 'require',
         'real_name' => 'require',
         'mobile' => 'require',
         'is_disable' => 'require',
@@ -46,7 +45,6 @@ class MasterWorkerTemporaryValidate extends BaseValidate
      */
     protected $field = [
         'id' => 'id',
-        'worker_number' => '工程师编号',
         'real_name' => '真实姓名',
         'mobile' => '工程师电话',
         'is_disable' => '是否禁用',
@@ -61,7 +59,7 @@ class MasterWorkerTemporaryValidate extends BaseValidate
      */
     public function sceneAdd()
     {
-        return $this->only(['worker_number','real_name','mobile','is_disable']);
+        return $this->only(['real_name','mobile','is_disable']);
     }
 
     /**

+ 17 - 0
app/workerapi/controller/GroupWorksController.php

@@ -79,4 +79,21 @@ class GroupWorksController extends BaseApiController
         return $this->success('操作成功,工程师已确认服务完成', [], 1, 1);
     }
 
+    /**
+     * 再次上门
+     * @return \think\response\Json
+     */
+    public function againDoor()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('againDoor', [
+            'user_id' => $this->userId,
+            'user_info' => $this->userInfo
+        ]);
+        $result = GroupServiceWorkLogic::againDoor($params);
+        if (false === $result) {
+            return $this->fail(GroupServiceWorkLogic::getError());
+        }
+        return $this->success('操作成功,已确定新的预约时间', [], 1, 1);
+    }
+
 }

+ 5 - 0
app/workerapi/validate/GroupServiceWorkValidate.php

@@ -70,4 +70,9 @@ class GroupServiceWorkValidate extends BaseValidate
     {
         return $this->only(['work_sn','finished_images','code']);
     }
+
+    public function sceneAgainDoor()
+    {
+        return $this->only(['work_sn','appointment_time']);
+    }
 }