浏览代码

批量导入流量到期信息

zhj 2 年之前
父节点
当前提交
6d190c357b

+ 2 - 1
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -187,9 +187,10 @@ public enum InterfaceResultEnum {
     LACK_PROBLEM_LEVEL_ERROR("0376","请选择问题等级","Please select the question level","Пожалуйста, выберите уровень вопросов"),
     LACK_BIG_CASE_ERROR("0377","请选择案件大类","Please select case category","Пожалуйста, выберите более важные дела"),
     LACK_SMALL_CASE_ERROR("0378","请选择案件小类","Please select the case subcategory","Пожалуйста, выберите мелкие классы"),
-    LACK_STREET_ERROR("0379","请选择街道","Please select a street","Выберите улицу."),
+    LACK_STREET_ERROR("0379","请选择街道","Please select a street","Выберите улицу"),
     LACK_LOCATION_INFO_ERROR("0380","请填写位置信息","Please fill in the location information","Пожалуйста, заполните анкету"),
     CONTROL_TYPE_ERROR("0381","控制器类型错误","Controller type error","Ошибка типа контроллера"),
+    DEVICE_EXISTS_ERROR("0382","设备不存在","Device does not exist","Оборудования не существует"),
     ;
     private String code;
     private String msgCn;

+ 57 - 4
src/main/java/com/welampiot/controller/NetworkController.java

@@ -16,14 +16,12 @@ import com.welampiot.vo.NetworkVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 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;
+import java.util.*;
 
 /**
  * ClassName: NetworkController
@@ -472,4 +470,59 @@ public class NetworkController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 批量导入流量到期信息
+     * @param networkVO 网络
+     * @return 导入流量到期信息
+     */
+    @PostMapping("/simBatchInput")
+    private BaseResult<?> simBatchInput(NetworkVO networkVO) {
+        int version = networkVO.getVersion() == null ? 0 : networkVO.getVersion();
+        Integer type = networkVO.getType();
+        if (type == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        MultipartFile file = networkVO.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<NetworkDTO> simData = new ArrayList<>();
+            if (maps.size() > 0) {
+                for (Map m : maps) {
+                    NetworkDTO networkDTO = new NetworkDTO();
+                    String iccId = m.get(0).toString();
+                    String date = m.get(1).toString();
+                    networkDTO.setIccId(iccId);
+                    networkDTO.setDate(date);
+                    simData.add(networkDTO);
+
+                    if (networkService.checkSimIdCount(iccId) == 0) {
+                        if (version == 0) {
+                            msg.add("设备不存在");
+                        } else if (version == 1) {
+                            msg.add("Device does not exist");
+                        } else {
+                            msg.add("Оборудования не существует");
+                        }
+                    }
+                }
+            }
+            NetworkVO networkVO1 = new NetworkVO();
+            networkVO1.setMsg(msg);
+            networkVO1.setSimData(simData);
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,networkVO1);
+        } else { // 创建
+            List<NetworkDTO> simData = networkVO.getSimData();
+            for (NetworkDTO n : simData) {
+                String date = n.getDate();
+                String iccId = n.getIccId();
+                NetworkDTO networkDTO = new NetworkDTO();
+                networkDTO.setExpirationTime(date);
+                networkDTO.setSimId(iccId);
+                networkService.updateSimDate(networkDTO);
+            }
+        }
+
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

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

@@ -20,4 +20,6 @@ public interface NetworkDao {
     Integer checkNetworkData(NetworkDTO dto);
     Integer findLampInfoCountByNetworkId(@Param("networkId") Integer networkId);
     void deleteNetworkData(@Param("id") Integer id);
+    Integer checkSimIdCount(@Param("simId") String simId);
+    void updateSimDate(NetworkDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/dto/NetworkDTO.java

@@ -35,4 +35,6 @@ public class NetworkDTO {
     private List<Integer> sectionList;
     private Integer expirationStatus;
     private String iccId;
+    private String date;
+    private String simId;
 }

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

@@ -19,4 +19,6 @@ public interface NetworkService {
     Integer checkNetworkData(NetworkDTO dto);
     Integer findLampInfoCountByNetworkId(Integer networkId);
     void deleteNetworkData(Integer id);
+    Integer checkSimIdCount(String simId);
+    void updateSimDate(NetworkDTO dto);
 }

+ 10 - 0
src/main/java/com/welampiot/service/impl/NetworkServiceImpl.java

@@ -153,4 +153,14 @@ public class NetworkServiceImpl implements NetworkService {
     public void deleteNetworkData(Integer id) {
         networkDao.deleteNetworkData(id);
     }
+
+    @Override
+    public Integer checkSimIdCount(String simId) {
+        return networkDao.checkSimIdCount(simId);
+    }
+
+    @Override
+    public void updateSimDate(NetworkDTO dto) {
+        networkDao.updateSimDate(dto);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/vo/NetworkVO.java

@@ -2,6 +2,7 @@ package com.welampiot.vo;
 
 import com.welampiot.dto.NetworkDTO;
 import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -45,4 +46,8 @@ public class NetworkVO {
     private Integer expirationStatus;
     private List<String> sectionList;
     private Integer total;
+    private MultipartFile file;
+    private Integer type;
+    private List<NetworkDTO> simData;
+    private List<Object> msg;
 }

+ 15 - 0
src/main/resources/mapper/NetworkMapper.xml

@@ -323,6 +323,21 @@
         where l.networkid = #{networkId}
     </select>
 
+    <select id="checkSimIdCount" resultType="Integer">
+        select count(*)
+        from network n
+        where n.simid = #{simId}
+    </select>
+
+    <update id="updateSimDate" parameterType="com.welampiot.dto.NetworkDTO">
+        update
+            network n
+        set
+            n.expiration_time = #{expirationTime}
+        where
+            n.simid = #{simId}
+    </update>
+
     <delete id="deleteNetworkData">
         delete
         from network