NewLampPoleController.java 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016
  1. package com.welampiot.controller;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dto.GWRSDevDTO;
  5. import com.welampiot.dto.*;
  6. import com.welampiot.service.*;
  7. import com.welampiot.utils.ExcelUtil;
  8. import com.welampiot.utils.ToolUtils;
  9. import com.welampiot.vo.*;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.CrossOrigin;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.text.DecimalFormat;
  17. import java.text.ParseException;
  18. import java.text.SimpleDateFormat;
  19. import java.util.*;
  20. /**
  21. * ClassName: NewLampPoleController
  22. * Package: com.welampiot.controller
  23. * Description:
  24. *
  25. * @Author: zhj_Start
  26. * @Create: 2023/4/11 - 19:53
  27. * @Version: v1.0
  28. */
  29. @RestController
  30. @CrossOrigin
  31. @RequestMapping("/newLampPole")
  32. public class NewLampPoleController {
  33. @Autowired
  34. private WifiService wifiService;
  35. @Autowired
  36. private WifiInfoLogService wifiInfoLogService;
  37. @Autowired
  38. private EnvmonitorService envmonitorService;
  39. @Autowired
  40. private ScreenService screenService;
  41. @Autowired
  42. private ToolUtils toolUtils;
  43. @Autowired
  44. private LampPoleService lampPoleService;
  45. @Autowired
  46. private OperationLogService operationLogService;
  47. @Autowired
  48. private LampService lampService;
  49. @Autowired
  50. private LampInfoLogService lampInfoLogService;
  51. @Autowired
  52. private LampPoleAlarmLogService lampPoleAlarmLogService;
  53. @Autowired
  54. private LampInfoLogNewService lampInfoLogNewService;
  55. @Autowired
  56. private VideoMonitorService videoMonitorService;
  57. @RequestMapping(value = "/info",method = RequestMethod.POST)
  58. public BaseResult info(HttpServletRequest request){
  59. Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  60. LampPoleInfoVO lampPoleInfoVO = new LampPoleInfoVO();
  61. List sectionList = toolUtils.getSectionList(request);
  62. LampPoleVO lampPoleVO = new LampPoleVO();
  63. lampPoleVO.setSectionList(sectionList);
  64. List<LampPoleDTO> listByVO = lampPoleService.getListByVO(lampPoleVO);
  65. lampPoleInfoVO.setDeviceCount(listByVO.size());
  66. lampPoleInfoVO.setRunCount(listByVO.size());
  67. lampPoleInfoVO.setWifiCount(listByVO.size());
  68. lampPoleInfoVO.setEmCount(0);
  69. for (LampPoleDTO l:listByVO) {
  70. // String devType = l.getDevType();
  71. // List split = Arrays.asList(devType.split(","));
  72. // if (split.contains("5")) lampPoleInfoVO.setEmCount(lampPoleInfoVO.getEmCount()+1);;
  73. }
  74. // $data['loopCount'] = $this->Loop_model->get_count(array('sectionid'=>$sectionId));
  75. // $id_arr = array_column($lampPoleList, 'id');
  76. // $temp_l = [];
  77. // if (!empty($id_arr)) {
  78. // $sql = 'select lamp_pole_id,max(updatetime),status,id,devtype from lamp_pole_alarm_log where lamp_pole_id in ('.implode(',', $id_arr).') and (status = 0 or status = 1) group by lamp_pole_id';
  79. // $l_list = $this->db->query($sql)->result_array();
  80. // foreach ($l_list as $key => $value) {
  81. // // if ($value['status'] != 1 && $value['status'] != 0) continue;
  82. // $temp_l[$value['lamp_pole_id']] = $value;
  83. // }
  84. // }
  85. //
  86. // $lampPoleId = array();
  87. // foreach ($lampPoleList as $lampPole) {
  88. // $data['deviceCount'] += 1;
  89. // $data['runCount'] += 1;
  90. // if (time() - strtotime($lampPole['createtime']) <= 3600*24*30) {
  91. // $data['newCount'] += 1;
  92. // }
  93. // $typeArr = explode(',', $lampPole['devtype']);
  94. // if (in_array('0', $typeArr)) $data['lampCount'] += 1;
  95. // if (in_array('1', $typeArr)) $data['videoCount'] += 1;
  96. // if (in_array('2', $typeArr)) $data['wifiCount'] += 1;
  97. // if (in_array('4', $typeArr)) $data['screenCount'] += 1;
  98. // if (in_array('5', $typeArr)) $data['emCount'] += 1;
  99. // if (in_array('6', $typeArr)) $data['chargeCount'] += 1;
  100. // if (in_array('7', $typeArr)) $data['weatherCount'] += 1;
  101. // if (in_array('9', $typeArr)) $data['radioCount'] += 1;
  102. // if (in_array('14', $typeArr)) $data['waterImmersionCount'] += 1;
  103. // if (in_array('18', $typeArr)) $data['tiltCount'] += 1;
  104. // if (in_array('15', $typeArr)) $data['lockCount'] += 1;
  105. // if (isset($temp_l[$lampPole['id']])) {
  106. // $data['faultCount'] += 1;
  107. // $data['runCount'] -= 1;
  108. // }
  109. //
  110. // $lampPoleId[] = $lampPole['id'];
  111. // }
  112. //
  113. // if (!empty($lampPoleId)) {
  114. // // smart_lock_dev_info
  115. // $res = $this->db->query('select count(*) as total from smart_lock_dev_info where lamp_pole_id in ('.implode(',', $lampPoleId).')')->row_array();
  116. // $data['lockCount'] = intval($res['total']);
  117. //
  118. // $lampinfoList = $this->Lampinfo_model->get_list(array('lamp_pole_id'=>$lampPoleId),'id');
  119. // $lampId = array();
  120. // $data['lampCount'] = count($lampinfoList);
  121. // foreach ($lampinfoList as $l) {
  122. // $lampId[] = $l['id'];
  123. // }
  124. // if (!empty($lampId)) {
  125. // $join = array(
  126. // array('table'=>'lamp_info_log_new as t1','cond'=>'t1.updatetime = LI.updatetime AND t1.lampid = LI.lampid','type'=>'inner')
  127. // );
  128. // $sql = "select day_gener_energy,month_gener_energy,used_energy_total from lamp_info_log_new a where a.lampid in (".implode(',', $lampId).")";
  129. // $lampInfoLogList = $this->db->query($sql)->result_array();
  130. // foreach ($lampInfoLogList as $lampLog) {
  131. // $data['dayCom'] += $lampLog['day_gener_energy'];
  132. // $data['monthCom'] += $lampLog['month_gener_energy'];
  133. // $data['totalCom'] += $lampLog['used_energy_total'];
  134. // }
  135. // }
  136. // }
  137. // $data['dayCom'] = round($data['dayCom'],1);
  138. // $data['monthCom'] = round($data['monthCom'],1);
  139. // $data['totalCom'] = round($data['totalCom'],1);
  140. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleInfoVO);
  141. }
  142. /**
  143. * 获取云盒列表
  144. * @param request 路段筛选,分页
  145. * @return 云盒列表
  146. */
  147. @RequestMapping(value = "/wifiList", method = RequestMethod.POST)
  148. public BaseResult<?> wifiList(HttpServletRequest request){
  149. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  150. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  151. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  152. Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
  153. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  154. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  155. Integer online = request.getParameter("online") == null || request.getParameter("online").length() == 0 ? null : Integer.parseInt(request.getParameter("online"));
  156. String keyword = request.getParameter("keyword") == null ? "" : request.getParameter("keyword");
  157. WifiDTO dto = new WifiDTO();
  158. WifiVO vo;
  159. if (download == 1) {
  160. dto.setKeyword(keyword);
  161. dto.setAreaId(areaId);
  162. dto.setSectionId(sectionId);
  163. if (online != null) dto.setOnlineState(online);
  164. dto.setSectionList(toolUtils.getSectionList(request));
  165. vo = wifiService.getWifiList(dto);
  166. String title;
  167. if (version == 0) {
  168. title = "序号,授权SN,网络状态,今日流量,累计流量,WIFI开关,硬件版本,固件版本,所属灯杆,更新时间";
  169. } else if (version == 1) {
  170. title = "Serial number,Authorization SN,Network Status,Current Traffic,Cumulative Traffic," +
  171. "WIFI Switch,Hardware Version,Firmware Version,Owning Light Pole,Update Time";
  172. } else {
  173. title = "Порядковый номер,авторизация SN,состояние сети,текущий поток,суммарный трафик," +
  174. "WIFI переключатель,аппаратная версия,прошивка,время обновления";
  175. }
  176. List<String> titleList = Arrays.asList(title.split(","));
  177. List<List<String>> contentList = new ArrayList<>();
  178. List<WifiDTO> list = vo.getList();
  179. for (WifiDTO w : list) {
  180. List<String> newString = new ArrayList<>();
  181. newString.add(0,w.getNum());
  182. newString.add(1,w.getSn());
  183. if (w.getOnline() == 1) {
  184. newString.add(2,"在线");
  185. } else {
  186. newString.add(2,"离线");
  187. }
  188. newString.add(3,w.getDayFlow().toString());
  189. newString.add(4,w.getFlow().toString());
  190. if (w.getStatus() == 1) {
  191. newString.add(5,"开");
  192. } else {
  193. newString.add(5,"关");
  194. }
  195. newString.add(6,w.getVersion());
  196. newString.add(7,w.getFirVersion());
  197. newString.add(8,w.getLampPoleName());
  198. newString.add(9,w.getUpdateTime());
  199. contentList.add(list.indexOf(w),newString);
  200. }
  201. String path = ExcelUtil.outExcel(titleList, contentList);
  202. vo.setPath(path);
  203. } else {
  204. dto.setPage(count * (page - 1));
  205. dto.setCount(count);
  206. dto.setKeyword(keyword);
  207. dto.setAreaId(areaId);
  208. dto.setSectionId(sectionId);
  209. if (online != null) dto.setOnlineState(online);
  210. dto.setSectionList(toolUtils.getSectionList(request));
  211. vo = wifiService.getWifiList(dto);
  212. }
  213. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
  214. }
  215. /**
  216. * 获取云盒数据概览
  217. * @param request
  218. * @return
  219. */
  220. @RequestMapping(value = "/wifiInfo", method = RequestMethod.POST)
  221. public BaseResult<WifiDTO> wifiInfo(HttpServletRequest request){
  222. WifiDTO dto = new WifiDTO();
  223. dto.setSectionList(toolUtils.getSectionList(request));
  224. WifiVO vo = wifiService.getWifiInfo(dto);
  225. return BaseResult.success(vo);
  226. }
  227. /**
  228. * 获取云盒电源设置
  229. * @param request
  230. * @return
  231. */
  232. @RequestMapping(value = "/wifiOutInfo", method = RequestMethod.POST)
  233. public BaseResult<WifiDTO> wifiOutInfo(HttpServletRequest request){
  234. Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  235. Integer id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
  236. WifiOutInfoVO vo = wifiService.getWifiOutInfo(id, toolUtils.getSectionList(request));
  237. if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  238. return BaseResult.success(vo);
  239. }
  240. /**
  241. * 获取云盒输出统计数据
  242. * @param request
  243. * @return
  244. */
  245. @RequestMapping(value = "/wifiOutStatistics", method = RequestMethod.POST)
  246. public BaseResult wifiOutStatistics(HttpServletRequest request) throws ParseException {
  247. int version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  248. int id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
  249. if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  250. int dateType = request.getParameter("dateType") == null ? 0 : Integer.parseInt(request.getParameter("dateType"));
  251. int dataType = request.getParameter("dataType") == null ? 0 : Integer.parseInt(request.getParameter("dataType"));
  252. WifiInfoLogDTO dto = new WifiInfoLogDTO();
  253. dto.setWifiId(id);
  254. dto.setDataType(dataType);
  255. Integer timezone = wifiInfoLogService.getTimezoneById(dto);
  256. if (timezone == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  257. long l = System.currentTimeMillis() - timezone * 3600 * 1000;
  258. long startTime = 0L;
  259. long endTime = 0L;
  260. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  261. if (dateType == 0){ // 1 天
  262. startTime = l - 24 * 3600 * 1000;
  263. endTime = l;
  264. }else if (dateType == 1){ // 3 天
  265. startTime = l - 24 * 3600 * 1000 * 3;
  266. endTime = l;
  267. }else if (dateType == 2){ // 7 天
  268. startTime = l - 24 * 3600 * 1000 * 7;
  269. endTime = l;
  270. }else if (dateType == 3){ // 14 天
  271. startTime = l - 24 * 3600 * 1000 * 14;
  272. endTime = l;
  273. }else if (dateType == 4){ // 日期选择 最多30天
  274. String date = (String) toolUtils.getRequestContent(request,"date",2);
  275. if (date.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR,version);
  276. List<String> split = Arrays.asList(date.split("/"));
  277. System.out.println(split);
  278. System.out.println(split.get(0));
  279. System.out.println(split.get(1));
  280. try {
  281. startTime = simpleDateFormat.parse(split.get(0) + " 00:00:00").getTime();
  282. } catch (ParseException e) {
  283. throw new RuntimeException(e);
  284. }
  285. endTime = simpleDateFormat.parse(split.get(1) + " 23:59:59").getTime();
  286. if (endTime < startTime) toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR,version);
  287. if (endTime - startTime > 29L * 24 * 3600 * 1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
  288. startTime -= timezone * 3600 * 1000;
  289. endTime -= timezone * 3600 * 1000;
  290. }
  291. HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
  292. long timeT = startTime;
  293. int i = 0;
  294. List<Object> dateList = new ArrayList<>();
  295. List<Object> volList = new ArrayList<>();
  296. List<Object> curList = new ArrayList<>();
  297. List<Object> powerList = new ArrayList<>();
  298. List<Object> comList = new ArrayList<>();
  299. List<WifiInfoLogDTO> list = new ArrayList<>();
  300. simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
  301. while (timeT < endTime){
  302. objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)),i);
  303. dateList.add(simpleDateFormat.format(new Date(timeT + timezone * 3600 * 1000)));
  304. volList.add(0);
  305. powerList.add(0);
  306. comList.add(0);
  307. curList.add(0);
  308. list.add(null);
  309. timeT += 3600 * 1000;
  310. i ++;
  311. }
  312. SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  313. String startDate = simpleDateFormat.format(new Date(startTime));
  314. String endDate = simpleDateFormat.format(new Date(endTime));
  315. dto.setStartDate(startDate);
  316. dto.setEndDate(endDate);
  317. List<WifiInfoLogDTO> wifiOutStatisticsByDTO = wifiInfoLogService.getWifiOutStatisticsByDTO(dto);
  318. for (WifiInfoLogDTO wifiInfoLogDTO : wifiOutStatisticsByDTO) {
  319. Date date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime());
  320. String s = simpleDateFormat.format(date);
  321. if (objectObjectHashMap.containsKey(s)){
  322. Integer integer = objectObjectHashMap.get(s);
  323. list.set(integer,wifiInfoLogDTO);
  324. }
  325. }
  326. for (WifiInfoLogDTO wifiInfoLogDTO : list) {
  327. if (wifiInfoLogDTO != null){
  328. Date date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime());
  329. String s = simpleDateFormat.format(date);
  330. Integer integer = null;
  331. if (objectObjectHashMap.containsKey(s)){
  332. integer = objectObjectHashMap.get(s);
  333. list.set(integer,wifiInfoLogDTO);
  334. }
  335. if (dto.getDataType() != null){
  336. switch (dto.getDataType()){
  337. case 5:
  338. if (wifiInfoLogDTO.getCurrentC() != null && !wifiInfoLogDTO.getCurrentC().equals("0") && integer != null) {
  339. curList.set(integer, Float.valueOf(wifiInfoLogDTO.getCurrentC()));
  340. }
  341. if (wifiInfoLogDTO.getVoltageC() != null && !wifiInfoLogDTO.getVoltageC().equals("0") && integer != null) {
  342. volList.set(integer, Float.valueOf(wifiInfoLogDTO.getVoltageC()));
  343. }
  344. if (wifiInfoLogDTO.getPowerC() != null && !wifiInfoLogDTO.getPowerC().equals("0")&& integer != null) {
  345. powerList.set(integer, Float.valueOf(wifiInfoLogDTO.getPowerC()));
  346. }
  347. if (wifiInfoLogDTO.getTotalComC() != null && !wifiInfoLogDTO.getTotalComC().equals("0") && integer != null) {
  348. comList.set(integer, Float.valueOf(wifiInfoLogDTO.getTotalComC()));
  349. }
  350. break;
  351. case 4:
  352. if (wifiInfoLogDTO.getCurrentB() != null && !wifiInfoLogDTO.getCurrentB().equals("0") && integer != null) {
  353. curList.set(integer, Float.valueOf(wifiInfoLogDTO.getCurrentB()));
  354. }
  355. if (wifiInfoLogDTO.getVoltageB() != null && !wifiInfoLogDTO.getVoltageB().equals("0") && integer != null) {
  356. volList.set(integer, Float.valueOf(wifiInfoLogDTO.getVoltageB()));
  357. }
  358. if (wifiInfoLogDTO.getPowerB() != null && !wifiInfoLogDTO.getPowerB().equals("0") && integer != null) {
  359. powerList.set(integer, Float.valueOf(wifiInfoLogDTO.getPowerB()));
  360. }
  361. if (wifiInfoLogDTO.getTotalComB() != null &&! wifiInfoLogDTO.getTotalComB().equals("0") && integer != null) {
  362. comList.set(integer, Float.valueOf(wifiInfoLogDTO.getTotalComB()));
  363. }
  364. break;
  365. case 3 :
  366. if (wifiInfoLogDTO.getLna3Cur() != null && !wifiInfoLogDTO.getLna3Cur().equals("0") && integer != null){
  367. curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna3Cur()));
  368. }
  369. if (wifiInfoLogDTO.getLna3Vol() != null && !wifiInfoLogDTO.getLna3Vol().equals("0") && integer != null){
  370. volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna3Vol()));
  371. }
  372. break;
  373. case 2 :
  374. if (wifiInfoLogDTO.getLna2Cur() != null && !wifiInfoLogDTO.getLna2Cur().equals("0") && integer != null){
  375. curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna2Cur()));
  376. }
  377. if (wifiInfoLogDTO.getLna2Vol() != null && !wifiInfoLogDTO.getLna2Vol().equals("0") && integer != null){
  378. volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna2Vol()));
  379. }
  380. break;
  381. case 1 :
  382. if (wifiInfoLogDTO.getLna1Cur() != null && !wifiInfoLogDTO.getLna1Cur().equals("0") && integer != null){
  383. curList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna1Cur()));
  384. }
  385. if (wifiInfoLogDTO.getLna1Vol() != null && !wifiInfoLogDTO.getLna1Vol().equals("0") && integer != null){
  386. volList.set(integer,Float.valueOf(wifiInfoLogDTO.getLna1Vol()));
  387. }
  388. break;
  389. case 0 :
  390. if (wifiInfoLogDTO.getCurrent() != null && !wifiInfoLogDTO.getCurrent().equals("0") && integer != null){
  391. curList.set(integer,Float.valueOf(wifiInfoLogDTO.getCurrent()));
  392. }
  393. if (wifiInfoLogDTO.getVoltage() != null && !wifiInfoLogDTO.getVoltage().equals("0") && integer != null){
  394. volList.set(integer,Float.valueOf(wifiInfoLogDTO.getVoltage()));
  395. }
  396. if (wifiInfoLogDTO.getPower() != null && !wifiInfoLogDTO.getPower().equals("0") && integer != null){
  397. powerList.set(integer,Float.valueOf(wifiInfoLogDTO.getPower()));
  398. }
  399. if (wifiInfoLogDTO.getTotalComA() != null && !wifiInfoLogDTO.getTotalComA().equals("0") && integer != null){
  400. comList.set(integer,Float.valueOf(wifiInfoLogDTO.getTotalComA()));
  401. }
  402. break;
  403. }
  404. }
  405. date = new Date(simpleDateFormat2.parse(wifiInfoLogDTO.getUpdateTime()).getTime() + timezone * 3600 * 1000);
  406. wifiInfoLogDTO.setUpdateTime(simpleDateFormat.format(date));
  407. }
  408. }
  409. WifiInfoLogVO wifiInfoLogVO = new WifiInfoLogVO();
  410. wifiInfoLogVO.setCurArr(curList);
  411. wifiInfoLogVO.setVolArr(volList);
  412. wifiInfoLogVO.setPowerArr(powerList);
  413. wifiInfoLogVO.setDateArr(dateList);
  414. wifiInfoLogVO.setComArr(comList);
  415. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,wifiInfoLogVO);
  416. }
  417. /**
  418. * 获取气象站数据列表
  419. * @param request
  420. * @return
  421. */
  422. @RequestMapping(value = "/weatherList", method = RequestMethod.POST)
  423. public BaseResult<EnvmonitorDTO> weatherList(HttpServletRequest request){
  424. Integer page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  425. Integer count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  426. Integer online = request.getParameter("online") == null ? 0 : Integer.parseInt(request.getParameter("online"));
  427. EnvmonitorDTO dto = new EnvmonitorDTO();
  428. dto.setPage(count * (page - 1));
  429. dto.setCount(count);
  430. dto.setOnline(online);
  431. dto.setSectionList(toolUtils.getSectionList(request));
  432. EnvmonitorVO vo = envmonitorService.getWeatherList(dto);
  433. return BaseResult.success(vo);
  434. }
  435. /**
  436. * 获取气象站概览数据
  437. * @param request
  438. * @return
  439. */
  440. @RequestMapping(value = "/weatherInfo", method = RequestMethod.POST,produces = "application/json;charset=utf-8")
  441. public BaseResult<EnvmonitorDTO> weatherInfo(HttpServletRequest request){
  442. EnvmonitorDTO dto = new EnvmonitorDTO();
  443. dto.setSectionList(toolUtils.getSectionList(request));
  444. EnvmonitorVO vo = envmonitorService.getDeviceCountBySectionList(dto);
  445. return BaseResult.success(vo);
  446. }
  447. /**
  448. * 获取广告列表
  449. * @param request 路段筛选,分页
  450. * @return 广告列表
  451. */
  452. @RequestMapping(value = "/screenList", method = RequestMethod.POST)
  453. public BaseResult<?> screenList(HttpServletRequest request){
  454. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  455. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  456. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  457. Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
  458. Integer online = (Integer) toolUtils.getRequestContent(request,"online",1);
  459. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  460. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  461. ScreenVO vo;
  462. ScreenDTO dto = new ScreenDTO();
  463. if (download == 1) {
  464. dto.setOnline(online);
  465. dto.setAreaId(areaId);
  466. dto.setSectionId(sectionId);
  467. dto.setSectionList(toolUtils.getSectionList(request));
  468. vo = screenService.getScreenList(dto);
  469. String title;
  470. if (version == 0) {
  471. title = "名称,序列号,网络状态,开关,亮度值,音量,宽高,所属灯杆,当前节目,电源模式," +
  472. "电压(V),电流(A),功率(W),当天用电(kWh),累计用电(kWh)";
  473. } else if (version == 1) {
  474. title = "Name,Serial Number,Network Status,Switch,Brightness Values,The Volume," +
  475. "High Wide,Lamp Pole,The Current Program,The Power Supply Mode,Voltage(V)," +
  476. "Current(A),Power(W),The Power Consumption(kWh),Total Power Consumption(kWh)";
  477. } else {
  478. title = "серийн номер,сет состоян,выключател,яркост,громкост,ширин высок,фонарн столб," +
  479. "текущ шо,питан модел,напряжен(V),ток(а),мощност(W),мощност ден электричеств(квт. ч)," +
  480. "совокупн электричеств(квт. ч)";
  481. }
  482. List<String> titleList = Arrays.asList(title.split(","));
  483. List<List<String>> contentList = new ArrayList<>();
  484. List<ScreenDTO> list = vo.getList();
  485. for (ScreenDTO s : list) {
  486. List<String> newString = new ArrayList<>();
  487. newString.add(0,s.getName());
  488. newString.add(1,s.getNum());
  489. if (s.getNetStatus() == 1) {
  490. newString.add(2,"在线");
  491. } else {
  492. newString.add(2,"离线");
  493. }
  494. if (s.getStatus() == 1) {
  495. newString.add(3,"开");
  496. } else {
  497. newString.add(3,"关");
  498. }
  499. newString.add(4,s.getLight().toString());
  500. newString.add(5,s.getVolume().toString());
  501. newString.add(6,s.getWidthHeight());
  502. newString.add(7,s.getLampPoleName());
  503. newString.add(8,s.getProgramName());
  504. if (s.getOpenMode() == 1) {
  505. newString.add(9,"自动");
  506. } else {
  507. newString.add(9,"手动");
  508. }
  509. newString.add(10,s.getVoltage().toString());
  510. newString.add(11,s.getCurrent().toString());
  511. newString.add(12,s.getPower().toString());
  512. newString.add(13,s.getDayCom().toString());
  513. newString.add(14,s.getTotalCom().toString());
  514. contentList.add(list.indexOf(s),newString);
  515. }
  516. String path = ExcelUtil.outExcel(titleList, contentList);
  517. vo.setPath(path);
  518. } else {
  519. dto.setPage(count * (page - 1));
  520. dto.setCount(count);
  521. dto.setOnline(online);
  522. dto.setAreaId(areaId);
  523. dto.setSectionId(sectionId);
  524. dto.setSectionList(toolUtils.getSectionList(request));
  525. vo = screenService.getScreenList(dto);
  526. }
  527. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
  528. }
  529. /**
  530. * 操作日志列表
  531. * @param request
  532. * @return
  533. */
  534. @RequestMapping(value = "/logList", method = RequestMethod.POST)
  535. public BaseResult<OperationLogDTO> logList(HttpServletRequest request){
  536. String keyword = request.getParameter("keyword") == null ? "" : request.getParameter("keyword");
  537. String username = request.getParameter("username") == null ? "" : request.getParameter("username");
  538. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  539. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  540. int operaType = request.getParameter("operaType") == null ? 0 : Integer.parseInt(request.getParameter("operaType"));
  541. int devType = request.getParameter("devType") == null ? 0 : Integer.parseInt(request.getParameter("devType"));
  542. OperationLogVO vo = new OperationLogVO();
  543. vo.setKeyword(keyword);
  544. vo.setOffset(count * (page - 1));
  545. vo.setLimit(count);
  546. vo.setOperaType(operaType);
  547. vo.setDevType(devType);
  548. vo.setUsername(username);
  549. OperationLogVO logVO = operationLogService.getLogListByVO(vo);
  550. return BaseResult.success(logVO);
  551. }
  552. /**
  553. * 删除日志信息
  554. * @param request
  555. * @return
  556. */
  557. @RequestMapping(value = "/delLog", method = RequestMethod.POST)
  558. public BaseResult delLog(HttpServletRequest request){
  559. Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  560. String logId = request.getParameter("logId");
  561. if (logId == null || logId.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  562. String[] split = logId.split(",");
  563. for (String id :split) {
  564. int l = Integer.parseInt(id);
  565. operationLogService.deleteLogListById(l);
  566. }
  567. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  568. }
  569. /**
  570. * 获取灯控日志信息
  571. * @param request
  572. * @return
  573. */
  574. @RequestMapping(value = "/lampDataHistory", method = RequestMethod.POST)
  575. public BaseResult lampDataHistory(HttpServletRequest request) throws ParseException {
  576. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  577. // List sectionList = toolUtils.getSectionList(request);lampId
  578. Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
  579. if (lampId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  580. LampInfoDTO detailsById = lampService.getDetailsById(lampId, version);
  581. if (detailsById == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  582. Integer dateType = (Integer) toolUtils.getRequestContent(request,"dateType",1);
  583. long l = System.currentTimeMillis()-detailsById.getTimezone()*3600*1000;
  584. Long startTime = 0L;
  585. Long endTime = 0L;
  586. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  587. if (dateType == 0){ // 1 天
  588. startTime = l - 24*3600*1000;
  589. endTime = l;
  590. }else if (dateType == 1){ // 3 天
  591. startTime = l - 24*3600*1000*3;
  592. endTime = l;
  593. }else if (dateType == 2){ // 7 天
  594. startTime = l - 24*3600*1000*7;
  595. endTime = l;
  596. }else if (dateType == 3){ // 14 天
  597. startTime = l - 24*3600*1000*14;
  598. endTime = l;
  599. }else if (dateType == 4){ // 日期选择 最多30天
  600. String date = (String) toolUtils.getRequestContent(request,"date",2);
  601. if (date.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR,version);
  602. List<String> split = Arrays.asList(date.split("/"));
  603. System.out.println(split.toString());
  604. System.out.println(split.get(0));
  605. System.out.println(split.get(1));
  606. startTime = simpleDateFormat.parse(split.get(0) + " 00:00:00").getTime();
  607. endTime = simpleDateFormat.parse(split.get(1) + " 23:59:59").getTime();
  608. if (endTime < startTime) toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR,version);
  609. if (endTime - startTime > 29*24*3600*1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
  610. startTime -= detailsById.getTimezone()*3600*1000;
  611. endTime -= detailsById.getTimezone()*3600*1000;
  612. }
  613. HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
  614. Long timeT = startTime;
  615. int i = 0;
  616. ArrayList<Object> dateList = new ArrayList<>();
  617. ArrayList<Object> volList = new ArrayList<>();
  618. ArrayList<Object> curList = new ArrayList<>();
  619. ArrayList<Object> powerList = new ArrayList<>();
  620. ArrayList<Object> lightList = new ArrayList<>();
  621. ArrayList<LampInfoLogDTO> list = new ArrayList<>();
  622. simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
  623. while (timeT < endTime){
  624. objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)).toString(),i);
  625. dateList.add(simpleDateFormat.format(new Date(timeT+detailsById.getTimezone()*3600*1000)).toString());
  626. volList.add(0);
  627. powerList.add(0);
  628. lightList.add(0);
  629. curList.add(0);
  630. list.add(null);
  631. timeT += 3600*1000;
  632. i ++;
  633. }
  634. SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  635. String startDate = simpleDateFormat.format(new Date(startTime));
  636. String endDate = simpleDateFormat.format(new Date(endTime));
  637. LampLogVO lampLogVO = new LampLogVO();
  638. lampLogVO.setLampId(lampId);
  639. lampLogVO.setStartDate(startDate);
  640. lampLogVO.setEndDate(endDate);
  641. List<LampInfoLogDTO> listByVO = lampInfoLogService.getListByVO(lampLogVO);
  642. for (LampInfoLogDTO lampInfoLogDTO :listByVO) {
  643. Date date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime());
  644. String s = simpleDateFormat.format(date).toString();
  645. System.out.println(s);
  646. if (objectObjectHashMap.containsKey(s)){
  647. Integer integer = objectObjectHashMap.get(s);
  648. list.set(integer,lampInfoLogDTO);
  649. }
  650. }
  651. LampLogVO lampLogVO1 = new LampLogVO();
  652. Float maxCur = Float.valueOf(lampLogVO1.getMaxCur() == null ? "0" : lampLogVO1.getMaxCur());
  653. Float maxPower = Float.valueOf(lampLogVO1.getMaxPower() == null ? "0":lampLogVO1.getMaxPower());
  654. Integer maxLight = Integer.valueOf(lampLogVO1.getMaxLight() == null ? "0":lampLogVO1.getMaxLight());
  655. Float maxVol = Float.valueOf(lampLogVO1.getMaxVol()==null?"0":lampLogVO1.getMaxVol());
  656. ArrayList<Object> logList = new ArrayList<>();
  657. for (LampInfoLogDTO lampInfoLogDTO:list) {
  658. if (lampInfoLogDTO != null){
  659. Date date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime());
  660. String s = simpleDateFormat.format(date).toString();
  661. System.out.println(s);
  662. Integer integer = null;
  663. if (objectObjectHashMap.containsKey(s)){
  664. integer = objectObjectHashMap.get(s);
  665. list.set(integer,lampInfoLogDTO);
  666. }
  667. if (lampInfoLogDTO.getCurrent() != null && !lampInfoLogDTO.getCurrent().equals("0") && integer != null){
  668. curList.set(integer,Float.valueOf(lampInfoLogDTO.getCurrent()));
  669. if (maxCur < Float.valueOf(lampInfoLogDTO.getCurrent()))maxCur = Float.valueOf(lampInfoLogDTO.getCurrent());
  670. }
  671. if (lampInfoLogDTO.getVoltage() != null && !lampInfoLogDTO.getVoltage().equals("0") && integer != null){
  672. volList.set(integer,Float.valueOf(lampInfoLogDTO.getVoltage()));
  673. if (maxVol < Float.valueOf(lampInfoLogDTO.getVoltage()))maxVol = Float.valueOf(lampInfoLogDTO.getVoltage());
  674. }
  675. if (lampInfoLogDTO.getDimValue() != null && !lampInfoLogDTO.getDimValue().equals("0") && integer != null){
  676. lightList.set(integer,Integer.valueOf(lampInfoLogDTO.getDimValue()));
  677. if (maxLight < Integer.valueOf(lampInfoLogDTO.getDimValue()))maxLight = Integer.valueOf(lampInfoLogDTO.getDimValue());
  678. }
  679. if (lampInfoLogDTO.getPower() != null && !lampInfoLogDTO.getPower().equals("0") && integer != null){
  680. powerList.set(integer,Float.valueOf(lampInfoLogDTO.getPower()));
  681. if (maxPower < Float.valueOf(lampInfoLogDTO.getPower()))maxPower = Float.valueOf(lampInfoLogDTO.getPower());
  682. }
  683. if (maxLight.intValue() < Integer.valueOf(lampInfoLogDTO.getDimValue()).intValue())maxLight = Integer.valueOf(lampInfoLogDTO.getDimValue());
  684. date = new Date(simpleDateFormat2.parse(lampInfoLogDTO.getUpdateTime()).getTime()+detailsById.getTimezone()*3600*1000);
  685. lampInfoLogDTO.setUpdateTime(simpleDateFormat.format(date).toString());
  686. logList.add(lampInfoLogDTO);
  687. }
  688. }
  689. lampLogVO1.setCurList(curList);
  690. lampLogVO1.setVolList(volList);
  691. lampLogVO1.setPowerList(powerList);
  692. lampLogVO1.setLightList(lightList);
  693. lampLogVO1.setDateList(dateList);
  694. lampLogVO1.setList(logList);
  695. lampLogVO1.setStep(3600);
  696. lampLogVO1.setMaxCur(maxCur.toString());
  697. lampLogVO1.setMaxLight(maxLight.toString());
  698. lampLogVO1.setMaxPower(maxPower.toString());
  699. lampLogVO1.setMaxVol(maxVol.toString());
  700. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampLogVO1);
  701. }
  702. /**
  703. * 灯杆列表
  704. * @param request
  705. * @return
  706. */
  707. @RequestMapping(value = "/lampPoleList", method = RequestMethod.POST)
  708. public BaseResult lampPoleList(HttpServletRequest request) {
  709. Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  710. Integer isInspec = request.getParameter("isInspec") == null || request.getParameter("isInspec").length() == 0 ? null : Integer.parseInt(request.getParameter("isInspec"));
  711. String keyword = request.getParameter("keyword") == null ? "" : request.getParameter("keyword");
  712. List sectionList = toolUtils.getSectionList(request);
  713. Integer page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  714. Integer count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  715. Integer limit = count;
  716. Integer offset = (page-1)*count;
  717. LampPoleVO lampPoleVO = new LampPoleVO();
  718. lampPoleVO.setVersion(version);
  719. lampPoleVO.setSectionList(sectionList);
  720. lampPoleVO.setLimit(limit);
  721. lampPoleVO.setOffset(offset);
  722. if (isInspec != null) lampPoleVO.setIsInspec(isInspec);
  723. if (keyword != null && keyword.length() != 0) lampPoleVO.setKeyword(keyword);
  724. List<LampPoleDTO> lampPoleDTOS = lampPoleService.lampPoleList(lampPoleVO);
  725. ListResponseVO listResponseVO = new ListResponseVO();
  726. listResponseVO.setList(lampPoleDTOS);
  727. listResponseVO.setTotal(lampPoleService.lampPoleCount(lampPoleVO));
  728. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,listResponseVO);
  729. }
  730. /**
  731. * 灯杆详情
  732. * @param request
  733. * @return
  734. */
  735. @RequestMapping(value = "/lampPoleInfo", method = RequestMethod.POST)
  736. public BaseResult lampPoleInfo(HttpServletRequest request) throws ParseException {
  737. Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
  738. List sectionList = toolUtils.getSectionList(request);
  739. LampPoleVO lampPoleVO = new LampPoleVO();
  740. lampPoleVO.setSectionList(sectionList);
  741. List<LampPoleDTO> listByVO = lampPoleService.getListByVO(lampPoleVO);
  742. ArrayList<Integer> lampPoleIds = new ArrayList<>();
  743. lampPoleIds.add(0);
  744. for (LampPoleDTO l :listByVO) {
  745. lampPoleIds.add(l.getId());
  746. }
  747. Integer countByLampPoleIdList = lampPoleAlarmLogService.getCountByLampPoleIdList(lampPoleIds);
  748. LampPoleInfoVO lampPoleInfoVO = new LampPoleInfoVO();
  749. lampPoleInfoVO.setDeviceCount(listByVO.size());
  750. lampPoleInfoVO.setRunCount(listByVO.size()-countByLampPoleIdList);
  751. lampPoleInfoVO.setFaultCount(countByLampPoleIdList);
  752. int newCount = 0;
  753. for (LampPoleDTO l :listByVO) {
  754. if (l.getCreateTime() != null){
  755. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  756. Date date = sdf.parse(l.getCreateTime());
  757. long time = date.getTime();
  758. if (System.currentTimeMillis() - time <= 3600*24*30*1000){
  759. newCount ++;
  760. }
  761. }
  762. }
  763. lampPoleInfoVO.setNewCount(newCount);
  764. lampPoleInfoVO.setDisableCount(0);
  765. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleInfoVO);
  766. }
  767. /**
  768. * 云盒气象站RS485设备信息列表
  769. * @param request
  770. * @return
  771. */
  772. @RequestMapping(value = "/GWRS485DevList",method = RequestMethod.POST)
  773. public BaseResult GWRS485DevList(HttpServletRequest request) {
  774. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  775. ArrayList<GWRSDevDTO> gWRSDevDTOS = new ArrayList<>();
  776. GWRSDevDTO gWRSDevDTO = new GWRSDevDTO();
  777. gWRSDevDTO.setId(1);
  778. gWRSDevDTO.setName("百叶箱 X 6");
  779. gWRSDevDTOS.add(gWRSDevDTO);
  780. gWRSDevDTO = new GWRSDevDTO();
  781. gWRSDevDTO.setId(2);
  782. gWRSDevDTO.setName("风向");
  783. gWRSDevDTOS.add(gWRSDevDTO);
  784. gWRSDevDTO = new GWRSDevDTO();
  785. gWRSDevDTO.setId(3);
  786. gWRSDevDTO.setName("风速");
  787. gWRSDevDTOS.add(gWRSDevDTO);
  788. gWRSDevDTO = new GWRSDevDTO();
  789. gWRSDevDTO.setId(4);
  790. gWRSDevDTO.setName("雨量");
  791. gWRSDevDTOS.add(gWRSDevDTO);
  792. gWRSDevDTO = new GWRSDevDTO();
  793. gWRSDevDTO.setId(5);
  794. gWRSDevDTO.setName("太阳辐射");
  795. gWRSDevDTOS.add(gWRSDevDTO);
  796. gWRSDevDTO = new GWRSDevDTO();
  797. gWRSDevDTO.setId(6);
  798. gWRSDevDTO.setName("百叶箱 X 10");
  799. gWRSDevDTOS.add(gWRSDevDTO);
  800. gWRSDevDTO = new GWRSDevDTO();
  801. gWRSDevDTO.setId(7);
  802. gWRSDevDTO.setName("超声波风速风向");
  803. gWRSDevDTOS.add(gWRSDevDTO);
  804. ListResponseVO listResponseVO = new ListResponseVO();
  805. listResponseVO.setList(gWRSDevDTOS);
  806. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,listResponseVO);
  807. }
  808. /**
  809. * 照明设备列表
  810. * @param request 路段筛选,分页,关键字搜索
  811. * @return 照明设备列表
  812. */
  813. @RequestMapping(value = "/lampList",method = RequestMethod.POST)
  814. public BaseResult<?> lampList(HttpServletRequest request) {
  815. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  816. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  817. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  818. Integer online = (Integer) toolUtils.getRequestContent(request,"online",1);
  819. String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
  820. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  821. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  822. LampVO lampVO = new LampVO();
  823. lampVO.setOnline(online);
  824. lampVO.setVersion(version);
  825. lampVO.setAreaId(areaId);
  826. lampVO.setSectionId(sectionId);
  827. lampVO.setKeyword(keyword);
  828. lampVO.setPage(page);
  829. lampVO.setCount(count);
  830. lampVO.setSectionList(toolUtils.getSectionList(request));
  831. List<LampInfoDTO> lampList = lampService.getLampList(lampVO);
  832. List<LampInfoDTO> list = new ArrayList<>();
  833. lampList.forEach(dto -> {
  834. if (dto.getArea() == null) {
  835. dto.setArea("");
  836. }
  837. if (dto.getSection() == null) {
  838. dto.setSection("");
  839. }
  840. if (dto.getLampPoleName() == null) {
  841. dto.setLampPoleName("");
  842. }
  843. if (dto.getPolicyName() == null) {
  844. dto.setPolicyName("");
  845. }
  846. if (dto.getServerTime() == null) {
  847. dto.setServerTime("");
  848. }
  849. list.add(dto);
  850. });
  851. Integer lampTotal = lampService.getLampTotal(lampVO);
  852. LampVO lampVO1 = new LampVO();
  853. lampVO1.setList(list);
  854. lampVO1.setTotal(lampTotal);
  855. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampVO1);
  856. }
  857. /**
  858. * 照明数据概览
  859. * @param request sectionList、areaId、sectionId
  860. * @return lampDataVO
  861. */
  862. @RequestMapping(value = "/lampInfo", method = RequestMethod.POST)
  863. public BaseResult<?> lampInfo(HttpServletRequest request) {
  864. Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
  865. Integer areaId = (Integer) toolUtils.getRequestContent(request, "areaId", 1);
  866. Integer sectionId = (Integer) toolUtils.getRequestContent(request, "sectionId", 1);
  867. LampInfoDTO lampInfoDTO = new LampInfoDTO();
  868. lampInfoDTO.setAreaId(areaId);
  869. lampInfoDTO.setSectionId(sectionId);
  870. lampInfoDTO.setSectionList(toolUtils.getSectionList(request));
  871. Integer lampInstallTotal = lampService.getLampInstallTotalByDTO(lampInfoDTO);
  872. Integer lampOnlineTotal = lampService.getLampOnlineTotalByDTO(lampInfoDTO);
  873. Integer lampFaultTotal = lampService.getLampFaultTotalByDTO(lampInfoDTO);
  874. Integer lampLightTotal = lampService.getLampLightTotalByDTO(lampInfoDTO);
  875. LampInfoLogNewDTO sumEle = lampInfoLogNewService.getSumEleByDTO(lampInfoDTO);
  876. LampInfoLogNewDTO todayEle = lampInfoLogNewService.getTodayEleByDTO(lampInfoDTO);
  877. DecimalFormat decimalFormat = new DecimalFormat("0.00");
  878. String formatConDayEle,formatConSumEle;
  879. Float daySumEle,conSumEle;
  880. if (todayEle != null) {
  881. daySumEle = Float.parseFloat(todayEle.getSumDayGeneraEnergy());
  882. formatConDayEle = decimalFormat.format(daySumEle);
  883. } else {
  884. daySumEle = 0f;
  885. formatConDayEle = "0";
  886. }
  887. if (sumEle != null) {
  888. conSumEle = Float.parseFloat(sumEle.getSumTotalGeneraEnergy()) + daySumEle;
  889. } else {
  890. conSumEle = 0 + daySumEle;
  891. }
  892. formatConSumEle = decimalFormat.format(conSumEle);
  893. LampDataVO lampDataVO = new LampDataVO();
  894. lampDataVO.setInstallCount(lampInstallTotal);
  895. lampDataVO.setOnlineCount(lampOnlineTotal);
  896. lampDataVO.setFaultCount(lampFaultTotal);
  897. lampDataVO.setLightingCount(lampLightTotal);
  898. lampDataVO.setConSumEle(formatConSumEle);
  899. lampDataVO.setConDayEle(formatConDayEle);
  900. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampDataVO);
  901. }
  902. /**
  903. * 摄像头列表
  904. * @param request sectionList、areaId、sectionId
  905. * @return 摄像头列表
  906. */
  907. @RequestMapping(value = "/videoInfoList", method = RequestMethod.POST)
  908. public BaseResult<?> videoInfoList(HttpServletRequest request) {
  909. Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
  910. Integer areaId = (Integer) toolUtils.getRequestContent(request, "areaId", 1);
  911. Integer sectionId = (Integer) toolUtils.getRequestContent(request, "sectionId", 1);
  912. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  913. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  914. VideoMonitorVO videoMonitorVO = new VideoMonitorVO();
  915. videoMonitorVO.setLimit(count * (page - 1));
  916. videoMonitorVO.setOffset(count);
  917. videoMonitorVO.setAreaId(areaId);
  918. videoMonitorVO.setSectionId(sectionId);
  919. videoMonitorVO.setSectionList(toolUtils.getSectionList(request));
  920. List<VideoMonitorDTO> videoInfoList = videoMonitorService.getVideoInfoList(videoMonitorVO);
  921. List<VideoMonitorDTO> list = new ArrayList<>();
  922. videoInfoList.forEach(dto -> {
  923. if (dto.getLampPoleName() == null) {
  924. dto.setLampPoleName("");
  925. }
  926. dto.setToken("");
  927. dto.setEzOpen("");
  928. dto.setEzOpenHd("");
  929. dto.setIsMse(0);
  930. dto.setMseUrl("");
  931. dto.setUuid("");
  932. list.add(dto);
  933. });
  934. Integer videoTotal = videoMonitorService.getVideoTotal(videoMonitorVO);
  935. VideoMonitorVO vo = new VideoMonitorVO();
  936. vo.setList(list);
  937. vo.setTotal(videoTotal);
  938. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
  939. }
  940. /**
  941. * 摄像头数据概览
  942. * @param request sectionList、areaId、sectionId
  943. * @return 摄像头数据概览
  944. */
  945. @RequestMapping(value = "/videoInfo", method = RequestMethod.POST)
  946. public BaseResult<?> videoInfo(HttpServletRequest request) {
  947. Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
  948. Integer areaId = (Integer) toolUtils.getRequestContent(request, "areaId", 1);
  949. Integer sectionId = (Integer) toolUtils.getRequestContent(request, "sectionId", 1);
  950. VideoMonitorVO videoMonitorVO = new VideoMonitorVO();
  951. videoMonitorVO.setAreaId(areaId);
  952. videoMonitorVO.setSectionId(sectionId);
  953. videoMonitorVO.setSectionList(toolUtils.getSectionList(request));
  954. Integer videoTotal = videoMonitorService.getVideoTotal(videoMonitorVO);
  955. Integer videoUsableTotal = videoMonitorService.getVideoUsableTotal(videoMonitorVO);
  956. Integer videoOnlineTotal = videoMonitorService.getVideoOnlineTotal(videoMonitorVO);
  957. VideoMonitorVO vo = new VideoMonitorVO();
  958. vo.setTotal(videoTotal);
  959. vo.setOnlineCount(videoOnlineTotal);
  960. vo.setUseCount(videoUsableTotal);
  961. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
  962. }
  963. }