Browse Source

对上报日志查询修改

xusl 3 years ago
parent
commit
8792aaf323

+ 133 - 160
ipfcst-console/src/main/frontend/layout/components/Sidebar/index.vue

@@ -1,175 +1,148 @@
 <template>
-    <div class="elmenu" :class="{'has-logo':showLogo}">
-        <logo v-if="showLogo" :collapse="isCollapse"/>
-        <el-scrollbar wrap-class="scrollbar-wrapper">
-
-            <el-menu
-                    :default-active="activeMenu"
-                    :collapse="isCollapse"
-                    :background-color="variables.menuBg"
-                    :text-color="variables.menuText"
-                    :unique-opened="false"
-                    :active-text-color="variables.menuActiveText"
-                    :collapse-transition="false"
-                    mode="vertical"
-            >
-                <sidebar-item v-for="route in allRoute" :key="route.path" :item="route" :base-path="route.path"/>
-            </el-menu>
-        </el-scrollbar>
-    </div>
+  <div class="elmenu" :class="{'has-logo':showLogo}">
+    <logo v-if="showLogo" :collapse="isCollapse"/>
+    <el-scrollbar wrap-class="scrollbar-wrapper">
+
+      <el-menu
+        :default-active="activeMenu"
+        :collapse="isCollapse"
+        :background-color="variables.menuBg"
+        :text-color="variables.menuText"
+        :unique-opened="false"
+        :active-text-color="variables.menuActiveText"
+        :collapse-transition="false"
+        mode="vertical"
+      >
+        <sidebar-item v-for="route in allRoute" :key="route.path" :item="route" :base-path="route.path"/>
+      </el-menu>
+    </el-scrollbar>
+  </div>
 </template>
 
 <script>
-    import {mapGetters} from 'vuex'
-    import Logo from './Logo'
-    import SidebarItem from './SidebarItem'
-    import variables from '@/styles/variables.scss'
-
-    export default {
-        components: {SidebarItem, Logo},
-        data() {
-            return {
-                electricField: {},
-                allRoute: {}
-            }
-        },
-        created() {
-            this.routes()
-
-        },
-        destoryed() {
-            this.allRoute = {}
-        },
-        methods: {
-            routes() {
-                var routesResult = []
-                var routes = this.$router.options.routes
-                const user = sessionStorage.getItem('user')
-                this.$axios.get('/electricField/').then((res) => {
-                    this.electricField = res.data
-                    var sign = 'windPower'
-                    if (this.electricField.electricFieldTypeEnum == 'E2') {
-                        sign = 'photovoltaic'
-                    }
-
-                    for (var i = 0; i < routes.length; i++) {
-
-                        if (routes[i].children != undefined) {
-
-                            var routesR = []
-                            var routeChildren = routes[i].children
-
-                            for (var p = 0; p < routeChildren.length; p++) {
-
-                                if (routeChildren[p].sign != sign) {
-                                    if (routeChildren[p].path != 'systemuser') {
-                                        if (routeChildren[p].path == 'powerPlanSD') {
-                                            if(this.electricField.provinceEnum == 'E37'){
-                                                routesR.push(routeChildren[p])
-                                            }
-                                        }else {
-                                          if (routeChildren[p].path == 'feedbackFile') {
-                                            if(this.electricField.provinceEnum == 'E46' || this.electricField.provinceEnum == 'E52'){
-                                              routesR.push(routeChildren[p])
-                                            }
-                                          }else {
-                                            routesR.push(routeChildren[p])
-                                          }
-                                        }
-                                    }
-                                    if (routeChildren[p].sign == user) {
-                                        routesR.push(routeChildren[p])
-                                    }
-
-
-                                }
-                            }
-
-                            if (routesR.length > 0) {
-                                routes[i].children = routesR
-                                routesResult.push(routes[i])
-                            }
-                        } else {
-
-                            if (routes[i].sign != 'photovoltaic') {
-                                routesResult.push(routes[i])
-                            }
-
-                        }
+  import {mapGetters} from 'vuex'
+  import Logo from './Logo'
+  import SidebarItem from './SidebarItem'
+  import variables from '@/styles/variables.scss'
+
+  export default {
+    components: {SidebarItem, Logo},
+    data() {
+      return {
+        electricField: {},
+        allRoute: {}
+      }
+    },
+    created() {
+      this.routes()
+
+    },
+    destoryed() {
+      this.allRoute = {}
+    },
+    methods: {
+      routes() {
+        var routesResult = []
+        var routes = this.$router.options.routes
+        const user = sessionStorage.getItem('user')
+        for (var i = 0; i < routes.length; i++) {
+          if (routes[i].children != undefined) {
+            var routesR = []
+            var routeChildren = routes[i].children
+            for (var p = 0; p < routeChildren.length; p++) {
+              if (routeChildren[p].path != 'systemuser') {
+                if (routeChildren[p].path == 'powerPlanSD') {
+                  if(this.electricField.provinceEnum == 'E37'){
+                    routesR.push(routeChildren[p])
+                  }
+                }else {
+                  if (routeChildren[p].path == 'feedbackFile') {
+                    if(this.electricField.provinceEnum == 'E46' || this.electricField.provinceEnum == 'E52'){
+                      routesR.push(routeChildren[p])
                     }
-
-                    this.allRoute = routesResult
-
-                }).catch((error) => {
-                    this.$message.error('获取场站类型动态路由失败' + error)
-                    this.allRoute = routes
-                })
-
+                  }else {
+                    routesR.push(routeChildren[p])
+                  }
+                }
+              }
+              if (routeChildren[p].sign == user) {
+                routesR.push(routeChildren[p])
+              }
             }
-        },
-        computed: {
-            ...mapGetters([
-                'sidebar'
-            ]),
-            /*routes() {
-              var routes = this.$router.options.routes
-              this.$axios.get('/electricField/').then((res) => {
-                this.electricField = res.data
-
-                if(this.electricField.electricFieldTypeEnum == 'E1'){
-                    for(var i = 0;i<routes.length;i++){
-                      if(routes[i].path == '/realTimeQuery'){
-                        routes[i].children.splice(1,1)
-                      }
-                    }
+            if (routesR.length > 0) {
+              routes[i].children = routesR
+              routesResult.push(routes[i])
+            }
+          } else {
+            routesResult.push(routes[i])
+          }
+        }
+        this.allRoute = routesResult
+      }
+    },
+    computed: {
+      ...mapGetters([
+        'sidebar'
+      ]),
+      /*routes() {
+        var routes = this.$router.options.routes
+        this.$axios.get('/electricField/').then((res) => {
+          this.electricField = res.data
+
+          if(this.electricField.electricFieldTypeEnum == 'E1'){
+              for(var i = 0;i<routes.length;i++){
+                if(routes[i].path == '/realTimeQuery'){
+                  routes[i].children.splice(1,1)
                 }
+              }
+          }
 
-                if(this.electricField.electricFieldTypeEnum == 'E2'){
-                  for(var i = 0;i<routes.length;i++){
-                    if(routes[i].path == '/realTimeQuery'){
-                      console.log(routes[i])
-                      routes[i].children.splice(1,1)
-                      console.log(routes[i])
-                    }
-
-                  }
-                }
-              }).catch((error) => {
-                this.$message.error('查询实时预测短期echarts出错' + error)
+          if(this.electricField.electricFieldTypeEnum == 'E2'){
+            for(var i = 0;i<routes.length;i++){
+              if(routes[i].path == '/realTimeQuery'){
+                console.log(routes[i])
+                routes[i].children.splice(1,1)
+                console.log(routes[i])
+              }
 
-              })
-              return routes
-            },*/
-            activeMenu() {
-                const route = this.$route
-                const {meta, path} = route
-                // if set path, the sidebar will highlight the path you set
-                if (meta.activeMenu) {
-                    return meta.activeMenu
-                }
-                return path
-            },
-            showLogo() {
-                return this.$store.state.settings.sidebarLogo
-            },
-            variables() {
-                return variables
-            },
-            isCollapse() {
-                if (!this.sidebar.opened) {
-                    this.variables.menuBg = 'rgb(0,0,0)'
-                } else {
-                    this.variables.menuBg = 'rgba(48, 65, 86,0)'
-                }
-                return !this.sidebar.opened
             }
+          }
+        }).catch((error) => {
+          this.$message.error('查询实时预测短期echarts出错' + error)
+
+        })
+        return routes
+      },*/
+      activeMenu() {
+        const route = this.$route
+        const {meta, path} = route
+        // if set path, the sidebar will highlight the path you set
+        if (meta.activeMenu) {
+          return meta.activeMenu
+        }
+        return path
+      },
+      showLogo() {
+        return this.$store.state.settings.sidebarLogo
+      },
+      variables() {
+        return variables
+      },
+      isCollapse() {
+        if (!this.sidebar.opened) {
+          this.variables.menuBg = 'rgb(0,0,0)'
+        } else {
+          this.variables.menuBg = 'rgba(48, 65, 86,0)'
         }
+        return !this.sidebar.opened
+      }
     }
+  }
 </script>
 <style scoped>
-    /*.elmenu {*/
-    /*  background: url('../../img/pageBg.png');*/
-    /*  border: 1px solid #ffffff;*/
-    /*  height: 100%;*/
-    /*}*/
+  /*.elmenu {*/
+  /*  background: url('../../img/pageBg.png');*/
+  /*  border: 1px solid #ffffff;*/
+  /*  height: 100%;*/
+  /*}*/
 </style>

+ 1 - 3
ipfcst-console/src/main/frontend/router/index.js

@@ -8,7 +8,6 @@ import Layout from '@/layout'
 
 import consoleRouter from './modules/console'
 import systemRouter from './modules/system'
-import dataExchangeRouter from "./modules/dataexchange"
 import uploadRouter from './modules/uploadFile';
 
 /**
@@ -63,10 +62,9 @@ export const constantRoutes = [
   },
   consoleRouter,
   systemRouter,
-  dataExchangeRouter,
   uploadRouter,
   {
-    path: '/',
+    path: '/ftp',
     component: Layout,
     redirect: '/ftpSftpTools',
     children: [{

+ 1 - 1172
ipfcst-console/src/main/frontend/views/dashboard/index.vue

@@ -1,1177 +1,6 @@
 <template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
-  <div id="tunnelinfo">
-    <div class="crumbs">
-      <el-breadcrumb separator="/">
-        <el-breadcrumb-item><h3><i class="el-icon-tickets"/>&nbsp;综合通道信息
-          <el-button size="mini" type="primary" round @click="check" style="width: 150px;margin-left: 100px" :loading="btnLonding">查看网卡信息</el-button>
-          <el-button size="mini" type="primary" round @click="check1" style="width: 150px;margin-left: 100px" :loading="btnLonding">查看通道对端ip状态</el-button>
-          <el-button size="mini" type="primary" round @click="check2" style="width: 150px;margin-left: 100px" :loading="btnLonding">查看通道本机端口状态</el-button>
-        </h3>
-        </el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>
-    <el-card class="box-carde">
-      <el-tabs v-model="activeName1">
-        <el-tab-pane label="数据交互通道" name="first1" :disabled="btnLonding">
-          <!--表格-->
-          <vxe-table
-            ref="xTable"
-            border
-            stripe
-            row-id="id"
-            height="250px"
-            align="center"
-            :cell-style="cellStyle"
-            :expand-config="{expandRowKeys: ['1']}"
-            :data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
-          >
-            <vxe-table-column type="seq" width="60"/>
-            <vxe-table-column type="expand" width="60">
-              <template v-slot:content="{ row, rowIndex }">
-                <vxe-form v-if="row.tunnelType==='FILEPARSE'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='IEC104TCPMASTER'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="公共地址位:" label-width="125px">
-                        <span>{{ row.publicAddress }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="远端ip:" label-width="125px">
-                        <span>{{ row.remoteIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="远端端口:" label-width="125px">
-                        <span>{{ row.remotePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端ip:" label-width="125px">
-                        <span>{{ row.remoteSpareIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端端口:" label-width="125px">
-                        <span>{{ row.remoteSparePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='IEC104TCPSLAVE'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="公共地址位:" label-width="125px">
-                        <span>{{ row.publicAddress }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                      <vxe-form-item title="对端ip:" label-width="125px">
-                        <span>{{ row.remotePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='MODBUSTCPMASTER'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="公共地址位:" label-width="125px">
-                        <span>{{ row.publicAddress }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="远端ip:" label-width="125px">
-                        <span>{{ row.remoteIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="远端端口:" label-width="125px">
-                        <span>{{ row.remotePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端ip:" label-width="125px">
-                        <span>{{ row.remoteSpareIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端端口:" label-width="125px">
-                        <span>{{ row.remoteSparePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="功能码:" label-width="125px">
-                        <span>{{ row.functionCode }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <!--<el-col :span="6">
-                      <vxe-form-item title="数据类型:" label-width="125px">
-                        <span>{{ row.protocolDataType }}</span>
-                      </vxe-form-item>
-                    </el-col>-->
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='MODBUSTCPSLAVE'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="公共地址位:" label-width="125px">
-                        <span>{{ row.publicAddress }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="设备地址:" label-width="125px">
-                        <span>{{ row.slaveId }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="功能码:" label-width="125px">
-                        <span>{{ row.functionCode }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                      <vxe-form-item title="对端ip:" label-width="125px">
-                        <span>{{ row.remotePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <!--<el-col :span="6">
-                      <vxe-form-item title="数据类型:" label-width="125px">
-                        <span>{{ row.protocolDataType }}</span>
-                      </vxe-form-item>
-                    </el-col>-->
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='MODBUSRTUMASTER' || row.tunnelType==='MODBUSRTUSLAVE'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="串口名称:" label-width="125px">
-                        <span>{{ row.serialName }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="波特率:" label-width="125px">
-                        <span>{{ row.baudRate }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="功能码:" label-width="125px">
-                        <span>{{ row.functionCode }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="设备地址:" label-width="125px">
-                        <span>{{ row.slaveId }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <!--<el-col :span="6">
-                      <vxe-form-item title="数据类型:" label-width="125px">
-                        <span>{{ row.protocolDataType }}</span>
-                      </vxe-form-item>
-                    </el-col>-->
-                    <el-col :span="6">
-                      <vxe-form-item title="奇偶校验:" label-width="125px">
-                        <span>{{ row.parity }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='CDTRTUMASTER' || row.tunnelType==='CDTRTUSLAVE'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="串口名称:" label-width="125px">
-                        <span>{{ row.serialName }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="波特率:" label-width="125px">
-                        <span>{{ row.baudRate }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="同步字1:" label-width="125px">
-                        <span>{{ row.synchronousWord1 }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="同步字2:" label-width="125px">
-                        <span>{{ row.synchronousWord2 }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="奇偶校验:" label-width="125px">
-                        <span>{{ row.parity }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='TCPSERVERASMODBUSMASTER'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="远端ip:" label-width="125px">
-                        <span>{{ row.remoteIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="4">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="功能码:" label-width="125px">
-                        <span>{{ row.functionCode }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="设备地址:" label-width="125px">
-                        <span>{{ row.slaveId }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-                <vxe-form v-if="row.tunnelType==='TCPCLIENTASMODBUSMASTER'">
-                  <el-row>
-                    <el-col :span="12">
-                      <vxe-form-item title="通道id:" label-width="300px">
-                        <span>{{ row.id }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="远端ip:" label-width="125px">
-                        <span>{{ row.remoteIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="远端端口:" label-width="125px">
-                        <span>{{ row.remotePort }} </span>
-                      </vxe-form-item>
-                    </el-col>
-
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端ip:" label-width="125px">
-                        <span>{{ row.remoteSpareIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="备用远端端口:" label-width="125px">
-                        <span>{{ row.remoteSparePort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身ip:" label-width="125px">
-                        <span>{{ row.selfIp }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="自身端口:" label-width="125px">
-                        <span>{{ row.selfPort }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row>
-                    <el-col :span="6">
-                      <vxe-form-item title="功能码:" label-width="125px">
-                        <span>{{ row.functionCode }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                    <el-col :span="6">
-                      <vxe-form-item title="设备地址:" label-width="125px">
-                        <span>{{ row.slaveId }}</span>
-                      </vxe-form-item>
-                    </el-col>
-                  </el-row>
-                </vxe-form>
-              </template>
-            </vxe-table-column>
-            <!--   <vxe-table-column field="id" title="通道"></vxe-table-column>-->
-            <vxe-table-column field="tunnelName" title="通道名称"/>
-            <vxe-table-column field="tunnelType" title="通道类型" :filters="proTypeList" :formatter="formateProType"/>
-            <vxe-table-column field="refreshInterval" title="时间间隔(s)"/>
-            <vxe-table-column
-              field="isEnable"
-              title="是否启用通道"
-              :filters="options"
-              :edit-render="{name: '$select', options: options}"
-            />
-            <vxe-table-column>
-              <template v-slot="{ row }">
-                <el-button
-                  style="padding: 3px 4px 3px 4px;margin: 2px"
-                  size="mini"
-                  v-show="row.remoteIp!=null"
-                  @click="ping(row.remoteIp)">ping
-                </el-button>
-                <el-button
-                  style="padding: 3px 4px 3px 4px;margin: 2px"
-                  size="mini"
-                  v-show="row.selfPort!=null"
-                  @click="netstat(row.selfPort)">netstat
-                </el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-          <vxe-pager
-            perfect
-            :current-page.sync="currentPage"
-            :page-size.sync="pageSize"
-            :total="totalResult"
-            :layouts="['PrevJump', 'PrevPage', 'JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
-          />
-        </el-tab-pane>
-      </el-tabs>
-    </el-card>
-
-
-    <el-card class="box-carde">
-      <el-tabs v-model="activeName" @tab-click="handleClick">
-        <el-tab-pane label="上报对象" name="first" :disabled="btnLonding">
-          <vxe-table
-            align="center"
-            :loading="loading"
-            ref="xTable"
-            auto-resize
-            border
-            resizable
-            highlight-current-row
-            show-overflow
-            :data="tableData1"
-            v-show="showTable"
-            :expand-config="{labelField: 'channelNo', expandAll: false}"
-          >
-            <vxe-table-column field="uploadObjectName" title="上报对象名称"></vxe-table-column>
-            <vxe-table-column field="objectNo" title="上报对象编号"></vxe-table-column>
-            <vxe-table-column field="uploadFileType" title="上报文件类型"></vxe-table-column>
-            <vxe-table-column field="uploadFileCharSetEnum" title="上报文件字符集"></vxe-table-column>
-            <vxe-table-column field="uploadProtocolEnum" title="上报协议"></vxe-table-column>
-            <vxe-table-column field="uploadD5000" title="上报嘉越D5000"
-                              :formatter="formateuploadD5000"></vxe-table-column>
-            <vxe-table-column field="uploadObjectRemarks" title="上报对象备注"></vxe-table-column>
-          </vxe-table>
-        </el-tab-pane>
-        <el-tab-pane label="通道配置" name="secend" :disabled="btnLonding">
-          <vxe-table
-            align="center"
-            :loading="loading"
-            ref="sTable"
-            auto-resize
-            border
-            resizable
-            highlight-current-row
-            show-overflow
-            :data="channelData"
-            v-show="showTable"
-          >
-            <vxe-table-column type="expand" title="查看更多" width="8%">
-              <template v-slot:content="{ row, rowIndex }">
-                <table style="width: 100%;text-align: left"
-                       v-show="row.uploadObjectId.uploadProtocolEnum == '102服务端' || row.uploadObjectId.uploadProtocolEnum == '102山东客户端' || row.uploadObjectId.uploadProtocolEnum == '102山东服务端'||row.uploadObjectId.uploadProtocolEnum == '102浙江客户端'">
-                  <tr>
-                    <td>本地IP:{{ row.localIp }}</td>
-                    <td>本地端口:{{ row.localPort }}</td>
-                    <td>名称长度:{{ row.uploadFileNameLengthEnum }}</td>
-                  </tr>
-                  <tr>
-                    <td>远端IP:{{ row.remoteIp }}</td>
-                    <td>远端端口:{{ row.remotePort }}</td>
-                    <td>单次传输字节:{{ row.uploadFileSingleByteEnum }}</td>
-                  </tr>
-                </table>
-                <table style="width: 100%;text-align: left;" v-show="row.uploadObjectId.uploadProtocolEnum=='ftp'">
-                  <tr>
-                    <td>远端IP:{{ row.remoteIp }}</td>
-                    <td>远端端口:{{ row.remotePort }}</td>
-                    <td v-if="row.backupC!=1">服务端路径:{{ row.pathService }}</td>
-                  </tr>
-                  <tr>
-                    <td>用户名:{{ row.uploadUserName }}</td>
-                    <td>密码:{{ row.uploadPassword }}</td>
-                    <td>FTP模式:{{ row.ftpPassiveModeEnum }}</td>
-                  </tr>
-
-                  <tr v-if="row.backupC==1" v-for="item in row.backupA">
-                    <td>{{ item.label }}:{{ item.url }}</td>
-                  </tr>
-
-                </table>
-                <table style="width: 100%;text-align: left" v-show="row.uploadObjectId.uploadProtocolEnum=='sftp'">
-                  <tr>
-                    <td>远端IP:{{ row.remoteIp }}</td>
-                    <td>远端端口:{{ row.remotePort }}</td>
-                    <td>用户名:{{ row.uploadUserName }}</td>
-                    <!--<td>FTP模式:{{row.ftpPassiveModeEnum}}</td>-->
-                  </tr>
-                  <tr>
-                    <td>sftp上报方式:{{ row.sftpConnectModeEnum == 'E1' ? "密码连接" : "密钥连接" }}</td>
-                    <td v-if="row.backupC!=1">服务端路径:{{ row.pathService }}</td>
-                    <!--<td>FTP/SFTP密码:{{row.uploadPassword}}</td>-->
-                  </tr>
-                  <tr v-if="row.backupC==1" v-for="item in row.backupA">
-                    <td>{{ item.label }}:{{ item.url }}</td>
-                  </tr>
-                  <tr>
-                    <td v-show="row.sftpConnectModeEnum == 'E1'">密码:{{ row.uploadPassword }}</td>
-                    <td v-show="row.sftpConnectModeEnum == 'E2'">SFTP秘钥路径:{{ row.keyFilePath }}</td>
-                    <td v-show="row.sftpConnectModeEnum == 'E2'">SFPT秘钥密码:{{ row.passPhrase }}</td>
-                  </tr>
-                </table>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="uploadObjectId.uploadObjectName" title="上报对象"></vxe-table-column>
-            <vxe-table-column field="channelName" title="通道名称"></vxe-table-column>
-            <vxe-table-column field="channelStatusEnum" title="通道状态" :formatter="formatechannelStatusEnum"
-                              width="200px"></vxe-table-column>
-            <vxe-table-column field="channelRemarks" title="通道备注"></vxe-table-column>
-            <vxe-table-column>
-              <template v-slot="{ row }">
-                <el-button
-                  style="padding: 3px 4px 3px 4px;margin: 2px"
-                  size="mini"
-                  v-show="row.remoteIp!=null"
-                  @click="ping(row.remoteIp)">ping
-                </el-button>
-                <el-button
-                  style="padding: 3px 4px 3px 4px;margin: 2px"
-                  size="mini"
-                  v-show="row.localPort!=null"
-                  @click="netstat(row.localPort)">netstat
-                </el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-tab-pane>
-      </el-tabs>
-    </el-card>
-    <div>
-      <el-dialog :visible.sync="visible" :close-on-click-modal='false' :before-close="closeDialog" width="70%">
-        <fieldset>
-          <legend>自检信息报告</legend>
-          <div v-for="item in ipData">
-            {{item}}
-          </div>
-        </fieldset>
-      </el-dialog>
-
-      <el-dialog :visible.sync="visible1" :close-on-click-modal='false' :before-close="closeDialog1" width="70%">
-        <fieldset>
-          <legend>自检信息报告</legend>
-          <div v-for="item in pingData">
-            {{item}}
-          </div>
-        </fieldset>
-      </el-dialog>
-
-      <el-dialog :visible.sync="visible2" :close-on-click-modal='false' :before-close="closeDialog2" width="70%">
-        <fieldset>
-          <legend>自检信息报告</legend>
-          <div v-for="item in netstatData">
-            {{item}}
-          </div>
-        </fieldset>
-      </el-dialog>
-    </div>
-  </div>
-
-
-
-
+  <div>暂无内容</div>
 </template>
-
-<script>
-import enumerations from '../enumeration'
-
-export default {
-  data() {
-    return {
-      activeName1: 'first1',
-      disabled: false,
-      tableLoading: false,
-      typeTableData1a: [],
-      tunnelType: '',
-      proType: '',
-      // 后台传入场站数据
-      elTableData: [],
-      StartEndTime: [],
-      typeTable: [],
-      checkFlag: 0,
-      // 防止重复提交
-      isDisabled: false,
-      // 后台传入数据
-      tableData: [],
-      keywords: '',
-      protocol: [],
-      linuxDev: [],
-      errorstr: '',
-      filetype: '',
-      currentid: 1,
-      // 分页
-      currentPage: 1,
-      pageSize: 10,
-      totalResult: 0,
-      modiId: '',
-      visible: false,
-      visible1: false,
-      visible2: false,
-      // 数据下标
-      idx: -1,
-      proIndex: '',
-      // 下拉框数据
-      enums: enumerations,
-      options: [
-        {value: false, label: '停用中'},
-        {value: true, label: '使用中'}
-      ],
-      tunnelTypeList: [{value: 'Master', label: '数据接入'}, {value: 'Slave', label: '数据上送'}],
-      proTypeOptions: [],
-      proBaudrateOptions: [
-        {value: 300, label: 'B300'},
-        {value: 600, label: 'B600'},
-        {value: 1200, label: 'B1200'},
-        {value: 1800, label: 'B1800'},
-        {value: 2400, label: 'B2400'},
-        {value: 4800, label: 'B4800'},
-        {value: 9600, label: 'B9600'},
-        {value: 19200, label: 'B19200'},
-        {value: 38400, label: 'B38400'},
-        {value: 57600, label: 'B57600'},
-        {value: 115200, label: 'B115200'}
-      ],
-      proTypeList: [
-        {value: 'IEC104TCPMASTER', label: '采集104tcp'},
-        {value: 'IEC104TCPSLAVE', label: '转发104tcp'},
-        {value: 'MODBUSTCPMASTER', label: '采集modbustcp'},
-        {value: 'MODBUSTCPSLAVE', label: '转发modbustcp'},
-        {value: 'MODBUSRTUMASTER', label: '采集modbusRtu'},
-        {value: 'MODBUSRTUSLAVE', label: '转发modbusRtu'},
-        {value: 'CDTRTUMASTER', label: '采集cdtRtu'},
-        {value: 'CDTRTUSLAVE', label: '转发cdtRtu'},
-        { value: 'TCPSERVERASMODBUSMASTER', label: 'TCPServerAsModBus' },
-        { value: 'TCPCLIENTASMODBUSMASTER', label: 'TCPClientAsModBus' },
-        {value: 'FILEPARSE', label: '隔离文件解析'}
-      ],
-      parityOptions: [
-        {value: 0, label: '无校验'},
-        {value: 1, label: '奇校验'},
-        {value: 2, label: '偶校验'},
-        {value: 3, label: '0校验'},
-        {value: 4, label: '1校验'}],
-      functionCodeOptions: [
-        {value: 1, label: '1'},
-        {value: 2, label: '2'},
-        {value: 3, label: '3'},
-        {value: 4, label: '4'}],
-      proProgramOptions: [],
-      serialPortsList: [],
-      proProgramList: [],
-
-
-      disabledBtn: false,
-      activeName: 'first',
-      type: '',
-      objectId: '',
-      loading: false,
-      channelId: '',
-      channelData: [],
-      add: true,
-      showTable: true,
-      btnLonding: false,
-      tableData1: [],
-      form: {},
-      uploadFileTypeList: [],
-      channelFileRuleEnumList: [],
-      channelStatusEnumList: [],
-      uploadProtocolEnumList: [],
-      uploadFileCharSetEnumList: [],
-      uploadFileNameLengthEnumList: [],
-      uploadFileSingleByteEnumList: [],
-      ftpPassiveModeEnumList: [],
-      sftpsaveForm: [],
-      ftpsaveForm: [],
-      sftpConnectModeEnum: [{value: 'E1', label: '密码连接'}, {value: 'E2', label: '密钥连接'}],
-      uploadD5000List: [{value: '0', label: '否'}, {value: '1', label: '是'}],
-      isMoreURL: [{value: null, label: '否'}, {value: '1', label: '是'}],
-      fileTypeListForUrl: [],
-
-      ipData:[],
-      netstatData:[],
-      pingData:[],
-      i:0
-    }
-  },
-  mounted() {
-    this.getData()
-    this.getEl()
-    this.getSerialPorts()
-    this.get()
-  },
-  methods: {
-    getData() {
-      this.$axios.get('/TunnelInfo/getAllTunnel').then(res => {
-        this.tableData = res.data
-        this.totalResult = this.tableData.length
-        this.currentPage = 1
-      })
-    },
-    getSerialPorts() {
-      this.$axios.get('/TunnelInfo/getServerSerialPorts/').then(res => {
-        if (res.code === 0) {
-          this.serialPortsList = res.data
-          for (var i = 0; i < this.serialPortsList.length; i++) {
-            if (this.serialPortsList[i].substring(0, 3) === 'tty') {
-              this.serialPortsList[i] = '/dev/' + this.serialPortsList[i]
-            }
-          }
-        }
-      })
-    },
-    getEl() {
-      this.$axios.get('/electricField/').then(res => {
-        this.elTableData.push(res.data)
-        this.form.efiId = this.elTableData[0].stationCode
-        this.ef = this.elTableData[0].stationCode
-      })
-    },
-    handleDialogClose() {
-      if (this.addVisible === true) {
-        this.cancelForm('form')
-      }
-      this.addVisible = false
-      this.getData()
-    },
-    cellStyle({row, column}) {
-      if (column.property === 'isEnable') {
-        if (row.isEnable) {
-          return {
-            color: '#168822'
-          }
-        } else {
-          return {
-            color: '#881513'
-          }
-        }
-      }
-    },
-    // 设备id转名称
-    formateProType({cellValue}) {
-      const item = this.proTypeList.find(item => item.value === cellValue)
-      return item ? item.label : ''
-    },
-    /**
-     * 关闭对话框的回调
-     **/
-    cancelForm(formName) {
-      this.resetForm(formName)
-      this.addVisible = false
-      this.getData()
-      this.getEl()
-    },
-
-
-    get() {
-      Promise.all([this.getChannelStatusEnum(), this.getUploadProtocolEnum(), this.getUploadFileCharSetEnum(), this.getUploadFileNameLengthEnum(), this.getUploadFileSingleByteEnum(), this.getFtpPassiveModeEnum(), this.getChannelFileRuleEnum(), this.getFileType()]).then((results) => {
-        this.disabledBtn = false
-        this.loading = true
-        this.channelStatusEnumList = results[0]
-        // this.form.channelStatusEnum = this.channelStatusEnumList[0].value
-        this.uploadProtocolEnumList = results[1]
-        this.uploadFileCharSetEnumList = results[2]
-        this.uploadFileNameLengthEnumList = results[3]
-        this.uploadFileSingleByteEnumList = results[4]
-        this.ftpPassiveModeEnumList = results[5]
-        this.channelFileRuleEnumList = results[6]
-        this.uploadFileTypeList = results[7]
-        this.getAll()
-      })
-    },
-    handleClick(tab, event) {
-      // console.log(tab.name);
-      if (tab.name === 'secend') {
-        this.getAllChannel()
-      } else {
-        this.getAll()
-      }
-    },
-    getAllChannel() {
-      this.$axios.get("/uploadFileChannel/").then(res => {
-        this.channelData = res.data
-        for (let i = 0; i < this.channelData.length; i++) {
-
-          /*for (let j = 0; j < this.channelStatusEnumList.length; j++) {
-            if (this.channelData[i].channelStatusEnum == this.channelStatusEnumList[j]["value"]) {
-              this.channelData[i].channelStatusEnum = this.channelStatusEnumList[j]["label"]
-            }
-          }*/
-          for (let j = 0; j < this.uploadFileNameLengthEnumList.length; j++) {
-            if (this.channelData[i].uploadFileNameLengthEnum == this.uploadFileNameLengthEnumList[j]["value"]) {
-              this.channelData[i].uploadFileNameLengthEnum = this.uploadFileNameLengthEnumList[j]["label"]
-            }
-          }
-
-          for (let j = 0; j < this.uploadFileSingleByteEnumList.length; j++) {
-            if (this.channelData[i].uploadFileSingleByteEnum == this.uploadFileSingleByteEnumList[j]["value"]) {
-              this.channelData[i].uploadFileSingleByteEnum = this.uploadFileSingleByteEnumList[j]["label"]
-            }
-          }
-          for (let j = 0; j < this.ftpPassiveModeEnumList.length; j++) {
-            if (this.channelData[i].ftpPassiveModeEnum == this.ftpPassiveModeEnumList[j]["value"]) {
-              this.channelData[i].ftpPassiveModeEnum = this.ftpPassiveModeEnumList[j]["label"]
-            }
-          }
-          for (let j = 0; j < this.channelFileRuleEnumList.length; j++) {
-            if (this.channelData[i].channelFileRuleEnum == this.channelFileRuleEnumList[j]["value"]) {
-              this.channelData[i].channelFileRuleEnum = this.channelFileRuleEnumList[j]["label"]
-            }
-          }
-          for (let j = 0; j < this.tableData1.length; j++) {
-            if (this.channelData[i].uploadObjectId == this.tableData1[j].id) {
-              this.channelData[i].uploadObjectId = this.tableData1[j]
-            }
-          }
-
-          if (this.channelData[i].uploadObjectId.uploadProtocolEnum == "ftp" || this.channelData[i].uploadObjectId.uploadProtocolEnum == "sftp") {
-            let data1 = []
-            this.$axios.get("/uploadURL/" + this.channelData[i].id).then(res => {
-              for (let x = 0; x < this.tableData1.length; x++) {
-                if (this.tableData1[x].id == this.channelData[i].uploadObjectId.id) {
-                  var data = this.tableData1[x].uploadFileType.split(",")
-                  for (let n = 0; n < data.length; n++) {
-                    for (let j = 0; j < this.uploadFileTypeList.length; j++) {
-                      if (data[n] == this.uploadFileTypeList[j]["label"]) {
-                        var data2 = {
-                          label: this.uploadFileTypeList[j]["label"] + "路径:",
-                          value: this.uploadFileTypeList[j]["value"],
-                          url: ""
-                        }
-                        for (let y = 0; y < res.data.length; y++) {
-
-                          if (res.data[y].fileTypeEnum == this.uploadFileTypeList[j]["value"]) {
-                            data2.url = res.data[y].uploadURL
-                          }
-                        }
-                        data1.push(data2)
-                      }
-                    }
-                  }
-                }
-              }
-            })
-            this.channelData[i].backupA = data1
-          }
-        }
-        //console.log("获取通道信息成功")
-      }).catch(error => {
-        this.$message.error('获取通道信息出错' + error)
-      })
-    },
-    getAll() {
-      this.$axios.get("/uploadObject/").then(res => {
-        this.tableData1 = res.data
-        // console.log(this.tableData1)
-        this.loading = false
-        for (let i = 0; i < this.tableData1.length; i++) {
-          //添加编辑标识
-          this.$set(this.tableData1, 'edit', false)
-          //添加省调枚举标识转换
-          for (let j = 0; j < this.uploadProtocolEnumList.length; j++) {
-            if (this.tableData1[i].uploadProtocolEnum == this.uploadProtocolEnumList[j]["value"]) {
-              this.tableData1[i].uploadProtocolEnum = this.uploadProtocolEnumList[j]["label"]
-            }
-          }
-          for (let j = 0; j < this.uploadFileCharSetEnumList.length; j++) {
-            if (this.tableData1[i].uploadFileCharSetEnum == this.uploadFileCharSetEnumList[j]["value"]) {
-              this.tableData1[i].uploadFileCharSetEnum = this.uploadFileCharSetEnumList[j]["label"]
-            }
-          }
-          const data = this.tableData1[i].uploadFileType.split(",");
-          let data1 = "";
-          for (let n = 0; n < data.length; n++) {
-            for (let j = 0; j < this.uploadFileTypeList.length; j++) {
-              if (data[n] == this.uploadFileTypeList[j]["value"]) {
-                data1 = data1 + this.uploadFileTypeList[j]["label"] + ","
-              }
-            }
-          }
-          data1 = data1.substr(0, data1.length - 1)
-          this.tableData1[i].uploadFileType = data1
-          this.getAllChannel()
-        }
-        // console.log("获取通道对象信息成功")
-      }).catch(error => {
-        this.$message.error('获取通道对象信息出错' + error)
-      })
-    },
-    getChannelStatusEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getChannelStatusEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取通道状态枚举类型成功")
-        }).catch((error) => {
-          this.$message.error('获取通道状态枚举类型出错' + error)
-        })
-
-      });
-    },
-    getUploadProtocolEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getUploadProtocolEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取上报协议枚举类型成功")
-        }).catch((error) => {
-          this.$message.error('获取上报协议枚举类型出错' + error)
-        })
-      });
-    },
-    getUploadFileCharSetEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getUploadFileCharSetEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取上报文件字符集类型成功")
-        }).catch((error) => {
-          this.$message.error('获取上报文件字符集类型出错' + error)
-        })
-      });
-    },
-    getUploadFileNameLengthEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getUploadFileNameLengthEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取上报文件名称长度枚举类型成功")
-        }).catch((error) => {
-          this.$message.error('获取上报文件名称长度枚举出错' + error)
-        })
-      });
-    },
-    getUploadFileSingleByteEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getUploadFileSingleByteEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取上报文件单次传输字节枚举类型成功")
-        }).catch((error) => {
-          this.$message.error('获取上报文件单次传输字节枚举类型出错' + error)
-        })
-      });
-    },
-    getFtpPassiveModeEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getFtpPassiveModeEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取ftp模式成功")
-        }).catch((error) => {
-          this.$message.error('获取ftp模式出错' + error)
-        })
-      });
-    },
-    getChannelFileRuleEnum() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadFileChannel/getChannelFileRuleEnum").then(res => {
-          resolve(res.data)
-          // console.log("获取ftp模式成功")
-        }).catch((error) => {
-          this.$message.error('获取ftp模式出错' + error)
-        })
-      });
-    },
-    getFileType() {
-      const a = this.$axios
-      return new Promise(function (resolve, reject) {
-        a.get("/uploadObject/getFileTypeByProvince").then(res => {
-          resolve(res.data)
-          // console.log("获取上报文件类型成功")
-        }).catch((error) => {
-          this.$message.error('获取上报文件类型出错' + error)
-        })
-      });
-    },
-    getUploadFileType() {
-      return this.form.uploadFileType
-
-    },
-    //转换通道状态
-    formatechannelStatusEnum({cellValue}) {
-      const item = this.channelStatusEnumList.find(item => item.value === cellValue)
-      return item ? item.label : ''
-    },
-    //转上报D5000
-    formateuploadD5000({cellValue}) {
-      const item = this.uploadD5000List.find(item => item.value === cellValue)
-      return item ? item.label : ''
-    },
-    check(){
-      this.visible = true
-      this.ipData = ["查询本地网卡状态中","。。。。。。。"]
-      this.$axios.get("/inspectionReport/getIp").then(res=>{
-        this.ipData = res.data
-      })
-    },
-    check1(){
-      this.visible1 = true
-      this.pingData = ["ping 数据交互对方ip","------------------"]
-      this.ping1(0)
-
-
-      // this.i = 0
-      // this.pingData.push("继续。。。")
-      // this.ping2()
-      // this.pingData.push("完毕!!!")
-    },
-    ping1(i){
-      if (this.tableData.length>i){
-        if(this.tableData[i].remoteIp!=undefined&&this.tableData[i].remoteIp!=null){
-          this.$axios.get("/inspectionReport/getPing/"+this.tableData[i].remoteIp).then(res=>{
-            if(res.data!=null){
-              this.pingData.push("["+this.tableData[i].tunnelName+"]:")
-              for(let j = 0;j<res.data.length;j++){
-                this.pingData.push(res.data[j])
-              }
-              this.pingData.push("...")
-              i++
-              this.ping1(i)
-            }
-          })
-        }else {
-          i++
-          this.ping1(i)
-        }
-      }else{
-        this.pingData.push("ping 数据交互结束!!!")
-        this.pingData.push("------------------")
-        this.pingData.push("------------------")
-        this.pingData.push("ping 上报交互ip中")
-        this.pingData.push("------------------")
-        this.ping2(0)
-      }
-    },
-    ping2(i){
-      if (this.channelData.length>i+1){
-        if(this.channelData[i].remoteIp!=undefined&&this.channelData[i].remoteIp!=null){
-          this.$axios.get("/inspectionReport/getPing/"+this.channelData[i].remoteIp).then(res=>{
-            this.pingData.push("["+this.channelData[i].channelName+"]:")
-            if(res.data!=null) {
-              for(let j = 0;j<res.data.length;j++){
-                this.pingData.push(res.data[j])
-              }
-              this.pingData.push("...")
-              i++
-              this.ping2(i)
-            }
-          })
-        }else {
-          i++
-          this.ping2(i)
-        }
-      }else{
-        this.pingData.push("ping 上报交互结束!!!")
-        return
-      }
-    },
-    check2(){
-
-      this.visible2 = true
-      this.netstatData = ["检查数据交互本地ip","------------------"]
-      this.netstat1(0)
-
-
-      // this.i = 0
-      // this.pingData.push("继续。。。")
-      // this.ping2()
-      // this.pingData.push("完毕!!!")
-    },
-    netstat1(i){
-      if (this.tableData.length>i){
-        if(this.tableData[i].selfPort!=undefined&&this.tableData[i].selfPort!=null){
-          this.$axios.get("/inspectionReport/getNetstat/"+this.tableData[i].selfPort).then(res=>{
-            if(res.data!=null){
-              this.netstatData.push("["+this.tableData[i].tunnelName+"]:")
-              for(let j = 0;j<res.data.length;j++){
-                this.netstatData.push(res.data[j])
-              }
-              this.netstatData.push("...")
-              i++
-              this.netstat1(i)
-            }
-          })
-        }else {
-          i++
-          this.netstat1(i)
-        }
-      }else{
-        this.netstatData.push("检查数据交互本地ip结束!!!")
-        this.netstatData.push("------------------")
-        this.netstatData.push("------------------")
-        this.netstatData.push("检查上报交互本地ip中")
-        this.netstatData.push("------------------")
-        this.netstat2(0)
-      }
-    },
-    netstat2(i){
-      if (this.channelData.length>i+1){
-        if(this.channelData[i].localPort!=undefined&&this.channelData[i].localPort!=null){
-          this.$axios.get("/inspectionReport/getNetstat/"+this.channelData[i].localPort).then(res=>{
-            this.netstatData.push("["+this.channelData[i].channelName+"]:")
-            if(res.data!=null) {
-              for(let j = 0;j<res.data.length;j++){
-                this.netstatData.push(res.data[j])
-              }
-              this.netstatData.push("...")
-              i++
-              this.netstat2(i)
-            }
-          })
-        }else {
-          i++
-          this.netstat2(i)
-        }
-      }else{
-        this.netstatData.push("检查上报交互本地ip结束!!!")
-        return
-      }
-    },
-    closeDialog() {
-      this.visible = false
-      this.ipData = []
-    },
-    closeDialog1() {
-      this.visible1 = false
-      this.pingData = []
-    },
-    closeDialog2() {
-      this.visible2 = false
-      this.netstatData = []
-    },
-    ping(ip){
-      this.visible1 = true
-      this.pingData.push("ping 对方ip中。。。")
-      this.$axios.get("/inspectionReport/getPing/"+ip).then(res=>{
-        if(res.data!=null) {
-          for(let j = 0;j<res.data.length;j++){
-            this.pingData.push(res.data[j])
-          }
-          this.pingData.push("结束。。。")
-        }
-      })
-    },
-    netstat(port){
-      this.visible2 = true
-        this.$axios.get("/inspectionReport/getNetstat/"+port).then(res=>{
-          if(res.data!=null) {
-            for(let j = 0;j<res.data.length;j++){
-              this.netstatData.push(res.data[j])
-            }
-          }
-        })
-    }
-  }
-}
-</script>
-
 <style scoped>
 #tunnelinfo {
   padding-left: 20px;

+ 2 - 0
ipfcst-console/src/main/frontend/views/uploadFile/UploadFileChannel/index.vue

@@ -30,6 +30,7 @@
             :expand-config="{labelField: 'channelNo', expandAll: false}"
           >
             <vxe-table-column title="上报对象信息">
+              <vxe-table-column field="stationCode" title="场站编号"></vxe-table-column>
               <vxe-table-column field="uploadObjectName" title="上报对象名称"></vxe-table-column>
               <vxe-table-column field="objectNo" title="上报对象编号"></vxe-table-column>
               <vxe-table-column field="uploadFileType" title="上报文件类型"></vxe-table-column>
@@ -963,6 +964,7 @@ export default {
         uploadFileType: [{required: true, validator: checkObjectFileType, trigger: 'blur'}],
         uploadFileCharSetEnum: [{required: true, message: '不能为空', trigger: 'blur'}],
         uploadProtocolEnum: [{required: true, message: '不能为空', trigger: 'blur'}],
+        stationCode: [{required: true, message: '不能为空', trigger: 'blur'}],
       },
       rules102: {
         uploadObjectId: [{required: true, message: '不能为空', trigger: 'blur'}],

+ 18 - 5
ipfcst-console/src/main/frontend/views/uploadFile/queryUploadFile/index.vue

@@ -11,7 +11,7 @@
         @change="seachLogInfo"
       />
       <span style="font-weight: bold;font-size: 14px">场站名称:</span>
-      <el-select style="width:250px" v-model="stationCode" size="small">
+      <el-select style="width:250px" v-model="stationCode" size="small" @change="stationCodeChange">
         <el-option
           v-for="item in stationList"
           :key="item.stationCode"
@@ -22,7 +22,7 @@
       <span style="font-weight: bold;font-size: 14px">上报对象:</span>
       <el-select v-model="uploadObjectId" size="small" @change="uploadObjectChange">
         <el-option
-          v-for="item in uploadList"
+          v-for="item in queryUploadObject"
           :key="item.id"
           :label="item.uploadObjectName"
           :value="item.id"
@@ -219,7 +219,9 @@ export default {
     return {
       uploadObjectId: '',
       uploadFileType: '',
+      stationCode: '',
       uploadList: [],
+      queryUploadObject:[],
       stationList: [],
       detaileTable: [],
       uploadFileTypeList: [],
@@ -261,7 +263,6 @@ export default {
         this.uploadProtocolEnum = res[3]
         this.fileTypeEnum = res[4]
         this.stationList = res[5]
-        console.log(res[5])
         this.updateFilterEvent()
       })
     },
@@ -345,7 +346,6 @@ export default {
         a.get('/electricField/getElectricField').then(res => {
           resolve(res.data)
         }).catch((error) => {
-          alert(error)
           this.$message.error('获取场站下拉框出错' + error)
         })
       })
@@ -357,6 +357,11 @@ export default {
       var dataTime = data.getTime()
       const nowTimeDate = new Date(dataTime)
       nowTimeDate.setHours(0, 0, 0, 0)
+      if (this.stationCode === '' || this.stationCode === null) {
+        this.$message.error('请选择场站')
+        this.loading = false
+        return false
+      }
       if (this.uploadObjectId === '' || this.uploadObjectId === null) {
         this.$message.error('请选择上报对象')
         this.loading = false
@@ -369,7 +374,8 @@ export default {
         if (this.fileStatus === '' || this.fileStatus === null) {
           fileStatus = 'ALL'
         }
-        this.$axios.get('/uploadFileLog/getFileLog/' + this.uploadObjectId + '/' + nowTimeDate.getTime() + '/' + uploadFileType + '/' + fileStatus).then((res) => {
+        var stationCode = this.stationCode
+        this.$axios.get('/uploadFileLog/getFileLog/' + this.uploadObjectId + '/' + nowTimeDate.getTime() + '/' + uploadFileType + '/' + fileStatus+ '/' + stationCode).then((res) => {
           this.tableData = res.data
           this.totalResult = this.tableData.length
           this.loading = false
@@ -378,6 +384,13 @@ export default {
         })
       }
     },
+    stationCodeChange() {
+      this.$axios.get('/uploadObject/getByStationCode/' + this.stationCode).then((res) => {
+        this.uploadObjectId=''
+        this.uploadFileType=''
+        this.queryUploadObject = res.data
+      })
+    },
     uploadObjectChange() {
       this.$axios.get('/uploadObject/getByuploadObjectId/' + this.uploadObjectId).then((res) => {
         // console.log(res)

+ 143 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/console/controller/InitJobClassController.java

@@ -0,0 +1,143 @@
+package com.jiayue.ipfcst.console.controller;
+
+import com.jiayue.ipfcst.aop.SaveValidate;
+import com.jiayue.ipfcst.common.core.web.vo.ResponseVO;
+import com.jiayue.ipfcst.common.data.entity.InitJobClass;
+import com.jiayue.ipfcst.console.service.InitJobClassService;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 定时控制类
+ *
+ * @author bizy
+ * @version 1.0
+ * @since 2018/10/22 11:29
+ */
+@RestController
+@Slf4j
+public class InitJobClassController {
+
+  @Autowired
+  InitJobClassService initJobClassService;
+
+  /**
+   * 添加任务class
+   *
+   * @param initJobClass 任务class对象
+   * @return 状态bean
+   */
+  @SaveValidate(desc = "添加")
+  @SneakyThrows
+  @PostMapping(value = "initJobClasses")
+  public ResponseVO addInitJobClass(
+    @RequestBody final InitJobClass initJobClass) {
+    final InitJobClass i1 = initJobClassService.findByName(initJobClass.getJobClassName());
+    final InitJobClass i2 = initJobClassService.findByPath(initJobClass.getJobClassPath());
+
+    if (i1 != null || i2 != null) {
+      return ResponseVO.fail("添加失败!别名或者执行类相同!");
+    } else {
+      initJobClassService.save(initJobClass);
+    }
+    return ResponseVO.success("添加成功!");
+
+  }
+
+  /**
+   * 更新任务class
+   *
+   * @param initJobClass 任务class对象
+   * @return 状态bean
+   */
+  @SaveValidate
+  @SneakyThrows
+  @PutMapping(value = "initJobClasses")
+  public ResponseVO updateInitJobClass(
+    @RequestBody final InitJobClass initJobClass) {
+
+    initJobClassService.save(initJobClass);
+    return ResponseVO.success("添加成功!");
+
+  }
+
+  /**
+   * 删除任务class
+   *
+   * @param ids id集合
+   * @return ResponseVO
+   */
+  @SneakyThrows
+  @RequestMapping(value = "initJobClasses/delete/{ids}", method = RequestMethod.DELETE)
+  public ResponseVO deleteInitJobClassById(@PathVariable final String ids) {
+
+    if (initJobClassService.deleteById(ids)) {
+      return ResponseVO.success("删除成功!");
+    }
+    return ResponseVO.fail("删除失败!没有查询到id对应的任务class");
+
+  }
+
+  /**
+   * 根据jobName模糊查询
+   *
+   * @param page         页数
+   * @param size         每页几条
+   * @param jobClassName jobClassName
+   * @return Map<String, Object>
+   */
+  @SneakyThrows
+  @GetMapping(value = "initJobClasses/{page}/{size}/{jobClassName}")
+  public ResponseVO getInitJobClasss(
+    @PathVariable final Integer page, @PathVariable final Integer size, @PathVariable String jobClassName) {
+
+    if (jobClassName.equals("1")) {
+      jobClassName = "";
+    }
+    final Map<String, Object> map = initJobClassService.getInitJobClass(jobClassName, page, size);
+    return ResponseVO.success(map);
+
+  }
+
+  /**
+   * 根据jobName模糊查询
+   *
+   * @param jt jobType
+   * @return Map<String, Object>
+   */
+  @SneakyThrows
+  @GetMapping(value = "initJobClasses/jobType/{jt}")
+  public ResponseVO getJobClassByType(
+    @PathVariable final String jt) {
+    final Map<String, Object> map = new Hashtable<>();
+
+    final List<InitJobClass> list = initJobClassService.findByJobClassType(jt);
+    map.put("list", list);
+
+    return ResponseVO.success(map);
+  }
+
+  /**
+   * 查询全部
+   *
+   * @return Map<String, Object>
+   */
+  @SneakyThrows
+  @GetMapping(value = "initJobClasses/getAllJobClass")
+  public ResponseVO getAllJobClass() {
+    final Map<String, Object> map = new Hashtable<>();
+
+    final List<InitJobClass> list = initJobClassService.findAll();
+    map.put("list", list);
+
+    return ResponseVO.success(map);
+  }
+
+
+}

+ 129 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/console/controller/QuartzController.java

@@ -0,0 +1,129 @@
+package com.jiayue.ipfcst.console.controller;
+
+import com.jiayue.ipfcst.aop.SaveValidate;
+import com.jiayue.ipfcst.common.core.web.vo.ResponseVO;
+import com.jiayue.ipfcst.common.data.entity.Quartz;
+import com.jiayue.ipfcst.console.service.InitJobClassService;
+import com.jiayue.ipfcst.console.service.QuartzService;
+import com.jiayue.ipfcst.console.service.SysParameterService;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.sql.SQLException;
+import java.util.Map;
+
+/**
+ * 定时控制类
+ *
+ * @author bizy
+ * @version 1.0
+ * @since 2018/10/22 11:29
+ */
+@RestController
+@Slf4j
+public class QuartzController {
+
+  @Autowired
+  QuartzService quartzService;
+
+  @Autowired
+  InitJobClassService initJobClassService;
+
+  @Autowired
+  SysParameterService sysParameterService;
+
+  /**
+   * 添加定时任务
+   *
+   * @param qt 定时任务对象
+   * @return 状态bean
+   */
+  @SaveValidate
+  @SneakyThrows
+  @PostMapping(value = "quartzs")
+  public ResponseVO addQuartz(@RequestBody final Quartz qt) {
+    final Quartz quartz = quartzService.findByClass(qt.getExecuteClass());
+    if (null != quartz) {
+      return ResponseVO.fail("添加失败,任务已存在!");
+    } else {
+      final boolean flag = quartzService.save(qt);
+      if (flag) {
+        return ResponseVO.success("添加成功!");
+      } else {
+        return ResponseVO.fail("添加失败!");
+      }
+    }
+
+  }
+
+  /**
+   * 修改定时任务状态
+   *
+   * @param qt 定时任务对象
+   * @return 状态bean
+   */
+  @SaveValidate
+  @SneakyThrows
+  @PutMapping(value = "quartzs")
+  public ResponseVO stateQuartz(@RequestBody final Quartz qt) {
+    final boolean flag = quartzService.save(qt);
+    if (flag) {
+      return ResponseVO.success("修改成功!");
+    } else {
+      return ResponseVO.success("修改成功!");
+    }
+  }
+
+  /**
+   * 删除定时任务
+   *
+   * @param ids
+   * @return
+   */
+  @SneakyThrows
+  @RequestMapping(value = "quartzs/delete/{ids}", method = RequestMethod.DELETE)
+  public ResponseVO deleteQuartzById(@PathVariable final String ids) {
+    if (quartzService.deleteById(ids)) {
+      return ResponseVO.success("删除成功!");
+    }
+    return ResponseVO.fail("删除失败!没有查询到id对应的定时任务");
+  }
+
+  /**
+   * 根据jobName模糊查询
+   *
+   * @param page    页数
+   * @param size    每页几条
+   * @param jobName jobName
+   * @return Map<String, Object>
+   */
+  @SneakyThrows
+  @GetMapping(value = "quartzs/{page}/{size}/{jobName}/{jobType}")
+  public ResponseVO getQuartzs(
+    @PathVariable final Integer page, @PathVariable final Integer size, @PathVariable String jobName,
+    @PathVariable String jobType) {
+    if (jobName.equals("1")) {
+      jobName = "";
+    }
+    if (jobType.equals("1")) {
+      jobType = "";
+    }
+    final Map<String, Object> map = quartzService.getQuartz(jobName, jobType, page, size);
+
+    return ResponseVO.success(map);
+  }
+
+  @SneakyThrows
+  @GetMapping(value = "initJobClasses/initJob")
+  public ResponseVO initJobClass() throws SQLException {
+    Boolean b = quartzService.initJobClass();
+    if (!b) {
+      return ResponseVO.fail("初始化失败,请检查sql文件是否存在");
+    }
+    return ResponseVO.success("初始化成功!");
+
+  }
+
+}

+ 161 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/console/service/InitJobClassService.java

@@ -0,0 +1,161 @@
+package com.jiayue.ipfcst.console.service;
+
+import com.jiayue.ipfcst.common.data.entity.InitJobClass;
+import com.jiayue.ipfcst.common.data.repository.InitJobClassRepository;
+import com.jiayue.ipfcst.common.data.service.BaseService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.persistence.criteria.Predicate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 定时逻辑
+ *
+ * @author bizy
+ * @version 1.0
+ * @since 2018/10/22 11:29
+ */
+@Service
+@Slf4j
+public class InitJobClassService extends BaseService {
+
+  private final InitJobClassRepository initJobClassRepository;
+
+  @Autowired
+  public InitJobClassService(InitJobClassRepository initJobClassRepository) {
+
+    this.initJobClassRepository = initJobClassRepository;
+
+  }
+
+  /**
+   * 根据类型查询
+   *
+   * @param jobClassType 任务名
+   * @return InitJobClass
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public List<InitJobClass> findByJobClassType(
+    String jobClassType) {
+    return initJobClassRepository.findByJobClassType(jobClassType);
+  }
+
+  /**
+   * 查询全部
+   *
+   * @return InitJobClass
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public List<InitJobClass> findAll() {
+    return initJobClassRepository.findAll();
+  }
+
+  /**
+   * 保存/更新
+   *
+   * @param initJobClass 实体
+   */
+  public void save(InitJobClass initJobClass) {
+    try {
+      initJobClassRepository.save(initJobClass);
+    } catch (Exception e) {
+      log.error("系统错误", e);
+    }
+  }
+
+  /**
+   * 删除
+   *
+   * @param ids id集合
+   * @return boolean
+   */
+  @Transactional(propagation = Propagation.REQUIRED)
+  public boolean deleteById(String ids) {
+    boolean flag = false;
+    try {
+      if (ids.isEmpty()) {
+      } else {
+        String[] id = ids.split(",");
+        if (null != id && id.length > 0) {
+          for (String did : id) {
+            initJobClassRepository.deleteById(Integer.parseInt(did));
+          }
+        } else {
+          initJobClassRepository.deleteById(Integer.parseInt(ids));
+        }
+        flag = true;
+      }
+    } catch (Exception e) {
+      log.error("系统错误", e);
+    }
+
+    return flag;
+  }
+
+  /**
+   * 根据条件查询定时任务
+   *
+   * @param jobClassName 任务名
+   * @param page         页码
+   * @param size         每页多少条
+   * @return map
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public Map<String, Object> getInitJobClass(
+    String jobClassName, Integer page, Integer size) {
+    Map<String, Object> map = new HashMap<>();
+    Specification<InitJobClass> specification = this.getDemoQuerySpecification(jobClassName);
+    //分页信息
+    Pageable pageable = PageRequest.of(page - 1, size); //页码:前端从1开始,jpa从0开始,做个转换
+    Page pageUser = initJobClassRepository.findAll(specification, pageable);
+    List<InitJobClass> quartzs = pageUser.getContent();// 结果集
+    map.put("emps", quartzs);// 结果集
+    map.put("count", pageUser.getTotalElements());// 总记录数
+    return map;
+  }
+
+  /**
+   * 封装样例查询条件
+   *
+   * @param jobClassName 用户名
+   * @return 封装好的样例查询条件
+   */
+  private Specification<InitJobClass> getDemoQuerySpecification(final String jobClassName) {
+    return (Specification<InitJobClass>) (root, criteriaQuery, cb) -> {
+      List<Predicate> predicates = new ArrayList<>();
+      predicates.add(cb.like(root.get("jobClassName").as(String.class), "%" + jobClassName + "%"));
+      return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+    };
+  }
+
+  /**
+   * 根据id查询对象
+   *
+   * @param id
+   * @return InitJobClass
+   */
+  public InitJobClass findById(String id) {
+    return initJobClassRepository.findById(Integer.parseInt(id)).get();
+  }
+
+  public InitJobClass findByName(String jobClassName) {
+    return initJobClassRepository.findByJobClassName(jobClassName);
+  }
+
+  public InitJobClass findByPath(String jobClassPath) {
+    return initJobClassRepository.findByJobClassPath(jobClassPath);
+  }
+
+
+}

+ 257 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/console/service/QuartzService.java

@@ -0,0 +1,257 @@
+package com.jiayue.ipfcst.console.service;
+
+import com.jiayue.ipfcst.common.data.entity.Quartz;
+import com.jiayue.ipfcst.common.data.repository.QuartzRepository;
+import com.jiayue.ipfcst.common.data.service.BaseService;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.SchedulerException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.support.EncodedResource;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.datasource.init.ScriptUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.persistence.criteria.Predicate;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 定时逻辑
+ *
+ * @author bizy
+ * @version 1.0
+ * @since 2018/10/22 11:29
+ */
+@Service
+@Slf4j
+public class QuartzService extends BaseService {
+
+  private final QuartzRepository quartzRepository;
+
+  @Autowired
+  public QuartzService(QuartzRepository quartzRepository) {
+
+    this.quartzRepository = quartzRepository;
+
+  }
+
+  /**
+   * 根据任务名查询
+   *
+   * @param jobName 任务名
+   * @return Quartz
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public Quartz findByName(String jobName) {
+    return quartzRepository.findByJobName(jobName);
+  }
+
+  /**
+   * 根据执行类查询
+   *
+   * @param executeClass 执行类
+   * @return Quartz
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public Quartz findByClass(
+    String executeClass) {
+    return quartzRepository.findByExecuteClass(executeClass);
+  }
+
+  /**
+   * 保存/更新
+   *
+   * @param qt 任务实体
+   */
+  @Transactional(propagation = Propagation.REQUIRED)
+  public boolean save(Quartz qt) {
+    boolean flag = false;
+    try {
+      flag = updateState(qt);
+    } catch (Exception e) {
+      log.error("系统错误", e);
+    } finally {
+      return flag;
+    }
+  }
+
+  /**
+   * 删除
+   *
+   * @param ids id集合
+   * @return boolean
+   */
+  @Transactional(propagation = Propagation.REQUIRED)
+  public boolean deleteById(String ids) {
+    boolean flag = false;
+    try {
+      if (!ids.isEmpty()) {
+        String[] id = ids.split(",");
+        if (null != id && id.length > 0) {
+          for (String did : id) {
+            Quartz quartz = quartzRepository.findById(Integer.parseInt(did)).get();
+            deleteJob(quartz.getJobName());
+            quartzRepository.delete(quartz);
+          }
+        } else {
+          Quartz quartz = quartzRepository.findById(Integer.parseInt(ids)).get();
+          deleteJob(quartz.getJobName());
+          quartzRepository.delete(quartz);
+
+        }
+        flag = true;
+      }
+    } catch (Exception e) {
+      log.error("系统错误", e);
+    } finally {
+      return flag;
+    }
+  }
+
+  /**
+   * 根据条件查询定时任务
+   *
+   * @param jobName 任务名
+   * @param page    页码
+   * @param size    每页多少条
+   * @return map
+   */
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public Map<String, Object> getQuartz(
+    String jobName, String jobType, Integer page, Integer size) throws SchedulerException {
+    Map<String, Object> map = new HashMap<>();
+    Specification<Quartz> specification = this.getDemoQuerySpecification(jobName, jobType);
+    //分页信息
+    Pageable pageable = PageRequest.of(page - 1, size); //页码:前端从1开始,jpa从0开始,做个转换
+    Page pageUser = quartzRepository.findAll(specification, pageable);
+    List<Quartz> quartzs = pageUser.getContent();// 结果集
+    if (null != quartzs && quartzs.size() > 0) {
+      for (Quartz quartz : quartzs) {
+        quartz.setJobState(getJobStatus(quartz.getJobName()));
+        quartz.setLaetFireTime(getJobPreviousFireTime(quartz.getJobName()));
+      }
+    }
+    quartzRepository.saveAll(quartzs);
+    map.put("emps", quartzs);// 结果集
+    map.put("count", pageUser.getTotalElements());// 总记录数
+    return map;
+  }
+
+  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  public List<Quartz> getAll() throws SchedulerException {
+    List<Quartz> quartzs = quartzRepository.findAll();
+    if (null != quartzs && quartzs.size() > 0) {
+      for (Quartz quartz : quartzs) {
+        quartz.setJobState(getJobStatus(quartz.getJobName()));
+        quartz.setLaetFireTime(getJobPreviousFireTime(quartz.getJobName()));
+      }
+    }
+    return quartzs;
+  }
+
+  /**
+   * 封装样例查询条件
+   *
+   * @param jobName 用户名
+   * @return 封装好的样例查询条件
+   */
+  private Specification<Quartz> getDemoQuerySpecification(final String jobName, final String jobType) {
+    return (Specification<Quartz>) (root, criteriaQuery, cb) -> {
+      List<Predicate> predicates = new ArrayList<>();
+      if (!jobName.isEmpty()) {
+        predicates.add(cb.like(root.get("jobName").as(String.class), "%" + jobName + "%"));
+      }
+      if (!jobType.isEmpty()) {
+        predicates.add(cb.like(root.get("jobType").as(String.class), "%" + jobType + "%"));
+      }
+      return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+    };
+  }
+
+  @Transactional(propagation = Propagation.REQUIRED)
+  public boolean updateState(Quartz quartz) {
+    boolean flag = false;
+    try {
+
+      Class c = Class.forName(quartz.getExecuteClass());
+      c.newInstance();
+      if (quartz.getCronExpression().indexOf(" ") != -1) {
+        scheduleJob(c, quartz.getJobName(), quartz.getStartTime(), quartz.getCronExpression(), null);
+      } else {
+        scheduleJob(c, quartz.getJobName(), quartz.getStartTime(),
+          Long.valueOf(Integer.parseInt(quartz.getCronExpression()) * 1000), null);
+      }
+
+      if (quartz.getJobState().equals("暂停")) {
+        pauseJob(quartz.getJobName());
+        log.debug("定时任务暂停:" + quartz.getJobName());
+      }
+
+      if (!quartz.getJobState().equals("暂停")) {
+        log.debug("定时任务正常:" + quartz.getJobName());
+        quartz.setJobState(getJobStatus(quartz.getJobName()));
+      }
+      quartzRepository.save(quartz);
+      flag = true;
+
+    } catch (Exception e) {
+      log.error("系统错误" + e);
+    } finally {
+      return flag;
+    }
+  }
+
+  @Value("${spring.datasource.druid.username}")
+  private String username;
+
+  @Value("${spring.datasource.druid.password}")
+  private String password;
+
+  @Value("${spring.datasource.druid.driver-class-name}")
+  private String driverClassName;
+
+  @Value("${spring.datasource.druid.url}")
+  private String url;
+
+  /**
+   * 定时任务恢复初始化
+   */
+  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+  public Boolean initJobClass() throws SQLException {
+    Connection connection = null;
+
+    try {
+      String driverClassName = this.driverClassName;
+      String url = this.url;
+      String username = this.username;
+      String password = this.password;
+
+      Class.forName(driverClassName);
+      connection = DriverManager.getConnection(url, username, password);
+
+      ClassPathResource rc = new ClassPathResource("sql/jobload/E63_JOB.sql");
+      EncodedResource er = new EncodedResource(rc, "utf-8");
+      ScriptUtils.executeSqlScript(connection, er);
+      return true;
+    } catch (Exception e) {
+      e.printStackTrace();
+      return false;
+    } finally {
+      if (connection != null) {
+        connection.close();
+      }
+    }
+  }
+}

+ 1 - 1
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/controller/UploadFileLogController.java

@@ -37,7 +37,7 @@ public class UploadFileLogController {
    * @param fileStatus     文件状态
    * @return
    */
-  @GetMapping("getFileLog/{uploadObjectId}/{createTime}/{fileType}/{fileStatus}")
+  @GetMapping("getFileLog/{uploadObjectId}/{createTime}/{fileType}/{fileStatus}/{stationCode}")
   public ResponseVO get(@PathVariable("uploadObjectId") Integer uploadObjectId, @PathVariable("createTime") String createTime,
                         @PathVariable("fileType") String fileType, @PathVariable("fileStatus") String fileStatus, @PathVariable("stationCode") String stationCode) {
     List<UploadFileLog> list = uploadFileLogService.queryFileLog(uploadObjectId, createTime, fileType, fileStatus,stationCode);

+ 12 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/controller/UploadObjectController.java

@@ -137,6 +137,18 @@ public class UploadObjectController {
   }
 
   /**
+   * 根据场站编号查询上报对象
+   * @param stationCode
+   * @return
+   */
+  @GetMapping("getByStationCode/{stationCode}")
+  public ResponseVO getByStationCode(@PathVariable("stationCode") String stationCode){
+    List<UploadObject> list = new ArrayList();
+    list = uploadObjectRepository.findByStationCode(stationCode);
+    return ResponseVO.success(list);
+  }
+
+  /**
    * 获取对应省份的上报文件类型
    */
   @GetMapping("getFileTypeByProvince")

+ 0 - 15
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/service/UploadObjectService.java

@@ -129,21 +129,6 @@ public class UploadObjectService extends BaseService {
     uploadFileTypeMap.put(FileTypeEnum.E9.toString(), FileTypeEnum.E9.getMessage());
     uploadFileTypeMap.put(FileTypeEnum.E26.toString(), FileTypeEnum.E26.getMessage());
     uploadFileTypeMap.put(FileTypeEnum.E27.toString(), FileTypeEnum.E27.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E29.toString(), FileTypeEnum.E29.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E30.toString(), FileTypeEnum.E30.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E31.toString(), FileTypeEnum.E31.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E32.toString(), FileTypeEnum.E32.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E33.toString(), FileTypeEnum.E33.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E34.toString(), FileTypeEnum.E34.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E35.toString(), FileTypeEnum.E35.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E36.toString(), FileTypeEnum.E36.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E37.toString(), FileTypeEnum.E37.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E38.toString(), FileTypeEnum.E38.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E39.toString(), FileTypeEnum.E39.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E40.toString(), FileTypeEnum.E34.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E41.toString(), FileTypeEnum.E41.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E45.toString(), FileTypeEnum.E45.getMessage());
-    uploadFileTypeMap.put(FileTypeEnum.E47.toString(), FileTypeEnum.E47.getMessage());
     uploadFileTypeMap.put(FileTypeEnum.E85.toString(), FileTypeEnum.E85.getMessage());
     return uploadFileTypeMap;
   }

+ 54 - 0
ipfcst-console/src/main/resources/sql/jobload/E63_JOB.sql

@@ -0,0 +1,54 @@
+-- 青海
+-- ----------------------------
+-- Records of qrtz_locks
+-- ----------------------------
+DELETE FROM qrtz_locks;
+INSERT INTO qrtz_locks (SCHED_NAME, LOCK_NAME) VALUES ('defaultScheduler', 'TRIGGER_ACCESS');
+-- ----------------------------
+-- Records of qrtz_cron_triggers
+-- ----------------------------
+DELETE FROM qrtz_cron_triggers;
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE1Job', 'defaultScheduler', '0 1-15 7 * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE2Job', 'defaultScheduler', '10 0/1 * * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE7Job', 'defaultScheduler', '30 0/1 * * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE9Job', 'defaultScheduler', '20 0/1 * * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE26Job', 'defaultScheduler', '0 16-50 6 * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE27Job', 'defaultScheduler', '15 0/1 * * * ?', 'Asia/Shanghai');
+INSERT INTO qrtz_cron_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, CRON_EXPRESSION, TIME_ZONE_ID) VALUES ('DEFAULT', 'UploadFileE3Job', 'defaultScheduler', '15 0/1 * * * ?', 'Asia/Shanghai');
+
+-- ----------------------------
+-- Records of qrtz_job_details
+-- ----------------------------
+DELETE FROM qrtz_job_details;
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE1Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE1Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE2Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE2Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE7Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE7Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE9Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE9Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE26Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE26Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE27Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE27Job', '0', '0', '0', '0', NULL);
+INSERT INTO qrtz_job_details (JOB_GROUP, SCHED_NAME, JOB_NAME, DESCRIPTION, JOB_CLASS_NAME, IS_NONCONCURRENT, REQUESTS_RECOVERY, IS_DURABLE, IS_UPDATE_DATA, JOB_DATA) VALUES ('DEFAULT', 'defaultScheduler', 'UploadFileE3Job', NULL, 'com.jiayue.ipfcst.fileupload.job.UploadFileE3Job', '0', '0', '0', '0', NULL);
+
+-- ----------------------------
+-- ----------------------------
+-- Records of qrtz_triggers
+-- ----------------------------
+DELETE FROM qrtz_triggers;
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE1Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE1Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE2Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE2Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE7Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE7Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE9Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE9Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE26Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE26Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE27Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE27Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+INSERT INTO qrtz_triggers (TRIGGER_GROUP, TRIGGER_NAME, SCHED_NAME, DESCRIPTION, START_TIME, JOB_NAME, END_TIME, NEXT_FIRE_TIME, TRIGGER_STATE, CALENDAR_NAME, PREV_FIRE_TIME, JOB_GROUP, JOB_DATA, TRIGGER_TYPE, MISFIRE_INSTR, PRIORITY) VALUES ('DEFAULT', 'UploadFileE3Job', 'defaultScheduler', NULL, '1604305788000', 'UploadFileE3Job', '0', '1604559900000', 'WAITING', NULL, '-1', 'DEFAULT', '', 'CRON', '2', '0');
+
+-- ----------------------------
+-- Records of ipfcst_quartz
+-- ----------------------------
+DELETE FROM t_quartz;
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('2', 'UploadFileE1Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE1Job', '短期', '0 1-15 7 * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('3', 'UploadFileE2Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE2Job', '超短期', '10 0/1 * * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('5', 'UploadFileE7Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE7Job', '测风塔/气象站', '30 0/1 * * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('6', 'UploadFileE9Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE9Job', '风机/逆变器', '20 0/1 * * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('7', 'UploadFileE26Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE26Job', '短期可用', '0 16-50 6 * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('8', 'UploadFileE27Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE27Job', '超短期可用', '15 0/1 * * * ?', 'fileCreate', '1604305788000', NULL);
+INSERT INTO t_quartz (C_ID, C_JOB_NAME, C_JOB_STATE, C_EXECUTE_CLASS, C_DESCRIPTION, C_CRON_EXPRESSION, C_JOB_TYPE, C_START_TIME, C_STATION_CODE) VALUES ('20', 'UploadFileE3Job', '正常', 'com.jiayue.ipfcst.fileupload.job.UploadFileE3Job', '青海理论功率', '15 0/1 * * * ?', 'fileCreate', '1604305788000', NULL);

+ 135 - 0
ipfcst-console/src/main/resources/sql/t_init_job_class.sql

@@ -0,0 +1,135 @@
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE1Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE2Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '理论功率', 'com.jiayue.ipfcst.fileupload.job.UploadFileE3Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '理论功率') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '24NWP', 'com.jiayue.ipfcst.fileupload.job.UploadFileE4Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '24NWP') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '72NWP', 'com.jiayue.ipfcst.fileupload.job.UploadFileE5Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '72NWP') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE6Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '气象站') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE7Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '测风塔') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE8Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '逆变器') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '风机信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE9Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '风机信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '光伏组件信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE10Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '光伏组件信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '检修计划', 'com.jiayue.ipfcst.fileupload.job.UploadFileE11Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '检修计划') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '昨日开机容量', 'com.jiayue.ipfcst.fileupload.job.UploadFileE12Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '昨日开机容量') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期发电计划', 'com.jiayue.ipfcst.fileupload.job.UploadFileE13Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期发电计划') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期发电计划', 'com.jiayue.ipfcst.fileupload.job.UploadFileE14Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期发电计划') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '日前预测', 'com.jiayue.ipfcst.fileupload.job.UploadFileE15Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '日前预测') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '日前预测14', 'com.jiayue.ipfcst.fileupload.job.UploadFileE16Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '日前预测14') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期168', 'com.jiayue.ipfcst.fileupload.job.UploadFileE17Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期168') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '限电计划', 'com.jiayue.ipfcst.fileupload.job.UploadFileE18Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '限电计划') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '弃电计划', 'com.jiayue.ipfcst.fileupload.job.UploadFileE19Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '弃电计划') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '场站信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE20Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '场站信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期_集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE21Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期_集控') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期_集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE22Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期_集控') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '测风塔_集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE23Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '测风塔_集控') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '72NWP_集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE24Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '72NWP_集控') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期_D5000', 'com.jiayue.ipfcst.fileupload.job.UploadFileE25Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期_D5000') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '可用短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE26Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '可用短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '可用超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE27Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '可用超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '理论超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE28Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '理论超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期预测风速风向', 'com.jiayue.ipfcst.fileupload.job.UploadFileE29Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期预测风速风向') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '实测功率', 'com.jiayue.ipfcst.fileupload.job.UploadFileE30Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '实测功率') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期预测辐照度', 'com.jiayue.ipfcst.fileupload.job.UploadFileE31Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期预测辐照度') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE32Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE33Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期可用日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE34Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期可用日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期可用日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE35Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期可用日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '气象站日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE36Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '气象站日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '理论功率日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE37Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '理论功率日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '逆变器日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE38Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '逆变器日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '风机信息日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE39Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '风机信息日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '测风塔日志', 'com.jiayue.ipfcst.fileupload.job.UploadFileE40Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '测风塔日志') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '指标数据', 'com.jiayue.ipfcst.fileupload.job.UploadFileE41Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '指标数据') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '电网上报状态', 'com.jiayue.ipfcst.fileupload.job.UploadFileE42Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '电网上报状态') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '预测准确率', 'com.jiayue.ipfcst.fileupload.job.UploadFileE43Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '预测准确率') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '升压变', 'com.jiayue.ipfcst.fileupload.job.UploadFileE44Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '升压变') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期预测风速风向', 'com.jiayue.ipfcst.fileupload.job.UploadFileE45Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期预测风速风向') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期SFTP', 'com.jiayue.ipfcst.fileupload.job.UploadFileE46Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期SFTP') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期SFTP', 'com.jiayue.ipfcst.fileupload.job.UploadFileE49Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期SFTP') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期预测辐照度', 'com.jiayue.ipfcst.fileupload.job.UploadFileE47Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期预测辐照度') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '单机', 'com.jiayue.ipfcst.fileupload.job.UploadFileE48Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '单机') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '准确率统计', 'com.jiayue.ipfcst.calculate.job.AccuracyPassRateCalculateJob', 'other', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '准确率统计') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期02', 'com.jiayue.ipfcst.fileupload.job.UploadFileE59Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期02') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '离线理论功率', 'com.jiayue.ipfcst.fileupload.job.UploadFileE60Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '离线理论功率') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '在线理论功率', 'com.jiayue.ipfcst.fileupload.job.UploadFileE61Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '在线理论功率') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE62Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE63Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北72nwp', 'com.jiayue.ipfcst.fileupload.job.UploadFileE64Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北72nwp') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE65Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北气象站') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE66Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北测风塔') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北单机', 'com.jiayue.ipfcst.fileupload.job.UploadFileE67Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北单机') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE84Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北逆变器') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE68Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE69Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调72nwp', 'com.jiayue.ipfcst.fileupload.job.UploadFileE70Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调72nwp') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE72Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调测风塔') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调单机', 'com.jiayue.ipfcst.fileupload.job.UploadFileE73Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调单机') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调风机信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE74Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调风机信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE71Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调气象站') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北地调逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE75Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北地调逆变器') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '升压站信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE50Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '升压站信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select 'AGC_AVC信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE51Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = 'AGC_AVC信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '风电总体信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE52Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '风电总体信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '光伏总体信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE53Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '光伏总体信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '统计信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE54Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '统计信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '光伏逆变器/汇流箱信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE55Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '光伏逆变器/汇流箱信息') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '海南短期预测', 'com.jiayue.ipfcst.fileupload.job.UploadFileE56Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '海南短期预测') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '海南超短期预测', 'com.jiayue.ipfcst.fileupload.job.UploadFileE57Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '海南超短期预测') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '海南风电机组', 'com.jiayue.ipfcst.fileupload.job.UploadFileE76Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '海南风电机组') ;
+
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE78Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调气象站') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE79Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调超短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE80Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调短期') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调实时量测', 'com.jiayue.ipfcst.fileupload.job.UploadFileE81Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调实时量测') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调集电线', 'com.jiayue.ipfcst.fileupload.job.UploadFileE82Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调集电线') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '新疆网调逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE77Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '新疆网调逆变器') ;
+
+-- INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '海南压缩包', 'com.jiayue.ipfcst.fileupload.job.UploadFileE83Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '海南压缩包') ;
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '浙江地调102客户端', 'com.jiayue.ipfcst.fileupload.job.ZheJiang102ClientJob', 'other', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '浙江地调102客户端') ;
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '青海理论功率(风)', 'com.jiayue.ipfcst.fileupload.job.UploadFileE85Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '青海理论功率(风)');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select 'D5000样板机', 'com.jiayue.ipfcst.fileupload.job.UploadFileE58Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = 'D5000样板机');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期数据生成', 'com.jiayue.ipfcst.fileupload.job.GenerateUltraShortDataJob', 'other', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期数据生成');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '省调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE90Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '省调短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '省调昨日开机容量', 'com.jiayue.ipfcst.fileupload.job.UploadFileE91Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '省调昨日开机容量');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '短期_辽宁龙源集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE86Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '短期_辽宁龙源集控');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '超短期_辽宁龙源集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE87Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '超短期_辽宁龙源集控');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '测风塔_辽宁龙源集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE88Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '测风塔_辽宁龙源集控');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '风机_辽宁龙源集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE89Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '风机_辽宁龙源集控');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '湖北逆变器信息', 'com.jiayue.ipfcst.fileupload.job.UploadFileE92Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '湖北逆变器信息');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE93Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE94Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调超短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调72nwp', 'com.jiayue.ipfcst.fileupload.job.UploadFileE95Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调72nwp');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE96Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调气象站');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE97Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调测风塔');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调风机', 'com.jiayue.ipfcst.fileupload.job.UploadFileE98Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调风机');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '黄冈地调逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE99Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '黄冈地调逆变器');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '随州地调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE100Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '随州地调短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '随州地调超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE101Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '随州地调超短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '随州地调nwp', 'com.jiayue.ipfcst.fileupload.job.UploadFileE102Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '随州地调nwp');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '随州地调气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE103Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '随州地调气象站');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '随州地调逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE104Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '随州地调逆变器');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调短期WPD', 'com.jiayue.ipfcst.fileupload.job.UploadFileE105Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调短期WPD');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调超短期WPD', 'com.jiayue.ipfcst.fileupload.job.UploadFileE106Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调超短期WPD');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调气象站WPD', 'com.jiayue.ipfcst.fileupload.job.UploadFileE107Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调气象站WPD');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调逆变器WPD', 'com.jiayue.ipfcst.fileupload.job.UploadFileE108Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调逆变器WPD');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调短期dat', 'com.jiayue.ipfcst.fileupload.job.UploadFileE109Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调短期dat');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调超短期dat', 'com.jiayue.ipfcst.fileupload.job.UploadFileE110Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调超短期dat');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调气象站dat', 'com.jiayue.ipfcst.fileupload.job.UploadFileE111Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调气象站dat');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '广东中调逆变器dat', 'com.jiayue.ipfcst.fileupload.job.UploadFileE112Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '广东中调逆变器dat');
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select 'NWP_辽宁龙源集控', 'com.jiayue.ipfcst.fileupload.job.UploadFileE113Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = 'NWP_辽宁龙源集控');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '蒙东南瑞集控测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE114Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '蒙东南瑞集控测风塔');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '龙源南瑞集控测风塔', 'com.jiayue.ipfcst.fileupload.job.UploadFileE115Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '龙源南瑞集控测风塔');
+
+
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '总调短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE116Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '总调短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '总调超短期', 'com.jiayue.ipfcst.fileupload.job.UploadFileE117Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '总调超短期');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '总调气象站', 'com.jiayue.ipfcst.fileupload.job.UploadFileE118Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '总调气象站');
+INSERT INTO t_init_job_class  (C_JOB_CLASS_NAME, C_JOB_CLASS_PATH, C_JOB_CLASS_TYPE, C_STATION_CODE) select '总调逆变器', 'com.jiayue.ipfcst.fileupload.job.UploadFileE119Job', 'fileCreate', '' from dual where not exists (select C_JOB_CLASS_NAME from t_init_job_class where C_JOB_CLASS_NAME = '总调逆变器');