DianweiController.class.php.bak20200601 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class DianweiController extends ComController {
  5. public function index(){
  6. $Data=I();
  7. if(isset($Data['list'])){
  8. $UserVIew=M('userinfo_point');
  9. $GetPage=$Data['pageCurrent'];//第几页
  10. $GetSize=$Data['pageSize'];//每页条数
  11. $Page=($GetPage-1)*$GetSize;
  12. $Map=array();
  13. if(!empty($Data['deviceid'])){
  14. $Map['deviceid']=$Data['deviceid'];
  15. }
  16. if(!empty($Data['phone'])){
  17. $Map['phone']=$Data['phone'];
  18. }
  19. $permdata=$this->permdata();
  20. if (!empty($permdata))
  21. {
  22. $Map['addman']=$permdata;
  23. }
  24. $Count= $UserVIew->where($Map)->count();// 查询满足要求的总记录数
  25. $List = $UserVIew->field("id,deviceid,`host`,circuit,point,hcp,desc,addman,addtime,contactman,contactphone")->where($Map)->order('addtime desc')
  26. ->limit($Page,$GetSize)->select();
  27. $Info = array(
  28. 'totalRow' => $Count,
  29. //'pageSize' => $count,//分页时不传
  30. 'list' => $List,
  31. );
  32. echo json_encode($Info);
  33. }
  34. else
  35. {
  36. $this->display();
  37. }
  38. }
  39. public function add(){
  40. if (IS_POST) {
  41. $Tab=M('userinfo_point');
  42. // $rules = array(
  43. // array('phone','','电话号码重复!',0,'unique'),
  44. // );
  45. // if (!$Tab->validate($rules)->create())
  46. // {
  47. // // echo json_encode(array('statusCode'=>'300','message'=> $menu->getError()));
  48. // $this->mtReturn(300,$Tab->getError());
  49. // }
  50. // else
  51. // {
  52. $Data=I();
  53. if(empty($Data['deviceid'])){
  54. $this->mtReturn(300,'请填写完整的设备id');
  55. }
  56. if(strlen($Data['host']) < 1){
  57. $this->mtReturn(300,'请填写完整的主机号');
  58. }
  59. if(strlen($Data['circuit']) < 1){
  60. $this->mtReturn(300,'请填写完整的回路号');
  61. }
  62. if(strlen($Data['point']) < 1){
  63. $this->mtReturn(300,'请填写完整的设备号');
  64. }
  65. if(empty($Data['desc'])){
  66. $this->mtReturn(300,'请填写完整描述信息');
  67. }
  68. $Data['addtime']=date('Y-m-d H:i:s');
  69. $Data['addman']=session('zt_username');
  70. $Data['hcp']="主机号:".$Data['host']." 回路号:".$Data['circuit']." 设备号:".$Data['point'];
  71. $res = $Tab->add($Data);
  72. if($res)
  73. $this->mtReturn(200,'新增成功');
  74. else
  75. $this->mtReturn(300,'新增失败');
  76. // }
  77. }
  78. else
  79. {
  80. $this->assign('action','/home/Dianwei/add');
  81. if ($_SESSION['zt_username']=='admin'){
  82. $owner_code=M()->query("SELECT owner_code FROM sp_owner WHERE dwtype=1");
  83. $this->assign('owner_code',$owner_code);
  84. }else{
  85. $owner_code=M()->query("SELECT owner_code FROM sp_owner WHERE dwtype=1 AND company IN( SELECT owner_code FROM sp_owner_weibao WHERE agentid='".$_SESSION['zt_username']."')");
  86. $this->assign('owner_code',$owner_code);
  87. }
  88. $this->display();
  89. }
  90. }
  91. public function edit(){
  92. $Data=I();
  93. $Tab=M('userinfo_point');
  94. if(IS_POST)
  95. {
  96. $this->logcs(print_r($Data,ture));
  97. $Data['hcp']="主机号:".$Data['host']." 回路号:".$Data['circuit']." 设备号:".$Data['point'];
  98. $res=$Tab->save($Data);
  99. if($res)
  100. $this->mtReturn(200,'编辑成功');
  101. else
  102. $this->mtReturn(300,'编辑失败');
  103. }
  104. else
  105. {
  106. $ResData = $Tab->field("id,deviceid,`host`,circuit,point,hcp,desc,addman,addtime,contactman,contactphone")->where(array('id'=>$Data['id']))->select();
  107. $this->assign('ResData',$ResData[0]);
  108. if ($_SESSION['zt_username']=='admin'){
  109. $owner_code=M()->query("SELECT owner_code FROM sp_owner WHERE dwtype=1");
  110. $this->assign('owner_code',$owner_code);
  111. }else{
  112. $owner_code=M()->query("SELECT owner_code FROM sp_owner WHERE dwtype=1 AND company IN( SELECT owner_code FROM sp_owner_weibao WHERE agentid='".$_SESSION['zt_username']."')");
  113. $this->assign('owner_code',$owner_code);
  114. }
  115. $this->assign('action','/home/Dianwei/edit');
  116. $this->display();
  117. }
  118. }
  119. public function deldata(){
  120. $Model=M('userinfo_point');
  121. $Data=I();
  122. $res=$Model->where('id='.$Data['id'])->delete();
  123. if($res)
  124. $this->mtReturn(200,'删除成功'.$Data['id']);
  125. else
  126. $this->mtReturn(300,'删除失败');
  127. }
  128. public function downdata(){//导出Excel
  129. $Data=I();
  130. $UserVIew=M("userinfo_point");
  131. $Map=array();
  132. if(!empty($Data['deviceid'])){
  133. $Map['deviceid']=$Data['deviceid'];
  134. }
  135. if(!empty($Data['phone'])){
  136. $Map['phone']=$Data['phone'];
  137. }
  138. $permdata=$this->permdata();
  139. if (!empty($permdata))
  140. {
  141. $Map['addman']=$permdata;
  142. }
  143. //$Count= $UserVIew->where($Map)->count();// 查询满足要求的总记录数 ,contactman,contactphone
  144. $expTableData = $UserVIew->field("deviceid,`host`,circuit,point,desc")->where($Map)->order('addtime desc')->select();
  145. $expCellName=array('设备id','主机号','回路号','设备号','描述');
  146. $expTitle='点位信息';
  147. $this->exportExcel($expTitle,$expCellName,$expTableData);
  148. // echo json_encode($expTableData);
  149. }
  150. public function upfile(){
  151. $data=I();
  152. if(isset($data['upfile'])){
  153. if($_FILES['dianfile']['name'] != '') {
  154. if ($_FILES["dianfile"]["error"] > 0){
  155. echo json_encode(array('statusCode'=>300,'message'=> $_FILES["dianfile"]["error"] ));
  156. }else{
  157. //echo "Upload: " . $_FILES["dianfile"]["name"] . "<br />";
  158. //echo "Type: " . $_FILES["dianfile"]["type"] . "<br />";
  159. //echo "Size: " . ($_FILES["dianfile"]["size"] / 1024) . " Kb<br />";. $_FILES["dianfile"]["name"]
  160. //echo "Stored in: " . $_FILES["dianfile"]["name"]. "aaaa<br />";
  161. $files=$_FILES["dianfile"]["name"];
  162. $ftypes=strtolower(substr(strrchr($files,'.'),1));
  163. if ($ftypes!="xls"){
  164. echo json_encode(array('statusCode'=>300,'message'=>'格式不对,请上传.xls结尾的文件' ));
  165. }else{
  166. $filetrue=move_uploaded_file($_FILES["dianfile"]["tmp_name"],"/var/www/html/jdxf/admin1/knowfile/Dianwei.xls" );
  167. if ($filetrue) {
  168. $this->xlsin("/var/www/html/jdxf/admin1/knowfile//Dianwei.xls");
  169. }else{
  170. echo json_encode(array('statusCode'=>300,'message'=>'上传失败' ));
  171. }
  172. }
  173. }
  174. }else{
  175. echo json_encode(array('statusCode'=>300,'message'=>'没有文件!' ));
  176. }
  177. }else{
  178. // $group=M('know_type');
  179. // $list = $group->field('id,name,parent')->select();
  180. // $this->assign('knowlist',$list);
  181. $this->display('upfile');
  182. }
  183. }
  184. private function xlsin($filename){//导入
  185. //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
  186. import("Org.Util_it.PHPExcel");
  187. //要导入的xls文件,位于根目录下的Public文件夹
  188. //$filename="/var/www/html/spcrm/admin/sp_customer.xls";
  189. //创建PHPExcel对象,注意,不能少了\
  190. $PHPExcel=new \PHPExcel();
  191. //如果excel文件后缀名为.xls,导入这个类
  192. import("Org.Util_it.PHPExcel.Reader.Excel5");
  193. //如果excel文件后缀名为.xlsx,导入这下类
  194. //import("Org.Util.PHPExcel.Reader.Excel2007");
  195. //$PHPReader=new \PHPExcel_Reader_Excel2007();
  196. $PHPReader=new \PHPExcel_Reader_Excel5();
  197. //载入文件
  198. $PHPExcel=$PHPReader->load($filename);
  199. //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
  200. $currentSheet=$PHPExcel->getSheet(0);
  201. //获取总列数
  202. $highestColumn=$currentSheet->getHighestColumn();
  203. //获取总行数
  204. $highestRow=$currentSheet->getHighestRow();
  205. //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
  206. $arr = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M', 14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z');
  207. //echo $highestRow.$highestColumn;
  208. // 一次读取一列
  209. //$type=M('know_type')->field('id')->where('name="'.$types.'"')->select();
  210. $customer=M('userinfo_point');
  211. $downnum=0;
  212. $obtasksql="insert into sp_userinfo_point(deviceid,host,circuit,point,hcp,`desc`,addman,addtime,contactman,contactphone) values ";
  213. for ($row = 2; $row <= $highestRow; $row++) {//行
  214. // for ($column = 0; $arr[$column] != $highestColumn; $column++) {//列
  215. // $val = $currentSheet->getCellByColumnAndRow($column, $row)->getValue();
  216. // echo $val;
  217. // }
  218. $val0 = $currentSheet->getCellByColumnAndRow(0, $row)->getValue();
  219. $val1 = $currentSheet->getCellByColumnAndRow(1, $row)->getValue();
  220. $val2 = $currentSheet->getCellByColumnAndRow(2, $row)->getValue();
  221. $val3 = $currentSheet->getCellByColumnAndRow(3, $row)->getValue();
  222. $val4 = $currentSheet->getCellByColumnAndRow(4, $row)->getValue();
  223. //$val5 = $currentSheet->getCellByColumnAndRow(5, $row)->getValue();
  224. //$val6 = $currentSheet->getCellByColumnAndRow(6, $row)->getValue();
  225. //$val7 = $currentSheet->getCellByColumnAndRow(7, $row)->getValue();
  226. // $val8 = $currentSheet->getCellByColumnAndRow(8, $row)->getValue();
  227. // $val9 = $currentSheet->getCellByColumnAndRow(9, $row)->getValue();
  228. // $val10 = $currentSheet->getCellByColumnAndRow(10, $row)->getValue();
  229. // $val11 = $currentSheet->getCellByColumnAndRow(11, $row)->getValue();
  230. // $val12 = $currentSheet->getCellByColumnAndRow(12, $row)->getValue();
  231. // $val13 = $currentSheet->getCellByColumnAndRow(13, $row)->getValue();
  232. // $val14 = $currentSheet->getCellByColumnAndRow(14, $row)->getValue();
  233. // $val15 = $currentSheet->getCellByColumnAndRow(15, $row)->getValue();
  234. // $val16 = $currentSheet->getCellByColumnAndRow(16, $row)->getValue();
  235. // $val17 = $currentSheet->getCellByColumnAndRow(17, $row)->getValue();
  236. // $val18 = $currentSheet->getCellByColumnAndRow(18, $row)->getValue();
  237. // $val19 = $currentSheet->getCellByColumnAndRow(19, $row)->getValue();
  238. //$customer->add($data);
  239. $hcp="主机号:".$val1." 回路号:".$val2." 设备号:".$val3;
  240. $obtasksql.="('".$val0."','".$val1."','".$val2."','".$val3."','".$hcp."','".$val4."','".$_SESSION['zt_username']."',now(),'',''),";
  241. $downnum++;
  242. }
  243. $obtasksql = substr($obtasksql,0,strlen($obtasksql)-1);
  244. $addall=$customer->execute($obtasksql);
  245. unlink('/var/www/html/'.CRM.'/admin1/KnowBasexls.xls');
  246. //删除重复
  247. //$delnum=$customer->execute("DELETE FROM sp_customer WHERE phone in(SELECT phone FROM(SELECT phone FROM sp_customer GROUP BY phone HAVING COUNT(phone) >1) a) AND id NOT IN (SELECT id FROM(SELECT MIN(id) as id FROM sp_customer GROUP BY phone HAVING COUNT(phone) >1) b)");
  248. $res='共'.$downnum.'条,成功导入'.$addall.'条。';
  249. echo json_encode(array('statusCode'=>200,'message'=>'导入成功:'.$res)); //.'时间:'.$stra.','.$strb
  250. }
  251. //水压设备列表
  252. public function WaterGage(){
  253. $Data=I();
  254. if(isset($Data['list'])){
  255. $GetPage=$Data['pageCurrent'];//第几页
  256. $GetSize=$Data['pageSize'];//每页条数
  257. $Page=($GetPage-1)*$GetSize;
  258. $Map=array();
  259. $Map['dwtype']= 2; //大类型水压设备
  260. $Map['owner_xh']= '36,1'; //大类型水压设备
  261. if(!empty($Data['device_code'])){
  262. $Map['device_code']=$Data['device_code'];
  263. }
  264. if(!empty($Data['status'])){
  265. $Map['phone']=$Data['status'];
  266. }
  267. $permdata=$this->permdata();
  268. if (!empty($permdata))
  269. {
  270. $Map['addman']=$permdata;
  271. }
  272. //明天 連貫操作sp_owner
  273. $Count=M('owner as a')->join('left join sp_water_gage_info as b on a.owner_code = b.device_code')->
  274. where($Map)->count() ;
  275. $List=M('owner as a')->join('left join sp_water_gage_info as b on a.owner_code = b.device_code')->
  276. where($Map)->
  277. limit($Page,$GetSize)->
  278. field('a.owner_code,b.max,b.min,b.status,b.update_time')->
  279. select();
  280. $list2 =array();
  281. foreach ($List as $key=>$value){
  282. $list2[$key]['time'] = date('Y-m-d H:i:s',$value['update_time']);
  283. $list2[$key]['min'] = $value['min'];
  284. $list2[$key]['max'] = $value['max'];
  285. $list2[$key]['owner_code'] = $value['owner_code'];
  286. $list2[$key]['status'] = ($value['status']==1)?'未更新':'已更新';
  287. }
  288. $Info = array(
  289. 'totalRow' => $Count,
  290. 'list' => $list2,
  291. );
  292. echo json_encode($Info);
  293. }
  294. else
  295. {
  296. $this->display();
  297. }
  298. }
  299. public function water_edit(){
  300. $Data=I();
  301. $Tab=M('water_gage_info');
  302. if(IS_POST)
  303. {
  304. $save['min'] = $Data['min'];
  305. $save['max'] = $Data['max'];
  306. $save['update_time'] = time();
  307. $save['status'] = 2;
  308. $where['device_code'] = $Data['code'];
  309. $info = $Tab->where($where)->find();
  310. if($info){
  311. $res=$Tab->where($where)->save($save);
  312. }else{
  313. $save['create_time'] = time();
  314. $save['update_time'] = time();
  315. $save['device_code'] = $Data['code'];
  316. $res = $Tab->add($save);
  317. }
  318. if($res)
  319. $this->mtReturn(200,'编辑成功');
  320. else
  321. $this->mtReturn(300,'编辑失败');
  322. }else{
  323. $where['device_code'] = $Data['code'];
  324. $info = $Tab->where($where)->find();
  325. $this->assign('info',$info);
  326. $this->assign('code',$Data['code']);
  327. $this->assign('action','/home/Dianwei/water_edit');
  328. $this->display();
  329. }
  330. }
  331. }