|
@@ -4,8 +4,11 @@ import com.welampiot.common.BaseResult;
|
|
|
import com.welampiot.common.InterfaceResultEnum;
|
|
|
import com.welampiot.dto.NetInfoDTO;
|
|
|
import com.welampiot.dto.NetworkDTO;
|
|
|
+import com.welampiot.dto.UserDTO;
|
|
|
import com.welampiot.service.NetInfoService;
|
|
|
import com.welampiot.service.NetworkService;
|
|
|
+import com.welampiot.service.UserService;
|
|
|
+import com.welampiot.utils.ExcelUtil;
|
|
|
import com.welampiot.utils.ToolUtils;
|
|
|
import com.welampiot.vo.NetInfoDetailVO;
|
|
|
import com.welampiot.vo.NetInfoVO;
|
|
@@ -17,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -39,6 +44,8 @@ public class NetworkController {
|
|
|
private ToolUtils toolUtils;
|
|
|
@Autowired
|
|
|
private NetInfoService netInfoService;
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
|
|
|
/**
|
|
|
* 网关详情
|
|
@@ -58,47 +65,8 @@ public class NetworkController {
|
|
|
// 协议类型(0 = lorawan, 1 = lora mesh, 2 = rf mesh, 3 = nbIot,
|
|
|
// 4 = gprs_direct, 5 = zigbee, 6 = LoraWAN, 7 = oneNet, 8 = eMqtt,
|
|
|
// 9 = LC-6B11-J, 10 = WE-CON-4G20(双路控制), 11 = PLC(有单灯,也有双灯控制器), 12 = 铂胜lora)
|
|
|
- switch (dto.getProtocolType()) {
|
|
|
- case 12 :
|
|
|
- dto.setProtocolTypeStr("铂胜lora");
|
|
|
- break;
|
|
|
- case 11 :
|
|
|
- dto.setProtocolTypeStr("PLC(有单灯,也有双灯控制器)");
|
|
|
- break;
|
|
|
- case 10 :
|
|
|
- dto.setProtocolTypeStr("WE-CON-4G20(双路控制)");
|
|
|
- break;
|
|
|
- case 9 :
|
|
|
- dto.setProtocolTypeStr("LC-6B11-J");
|
|
|
- break;
|
|
|
- case 8 :
|
|
|
- dto.setProtocolTypeStr("eMqtt");
|
|
|
- break;
|
|
|
- case 7 :
|
|
|
- dto.setProtocolTypeStr("oneNet");
|
|
|
- break;
|
|
|
- case 6 :
|
|
|
- dto.setProtocolTypeStr("LoraWAN");
|
|
|
- break;
|
|
|
- case 5 :
|
|
|
- dto.setProtocolTypeStr("zigbee");
|
|
|
- break;
|
|
|
- case 4 :
|
|
|
- dto.setProtocolTypeStr("gprs_direct");
|
|
|
- break;
|
|
|
- case 3 :
|
|
|
- dto.setProtocolTypeStr("nbIot");
|
|
|
- break;
|
|
|
- case 2 :
|
|
|
- dto.setProtocolTypeStr("rf mesh");
|
|
|
- break;
|
|
|
- case 1 :
|
|
|
- dto.setProtocolTypeStr("lora mesh");
|
|
|
- break;
|
|
|
- default :
|
|
|
- dto.setProtocolTypeStr("lorawan");
|
|
|
- break;
|
|
|
- }
|
|
|
+ String protocolTypeStr = ToolUtils.getProtocolTypeStr(dto.getProtocolType());
|
|
|
+ dto.setProtocolTypeStr(protocolTypeStr);
|
|
|
// 频段信息(0 CN470,1 EU863,2 AU915,3 US902,4 AS923)
|
|
|
if (dto.getFreBandInfo() == 4) {
|
|
|
dto.setFreBandInfoStr("AS923");
|
|
@@ -337,4 +305,171 @@ public class NetworkController {
|
|
|
networkVO1.setTotal(total);
|
|
|
return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 网关列表
|
|
|
+ * @param request sectionList,分页,关键字搜索
|
|
|
+ * @return 网关列表
|
|
|
+ */
|
|
|
+ @PostMapping("/getList")
|
|
|
+ private BaseResult<?> getList(HttpServletRequest request) {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
|
|
|
+ Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
|
|
|
+ Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
|
|
|
+ String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
|
|
|
+ int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
|
|
|
+ int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
|
|
|
+ NetworkVO networkVO = new NetworkVO();
|
|
|
+ if (download == 0) {
|
|
|
+ networkVO.setPage(count * (page - 1));
|
|
|
+ networkVO.setCount(count);
|
|
|
+ }
|
|
|
+ networkVO.setAreaId(areaId);
|
|
|
+ networkVO.setSectionId(sectionId);
|
|
|
+ networkVO.setKeyword(keyword);
|
|
|
+ networkVO.setVersion(version);
|
|
|
+ networkVO.setSectionList(toolUtils.getSectionList(request));
|
|
|
+ List<NetworkDTO> list = networkService.getNetworkList(networkVO);
|
|
|
+ list.forEach(dto -> dto.setProtocolTypeStr(ToolUtils.getProtocolTypeStr(dto.getProtocolType())));
|
|
|
+ NetworkVO networkVO1 = new NetworkVO();
|
|
|
+ networkVO1.setList(list);
|
|
|
+ if (download == 1) {
|
|
|
+ String title;
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,网关名称,SN码,在线状态,协议类型,型号,区域,路段,经度,纬度,路灯数";
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial Number,Gateway Name,SN Code,Online Status,Protocol Type,Model," +
|
|
|
+ "Area,Road Section,Longitude,Latitude,Number of Street Lights";
|
|
|
+ } else {
|
|
|
+ title = "Серийный номер,название шлюза,код SN,состояние онлайн,тип протокола,модель," +
|
|
|
+ "область,участок,долгота,широта,количество уличные фонари";
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (NetworkDTO n : list) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(String.valueOf(list.indexOf(n) + 1));
|
|
|
+ newString.add(n.getNetworkName());
|
|
|
+ newString.add(n.getDeviceSn());
|
|
|
+ if (version == 0) {
|
|
|
+ if (n.getStatus() == 0) {
|
|
|
+ newString.add("离线");
|
|
|
+ } else {
|
|
|
+ newString.add("在线");
|
|
|
+ }
|
|
|
+ } else if (version == 1) {
|
|
|
+ if (n.getStatus() == 0) {
|
|
|
+ newString.add("offline");
|
|
|
+ } else {
|
|
|
+ newString.add("online");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (n.getStatus() == 0) {
|
|
|
+ newString.add("отключ");
|
|
|
+ } else {
|
|
|
+ newString.add("Онлайн -");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newString.add(n.getProtocolTypeStr());
|
|
|
+ newString.add(n.getModel());
|
|
|
+ newString.add(n.getArea());
|
|
|
+ newString.add(n.getSection());
|
|
|
+ newString.add(n.getLongitude());
|
|
|
+ newString.add(n.getLatitude());
|
|
|
+ newString.add(String.valueOf(n.getLampCount()));
|
|
|
+ contentList.add(newString);
|
|
|
+ }
|
|
|
+ String path = ExcelUtil.outExcel(titleList, contentList);
|
|
|
+ networkVO1.setPath(path);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加/编辑网关(单个)
|
|
|
+ * @param vo 网关属性
|
|
|
+ * @return 添加/编辑网关(单个)
|
|
|
+ */
|
|
|
+ @PostMapping("/save")
|
|
|
+ private BaseResult<?> save(NetworkVO vo) {
|
|
|
+ if (vo.getVersion() == null) vo.setVersion(0);
|
|
|
+ Integer version = vo.getVersion();
|
|
|
+ String username = vo.getUsername();
|
|
|
+ if (username == null || username.isEmpty())
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ UserDTO userDTO = userService.queryUserIdByUsername(username);
|
|
|
+ if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
|
|
|
+ String networkName = vo.getNetworkName();
|
|
|
+ if (networkName == null || networkName.trim().isEmpty())
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_DEV_NAME_ERROR,version);
|
|
|
+ String deviceSn = vo.getDeviceSn();
|
|
|
+ if (deviceSn == null || deviceSn.isEmpty())
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_DEV_SN_ERROR,version);
|
|
|
+ Integer protocolType = vo.getProtocolType();
|
|
|
+ if (protocolType == null)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_PROTOCOL_TYPE_ERROR,version);
|
|
|
+ Integer areaId = vo.getAreaId();
|
|
|
+ if (areaId == null || areaId == 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
|
|
|
+ Integer sectionId = vo.getSectionId();
|
|
|
+ if (sectionId == null || sectionId == 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
|
|
|
+ NetworkDTO networkDTO = new NetworkDTO();
|
|
|
+ BeanUtils.copyProperties(vo,networkDTO);
|
|
|
+ NetworkDTO dto = new NetworkDTO();
|
|
|
+ dto.setSectionId(sectionId);
|
|
|
+ dto.setNetworkName(networkName);
|
|
|
+ NetworkVO networkVO = new NetworkVO();
|
|
|
+ if (vo.getId() == null || vo.getId() == 0) { // 添加
|
|
|
+ if (networkService.checkNetworkData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
|
|
|
+ dto = new NetworkDTO();
|
|
|
+ dto.setDeviceSn(deviceSn);
|
|
|
+ if (networkService.checkNetworkData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String format = simpleDateFormat.format(l);
|
|
|
+ networkDTO.setCreateTime(format);
|
|
|
+ networkDTO.setUserId(userDTO.getId());
|
|
|
+ networkService.addNetworkData(networkDTO);
|
|
|
+ Integer id = networkDTO.getId();
|
|
|
+ networkVO.setId(id);
|
|
|
+ } else { // 编辑
|
|
|
+ dto.setId(vo.getId());
|
|
|
+ if (networkService.checkNetworkData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
|
|
|
+ dto = new NetworkDTO();
|
|
|
+ dto.setId(vo.getId());
|
|
|
+ dto.setDeviceSn(deviceSn);
|
|
|
+ if (networkService.checkNetworkData(dto) > 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
|
|
|
+ networkService.updateNetworkData(networkDTO);
|
|
|
+ networkVO.setId(vo.getId());
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除网关
|
|
|
+ * @param vo 网关id
|
|
|
+ * @return 删除网关
|
|
|
+ */
|
|
|
+ @PostMapping("/del")
|
|
|
+ private BaseResult<?> del(NetworkVO vo) {
|
|
|
+ if (vo.getVersion() == null) vo.setVersion(0);
|
|
|
+ Integer version = vo.getVersion();
|
|
|
+ String networkId = vo.getNetworkId();
|
|
|
+ if (networkId == null || networkId.isEmpty())
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ String[] split = networkId.split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ Integer id = Integer.valueOf(s);
|
|
|
+ Integer count = networkService.findLampInfoCountByNetworkId(id);
|
|
|
+ if (count > 0) return toolUtils.response(InterfaceResultEnum.NETWORK_DELETE_FAIL,version);
|
|
|
+ networkService.deleteNetworkData(id);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
+ }
|
|
|
}
|