DianweiController.class.php.bak.20200603 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  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 (session('power')==2){
  95. $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1);
  96. }else {
  97. if(IS_POST)
  98. {
  99. $this->logcs(print_r($Data,ture));
  100. $Data['hcp']="主机号:".$Data['host']." 回路号:".$Data['circuit']." 设备号:".$Data['point'];
  101. $res=$Tab->save($Data);
  102. if($res)
  103. $this->mtReturn(200,'编辑成功');
  104. else
  105. $this->mtReturn(300,'编辑失败');
  106. }
  107. else
  108. {
  109. $ResData = $Tab->field("id,deviceid,`host`,circuit,point,hcp,desc,addman,addtime,contactman,contactphone")->where(array('id'=>$Data['id']))->select();
  110. $this->assign('ResData',$ResData[0]);
  111. if ($_SESSION['zt_username']=='admin'){
  112. $owner_code=M()->query("SELECT owner_code FROM sp_owner WHERE dwtype=1");
  113. $this->assign('owner_code',$owner_code);
  114. }else{
  115. $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']."')");
  116. $this->assign('owner_code',$owner_code);
  117. }
  118. $this->assign('action','/home/Dianwei/edit');
  119. $this->display();
  120. }
  121. }
  122. }
  123. public function deldata(){
  124. $Model=M('userinfo_point');
  125. $Data=I();
  126. if (session('power')==2){
  127. $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1);
  128. }else {
  129. $res=$Model->where('id='.$Data['id'])->delete();
  130. if($res)
  131. $this->mtReturn(200,'删除成功'.$Data['id']);
  132. else
  133. $this->mtReturn(300,'删除失败');
  134. }
  135. }
  136. public function downdata(){//导出Excel
  137. $Data=I();
  138. $UserVIew=M("userinfo_point");
  139. $Map=array();
  140. if(!empty($Data['deviceid'])){
  141. $Map['deviceid']=$Data['deviceid'];
  142. }
  143. if(!empty($Data['phone'])){
  144. $Map['phone']=$Data['phone'];
  145. }
  146. $permdata=$this->permdata();
  147. if (!empty($permdata))
  148. {
  149. $Map['addman']=$permdata;
  150. }
  151. //$Count= $UserVIew->where($Map)->count();// 查询满足要求的总记录数 ,contactman,contactphone
  152. $expTableData = $UserVIew->field("deviceid,`host`,circuit,point,desc")->where($Map)->order('addtime desc')->select();
  153. $expCellName=array('设备id','主机号','回路号','设备号','描述');
  154. $expTitle='点位信息';
  155. $this->exportExcel($expTitle,$expCellName,$expTableData);
  156. // echo json_encode($expTableData);
  157. }
  158. public function upfile(){
  159. $data=I();
  160. if(isset($data['upfile'])){
  161. if($_FILES['dianfile']['name'] != '') {
  162. if ($_FILES["dianfile"]["error"] > 0){
  163. echo json_encode(array('statusCode'=>300,'message'=> $_FILES["dianfile"]["error"] ));
  164. }else{
  165. //echo "Upload: " . $_FILES["dianfile"]["name"] . "<br />";
  166. //echo "Type: " . $_FILES["dianfile"]["type"] . "<br />";
  167. //echo "Size: " . ($_FILES["dianfile"]["size"] / 1024) . " Kb<br />";. $_FILES["dianfile"]["name"]
  168. //echo "Stored in: " . $_FILES["dianfile"]["name"]. "aaaa<br />";
  169. $files=$_FILES["dianfile"]["name"];
  170. $ftypes=strtolower(substr(strrchr($files,'.'),1));
  171. if ($ftypes!="xls"){
  172. echo json_encode(array('statusCode'=>300,'message'=>'格式不对,请上传.xls结尾的文件' ));
  173. }else{
  174. $filetrue=move_uploaded_file($_FILES["dianfile"]["tmp_name"],"/var/www/html/jdxf/admin1/knowfile/Dianwei.xls" );
  175. if ($filetrue) {
  176. $this->xlsin("/var/www/html/jdxf/admin1/knowfile//Dianwei.xls");
  177. }else{
  178. echo json_encode(array('statusCode'=>300,'message'=>'上传失败' ));
  179. }
  180. }
  181. }
  182. }else{
  183. echo json_encode(array('statusCode'=>300,'message'=>'没有文件!' ));
  184. }
  185. }else{
  186. // $group=M('know_type');
  187. // $list = $group->field('id,name,parent')->select();
  188. // $this->assign('knowlist',$list);
  189. $this->display('upfile');
  190. }
  191. }
  192. private function xlsin($filename){//导入
  193. //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
  194. import("Org.Util_it.PHPExcel");
  195. //要导入的xls文件,位于根目录下的Public文件夹
  196. //$filename="/var/www/html/spcrm/admin/sp_customer.xls";
  197. //创建PHPExcel对象,注意,不能少了\
  198. $PHPExcel=new \PHPExcel();
  199. //如果excel文件后缀名为.xls,导入这个类
  200. import("Org.Util_it.PHPExcel.Reader.Excel5");
  201. //如果excel文件后缀名为.xlsx,导入这下类
  202. //import("Org.Util.PHPExcel.Reader.Excel2007");
  203. //$PHPReader=new \PHPExcel_Reader_Excel2007();
  204. $PHPReader=new \PHPExcel_Reader_Excel5();
  205. //载入文件
  206. $PHPExcel=$PHPReader->load($filename);
  207. //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
  208. $currentSheet=$PHPExcel->getSheet(0);
  209. //获取总列数
  210. $highestColumn=$currentSheet->getHighestColumn();
  211. //获取总行数
  212. $highestRow=$currentSheet->getHighestRow();
  213. //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
  214. $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');
  215. //echo $highestRow.$highestColumn;
  216. // 一次读取一列
  217. //$type=M('know_type')->field('id')->where('name="'.$types.'"')->select();
  218. $customer=M('userinfo_point');
  219. $downnum=0;
  220. $obtasksql="insert into sp_userinfo_point(deviceid,host,circuit,point,hcp,`desc`,addman,addtime,contactman,contactphone) values ";
  221. for ($row = 2; $row <= $highestRow; $row++) {//行
  222. // for ($column = 0; $arr[$column] != $highestColumn; $column++) {//列
  223. // $val = $currentSheet->getCellByColumnAndRow($column, $row)->getValue();
  224. // echo $val;
  225. // }
  226. $val0 = $currentSheet->getCellByColumnAndRow(0, $row)->getValue();
  227. $val1 = $currentSheet->getCellByColumnAndRow(1, $row)->getValue();
  228. $val2 = $currentSheet->getCellByColumnAndRow(2, $row)->getValue();
  229. $val3 = $currentSheet->getCellByColumnAndRow(3, $row)->getValue();
  230. $val4 = $currentSheet->getCellByColumnAndRow(4, $row)->getValue();
  231. //$val5 = $currentSheet->getCellByColumnAndRow(5, $row)->getValue();
  232. //$val6 = $currentSheet->getCellByColumnAndRow(6, $row)->getValue();
  233. //$val7 = $currentSheet->getCellByColumnAndRow(7, $row)->getValue();
  234. // $val8 = $currentSheet->getCellByColumnAndRow(8, $row)->getValue();
  235. // $val9 = $currentSheet->getCellByColumnAndRow(9, $row)->getValue();
  236. // $val10 = $currentSheet->getCellByColumnAndRow(10, $row)->getValue();
  237. // $val11 = $currentSheet->getCellByColumnAndRow(11, $row)->getValue();
  238. // $val12 = $currentSheet->getCellByColumnAndRow(12, $row)->getValue();
  239. // $val13 = $currentSheet->getCellByColumnAndRow(13, $row)->getValue();
  240. // $val14 = $currentSheet->getCellByColumnAndRow(14, $row)->getValue();
  241. // $val15 = $currentSheet->getCellByColumnAndRow(15, $row)->getValue();
  242. // $val16 = $currentSheet->getCellByColumnAndRow(16, $row)->getValue();
  243. // $val17 = $currentSheet->getCellByColumnAndRow(17, $row)->getValue();
  244. // $val18 = $currentSheet->getCellByColumnAndRow(18, $row)->getValue();
  245. // $val19 = $currentSheet->getCellByColumnAndRow(19, $row)->getValue();
  246. //$customer->add($data);
  247. $hcp="主机号:".$val1." 回路号:".$val2." 设备号:".$val3;
  248. $obtasksql.="('".$val0."','".$val1."','".$val2."','".$val3."','".$hcp."','".$val4."','".$_SESSION['zt_username']."',now(),'',''),";
  249. $downnum++;
  250. }
  251. $obtasksql = substr($obtasksql,0,strlen($obtasksql)-1);
  252. $addall=$customer->execute($obtasksql);
  253. unlink('/var/www/html/'.CRM.'/admin1/KnowBasexls.xls');
  254. //删除重复
  255. //$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)");
  256. $res='共'.$downnum.'条,成功导入'.$addall.'条。';
  257. echo json_encode(array('statusCode'=>200,'message'=>'导入成功:'.$res)); //.'时间:'.$stra.','.$strb
  258. }
  259. //水压设备列表
  260. public function WaterGage(){
  261. $Data=I();
  262. if(isset($Data['list'])){
  263. $GetPage=$Data['pageCurrent'];//第几页
  264. $GetSize=$Data['pageSize'];//每页条数
  265. $Page=($GetPage-1)*$GetSize;
  266. $Map=array();
  267. $Map['dwtype']= 2; //大类型水压设备
  268. $Map['owner_xh']= '36,1'; //大类型水压设备
  269. if(!empty($Data['device_code'])){
  270. $Map['device_code']=$Data['device_code'];
  271. }
  272. if(!empty($Data['status'])){
  273. $Map['phone']=$Data['status'];
  274. }
  275. $permdata=$this->permdata();
  276. if (!empty($permdata))
  277. {
  278. $Map['addman']=$permdata;
  279. }
  280. //明天 連貫操作sp_owner
  281. $Count=M('owner as a')->join('left join sp_water_gage_info as b on a.owner_code = b.device_code')->
  282. where($Map)->count() ;
  283. $List=M('owner as a')->join('left join sp_water_gage_info as b on a.owner_code = b.device_code')->
  284. where($Map)->
  285. limit($Page,$GetSize)->
  286. field('a.owner_code,b.max,b.min,b.status,b.update_time')->
  287. select();
  288. $list2 =array();
  289. foreach ($List as $key=>$value){
  290. $list2[$key]['time'] = date('Y-m-d H:i:s',$value['update_time']);
  291. $list2[$key]['min'] = $value['min'];
  292. $list2[$key]['max'] = $value['max'];
  293. $list2[$key]['owner_code'] = $value['owner_code'];
  294. $list2[$key]['status'] = ($value['status']==1)?'未更新':'已更新';
  295. }
  296. $Info = array(
  297. 'totalRow' => $Count,
  298. 'list' => $list2,
  299. );
  300. echo json_encode($Info);
  301. }
  302. else
  303. {
  304. $this->display();
  305. }
  306. }
  307. public function water_edit(){
  308. $Data=I();
  309. $Tab=M('water_gage_info');
  310. if(IS_POST)
  311. {
  312. $save['min'] = $Data['min'];
  313. $save['max'] = $Data['max'];
  314. $save['update_time'] = time();
  315. $save['status'] = 2;
  316. $where['device_code'] = $Data['code'];
  317. $info = $Tab->where($where)->find();
  318. if($info){
  319. $res=$Tab->where($where)->save($save);
  320. }else{
  321. $save['create_time'] = time();
  322. $save['update_time'] = time();
  323. $save['device_code'] = $Data['code'];
  324. $res = $Tab->add($save);
  325. }
  326. if($res)
  327. $this->mtReturn(200,'编辑成功');
  328. else
  329. $this->mtReturn(300,'编辑失败');
  330. }else{
  331. $where['device_code'] = $Data['code'];
  332. $info = $Tab->where($where)->find();
  333. $this->assign('info',$info);
  334. $this->assign('code',$Data['code']);
  335. $this->assign('action','/home/Dianwei/water_edit');
  336. $this->display();
  337. }
  338. }
  339. }