| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 | 
							- <?php
 
- namespace app\common\model;
 
- use app\common\util\AppAuth;
 
- use app\hander\HelpHander;
 
- use think\Db;
 
- class Daily extends Base {
 
-     protected $createTime = 'create_time';
 
-     protected $updateTime = 'update_time';
 
-     public $table = 'daily';
 
-     protected $validateName = 'Daily';
 
-     public function updates(){
 
-         $data = request()->post();
 
-         $data['org_id'] =cur_org_id();
 
-         $result = validate($this->validateName)->check($data,[],'');
 
-         if(true !== $result){
 
-             $this->error = validate($this->validateName)->getError();
 
-             return false;
 
-         }
 
-         if(!$data['user_ids']){
 
-             $this->error='检查人员不能为空';
 
-             return false;
 
-         }
 
-         $post['user_ids'] = explode(',',$data['user_ids']);
 
-         $id = $data['id'];
 
-         unset($data['id']);
 
-         unset($data['user_ids']);
 
-         $this->startTrans();
 
-         try{
 
-             if($id > 0){
 
-                 $data['update_time'] = date('Y-m-d H:i:s');
 
-                 $ret = $this->allowField(true)->save($data,['id'=>$id]);
 
-                 if(!$ret){
 
-                     exception('保存失败');
 
-                 }
 
-                 Db::name('daily_user')
 
-                     ->where('daily_id',$id)->delete();
 
-                 //添加检查人员
 
-                 $user = array();
 
-                 $post['user_ids'] = array_unique($post['user_ids']);
 
-                 foreach ($post['user_ids'] as $k=>$v){
 
-                     $user[] = array(
 
-                         'daily_id' => $id,
 
-                         'user_id' => $v
 
-                     );
 
-                 }
 
-                 $taskUser=Db::name('daily_user')->insertAll($user);
 
-                 if(!$taskUser){
 
-                     exception('工作人员保存失败');
 
-                 }
 
-             }else{
 
-                 $data['create_time'] = date('Y-m-d H:i:s');
 
-                 $ret = $this->insertGetId($data);
 
-                 $id = $ret;
 
-                 if(!$id){
 
-                     exception('保存失败');
 
-                 }
 
-                 //添加检查人员
 
-                 $user = array();
 
-                 $post['user_ids'] = array_unique($post['user_ids']);
 
-                 foreach ($post['user_ids'] as $k=>$v){
 
-                     $user[] = array(
 
-                         'daily_id' => $id,
 
-                         'user_id' => $v
 
-                     );
 
-                 }
 
-                 $taskUser=Db::name('daily_user')->insertAll($user);
 
-                 if(!$taskUser){
 
-                     exception('工作人员保存失败');
 
-                 }
 
-             }
 
-             $this->commit();
 
-             return true;
 
-         }catch (\Exception $e){
 
-             // 回滚事务
 
-             $this->error = $e->getMessage();
 
-             $this->rollback();
 
-             return false;
 
-         }
 
-     }
 
-     public function getRoles($roles){
 
-         $list = Db::name('roles')
 
-             ->where('id','in',explode(',',$roles))
 
-             ->column('name');
 
-         return $list;
 
-     }
 
-     public function getRolesList(){
 
-         $list = (new WorkTypeMode())->getRoles(9);
 
-         $arr = [];
 
-         if(!empty($list)){
 
-             foreach ($list as $k=>$v){
 
-                 $arr[] = [
 
-                     'id'=>$v['id'],
 
-                     'title'=>$v['name'],
 
-                 ];
 
-             }
 
-         }
 
-         return $arr;
 
-     }
 
-     public function list(){
 
-         $list = $this
 
-               ->where('del',0)
 
-               ->where('enable',1)
 
-               ->where('org_id',cur_org_id())
 
-               ->select()
 
-             ->toArray();
 
-         return $list;
 
-     }
 
-     public function sweepCode($orgId,$code, $userId,$taskId=0,$dailyId=0)
 
-     {
 
-         $qrcode_arr = get_qrcode_arr($code);
 
-         if(!$qrcode_arr){
 
-             $this->error = '该任务不存在';
 
-             return false;
 
-         }
 
-         if($qrcode_arr['type'] != 'daily'){
 
-             $this->error = '该任务不存在';
 
-             return false;
 
-         }
 
-         if($qrcode_arr['ucode'] != config('app.ucode')){
 
-             $this->error = '该任务不存在';
 
-             return false;
 
-         }
 
-         if($taskId > 0 ){
 
-             if($qrcode_arr['id'] != $dailyId){
 
-                 $this->error = '地点不正确';
 
-                 return false;
 
-             }
 
-             $task = Db::name('daily_task')
 
-                 ->where('id',$taskId)
 
-                 ->where('del',0)
 
-                 ->where('org_id',$orgId)
 
-                 ->find();
 
-             if($task['end_time'] < date('Y-m-d H:i:s') || $task['start_time'] > date('Y-m-d H:i:s')){
 
-                 $this->error = '不在时间范围内';
 
-                 return false;
 
-             }
 
- //            $taskAddr = Db::name('daily_task_addr')
 
- //                ->where('task_id',$task['id'])
 
- //                ->column('daily_id');
 
- //            if(!in_array($qrcode_arr['id'],$taskAddr)){
 
- //                $this->error = '此任务下没有该地点';
 
- //                return false;
 
- //            }
 
-             $workerAuth = 1;
 
-         }else{
 
-             $daily =Db::name('daily_user')
 
-                 ->where('daily_id',$qrcode_arr['id'])
 
-                 ->where('user_id',$userId)
 
-                 ->find();
 
-             $workerAuth = $daily?1:0;
 
-         }
 
-         $daily = $this->where([
 
-             'org_id' => $orgId,
 
-             'id' => $qrcode_arr['id'],
 
-             'del' => 0,
 
-             'enable' => 1
 
-         ])->find();
 
-         if (!$daily) {
 
-             $this->error = '该任务不存在';
 
-             return false;
 
-         }
 
-         $lookAllAuth = (new Roles())->getAppAuth($userId,AppAuth::DAILY_LOOK_ALL_AUTH);
 
-         $ret = [
 
-             'daily_id' => $qrcode_arr['id'],
 
-             'worker_auth' => $workerAuth,
 
-             'look_all_auth' => $lookAllAuth?1:0
 
-         ];
 
-         return $ret;
 
-     }
 
-     //日常工作任务检查项
 
-     public function dailyInfo($id,$orgId){
 
-         $daily = $this
 
-             ->where([
 
-                 'org_id' => $orgId,
 
-                 'id' => $id,
 
-                 'del' => 0,
 
-                 'enable' => 1,
 
-             ])->find();
 
-         if (!$daily) {
 
-             $this->error = '该任务不存在';
 
-             return false;
 
-         }
 
-         $formId = empty($daily['daily_form']) ? [] : explode(',', $daily['daily_form']);
 
-         $dailyForm = Db::name('daily_form')
 
-             ->where(['del' => 0, 'enable' => 1])
 
-             ->where('id','in', $formId)
 
-             ->select();
 
-         $daily['daily_form'] = $dailyForm;
 
-         return $daily;
 
-     }
 
-     public function taskAddrAll($taskId){
 
-         $info = Db::name('daily_task')
 
-             ->field('id,start_time,end_time,title,status,create_time')
 
-             ->where('id',$taskId)
 
-             ->where('del',0)
 
-             ->find();
 
-         $info['users'] = Db::name('user')
 
-             ->alias('u')
 
-             ->field('u.real_name')
 
-             ->join('daily_task_user dtu','dtu.user_id=u.id')
 
-             ->where('dtu.task_id',$info['id'])
 
-             ->where('u.del',0)
 
-             ->where('u.enable',1)
 
-             ->select();
 
-         $info['daily'] = Db::name('daily')
 
-             ->alias('d')
 
-             ->field('d.id,d.title')
 
-             ->join('daily_task_addr dta','dta.daily_id=d.id')
 
-             ->where('dta.task_id',$info['id'])
 
-             ->where('d.del',0)
 
-             ->where('d.enable',1)
 
-             ->select();
 
-         foreach ($info['daily'] as $k=>$v){
 
-             $record = Db::name('daily_record')
 
-                 ->where('task_id',$taskId)
 
-                 ->where('daily_id',$v['id'])
 
-                 ->find();
 
-             $info['daily'][$k]['status'] = $record ? 1 : 0;
 
-             $info['daily'][$k]['daily_record_id'] = $record ? $record['id'] : 0;
 
-         }
 
-         return $info;
 
-     }
 
-     public function myTaskRecord($page,$size,$userId,$orgId){
 
-         $record = Db::name('daily_task_user')
 
-             ->alias('a')
 
-             ->join('daily_task b','a.task_id = b.id')
 
-             ->where('b.del',0)
 
-             ->whereIn('b.status',[2,3])
 
-             ->where('a.user_id',$userId)
 
-             ->where('b.org_id',$orgId)
 
-             ->field('b.id,b.title,b.start_time,b.end_time,b.status')
 
-             ->order('b.start_time desc,id desc')
 
-             ->page($page,$size)
 
-             ->select();
 
-         return $record?$record:[];
 
-     }
 
-     /**
 
-      *日常工作量统计
 
-      *
 
-      * @author wst
 
-      * @date   2021/4/13 8:38
 
-      */
 
-     public function DailyWork($orgId){
 
-         $list = $this
 
-             ->field('id,title')
 
-             ->where('enable',1)
 
-             ->where('del',0)
 
-             ->where('org_id',$orgId)
 
-             ->select();
 
-         $list = $list?$list:array();
 
-         $count = $count1 = $count2 =$count3 = 0;
 
-         foreach ($list as $k=>$v){
 
-             $query = Db::name('daily_record')
 
-                 ->where('org_id',$orgId)
 
-                 ->where('daily_id',$v['id']);
 
-             $list[$k]['count'] = $query
 
-                 ->count();
 
-             $count += $list[$k]['count'];
 
-             //本月
 
-             $list[$k]['count1'] = $query
 
-                 ->where('create_yyyymm',date('Ym'))
 
-                 ->count();
 
-             $count1 += $list[$k]['count1'];
 
-             //本周
 
-             $list[$k]['count2'] = $query
 
-                 ->whereIn('create_yyyymmdd',get_week_date())
 
-                 ->count();
 
-             $count2 += $list[$k]['count2'];
 
-             //今天
 
-             $list[$k]['count3'] = $query
 
-                 ->where('create_yyyymmdd',date('Ymd'))
 
-                 ->count();
 
-             $count3 += $list[$k]['count3'];
 
-         }
 
-         return array('list'=>$list,'count'=>$count,'count1'=>$count1,'count2'=>$count2,'count3'=>$count3);
 
-     }
 
-     // 获取网格化时间段
 
-     public function getTimeDaily($orgId){
 
-         $hour = model('Config')->getConfig('org_daily_hour',$orgId);
 
-         $hour = $hour?$hour:24; // 默认24小时刷新一次
 
-         $cur = time();
 
-         $s = strtotime(date('Y-m-d'));
 
-         $n = $s + 86400;
 
-         $start = 0;
 
-         $end = 0;
 
-         while (true){
 
-             if($s > $cur){
 
-                 $start = $s - $hour*60*60;
 
-                 $end = $s;
 
-                 if($s > $n){
 
-                     $end = $n;
 
-                 }
 
-                 break;
 
-             }
 
-             $s = $s + $hour*60*60;
 
-         }
 
-         return ['start' => date('Y-m-d H:i:s',$start),'end' => date('Y-m-d H:i:s',$end)];
 
-     }
 
- }
 
 
  |