PlanController.class.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class PlanController extends ComController {
  5. public function _initialize() {
  6. parent::_initialize();
  7. $this->dbname ='misson';
  8. $this->regx_db='xj_';
  9. }
  10. public function index(){
  11. $Data=I();
  12. if(isset($Data['list']))
  13. {
  14. $UserVIew=M($this->dbname,$this->regx_db);
  15. $GetPage=$Data['pageCurrent'];//第几页
  16. $GetSize=$Data['pageSize'];//每页条数
  17. $Page=($GetPage-1)*$GetSize;
  18. $Map=array();
  19. if(!empty($Data['Startdate']) && !empty($Data['Enddate']))
  20. {
  21. $Map['add_time']=array('between',array($Data['Startdate'],$Data['Enddate']));
  22. }
  23. else
  24. {
  25. $Map['add_time']=array('between',array(date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'));
  26. }
  27. if(!empty($Data['mission_name'])){
  28. $Map['mission_name']=array('like','%'.$Data['mission_name'].'%');
  29. }
  30. $permdata=$this->permdata();
  31. if (!empty($permdata))
  32. {
  33. $Map['made_user']=$permdata;
  34. }
  35. $Count= $UserVIew->where($Map)->count();// 查询满足要求的总记录数
  36. $List = $UserVIew->field('xj_misson.id,mission_name,start_data,end_data,made_user,inspection_name as inspection_user,case mission_status when "1" then "进行中" when "2" then "完成" when "3" then "滞后" end as mission_status,i_enable,date(add_time) as add_time')->join('left join xj_inspuser_info on xj_inspuser_info.id=inspection_user')->where($Map)->order('xj_misson.id desc')->limit($Page,$GetSize)->select();
  37. $Info = array(
  38. 'totalRow' => $Count,
  39. //'pageSize' => $count,//分页时不传
  40. 'list' => $List,
  41. );
  42. echo json_encode($Info);
  43. }
  44. else
  45. {
  46. $this->assign('Startdate',date('Y-m-d').' 00:00:00');
  47. $this->assign('Enddate',date('Y-m-d').' 23:59:59');
  48. $this->display();
  49. }
  50. }
  51. public function add(){
  52. if (IS_POST) {
  53. $Tab=M($this->dbname,$this->regx_db);
  54. $rules = array(
  55. //array('mission_name','','详细位置重复!',0,'unique'),
  56. );
  57. if (!$Tab->validate($rules)->create())
  58. {
  59. $this->mtReturn(300,$Tab->getError());
  60. }
  61. else
  62. {
  63. $Data=I();
  64. /*$Id=M('')->query('SELECT phone from xj_inspuser_info where id='.$Data['inspection_user']);
  65. $openid=M('')->query('SELECT openid FROM ztcrm.sp_customuser where phone='.$Id[0]['phone']);
  66. if (empty($openid))
  67. {
  68. $this->mtReturn(300,'该号码未关注公众号,请先关注公众号注册账号才分配任务');
  69. }*/
  70. if ($Data['plan']==1)
  71. {
  72. if (strtotime($Data['end_data'])-strtotime($Data['start_data']) > 86400)
  73. {
  74. $this->mtReturn(300,'每天执行计划任务,开始时间和结束时间间隔不得超过一天,超过一天,请选择 “否”');
  75. }
  76. }
  77. $arr2=$Data['inspection_user'];
  78. $name='';
  79. for ($i=0; $i <count($arr2); $i++)
  80. {
  81. $Str2=$Str2."('add888','".$arr2[$i]."'),";
  82. $DataID =M('')->query('SELECT name from xj_inspuser_info where is_enable=1 and id='.$arr2[$i]);
  83. $name.=$DataID[0]['name'].',';
  84. }
  85. $Data['made_user']=session('zt_username');
  86. $Data['add_time']=date('Y-m-d H:s:i');
  87. $Data['inspection_user']=implode(',',$Data['inspection_user']);
  88. $Data['inspection_name']=substr($name, 0,strlen($name)-1);
  89. $Data['mission_status']=1;
  90. $res = $Tab->add($Data);
  91. if($res)
  92. {
  93. $Arr=explode(",",$Data['values']);
  94. $Str='';
  95. for ($i=0; $i <count($Arr) ; $i++) {
  96. $Str=$Str."('".$res."','".$Arr[$i]."'),";
  97. }
  98. $Sql="INSERT INTO xj_inspection2Position(missionid,deviceid) VALUES".substr($Str,0,strlen($Str)-1);
  99. $ResData=M('')->execute($Sql);
  100. $Str2=str_replace('add888',$res,$Str2);
  101. $Sql2="insert into xj_misson_userid(misson_id,userid) VALUES".substr($Str2,0,strlen($Str2)-1);
  102. M('')->execute($Sql2);
  103. /* $a=SetAccess_Token();
  104. message_template_send($a,$openid[0]['openid'],'您有1条巡检任务','','','','请尽快处理任务!');*/
  105. $this->mtReturn(200,'设备新增成功');
  106. }
  107. else
  108. {
  109. $this->mtReturn(300,'设备新增失败');
  110. }
  111. }
  112. }
  113. else
  114. {
  115. $Map='';
  116. $map='';
  117. $permdata=$this->permdata(1);
  118. if (!empty($permdata))
  119. {
  120. $Map='and add_user in ("'.$permdata.'")';
  121. $map='and insert_name in ("'.$permdata.'")';
  122. }
  123. $ListData =M('')->query('SELECT id,add_info FROM xj_deviceinfo WHERE id NOT IN (SELECT deviceID FROM xj_inspection2Position WHERE missionID="'.$Data['id'].'") '.$map);
  124. $UserData =M('')->query('SELECT id,name from xj_inspuser_info where is_enable=1 '.$Map);
  125. $this->assign('ListData',$ListData);
  126. $this->assign('UserData',$UserData);
  127. $this->assign('action','/home/Plan/add');
  128. $this->display();
  129. }
  130. }
  131. public function edit(){
  132. $Data=I();
  133. if(IS_POST)
  134. {
  135. // dump($Data);
  136. if (strtotime($Data['end_data'])<strtotime($Data['start_data']))
  137. {
  138. $this->mtReturn(300,'开始时间不能大于结束时间');
  139. }
  140. $Tab=M($this->dbname,$this->regx_db);
  141. $rules = array(
  142. // array('mission_name','','详细位置重复!',0,'unique'),
  143. );
  144. if (!$Tab->validate($rules)->create())
  145. {
  146. $this->mtReturn(300,$Tab->getError());
  147. }
  148. else
  149. {
  150. if ($Data['plan']==1)
  151. {
  152. if (strtotime($Data['end_data'])-strtotime($Data['start_data']) > 86400)
  153. {
  154. $this->mtReturn(300,'每天执行计划任务,开始时间和结束时间间隔不得超过一天,超过一天,请选择 “否”');
  155. }
  156. }
  157. $arr2=$Data['inspection_user'];
  158. $Str2='';
  159. $name='';
  160. for ($i=0; $i <count($arr2); $i++)
  161. {
  162. $Str2=$Str2."('".$Data['id']."','".$arr2[$i]."'),";
  163. $DataID =M('')->query('SELECT name from xj_inspuser_info where is_enable=1 and id='.$arr2[$i]);
  164. $name.=$DataID[0]['name'].',';
  165. }
  166. $Sql2="insert into xj_misson_userid (misson_id,userid) value".substr($Str2,0,strlen($Str2)-1);
  167. $Data['inspection_user']=implode(',',$Data['inspection_user']);
  168. $Data['inspection_name']=substr($name, 0,strlen($name)-1);
  169. $res=$Tab->where(array('id'=>$Data['id']))->save($Data);
  170. if($res!==false)
  171. {
  172. M('')->execute("DELETE FROM xj_misson_userid WHERE misson_id=".$Data['id']);
  173. M('')->execute("DELETE FROM xj_inspection2Position WHERE missionID=".$Data['id']);
  174. $Arr=explode(",",$Data['values']);
  175. $Str='';
  176. for ($i=0; $i <count($Arr) ; $i++) {
  177. $Str=$Str."('".$Data['id']."','".$Arr[$i]."'),";
  178. }
  179. $Sql="INSERT INTO xj_inspection2Position(missionid,deviceid) VALUES".substr($Str,0,strlen($Str)-1);
  180. $ResData=M('')->execute($Sql);
  181. M('')->execute($Sql2);
  182. $this->mtReturn(200,'编辑成功');
  183. }
  184. else
  185. {
  186. $this->mtReturn(300,'编辑失败');
  187. }
  188. }
  189. }
  190. else
  191. {
  192. $Map='';
  193. $map='';
  194. $permdata=$this->permdata(1);
  195. if (!empty($permdata))
  196. {
  197. $Map='and add_user in ("'.$permdata.'")';
  198. $map='and insert_name in ("'.$permdata.'")';
  199. }
  200. $LeftData =M('')->query('SELECT id,add_info FROM xj_deviceinfo WHERE id NOT IN (SELECT deviceID FROM xj_inspection2Position WHERE missionID="'.$Data['id'].'") '.$map);
  201. $RightData =M('')->query('SELECT deviceID,missionID,add_info,start_data,end_data,inspection_user,mission_name,i_enable,plan FROM sp_v_xunjall where missionID='.$Data['id']);
  202. $UserData =M('')->query('SELECT id,name from xj_inspuser_info where is_enable=1 '.$Map);
  203. dump(explode(",", $RightData[0]['inspection_user']));
  204. $this->assign('list',explode(",", $RightData[0]['inspection_user']));
  205. $this->assign('LeftData',$LeftData);
  206. $this->assign('RightData',$RightData);
  207. $this->assign('ListData',$RightData[0]);
  208. $this->assign('UserData',$UserData);
  209. $this->assign('action','/home/Plan/edit');
  210. $this->display();
  211. }
  212. }
  213. public function downdata(){//导出Excel
  214. $Data=I();
  215. $UserVIew=M("v_user");
  216. $Map['status']=1;
  217. if(!empty($Data['username'])){
  218. $Map['username']=$Data['username'];
  219. }
  220. if(!empty($Data['truename'])){
  221. $Map['truename']=$Data['truename'];
  222. }
  223. if(!empty($Data['depname'])){
  224. $Map['depname']=$Data['depname'];
  225. }
  226. if(!empty($Data['posname'])){
  227. $Map['posname']=$Data['posname'];
  228. }
  229. $expTableData =$UserVIew->field("username,truename,extension,agentid,depname,posname,phone,email,address")->where($Map)->select();
  230. $expCellName=array('登录名','姓名','分机号','座席号','所在部门','担任角色','联系电话','电子邮箱','地址');
  231. $expTitle='用户信息';
  232. $this->exportExcel($expTitle,$expCellName,$expTableData);
  233. // echo json_encode($expTableData);
  234. }
  235. }