NetworkController.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. package com.welampiot.controller;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dto.NetInfoDTO;
  5. import com.welampiot.dto.NetworkDTO;
  6. import com.welampiot.dto.UserDTO;
  7. import com.welampiot.service.NetInfoService;
  8. import com.welampiot.service.NetworkService;
  9. import com.welampiot.service.UserService;
  10. import com.welampiot.utils.ExcelUtil;
  11. import com.welampiot.utils.ToolUtils;
  12. import com.welampiot.vo.NetInfoDetailVO;
  13. import com.welampiot.vo.NetInfoVO;
  14. import com.welampiot.vo.NetworkVO;
  15. import org.springframework.beans.BeanUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.text.ParseException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.*;
  23. /**
  24. * ClassName: NetworkController
  25. * Package: com.welampiot.controller
  26. * Description:
  27. *
  28. * @Author: zhj_Start
  29. * @Create: 2023/7/25 - 15:22
  30. * @Version: v1.0
  31. */
  32. @RestController
  33. @CrossOrigin
  34. @RequestMapping("/network")
  35. public class NetworkController {
  36. @Autowired
  37. private NetworkService networkService;
  38. @Autowired
  39. private ToolUtils toolUtils;
  40. @Autowired
  41. private NetInfoService netInfoService;
  42. @Autowired
  43. private UserService userService;
  44. /**
  45. * 网关详情
  46. * @param request sectionList、网关id
  47. * @return 网关详情
  48. */
  49. @RequestMapping(value = "/details", method = RequestMethod.POST)
  50. public BaseResult<?> details(HttpServletRequest request) {
  51. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  52. Integer networkId = (Integer) toolUtils.getRequestContent(request,"networkId",1);
  53. if (networkId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  54. NetworkDTO networkDTO = new NetworkDTO();
  55. networkDTO.setVersion(version);
  56. networkDTO.setId(networkId);
  57. NetworkDTO dto = networkService.getNetworkDetails(networkDTO);
  58. if (dto == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  59. // 协议类型(0 = lorawan, 1 = lora mesh, 2 = rf mesh, 3 = nbIot,
  60. // 4 = gprs_direct, 5 = zigbee, 6 = LoraWAN, 7 = oneNet, 8 = eMqtt,
  61. // 9 = LC-6B11-J, 10 = WE-CON-4G20(双路控制), 11 = PLC(有单灯,也有双灯控制器), 12 = 铂胜lora)
  62. String protocolTypeStr = ToolUtils.getProtocolTypeStr(dto.getProtocolType());
  63. dto.setProtocolTypeStr(protocolTypeStr);
  64. // 频段信息(0 CN470,1 EU863,2 AU915,3 US902,4 AS923)
  65. if (dto.getFreBandInfo() == 4) {
  66. dto.setFreBandInfoStr("AS923");
  67. } else if (dto.getFreBandInfo() == 3) {
  68. dto.setFreBandInfoStr("US902");
  69. } else if (dto.getFreBandInfo() == 2) {
  70. dto.setFreBandInfoStr("AU915");
  71. } else if (dto.getFreBandInfo() == 1) {
  72. dto.setFreBandInfoStr("EU863");
  73. } else {
  74. dto.setFreBandInfoStr("CN470");
  75. }
  76. if (dto.getArea() == null) {
  77. dto.setArea("");
  78. }
  79. if (dto.getSection() == null) {
  80. dto.setSection("");
  81. }
  82. NetworkVO networkVO = new NetworkVO();
  83. BeanUtils.copyProperties(dto,networkVO);
  84. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO);
  85. }
  86. /**
  87. * 网关下拉列表
  88. * @param request sectionList
  89. * @return 网关下拉列表
  90. */
  91. @PostMapping("/nav")
  92. private BaseResult<?> nav(HttpServletRequest request){
  93. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  94. NetworkDTO dto = new NetworkDTO();
  95. dto.setSectionList(toolUtils.getSectionList(request));
  96. List<NetworkDTO> networkNavList = networkService.getNetworkNavList(dto);
  97. NetworkVO networkVO = new NetworkVO();
  98. networkVO.setList(networkNavList);
  99. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO);
  100. }
  101. /**
  102. * 网关列表
  103. * @param request sectionList,分页,关键字搜索
  104. * @return 网关列表
  105. */
  106. @PostMapping("/netInfoList")
  107. private BaseResult<?> netInfoList(HttpServletRequest request){
  108. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  109. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  110. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  111. String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
  112. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  113. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  114. NetInfoVO netInfoVO = new NetInfoVO();
  115. netInfoVO.setPage(count * (page - 1));
  116. netInfoVO.setCount(count);
  117. netInfoVO.setAreaId(areaId);
  118. netInfoVO.setSectionId(sectionId);
  119. netInfoVO.setKeyword(keyword);
  120. netInfoVO.setSectionList(toolUtils.getSectionList(request));
  121. List<NetInfoDTO> netInfoList = netInfoService.getNetInfoListByNetInfoVO(netInfoVO);
  122. Integer netInfoTotal = netInfoService.getNetInfoTotal(netInfoVO);
  123. double ceil = Math.ceil((double) netInfoTotal / count);
  124. NetInfoVO netInfoVO1 = new NetInfoVO();
  125. netInfoVO1.setList(netInfoList);
  126. netInfoVO1.setTotal((int) ceil);
  127. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,netInfoVO1);
  128. }
  129. /**
  130. * 网关统计信息
  131. * @param request sectionList
  132. * @return 网关统计信息
  133. */
  134. @PostMapping("/netInfoData")
  135. private BaseResult<?> netInfoData(HttpServletRequest request){
  136. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  137. NetInfoVO netInfoVO = new NetInfoVO();
  138. netInfoVO.setSectionList(toolUtils.getSectionList(request));
  139. Integer total = netInfoService.getNetInfoTotal(netInfoVO);
  140. Integer onlineTotal = netInfoService.getNetInfoOnlineTotal(netInfoVO);
  141. Integer welTotal = netInfoService.getNetInfoWelTotal(netInfoVO);
  142. Integer solarTotal = netInfoService.getNetInfoSolarTotal(netInfoVO);
  143. Integer ethTotal = netInfoService.getNetInfoETHTotal(netInfoVO);
  144. Integer fourTotal = netInfoService.getNetInfo4GTotal(netInfoVO);
  145. Integer failTotal = netInfoService.getNetInfoFailTotal(netInfoVO);
  146. NetInfoVO netInfoVO1 = new NetInfoVO();
  147. netInfoVO1.setTotal(total);
  148. netInfoVO1.setOnlineCount(onlineTotal);
  149. netInfoVO1.setWelCount(welTotal);
  150. netInfoVO1.setSolarCount(solarTotal);
  151. netInfoVO1.setEthCount(ethTotal);
  152. netInfoVO1.setFourGCount(fourTotal);
  153. netInfoVO1.setFailCount(failTotal);
  154. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,netInfoVO1);
  155. }
  156. /**
  157. * 网关详情
  158. * @param request 网关id
  159. * @return 网关详情
  160. */
  161. @PostMapping("/netInfo")
  162. private BaseResult<?> netInfo(HttpServletRequest request){
  163. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  164. Integer netId = (Integer) toolUtils.getRequestContent(request,"netId",1);
  165. if (netId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  166. NetInfoDTO netInfoDTO = netInfoService.getNetInfoDetailsByNetId(netId);
  167. NetInfoDetailVO netInfoDetailVO = new NetInfoDetailVO();
  168. if (netInfoDTO == null)
  169. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,netInfoDetailVO);
  170. BeanUtils.copyProperties(netInfoDTO,netInfoDetailVO);
  171. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,netInfoDetailVO);
  172. }
  173. /**
  174. * 添加网关
  175. * @param request 网关属性
  176. * @return 添加网关
  177. */
  178. @PostMapping("/addNet")
  179. private BaseResult<?> addNet(HttpServletRequest request){
  180. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  181. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  182. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  183. String netId = (String) toolUtils.getRequestContent(request,"netId",2);
  184. String netName = (String) toolUtils.getRequestContent(request,"netName",2);
  185. if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
  186. if (areaId == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
  187. if (netId.length() == 0 || netName.length() == 0)
  188. return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
  189. NetInfoDTO netInfoDTO = new NetInfoDTO();
  190. netInfoDTO.setNetId(netId);
  191. netInfoDTO.setSectionId(sectionId);
  192. if (netInfoService.checkNetInfoData(netInfoDTO) > 0)
  193. return toolUtils.response(InterfaceResultEnum.NET_ID_UNIQUE_ERROR,version);
  194. netInfoDTO = new NetInfoDTO();
  195. netInfoDTO.setSectionId(sectionId);
  196. netInfoDTO.setNetName(netName);
  197. if (netInfoService.checkNetInfoData(netInfoDTO) > 0)
  198. return toolUtils.response(InterfaceResultEnum.NET_NAME_UNIQUE_ERROR,version);
  199. netInfoDTO.setAreaId(areaId);
  200. netInfoDTO.setNetId(netId);
  201. long l = System.currentTimeMillis();
  202. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  203. String format = simpleDateFormat.format(l);
  204. netInfoDTO.setUpdateTime(format);
  205. netInfoService.addNetInfoData(netInfoDTO);
  206. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  207. }
  208. /**
  209. * 修改网关信息
  210. * @param request 网关属性
  211. * @return 修改网关信息
  212. */
  213. @PostMapping("/updateNetInfo")
  214. private BaseResult<?> updateNetInfo(HttpServletRequest request){
  215. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  216. Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
  217. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  218. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  219. String netId = (String) toolUtils.getRequestContent(request,"netId",2);
  220. String netName = (String) toolUtils.getRequestContent(request,"netName",2);
  221. if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  222. if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
  223. if (areaId == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
  224. if (netId.length() == 0 || netName.length() == 0)
  225. return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
  226. NetInfoDTO netInfoDTO = new NetInfoDTO();
  227. netInfoDTO.setId(id);
  228. netInfoDTO.setNetId(netId);
  229. netInfoDTO.setSectionId(sectionId);
  230. if (netInfoService.checkNetInfoData(netInfoDTO) > 0)
  231. return toolUtils.response(InterfaceResultEnum.NET_ID_UNIQUE_ERROR,version);
  232. netInfoDTO = new NetInfoDTO();
  233. netInfoDTO.setId(id);
  234. netInfoDTO.setSectionId(sectionId);
  235. netInfoDTO.setNetName(netName);
  236. if (netInfoService.checkNetInfoData(netInfoDTO) > 0)
  237. return toolUtils.response(InterfaceResultEnum.NET_NAME_UNIQUE_ERROR,version);
  238. netInfoDTO.setAreaId(areaId);
  239. netInfoDTO.setNetId(netId);
  240. long l = System.currentTimeMillis();
  241. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  242. String format = simpleDateFormat.format(l);
  243. netInfoDTO.setUpdateTime(format);
  244. netInfoService.updateNetInfoData(netInfoDTO);
  245. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  246. }
  247. /**
  248. * sim列表信息
  249. * @param request sectionList,分页
  250. * @return sim列表信息
  251. */
  252. @PostMapping("/simList")
  253. private BaseResult<?> simList(HttpServletRequest request) throws ParseException {
  254. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  255. Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
  256. Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
  257. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  258. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  259. Integer expirationStatus = (Integer) toolUtils.getRequestContent(request,"expirationStatus",1);
  260. if (page == 0) page = 1;
  261. if (count == 0) count = 16;
  262. NetworkVO networkVO = new NetworkVO();
  263. networkVO.setPage(count * (page - 1));
  264. networkVO.setCount(count);
  265. networkVO.setAreaId(areaId);
  266. networkVO.setSectionId(sectionId);
  267. networkVO.setExpirationStatus(expirationStatus);
  268. networkVO.setVersion(version);
  269. networkVO.setSectionList(toolUtils.getSectionList(request));
  270. List<NetworkDTO> simList = networkService.getSimList(networkVO);
  271. for (NetworkDTO dto : simList) {
  272. if (dto.getExpirationTime() != null && !dto.getExpirationTime().isEmpty()) {
  273. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  274. Date date = simpleDateFormat.parse(dto.getExpirationTime());
  275. long time = date.getTime(); // 过期时间戳
  276. long currentTimeMillis = System.currentTimeMillis(); // 当前时间戳
  277. if (currentTimeMillis > time) { // 已过期
  278. dto.setExpirationStatus(3);
  279. } else {
  280. long l = time - currentTimeMillis;
  281. if (l > 30 * 24 * 3600 * 1000L) { // 正常
  282. dto.setExpirationStatus(1);
  283. } else { // 快过期(大于当前时间30天以内)
  284. dto.setExpirationStatus(2);
  285. }
  286. }
  287. }
  288. }
  289. Integer total = networkService.getSimTotal(networkVO);
  290. NetworkVO networkVO1 = new NetworkVO();
  291. networkVO1.setList(simList);
  292. networkVO1.setTotal(total);
  293. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
  294. }
  295. /**
  296. * 网关列表
  297. * @param request sectionList,分页,关键字搜索
  298. * @return 网关列表
  299. */
  300. @PostMapping("/getList")
  301. private BaseResult<?> getList(HttpServletRequest request) {
  302. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  303. Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
  304. Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
  305. Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
  306. String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
  307. int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
  308. int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
  309. NetworkVO networkVO = new NetworkVO();
  310. if (download == 0) {
  311. networkVO.setPage(count * (page - 1));
  312. networkVO.setCount(count);
  313. }
  314. networkVO.setAreaId(areaId);
  315. networkVO.setSectionId(sectionId);
  316. networkVO.setKeyword(keyword);
  317. networkVO.setVersion(version);
  318. networkVO.setSectionList(toolUtils.getSectionList(request));
  319. List<NetworkDTO> list = networkService.getNetworkList(networkVO);
  320. list.forEach(dto -> dto.setProtocolTypeStr(ToolUtils.getProtocolTypeStr(dto.getProtocolType())));
  321. NetworkVO networkVO1 = new NetworkVO();
  322. networkVO1.setList(list);
  323. if (download == 1) {
  324. String title;
  325. if (version == 0) {
  326. title = "序号,网关名称,SN码,在线状态,协议类型,型号,区域,路段,经度,纬度,路灯数";
  327. } else if (version == 1) {
  328. title = "Serial Number,Gateway Name,SN Code,Online Status,Protocol Type,Model," +
  329. "Area,Road Section,Longitude,Latitude,Number of Street Lights";
  330. } else {
  331. title = "Серийный номер,название шлюза,код SN,состояние онлайн,тип протокола,модель," +
  332. "область,участок,долгота,широта,количество уличные фонари";
  333. }
  334. List<String> titleList = Arrays.asList(title.split(","));
  335. List<List<String>> contentList = new ArrayList<>();
  336. for (NetworkDTO n : list) {
  337. List<String> newString = new ArrayList<>();
  338. newString.add(String.valueOf(list.indexOf(n) + 1));
  339. newString.add(n.getNetworkName());
  340. newString.add(n.getDeviceSn());
  341. if (version == 0) {
  342. if (n.getStatus() == 0) {
  343. newString.add("离线");
  344. } else {
  345. newString.add("在线");
  346. }
  347. } else if (version == 1) {
  348. if (n.getStatus() == 0) {
  349. newString.add("offline");
  350. } else {
  351. newString.add("online");
  352. }
  353. } else {
  354. if (n.getStatus() == 0) {
  355. newString.add("отключ");
  356. } else {
  357. newString.add("Онлайн -");
  358. }
  359. }
  360. newString.add(n.getProtocolTypeStr());
  361. newString.add(n.getModel());
  362. newString.add(n.getArea());
  363. newString.add(n.getSection());
  364. newString.add(n.getLongitude());
  365. newString.add(n.getLatitude());
  366. newString.add(String.valueOf(n.getLampCount()));
  367. contentList.add(newString);
  368. }
  369. String path = ExcelUtil.outExcel(titleList, contentList);
  370. networkVO1.setPath(path);
  371. }
  372. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
  373. }
  374. /**
  375. * 添加/编辑网关(单个)
  376. * @param vo 网关属性
  377. * @return 添加/编辑网关(单个)
  378. */
  379. @PostMapping("/save")
  380. private BaseResult<?> save(NetworkVO vo) {
  381. if (vo.getVersion() == null) vo.setVersion(0);
  382. Integer version = vo.getVersion();
  383. String username = vo.getUsername();
  384. if (username == null || username.isEmpty())
  385. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  386. UserDTO userDTO = userService.queryUserIdByUsername(username);
  387. if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  388. String networkName = vo.getNetworkName();
  389. if (networkName == null || networkName.trim().isEmpty())
  390. return toolUtils.response(InterfaceResultEnum.LACK_DEV_NAME_ERROR,version);
  391. String deviceSn = vo.getDeviceSn();
  392. if (deviceSn == null || deviceSn.isEmpty())
  393. return toolUtils.response(InterfaceResultEnum.LACK_DEV_SN_ERROR,version);
  394. Integer protocolType = vo.getProtocolType();
  395. if (protocolType == null)
  396. return toolUtils.response(InterfaceResultEnum.LACK_PROTOCOL_TYPE_ERROR,version);
  397. Integer areaId = vo.getAreaId();
  398. if (areaId == null || areaId == 0)
  399. return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
  400. Integer sectionId = vo.getSectionId();
  401. if (sectionId == null || sectionId == 0)
  402. return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
  403. NetworkDTO networkDTO = new NetworkDTO();
  404. BeanUtils.copyProperties(vo,networkDTO);
  405. NetworkDTO dto = new NetworkDTO();
  406. dto.setSectionId(sectionId);
  407. dto.setNetworkName(networkName);
  408. NetworkVO networkVO = new NetworkVO();
  409. if (vo.getId() == null || vo.getId() == 0) { // 添加
  410. if (networkService.checkNetworkData(dto) > 0)
  411. return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
  412. dto = new NetworkDTO();
  413. dto.setDeviceSn(deviceSn);
  414. if (networkService.checkNetworkData(dto) > 0)
  415. return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
  416. long l = System.currentTimeMillis();
  417. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  418. String format = simpleDateFormat.format(l);
  419. networkDTO.setCreateTime(format);
  420. networkDTO.setUserId(userDTO.getId());
  421. networkService.addNetworkData(networkDTO);
  422. Integer id = networkDTO.getId();
  423. networkVO.setId(id);
  424. } else { // 编辑
  425. dto.setId(vo.getId());
  426. if (networkService.checkNetworkData(dto) > 0)
  427. return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
  428. dto = new NetworkDTO();
  429. dto.setId(vo.getId());
  430. dto.setDeviceSn(deviceSn);
  431. if (networkService.checkNetworkData(dto) > 0)
  432. return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
  433. networkService.updateNetworkData(networkDTO);
  434. networkVO.setId(vo.getId());
  435. }
  436. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO);
  437. }
  438. /**
  439. * 删除网关
  440. * @param vo 网关id
  441. * @return 删除网关
  442. */
  443. @PostMapping("/del")
  444. private BaseResult<?> del(NetworkVO vo) {
  445. if (vo.getVersion() == null) vo.setVersion(0);
  446. Integer version = vo.getVersion();
  447. String networkId = vo.getNetworkId();
  448. if (networkId == null || networkId.isEmpty())
  449. return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  450. String[] split = networkId.split(",");
  451. for (String s : split) {
  452. Integer id = Integer.valueOf(s);
  453. Integer count = networkService.findLampInfoCountByNetworkId(id);
  454. if (count > 0) return toolUtils.response(InterfaceResultEnum.NETWORK_DELETE_FAIL,version);
  455. networkService.deleteNetworkData(id);
  456. }
  457. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  458. }
  459. /**
  460. * 批量导入流量到期信息
  461. * @param networkVO 网络
  462. * @return 导入流量到期信息
  463. */
  464. @PostMapping("/simBatchInput")
  465. private BaseResult<?> simBatchInput(NetworkVO networkVO) {
  466. int version = networkVO.getVersion() == null ? 0 : networkVO.getVersion();
  467. Integer type = networkVO.getType();
  468. if (type == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  469. MultipartFile file = networkVO.getFile();
  470. if (type == 1) { // 验证
  471. if (file.isEmpty()) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  472. List<Map> maps = ExcelUtil.inExcel(file);
  473. List<Object> msg = new ArrayList<>();
  474. List<NetworkDTO> simData = new ArrayList<>();
  475. if (maps.size() > 0) {
  476. for (Map m : maps) {
  477. NetworkDTO networkDTO = new NetworkDTO();
  478. String iccId = m.get(0).toString();
  479. String date = m.get(1).toString();
  480. networkDTO.setIccId(iccId);
  481. networkDTO.setDate(date);
  482. simData.add(networkDTO);
  483. if (networkService.checkSimIdCount(iccId) == 0) {
  484. if (version == 0) {
  485. msg.add("设备不存在");
  486. } else if (version == 1) {
  487. msg.add("Device does not exist");
  488. } else {
  489. msg.add("Оборудования не существует");
  490. }
  491. }
  492. }
  493. }
  494. NetworkVO networkVO1 = new NetworkVO();
  495. networkVO1.setMsg(msg);
  496. networkVO1.setSimData(simData);
  497. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
  498. } else { // 创建
  499. List<NetworkDTO> simData = networkVO.getSimData();
  500. for (NetworkDTO n : simData) {
  501. String date = n.getDate();
  502. String iccId = n.getIccId();
  503. NetworkDTO networkDTO = new NetworkDTO();
  504. networkDTO.setExpirationTime(date);
  505. networkDTO.setSimId(iccId);
  506. networkService.updateSimDate(networkDTO);
  507. }
  508. }
  509. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  510. }
  511. }