Przeglądaj źródła

新增scadabj批量导入接口

‘xugp 2 lat temu
rodzic
commit
b8311364f5

+ 79 - 3
warning-web/src/main/java/com/gyee/wisdom/alarm/sharding/controller/ScadabjController.java

@@ -6,21 +6,27 @@ import com.gyee.wisdom.alarm.sharding.entity.Alertrule2;
 import com.gyee.wisdom.alarm.sharding.entity.Scadabj;
 import com.gyee.wisdom.alarm.sharding.entity.Scadabj;
 import com.gyee.wisdom.alarm.sharding.service.Alertrule2Service;
 import com.gyee.wisdom.alarm.sharding.service.Alertrule2Service;
 import com.gyee.wisdom.alarm.sharding.service.ScadabjService;
 import com.gyee.wisdom.alarm.sharding.service.ScadabjService;
-import com.gyee.wisdom.alarm.sharding.util.TokenUtil;
-import com.gyee.wisdom.alarm.sharding.util.UserLoginToken;
-import com.gyee.wisdom.alarm.sharding.util.ResponseWrapper;
+import com.gyee.wisdom.alarm.sharding.util.*;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Claims;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 @Slf4j
 @Slf4j
 @RestController
 @RestController
 @RequestMapping("/scadabj")
 @RequestMapping("/scadabj")
 @CrossOrigin
 @CrossOrigin
+@Api(tags = {"scadabj接口"})
 public class ScadabjController {
 public class ScadabjController {
 
 
     @Autowired
     @Autowired
@@ -104,6 +110,76 @@ public class ScadabjController {
 
 
     }
     }
 
 
+    @ApiOperation("Scadabj批量导入")
+    @PostMapping(value = "/import")
+    @ResponseBody
+    @UserLoginToken
+    public ResponseWrapper<Scadabj> saveScadabjImport(@ApiParam(value = "导入文件") @RequestParam("file") MultipartFile file, HttpServletRequest request) {
+        String token=request.getHeader("token");
+        Claims claims = TokenUtil.parseJWT(token);
+        String userName=claims.get("jti").toString();
+        ResponseWrapper<Scadabj> wrapper = null;
+        boolean allCheck = true;
+        if (!file.isEmpty()) {
+            try {
+                String originalFilename = file.getOriginalFilename();
+                String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
+                Integer startRows = 1;
+                InputStream is = file.getInputStream();
+                List<Scadabj> bindingList = new ArrayList<>();
+                List<String[]> strings = ExcelUtil.readData(fileType, startRows, true, is);
+                for (String[] str : strings) {
+                    Scadabj scadabj = new Scadabj();
+                    if (str[0] == null || str[0].equals("")){
+                        scadabj.setId(SnowflakeGenerator.generateId());
+                    }else {
+                        scadabj.setId(Long.valueOf(str[0]));
+                    }
+                    scadabj.setStationId(str[1]);
+                    scadabj.setPointKey(str[2]);
+                    scadabj.setDescription(str[3]);
+                    scadabj.setCategory1(str[4]);
+                    scadabj.setCategory2(str[5]);
+                    scadabj.setCategory3(str[6]);
+                    scadabj.setCategory4(str[7]);
+                    scadabj.setRank(str[8]);
+                    scadabj.setAlarmType(Integer.parseInt(str[9]));
+                    scadabj.setEnabled(Integer.parseInt(str[10]));
+                    if(str.length==12){
+                        scadabj.setDeviceId(str[11]);
+                    }
+                    bindingList.add(scadabj);
+                }
+                for (Scadabj scadabj : bindingList) {
+                    wrapper = dataCheck(scadabj);
+                    if (wrapper.getSuccess() != true) {
+                        allCheck = false;
+                        String msg = wrapper.getMsg();
+                        wrapper.setMsg(scadabj.getDescription() + ":" + msg);
+                        break;
+                    }
+                }
+                if (allCheck) {
+                    for (Scadabj scadabj : bindingList) {
+                        int result = scadabjService.saveAndUpdateScadabj(scadabj, userName);
+                        if (result <= 0) {
+                            wrapper.setMsg(scadabj.getDescription() + ":" + "操作数据库失败");
+                            wrapper.setSuccess(false);
+                            break;
+                        }else {
+                            wrapper.setMsg("批量导入成功");
+                            wrapper.setSuccess(true);
+                        }
+                    }
+                }
+            } catch (IOException e) {
+                wrapper.setMsg("操作数据库失败");
+                wrapper.setSuccess(false);
+            }
+        }
+        return wrapper;
+    }
+
 
 
     private ResponseWrapper<Scadabj> dataCheck(Scadabj scadabj) {
     private ResponseWrapper<Scadabj> dataCheck(Scadabj scadabj) {
 
 

+ 5 - 5
warning-web/src/main/java/com/gyee/wisdom/alarm/sharding/entity/Scadabj.java

@@ -1,26 +1,26 @@
 package com.gyee.wisdom.alarm.sharding.entity;
 package com.gyee.wisdom.alarm.sharding.entity;
 
 
-import com.alibaba.fastjson.annotation.JSONField;
-import com.alibaba.fastjson.serializer.ToStringSerializer;
+
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.gyee.wisdom.alarm.sharding.cache.StationCache;
 import com.gyee.wisdom.alarm.sharding.cache.StationCache;
 import com.gyee.wisdom.alarm.sharding.util.ChineseDes;
 import com.gyee.wisdom.alarm.sharding.util.ChineseDes;
-import com.gyee.wisdom.alarm.sharding.util.SpringContextUtil;
+
 import lombok.AccessLevel;
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.Data;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
-import java.util.Date;
+
 
 
 @Data
 @Data
 @TableName("SCADABJ")
 @TableName("SCADABJ")
 public class Scadabj implements Serializable {
 public class Scadabj implements Serializable {
 
 
-    @JSONField(serializeUsing = ToStringSerializer.class)
+    private static final long serialVersionUID = -7009408032434108640L;
+
     @TableId("ID")
     @TableId("ID")
     private Long id;
     private Long id;
     @ChineseDes("测点")
     @ChineseDes("测点")

+ 3 - 0
warning-web/src/main/java/com/gyee/wisdom/alarm/sharding/service/ScadabjService.java

@@ -43,6 +43,9 @@ public class ScadabjService extends ServiceImpl<ScadabjMapper, Scadabj> {
             if (oldData != null) {
             if (oldData != null) {
                 result = scadabjMapper.updateById(scadabj);
                 result = scadabjMapper.updateById(scadabj);
             }
             }
+            else {
+                result = scadabjMapper.insert(scadabj);
+            }
         }
         }
 
 
         if(result>0)
         if(result>0)