|
@@ -2,25 +2,26 @@ package com.welampiot.controller;
|
|
|
|
|
|
import com.welampiot.common.BaseResult;
|
|
|
import com.welampiot.common.InterfaceResultEnum;
|
|
|
+import com.welampiot.dto.GlobalLocationDTO;
|
|
|
import com.welampiot.dto.LampInfoDTO;
|
|
|
import com.welampiot.dto.LoopDTO;
|
|
|
+import com.welampiot.dto.SectionDTO;
|
|
|
+import com.welampiot.service.GlobalLocationService;
|
|
|
import com.welampiot.service.LampService;
|
|
|
import com.welampiot.service.LoopService;
|
|
|
+import com.welampiot.service.SectionService;
|
|
|
import com.welampiot.utils.ExcelUtil;
|
|
|
import com.welampiot.utils.ToolUtils;
|
|
|
import com.welampiot.vo.LampVO;
|
|
|
import com.welampiot.vo.LoopDetailVO;
|
|
|
import com.welampiot.vo.LoopVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.web.bind.annotation.CrossOrigin;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* ClassName: LoopController
|
|
@@ -45,6 +46,12 @@ public class LoopController {
|
|
|
@Autowired
|
|
|
private LampService lampService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SectionService sectionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GlobalLocationService globalLocationService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取回路列表
|
|
|
* @param request 路段筛选,分页
|
|
@@ -367,4 +374,122 @@ public class LoopController {
|
|
|
lampVO1.setList(lampInfoList);
|
|
|
return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampVO1);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量导入,添加回路
|
|
|
+ * @param loopVO 回路
|
|
|
+ * @return 添加回路
|
|
|
+ */
|
|
|
+ @PostMapping("/batchInput")
|
|
|
+ private BaseResult<?> batchInput(LoopVO loopVO) {
|
|
|
+ int version = loopVO.getVersion() == null ? 0 : loopVO.getVersion();
|
|
|
+ Integer sectionId = loopVO.getSectionId();
|
|
|
+ Integer areaId = loopVO.getAreaId();
|
|
|
+ Integer type = loopVO.getType();
|
|
|
+ if (sectionId == null || sectionId == 0 || areaId == null || areaId == 0)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ MultipartFile file = loopVO.getFile();
|
|
|
+ if (type == 1) { // 验证
|
|
|
+ if (file.isEmpty()) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ List<Map> maps = ExcelUtil.inExcel(file);
|
|
|
+ List<Object> msg = new ArrayList<>();
|
|
|
+ List<LoopDTO> loopData = new ArrayList<>();
|
|
|
+ int index = 1;
|
|
|
+ HashMap<String, String> temp = new HashMap<>();
|
|
|
+ HashMap<String, String> temp1 = new HashMap<>();
|
|
|
+ if (maps.size() > 0) {
|
|
|
+ for (Map m : maps) {
|
|
|
+ LoopDTO loopDTO = new LoopDTO();
|
|
|
+ String name = m.get(0).toString();
|
|
|
+ String number = m.get(1).toString();
|
|
|
+ String controlTypeStr = m.get(4).toString();
|
|
|
+ Set<String> controlTypeSet = new HashSet<>(Arrays.asList("GPRS","NB","LoraWan","PLC","zigbee"));
|
|
|
+ if (!controlTypeSet.contains(controlTypeStr)) return toolUtils.response(InterfaceResultEnum.CONTROL_TYPE_ERROR,version);
|
|
|
+ Integer controlType = LoopDTO.getControlTypeByStr(controlTypeStr);
|
|
|
+ loopDTO.setNumber(number);
|
|
|
+ loopDTO.setControlType(controlType);
|
|
|
+ loopDTO.setControlTypeStr(controlTypeStr);
|
|
|
+ loopDTO.setName(name);
|
|
|
+ SectionDTO oneById = sectionService.getOneById(sectionId);
|
|
|
+ loopDTO.setSection(oneById.getName());
|
|
|
+ GlobalLocationDTO oneById1 = globalLocationService.getOneById(areaId);
|
|
|
+ loopDTO.setArea(oneById1.getChineseName());
|
|
|
+ loopData.add(loopDTO);
|
|
|
+
|
|
|
+ LoopDTO loopDTO1 = new LoopDTO();
|
|
|
+ loopDTO1.setName(loopDTO.getName());
|
|
|
+ loopDTO1.setSectionId(sectionId);
|
|
|
+ if (loopService.checkLoopData(loopDTO1) > 0) {
|
|
|
+ if (version == 0) {
|
|
|
+ msg.add("表格第" + index + "行回路名称已经存在");
|
|
|
+ }else if (version == 1) {
|
|
|
+ msg.add("Table " + index + " row loop name already exists");
|
|
|
+ }else {
|
|
|
+ msg.add("название первой " + index + " таблицы уже существует");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ loopDTO1 = new LoopDTO();
|
|
|
+ loopDTO1.setNumber(loopDTO.getNumber());
|
|
|
+ loopDTO1.setSectionId(sectionId);
|
|
|
+ if (loopService.checkLoopData(loopDTO1) > 0) {
|
|
|
+ if (version == 0) {
|
|
|
+ msg.add("表格第" + index + "行回路编号已经存在");
|
|
|
+ }else if (version == 1) {
|
|
|
+ msg.add("Table " + index + " row loop number already exists");
|
|
|
+ }else {
|
|
|
+ msg.add("Номер первой строки " + index + " таблицы уже существует");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (temp.containsKey(loopDTO1.getNumber())) {
|
|
|
+ if (version == 0){
|
|
|
+ msg.add("表格第" + index + "行回路编号已经存在");
|
|
|
+ }else if (version == 1) {
|
|
|
+ msg.add("Table " + index + " row loop number already exists");
|
|
|
+ }else {
|
|
|
+ msg.add("Номер первой строки " + index+ " таблицы уже существует");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (temp1.containsKey(loopDTO1.getName())) {
|
|
|
+ if (version == 0){
|
|
|
+ msg.add("表格第" + index + "行回路名称已经存在");
|
|
|
+ }else if (version == 1) {
|
|
|
+ msg.add("Table " + index + " row loop name already exists");
|
|
|
+ }else {
|
|
|
+ msg.add("название первой " + index+ " таблицы уже существует");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ temp.put(loopDTO.getName(),loopDTO.getName());
|
|
|
+ temp1.put(loopDTO.getNumber(),loopDTO.getNumber());
|
|
|
+ index ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LoopVO loopVO1 = new LoopVO();
|
|
|
+ loopVO1.setMsg(msg);
|
|
|
+ loopVO1.setLoopData(loopData);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,loopVO1);
|
|
|
+ } else { // 创建
|
|
|
+ List<LoopDTO> loopData = loopVO.getLoopData();
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ for (LoopDTO m : loopData) {
|
|
|
+ String name = m.getName();
|
|
|
+ String number = m.getNumber();
|
|
|
+ Integer controlType = m.getControlType();
|
|
|
+ LoopDTO loopDTO = new LoopDTO();
|
|
|
+ loopDTO.setControlType(controlType);
|
|
|
+ loopDTO.setNumber(number);
|
|
|
+ loopDTO.setName(name);
|
|
|
+ loopDTO.setAreaId(areaId);
|
|
|
+ loopDTO.setSectionId(sectionId);
|
|
|
+ long timeMillis = System.currentTimeMillis();
|
|
|
+ String createTime = format.format(timeMillis);
|
|
|
+ loopDTO.setCreateTime(createTime);
|
|
|
+ loopService.addLoopData(loopDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
+ }
|
|
|
}
|