123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <?php
- namespace app\common\model;
- use app\hander\HelpHander;
- use think\Db;
- use think\Exception;
- class CleanPlanRecord extends Base {
- protected $createTime = 'create_time';
- protected $updateTime = 'update_time';
- public $table = 'clean_plan_record';
- protected $validateName = 'CleanPlanRecord';
- public function addSave() {
- $data = request()->post();
- $data['forms'] = !empty($data['forms'])?implode(',',$data['forms']):'';
- $data['addrs'] = !empty($data['addrs'])?implode(',',$data['addrs']):'';
- $data['org_id'] = cur_org_id();
- $result = validate($this->validateName)->check($data, [], 'add');
- if (true !== $result) {
- $this->error = validate($this->validateName)->getError();
- return false;
- }
- $user = $data['user'];
- unset($data['user']);
- $this->startTrans();
- try {
- $forms = explode(',',$data['forms']);
- $addrs = explode(',',$data['addrs']);
- unset($data['forms']);
- unset($data['addrs']);
- foreach ($forms as $k=>$v){
- //foreach ($addrs as $kk=>$vv){
- $rdata = [
- 'org_id' => $data['org_id'],
- 'form_id' => $v,
- 'address_id' => implode(',',$addrs),
- 'plan_id' => $data['plan_id'],
- 'start' => $data['start'],
- 'end' => $data['end'],
- 'remark' => $data['remark'],
- 'create_time' => getTime()
- ];
- $rid = Db::name('clean_plan_record')->insertGetId($rdata);
- if(!$rid){
- \exception('任务保存失败');
- }
- //添加任务人员
- $users = explode(',', $user);
- $nArr = [];
- foreach ($users as $v) {
- if($v){
- $nArr[] = [
- 'record_id' => $rid,
- 'user_id' => $v
- ];
- }
- }
- if($nArr){
- $res = Db::name('clean_plan_user')->insertAll($nArr);
- if (!$res) {
- \exception('保存失败');
- }
- }
- // }
- }
- $this->commit();
- return true;
- } catch (Exception $e) {
- $this->rollback();
- $this->error = $e->getMessage();
- return false;
- }
- }
- public function editSave() {
- $data = request()->post();
- $data['org_id'] = cur_org_id();
- $data['address_id'] = !empty($data['address_id'])?implode(',',$data['address_id']):'';
- $result = validate($this->validateName)->check($data, [], 'edit');
- if (true !== $result) {
- $this->error = validate($this->validateName)->getError();
- return false;
- }
- $user = $data['user'];
- unset($data['user']);
- $this->startTrans();
- try {
- $data['update_time'] = getTime();
- $res = Db::name('clean_plan_record')->where('id',$data['id'])->update($data);
- if(!$res){
- \exception('操作失败');
- }
- Db::name('clean_plan_user')->where('record_id',$data['id'])->delete();
- //添加任务人员
- $users = explode(',', $user);
- $nArr = [];
- foreach ($users as $v) {
- if($v){
- $nArr[] = [
- 'record_id' => $data['id'],
- 'user_id' => $v
- ];
- }
- }
- if($nArr){
- $res = Db::name('clean_plan_user')->insertAll($nArr);
- if (!$res) {
- \exception('保存失败');
- }
- }
- $this->commit();
- return true;
- } catch (Exception $e) {
- $this->rollback();
- $this->error = $e->getMessage();
- return false;
- }
- }
- public function get_list_by_time($orgId,$start,$end){
- $map[] = ['org_id','=',$orgId];
- $map[] = ['del','=',0];
- $map[] = ['start','<=',$end];
- $map[] = ['end','>=',$start];
- $list = $this->field('id,form_id,address_id,start,end,enable')
- ->where($map)
- ->select();
- $list = $list?$list->toArray():[];
- foreach ($list as $k=>$v){
- $list[$k]['ftitle'] = Db::name('clean_type')->where('id',$v['form_id'])->value('title');
- $list[$k]['atitle'] = Db::name('address')->where('id',$v['address_id'])->value('title');
- }
- return $list?$list:array();
- }
- public function detail($id,$orgId){
- $info = Db::name('clean_plan_record')->where('org_id',$orgId)->where('id',$id)->where('del',0)->find();
- if(!$info){
- $this->error = '记录不存在';
- return false;
- }
- $users = Db::name('clean_plan_user')
- ->alias('a')
- ->join('user b','a.user_id = b.id')
- ->where('a.record_id',$info['id'])
- ->column('b.real_name');
- $info['users'] = $users?implode(',',$users):'';
- $address = Db::name('address')
- ->where('id','in',explode(',',$info['address_id']))->select();
- $info['address'] = $address?implode(',',array_column($address,'title')):'';
- $forms = Db::name('clean_type')->where('id',$info['form_id'])->find();
- $info['form'] = $forms?$forms['title']:'';
- $info['finish_user'] = '';
- if($info['finish_user_id'] > 0){
- $info['finish_user'] = Db::name('user')->where('id',$info['finish_user_id'])->value('real_name');
- }
- $info['imgs'] = $info['imgs']?$info['imgs']:'';
- return $info;
- }
- public function lists($page,$size,$status,$day,$userId,$orgId) {
- $map[] = ['b.del','=',0];
- $map[] = ['b.enable','=',$status];
- $map[] = ['b.start','<=',$day];
- $map[] = ['b.end','>=',$day];
- $map[] = ['b.org_id','=',$orgId];
- $map[] = ['a.user_id','=',$userId];
- $lists = Db::name('clean_plan_user')
- ->alias('a')
- ->join('clean_plan_record b','a.record_id = b.id')
- ->where($map)
- ->order('b.id desc')
- ->field('b.id,b.address_id,b.form_id,b.enable,b.start,b.end,b.remark')
- ->page($page, $size)
- ->select();
- $lists = $lists?$lists:[];
- foreach ($lists as $k=>$v){
- $users = Db::name('clean_plan_user')
- ->alias('a')
- ->join('user b','a.user_id = b.id')
- ->where('a.record_id',$v['id'])
- ->column('b.real_name');
- $lists[$k]['users'] = $users?implode(',',$users):'';
- $address = Db::name('address')
- ->where('id','in',explode(',',$v['address_id']))
- ->select();
- $lists[$k]['address'] = $address?implode(',',array_column($address,'title')):'';
- $forms = Db::name('clean_type')->where('id',$v['form_id'])->find();
- $lists[$k]['form'] = $forms?$forms['title']:'';
- }
- return $lists;
- }
- public function finish($id,$content,$imgs,$userId,$orgId){
- $info = Db::name('clean_plan_record')->where('org_id',$orgId)->where('id',$id)->where('del',0)->find();
- if(!$info){
- $this->error = '记录不存在';
- return false;
- }
- if($info['enable'] == 1){
- $this->error = '已完成,勿重复操作';
- return false;
- }
- $users = Db::name('clean_plan_user')
- ->alias('a')
- ->join('user b','a.user_id = b.id')
- ->where('a.record_id',$info['id'])
- ->where('a.user_id',$userId)
- ->column('b.id');
- if(!$users){
- $this->error = '无权限操作';
- return false;
- }
- $ret = Db::name('clean_plan_record')->where('id',$id)->update([
- 'enable' => 1,
- 'finish_user_id' => $userId,
- 'finish_time' => getTime(),
- 'content' => $content,
- 'imgs' => $imgs
- ]);
- if(!$ret){
- $this->error = '操作失败';
- return false;
- }
- return true;
- }
- }
|