소스 검색

批量添加雷达传感器

zhj 2 년 전
부모
커밋
1bc7f8a1bb

+ 128 - 3
src/main/java/com/welampiot/controller/RadarDeviceController.java

@@ -2,10 +2,14 @@ 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.RadarDevInfoDTO;
+import com.welampiot.dto.SectionDTO;
+import com.welampiot.service.GlobalLocationService;
 import com.welampiot.service.LampService;
 import com.welampiot.service.RadarDevInfoService;
+import com.welampiot.service.SectionService;
 import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.RadarDevInfoVO;
@@ -14,12 +18,11 @@ import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 
 /**
  * ClassName: RadarDeviceController
@@ -40,6 +43,10 @@ public class RadarDeviceController {
     private ToolUtils toolUtils;
     @Autowired
     private LampService lampService;
+    @Autowired
+    private SectionService sectionService;
+    @Autowired
+    private GlobalLocationService globalLocationService;
 
     /**
      * 雷达数据统计
@@ -245,4 +252,122 @@ public class RadarDeviceController {
         radarDevInfoService.deleteRadarData(ids);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 批量添加雷达传感器
+     * @param radarDevInfoVO 雷达传感器
+     * @return 批量添加雷达传感器
+     */
+    @PostMapping("/batchInput")
+    private BaseResult<?> batchInput(RadarDevInfoVO radarDevInfoVO) {
+        int version = radarDevInfoVO.getVersion() == null ? 0 : radarDevInfoVO.getVersion();
+        Integer sectionId = radarDevInfoVO.getSectionId();
+        Integer areaId = radarDevInfoVO.getAreaId();
+        Integer type = radarDevInfoVO.getType();
+        if (sectionId == null || sectionId == 0 || areaId == null || areaId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        MultipartFile file = radarDevInfoVO.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<RadarDevInfoDTO> radarData = 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) {
+                    RadarDevInfoDTO radarDevInfoDTO = new RadarDevInfoDTO();
+                    String number = m.get(0).toString();
+                    String address = m.get(3).toString();
+                    String longitude = m.get(10).toString();
+                    String latitude = m.get(11).toString();
+                    radarDevInfoDTO.setNumber(number);
+                    radarDevInfoDTO.setAddress(address);
+                    radarDevInfoDTO.setLongitude(Double.valueOf(longitude));
+                    radarDevInfoDTO.setLatitude(Double.valueOf(latitude));
+                    SectionDTO oneById = sectionService.getOneById(sectionId);
+                    radarDevInfoDTO.setSection(oneById.getName());
+                    GlobalLocationDTO oneById1 = globalLocationService.getOneById(areaId);
+                    radarDevInfoDTO.setArea(oneById1.getChineseName());
+                    radarData.add(radarDevInfoDTO);
+
+                    RadarDevInfoDTO radarDevInfoDTO1 = new RadarDevInfoDTO();
+                    radarDevInfoDTO1.setNumber(radarDevInfoDTO1.getNumber());
+                    radarDevInfoDTO1.setSectionId(sectionId);
+                    if (radarDevInfoService.checkRadarData(radarDevInfoDTO1) > 0) {
+                        if (version == 0) {
+                            msg.add("表格第" + index + "行雷达编号已经存在");
+                        }else if (version == 1) {
+                            msg.add("Table " + index + " row radar number already exists");
+                        }else {
+                            msg.add("Номер радара в таблице номер " + index + " уже существует");
+                        }
+                    }
+
+                    radarDevInfoDTO1 = new RadarDevInfoDTO();
+                    radarDevInfoDTO1.setAddress(radarDevInfoDTO.getAddress());
+                    if (radarDevInfoService.checkRadarData(radarDevInfoDTO1) > 0) {
+                        if (version == 0) {
+                            msg.add("表格第" + index + "行雷达地址已经存在");
+                        }else if (version == 1) {
+                            msg.add("Table " + index + " row radar address already exists");
+                        }else {
+                            msg.add("Адрес радара в строке номер " + index + " уже существует");
+                        }
+                    }
+
+                    if (temp.containsKey(radarDevInfoDTO1.getNumber())) {
+                        if (version == 0) {
+                            msg.add("表格第" + index + "行雷达编号已经存在");
+                        }else if (version == 1) {
+                            msg.add("Table " + index + " row radar number already exists");
+                        }else {
+                            msg.add("Номер радара в таблице номер " + index + " уже существует");
+                        }
+                    }
+
+                    if (temp1.containsKey(radarDevInfoDTO1.getAddress())) {
+                        if (version == 0) {
+                            msg.add("表格第" + index + "行雷达地址已经存在");
+                        }else if (version == 1) {
+                            msg.add("Table " + index + " row radar address already exists");
+                        }else {
+                            msg.add("Адрес радара в строке номер " + index + " уже существует");
+                        }
+                    }
+                    temp.put(radarDevInfoDTO.getNumber(),radarDevInfoDTO.getNumber());
+                    temp1.put(radarDevInfoDTO.getAddress(),radarDevInfoDTO.getAddress());
+                    index ++;
+                }
+            }
+            RadarDevInfoVO radarDevInfoVO1 = new RadarDevInfoVO();
+            radarDevInfoVO1.setMsg(msg);
+            radarDevInfoVO1.setRadarData(radarData);
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,radarDevInfoVO1);
+        } else { // 创建
+            List<RadarDevInfoDTO> radarData = radarDevInfoVO.getRadarData();
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            for (RadarDevInfoDTO m : radarData) {
+                String number = m.getNumber();
+                String address = m.getAddress();
+                Double longitude = m.getLongitude();
+                Double latitude = m.getLatitude();
+                RadarDevInfoDTO radarDevInfoDTO = new RadarDevInfoDTO();
+                radarDevInfoDTO.setAddress(address);
+                radarDevInfoDTO.setNumber(number);
+                radarDevInfoDTO.setLongitude(longitude);
+                radarDevInfoDTO.setLatitude(latitude);
+                radarDevInfoDTO.setAreaId(areaId);
+                radarDevInfoDTO.setSectionId(sectionId);
+                long timeMillis = System.currentTimeMillis();
+                String createTime = format.format(timeMillis);
+                radarDevInfoDTO.setCreateTime(createTime);
+                radarDevInfoDTO.setUpdateTime(createTime);
+                radarDevInfoService.addRadarDev(radarDevInfoDTO);
+            }
+        }
+
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 2 - 0
src/main/java/com/welampiot/dao/RadarDevInfoDao.java

@@ -24,6 +24,8 @@ public interface RadarDevInfoDao {
 
     void addRadarData(RadarDevInfoDTO dto);
 
+    void addRadarDev(RadarDevInfoDTO dto);
+
     void updateRadarData(RadarDevInfoDTO dto);
 
     Integer checkRadarData(RadarDevInfoDTO dto);

+ 2 - 0
src/main/java/com/welampiot/service/RadarDevInfoService.java

@@ -23,6 +23,8 @@ public interface RadarDevInfoService {
 
     void addRadarData(RadarDevInfoDTO dto);
 
+    void addRadarDev(RadarDevInfoDTO dto);
+
     void updateRadarData(RadarDevInfoDTO dto);
 
     Integer checkRadarData(RadarDevInfoDTO dto);

+ 5 - 0
src/main/java/com/welampiot/service/impl/RadarDevInfoServiceImpl.java

@@ -43,6 +43,11 @@ public class RadarDevInfoServiceImpl implements RadarDevInfoService {
         radarDevInfoDao.addRadarData(dto);
     }
 
+    @Override
+    public void addRadarDev(RadarDevInfoDTO dto) {
+        radarDevInfoDao.addRadarDev(dto);
+    }
+
     @Override
     public void updateRadarData(RadarDevInfoDTO dto) {
         radarDevInfoDao.updateRadarData(dto);

+ 8 - 0
src/main/java/com/welampiot/vo/RadarDevInfoVO.java

@@ -2,6 +2,7 @@ package com.welampiot.vo;
 
 import com.welampiot.dto.RadarDevInfoDTO;
 import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.Serializable;
 import java.util.List;
@@ -25,6 +26,13 @@ public class RadarDevInfoVO implements Serializable {
 
     private Integer sectionId;
 
+    private Integer type;
+
+    private List<RadarDevInfoDTO> radarData;
+    private List<Object> msg;
+
+    private MultipartFile file;
+
     private String keyword;
 
     private Integer online;

+ 27 - 0
src/main/resources/mapper/RadarDevInfoMapper.xml

@@ -192,6 +192,33 @@
         </if>
     </select>
 
+    <insert id="addRadarDev" parameterType="RadarDevInfoDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into radar_dev_info(`number`,
+        address,
+        areaid,
+        sectionid,
+        <if test="longitude != null and longitude != ''">
+            longitude,
+        </if>
+        <if test="latitude != null and latitude != ''">
+            latitude,
+        </if>
+        updatetime,
+        createtime)
+        values (#{number},
+        #{address},
+        #{areaId},
+        #{sectionId},
+        <if test="longitude != null and longitude != ''">
+            #{longitude},
+        </if>
+        <if test="latitude != null and latitude != ''">
+            #{latitude},
+        </if>
+        #{updateTime},
+        #{createTime})
+    </insert>
+
     <delete id="deleteRadarData">
         delete
         from radar_dev_info