Răsfoiți Sursa

取消分配、返修派单通知

liugc 1 an în urmă
părinte
comite
ba4495b5dd

+ 14 - 1
app/adminapi/controller/works/ReturnWorkController.php

@@ -20,6 +20,7 @@ use app\adminapi\controller\BaseAdminController;
 use app\adminapi\lists\works\ReturnWorkLists;
 use app\adminapi\logic\works\IssueWorkLogic;
 use app\adminapi\logic\works\ReturnWorkLogic;
+use app\adminapi\logic\works\ServiceWorkLogic;
 use app\adminapi\validate\works\ReturnWorkValidate;
 
 
@@ -118,12 +119,24 @@ class ReturnWorkController extends BaseAdminController
         if (true === $result) {
             $issueWork = IssueWorkLogic::detail(['id'=>$params['issue_work_id']]);
             // 订单返修通知【给用户】
-            $res = event('Notice',  [
+            event('Notice',  [
                 'scene_id' => 121,
                 'params' => [
                     'user_id' => $issueWork['user_id']
                 ]
             ]);
+            // 工程师预约上门通知【给工程师的通知,仅限公众号】
+            $returnWork = ReturnWorkLogic::detail(['issue_work_id'=>$params['issue_work_id']]);
+            $serviceWork = ServiceWorkLogic::detail(['id'=>$returnWork['service_work_id']]);
+            event('Notice',  [
+                'scene_id' => 116,
+                'params' => [
+                    'user_id' => $returnWork['master_worker_id'],
+                    'thing5' => $serviceWork['title'],
+                    'time10' => $returnWork['appointment_time'],
+                    'thing3' => (iconv_strlen($serviceWork['address'])>15)?(mb_substr($serviceWork['address'],0,15,'UTF-8').'...'):$serviceWork['address'],
+                ]
+            ]);
             return $this->success('成功', [], 1, 1);
         }
         return $this->fail(ReturnWorkLogic::getError());

+ 12 - 0
app/adminapi/controller/works/ServiceWorkController.php

@@ -186,4 +186,16 @@ class ServiceWorkController extends BaseAdminController
         return $this->fail(ServiceWorkLogic::getError());
     }
 
+    public function cancelAllocation()
+    {
+        $params = (new ServiceWorkValidate())->post()->goCheck('allocateWorker');
+        $result = ServiceWorkLogic::cancelAllocation($params,$this->adminInfo);
+        if (true === $result) {
+            return $this->success('操作成功!', [], 1, 1);
+        }
+        return $this->fail(ServiceWorkLogic::getError());
+    }
+
+
+
 }

+ 38 - 0
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -722,5 +722,43 @@ class ServiceWorkLogic extends BaseLogic
         }
     }
 
+    public static function cancelAllocation($params,$userInfo){
+        Db::startTrans();
+        try {
+
+            $work = ServiceWork::findOrEmpty($params['id']);
+            if($work->isEmpty()){
+                throw new Exception('工单不存在');
+            }
+            if($work->work_status >=6 ){
+                throw new \Exception('工单状态只能修改待结算之前的');
+            }
+            $worker = MasterWorker::where(['id'=>$work->master_worker_id])->findOrEmpty();
+            if($worker->isEmpty()){
+                throw new \Exception('工程师不存在');
+            }
+            MasterWorker::setWorktotal('dec',$work->master_worker_id);
+            $work->master_worker_id = 0;
+            $work->work_status = 0;
+            $work->dispatch_time = 0;
+            $work->save();
+
+            $work_log = [
+                'work_id'=>$work->id,
+                'master_worker_id'=>$params['master_worker_id'],
+                'opera_log'=>'后台用户['.$userInfo['admin_id'].']'.$userInfo['name'].'于'.date('Y-m-d H:i:s',time()).'取消了工程师'.'编号['.$worker->worker_number.']'.$worker->real_name
+            ];
+            ServiceWorkerAllocateWorkerLogic::add($work_log);
+            Db::commit();
+            return true;
+        }catch(\Exception $e){
+            Db::rollback();
+
+            dd($e->getMessage());
+
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
 
 }