DianweiController.class.php 18 KB

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