Ver código fonte

add - 工程师自己取消分配/新增统计查询条件

liugc 11 meses atrás
pai
commit
4b9c0891df

+ 16 - 2
app/adminapi/lists/master_worker/MasterWorkerServiceOrderLists.php

@@ -93,7 +93,17 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
         $where[] = ['a.audit_state','=' ,1];
         return $where;
     }
-
+    public function queryWhereLog()
+    {
+        $where = [];
+        if (!empty($this->params['start_time'])) {
+            $where[0] = $this->params['start_time'];
+        }
+        if (!empty($this->params['end_time'])) {
+            $where[1] = strtotime($this->params['end_time'])+86400;
+        }
+        return $where;
+    }
     /**
      * 获取数据权限
      * $this->adminInfo['data_rules']
@@ -125,6 +135,7 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
     public function lists(): array
     {
         $queryWhere = $this->queryWhere();
+        $queryWhereLog = $this->queryWhereLog();
         $lists = Db::name('master_worker')->alias('a')->field([
                 'a.id','a.real_name','a.nickname','a.area_name','a.worker_number','a.recruiting_behalf','a.mobile','a.cooperation','a.category_ids','a.labels','a.remark',
                 Db::raw("COUNT(b.id) AS all_count"),
@@ -146,7 +157,10 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
         foreach ($lists as &$item) {
             $item['labels'] = $item['labels']?array_map(function ($item) { return intval($item); },explode(',',$item['labels'])):'';
             $item['category_name'] = $item['category_ids']?implode('、',array_column(get_parent_info($categoryData,explode(',',$item['category_ids'])),'name')):'';
-            $item['allocate_num'] = ServiceWorkAllocateWorkerLog::where(['master_worker_id'=>$item['id']])->count();
+            $item['allocate_num'] = ServiceWorkAllocateWorkerLog::where(['master_worker_id'=>$item['id']])
+                                    ->where('type',0)
+                                    ->whereBetweenTime('create_time',$queryWhereLog[0],$queryWhereLog[1])
+                                    ->count();
             $item['register_info'] = $masterWorkerRegisters[$item['id']]??[];
         }
         return $lists;

+ 18 - 1
app/workerapi/controller/WorksController.php

@@ -367,5 +367,22 @@ class WorksController extends BaseApiController
         return $this->success('操作成功,工程师已上门,请用户扫码确认', $result, 1, 1);
     }
 
-
+    /**
+     * 工程师取消自己的分配
+     * @return \think\response\Json
+     * @author liugc <466014217@qq.com>
+     * @date 2025/4/28 15:08
+     */
+    public function cancelMasterWorker()
+    {
+        $params = (new ServiceWorkValidate())->get()->goCheck('cancel', [
+            'user_id' => $this->userId,
+            'user_info' => $this->userInfo
+        ]);
+        $result = ServiceWorkLogic::cancelAllocation(['id'=>$params['id'],'master_worker_id'=>$this->userId],['admin_id'=>$this->userId,'name'=>'工程师-'.$this->userInfo['mobile']]);
+        if (false === $result) {
+            return $this->fail(ServiceWorkLogic::getError());
+        }
+        return $this->success('成功', [], 1, 1);
+    }
 }

+ 4 - 0
app/workerapi/validate/ServiceWorkValidate.php

@@ -138,4 +138,8 @@ class ServiceWorkValidate extends BaseValidate
     {
         return $this->only(['work_sn']);
     }
+    public function sceneCancel()
+    {
+        return $this->only(['id']);
+    }
 }