xusl hace 3 años
padre
commit
610fefa248

+ 2 - 2
in-client-qn-ui/src/config/setting.config.js

@@ -9,11 +9,11 @@ const setting = {
   // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
   assetsDir: 'static',
   // 开发环境每次保存时是否输出为eslint编译警告
-  lintOnSave: true,
+  lintOnSave: false,
   // 进行编译的依赖
   transpileDependencies: [],
   //标题 (包括初次加载雪花屏的标题 页面的标题 浏览器的标题)
-  title: 'vue-admin-better',
+  title: '外网一体化',
   //简写
   abbreviation: 'vab',
   //开发环境端口号

+ 4 - 4
in-client-qn-ui/src/views/index/index.vue

@@ -169,10 +169,10 @@
           <div slot="header">
             <span>其他信息</span>
           </div>
-          <div style="text-align: center">
-            <vab-colorful-icon style="font-size: 140px" icon-class="vab" />
-            <h1 style="font-size: 30px">vue-admin-better</h1>
-          </div>
+<!--          <div style="text-align: center">-->
+<!--            <vab-colorful-icon style="font-size: 140px" icon-class="vab" />-->
+<!--            <h1 style="font-size: 30px">vue-admin-better</h1>-->
+<!--          </div>-->
           <div v-for="(item, index) in noticeList" :key="index">
             <el-alert
               v-if="index !== 0"

+ 75 - 0
in-client-qn-ui/src/views/vab/table/components/TableEdit.vue

@@ -0,0 +1,75 @@
+<template>
+  <el-dialog
+    :title="title"
+    :visible.sync="dialogFormVisible"
+    width="500px"
+    @close="close"
+  >
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="标题" prop="title">
+        <el-input v-model.trim="form.title" autocomplete="off"></el-input>
+      </el-form-item>
+      <el-form-item label="作者" prop="author">
+        <el-input v-model.trim="form.author" autocomplete="off"></el-input>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="close">取 消</el-button>
+      <el-button type="primary" @click="save">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  import { doEdit } from '@/api/table'
+
+  export default {
+    name: 'TableEdit',
+    data() {
+      return {
+        form: {
+          title: '',
+          author: '',
+        },
+        rules: {
+          title: [{ required: true, trigger: 'blur', message: '请输入标题' }],
+          author: [{ required: true, trigger: 'blur', message: '请输入作者' }],
+        },
+        title: '',
+        dialogFormVisible: false,
+      }
+    },
+    created() {},
+    methods: {
+      showEdit(row) {
+        if (!row) {
+          this.title = '添加'
+        } else {
+          this.title = '编辑'
+          this.form = Object.assign({}, row)
+        }
+        this.dialogFormVisible = true
+      },
+      close() {
+        this.$refs['form'].resetFields()
+        this.form = this.$options.data().form
+        this.dialogFormVisible = false
+        this.$emit('fetch-data')
+      },
+      save() {
+        this.$refs['form'].validate(async (valid) => {
+          if (valid) {
+            const { msg } = await doEdit(this.form)
+            this.$baseMessage(msg, 'success')
+            this.$refs['form'].resetFields()
+            this.dialogFormVisible = false
+            this.$emit('fetch-data')
+            this.form = this.$options.data().form
+          } else {
+            return false
+          }
+        })
+      },
+    },
+  }
+</script>

+ 6 - 2
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/entity/InsuLog.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.sql.Timestamp;
 
 /**
  * TODO
@@ -34,6 +35,9 @@ public class InsuLog implements Serializable {
     /**
      * 生成时间
      */
-    private String genTime;
-
+    private Timestamp genTime;
+    /**
+     * 失败原因
+     */
+    private String failCause;
 }

+ 16 - 0
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/mapper/CorrforeStMapper.java

@@ -0,0 +1,16 @@
+package com.jiayue.insu.inclientqn.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.insu.inclientqn.entity.CorrforeSt;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 修正数据mapper
+ *
+ * @author xsl
+ * @date 2022-04-12 19:33:02
+ */
+@Mapper
+public interface CorrforeStMapper extends BaseMapper<CorrforeSt> {
+
+}

+ 16 - 0
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/mapper/InsuLogMapper.java

@@ -0,0 +1,16 @@
+package com.jiayue.insu.inclientqn.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.insu.inclientqn.entity.InsuLog;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 日志mapper
+ *
+ * @author xsl
+ * @date 2022-04-12 19:33:02
+ */
+@Mapper
+public interface InsuLogMapper extends BaseMapper<InsuLog> {
+
+}

+ 62 - 46
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/service/ForecastPowerTermCorrectService.java

@@ -1,17 +1,22 @@
 package com.jiayue.insu.inclientqn.service;
 
-import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-//import com.jiayue.insu.inclientqn.ElectricFieldTypeEnum;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jiayue.insu.inclientqn.constant.ConnectConstant;
 import com.jiayue.insu.inclientqn.constant.DataTypeConstant;
 import com.jiayue.insu.inclientqn.constant.StatusConstant;
 import com.jiayue.insu.inclientqn.entity.CorrforeSt;
+import com.jiayue.insu.inclientqn.entity.InsuLog;
 import com.jiayue.insu.inclientqn.entity.TokenInfo;
+import com.jiayue.insu.inclientqn.inenum.ElectricFieldTypeEnum;
+import com.jiayue.insu.inclientqn.inenum.LogStatusEnum;
+import com.jiayue.insu.inclientqn.inenum.LogTypeEnum;
+import com.jiayue.insu.inclientqn.mapper.CorrforeStMapper;
+import com.jiayue.insu.inclientqn.mapper.InsuLogMapper;
 import com.jiayue.insu.inclientqn.model.RequestVo;
 import com.jiayue.insu.inclientqn.model.ResponseVo;
 import com.jiayue.insu.inclientqn.model.TokenVo;
@@ -24,8 +29,6 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -42,39 +45,37 @@ import java.util.stream.Collectors;
 @Service
 @Slf4j
 @RequiredArgsConstructor
-public class ForecastPowerTermCorrectService {
+public class ForecastPowerTermCorrectService extends ServiceImpl<CorrforeStMapper, CorrforeSt> {
     @Autowired
     InTokenService inTokenService;
     @Autowired
     TokenInfoService tokenInfoService;
+    @Autowired
+    InsuLogService insuLogServicel;
 
     @Value("${stationCode}")
     private String stationCode;
 
     public String[] pullCorrectData() {
-        String[] status = new String[2];
         // 获取清能一体化token
         TokenVo tokenVo = inTokenService.getToken();
 
         if (tokenVo != null) {
-            long startTimeT = DateUtil.beginOfDay(new Date()).getTime();
-            long endTimeT = DateUtil.offsetDay(new Date(startTimeT), 1).getTime() - 1;
-            //请求当日预测数据
-            String todayforeStatus = corrforeData(tokenVo, DataTypeConstant.CORRFORE_TYPE, startTimeT, endTimeT, 97);
-            status[0] = todayforeStatus;
-//            long startTimeC = DateUtil.beginOfDay(DateUtil.tomorrow()).getTime();
-//            long endTimeC = DateUtil.offsetDay(new Date(startTimeC), 9).getTime();
-//            //请求未来9天预测数据
-//            String corrforeStatus = corrforeData(tokenVo, DataTypeConstant.CORRFORE_TYPE, startTimeC, endTimeC, 865);
-//            status[1] = corrforeStatus;
+            // 请求当日预测数据
+            downLoadCorrforeData(tokenVo, DataTypeConstant.CORRFORE_TYPE);
         } else {
             log.error(stationCode + " ========== 一体化:下载短期修正数据失败  无token ==========");
         }
-        return status;
+        return null;
     }
 
-
-    public String corrforeData(TokenVo tokenVo, String type, long startTime, long endTime, int count) {
+    /**
+     * 下载修正预测数据
+     * @param tokenVo
+     * @param type
+     * @return
+     */
+    public String downLoadCorrforeData(TokenVo tokenVo, String type) {
         String response = "";
         String status = "";
         boolean result = false;
@@ -114,13 +115,18 @@ public class ForecastPowerTermCorrectService {
                             log.info("请求短期修正数据返回内容:{}", response);
 
                             String dataContent = responseVo.getData();
-                            if (!dataContent.contains("NULL") && !dataContent.contains("null")) {
+//                            if (!dataContent.contains("NULL") && !dataContent.contains("null")) {
                                 try {
-//                                    if (ElectricFieldTypeEnum.E1.toString().equals(tokenInfo.getStationType())) {
-//                                        list = correctPhotovoltaicData(responseVo.getData());
-//                                    } else {
-////                                        list = correctWindData(responseVo.getData());
-//                                    }
+                                    // 入库
+                                    if (ElectricFieldTypeEnum.E1.toString().equals(tokenInfo.getStationType())) {
+                                        list = correctPhotovoltaicData(responseVo.getData());
+                                    } else {
+//                                        list = correctWindData(responseVo.getData());
+                                    }
+                                    if (!list.isEmpty()){
+                                        super.saveBatch(list);
+                                        packingLog(LogStatusEnum.E1.toString(), LogTypeEnum.E1.toString(),null);
+                                    }
 
                                     /**************检测解析数据完整性*******************/
 //                                    if (list.size() < count) {
@@ -155,48 +161,51 @@ public class ForecastPowerTermCorrectService {
                                     /**************检测解析数据完整性*******************/
 
                                 } catch (Exception e) {
-                                    status = StatusConstant.Correct_STATUS_DATA_FAIL;
+                                    log.error("解析修正数据失败",e);
+                                    packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"解析修正数据失败");
 //                                    log.info("========== 一体化: {} 解析期修正数据失败 {}  ==========", el.getStationCode(), type);
                                 }
-                            } else {
-                                status = StatusConstant.Correct_STATUS_DATA_FAIL;
-//                                log.info("========== 一体化: {} 解析期修正数据为完成 含NULL {}  ==========", el.getStationCode(), type);
-                            }
+//                            } else {
+//                                log.info("========== 下载修正数据含NULL ==========");
+//                                packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"修正数据含NULL");
+//                            }
                             if (result) {
 //                                log.info("========== 一体化: {} 下载短期修正数据成功 {} ==========", el.getStationCode(), type);
 //                                aioForecastPowerShortTermService.saveAll(aList);
                             }
                         } else {
-                            log.error("========== 一体化: {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 {} ==========", stationCode, type);
-                            log.error("========== 一体化: {} {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 标识为{} ==========", stationCode, type, status);
-                            log.error("========== 一体化: {} {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 失败原因为{} ==========", stationCode, type, responseVo.getRetMsg());
+//                            log.error("========== 一体化: {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 {} ==========", stationCode, type);
+//                            log.error("========== 一体化: {} {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 标识为{} ==========", stationCode, type, status);
+//                            log.error("========== 一体化: {} {} 下载短期修正数据失败 接收retCode响应码非成功标识T200 失败原因为{} ==========", stationCode, type, responseVo.getRetMsg());
                             if (status.equals(StatusConstant.TOKEN_EXPIRE)) {
-                                log.error("========== 一体化: {} 下载短期修正数据失败 token过期 已重新请求token ==========", stationCode);
+                                log.info("========== token过期 ==========");
+                                packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"token过期");
                             }
                             if (status.equals(StatusConstant.TOKEN_INVALID)) {
-                                log.error("========== 一体化: {} 上下载短期修正数据失败 token失效 已重新请求token ==========", stationCode);
+                                log.info("========== token失效 ==========");
+                                packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"token失效");
                             }
                             if (status.equals(StatusConstant.AUTOGRAPH_FAIL)) {
-                                log.error("========== 一体化: {} 下载短期修正数据失败 签名失败 已重新请求token ==========", stationCode);
+                                log.info("========== 签名失败 ==========");
+                                packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"签名失败");
                             }
                             if (responseVo.getRetCode().equals(StatusConstant.LOGIN_NOT)) {
-                                log.error("========== 一体化: {} 下载短期修正数据失败 用户未登录 已重新请求token ==========", stationCode);
+                                log.info("========== 用户未登录 ==========");
+                                packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"用户未登录");
                             }
                         }
                     } else {
-                        status = StatusConstant.RESPONSE_ERROR1;
-                        log.error("========== 一体化:下载短期修正数据失败 接收响应字符串非json格式 " + response + " ==========");
+                        log.info("========== 接收响应字符串非json格式 ==========");
+                        packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"接收响应字符串非json格式");
                     }
                 } else {
-                    status = StatusConstant.RESPONSE_ERROR2;
-                    log.error("========== 一体化:下载短期修正数据失败 返回响应内容为空 ==========");
+                    log.info("========== 响应内容为空 ==========");
+                    packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"响应内容为空");
                 }
             }
         } catch (Exception e) {
-            status = StatusConstant.RESPONSE_ERROR3;
-            log.error("========== 一体化:下载短期修正数据失败 连接断开或请求超时 ==========");
-            e.printStackTrace();
-
+            log.error("========== 连接断开或请求超时 ==========",e);
+            packingLog(LogStatusEnum.E2.toString(), LogTypeEnum.E1.toString(),"连接断开或请求超时");
         }
         return status;
     }
@@ -211,7 +220,6 @@ public class ForecastPowerTermCorrectService {
      */
     public List<CorrforeSt> correctPhotovoltaicData(String data) throws Exception {
         String[] content = data.split("\n");
-//        String dateStr = content[0].split("'")[1];
         List<CorrforeSt> list = new ArrayList<>();
         Date genDate = new Date();
         for (int i = 3; i < content.length - 1; i++) {
@@ -312,4 +320,12 @@ public class ForecastPowerTermCorrectService {
         return bigDecimal;
     }
 
+    public void packingLog(String status,String logType,String failCause){
+        InsuLog insuLog = new InsuLog();
+        insuLog.setGenTime(new Timestamp(new Date().getTime()));
+        insuLog.setStatus(status);
+        insuLog.setType(logType);
+        insuLog.setFailCause(failCause);
+        insuLogServicel.save(insuLog);
+    }
 }

+ 21 - 0
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/service/InsuLogService.java

@@ -0,0 +1,21 @@
+package com.jiayue.insu.inclientqn.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.insu.inclientqn.entity.InsuLog;
+import com.jiayue.insu.inclientqn.mapper.InsuLogMapper;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description: 日志服务类
+ * @author: xsl
+ * @createDate: 2022/6/1
+ * @version: 1.0
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class InsuLogService  extends ServiceImpl<InsuLogMapper, InsuLog> {
+
+}

+ 15 - 0
in-client-qn/src/main/resources/mapper/InsuLogMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.jiayue.insu.inclientqn.mapper.InsuLogMapper">
+
+  <resultMap id="insuLogMap" type="com.jiayue.insu.inclientqn.entity.InsuLog">
+                  <id property="id" column="id"/>
+                        <result property="type" column="type"/>
+                        <result property="status" column="status"/>
+                        <result property="genTime" column="gen_time"/>
+                        <result property="failCause" column="fail_cause"/>
+  </resultMap>
+</mapper>

+ 17 - 0
in-client-qn/src/test/java/com/jiayue/insu/inclientqn/service/Test.java

@@ -0,0 +1,17 @@
+package com.jiayue.insu.inclientqn.service;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+
+/**
+ * TODO
+ *
+ * @author xsl
+ * @version 3.0
+ */
+public class Test {
+    public static void main(String[] args) {
+        DateTime dt = DateUtil.parse("20220602000000", "yyyyMMddHHmmss");
+        System.out.println(dt);
+    }
+}