yuanhao 2 yıl önce
ebeveyn
işleme
f9d109c0f6

+ 1 - 1
in-cloud-ui/src/api/integrationCompany.js

@@ -24,7 +24,7 @@ export function getObj(code) {
 }
 
 
-export function getAll() {
+export function getCompanyAll() {
   return request({
     url: '/integrationCompany/all',
     method: 'get'

+ 8 - 0
in-cloud-ui/src/api/quartzBase.js

@@ -30,6 +30,14 @@ export function getCode(code) {
   })
 }
 
+
+export function getQuartzBaseAll() {
+  return request({
+    url: '/quartzBase/all',
+    method: 'get'
+  })
+}
+
 export function getInCode(code) {
   return request({
     url: '/quartzBase/inCode/' + code,

+ 34 - 0
in-cloud-ui/src/api/record.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+export function fetchList(query) {
+  return request({
+    url: '/record/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function addObj(obj) {
+  return request({
+    url: '/record',
+    method: 'post',
+    data: obj
+  })
+}
+
+
+export function delObj(id) {
+  return request({
+    url: '/record/' + id,
+    method: 'delete'
+  })
+}
+
+export function putObj(obj) {
+  return request({
+    url: '/record',
+    method: 'put',
+    data: obj
+  })
+
+}

+ 1 - 1
in-cloud-ui/src/api/station.js

@@ -24,7 +24,7 @@ export function getObj(code) {
 }
 
 
-export function getAll() {
+export function getStationAll() {
   return request({
     url: '/station/all',
     method: 'get'

+ 17 - 1
in-cloud-ui/src/router/index.js

@@ -60,7 +60,7 @@ export const asyncRoutes = [
     redirect: 'noRedirect',
     name: 'Vab',
     alwaysShow: true,
-    meta: { title: '基本信息', icon: 'box-open' },
+    meta: { title: '基本信息', icon: 'briefcase' },
     children: [
       {
         path: 'station',
@@ -119,6 +119,22 @@ export const asyncRoutes = [
       },
     ],
   },
+
+  {
+    path: '/record',
+    component: Layout,
+    redirect: '/record',
+    children: [
+      {
+        path: 'record',
+        name: 'record',
+        component: () => import('@/views/record/index'),
+        meta: {
+          title: '日志', icon: 'bell',
+        },
+      },
+    ],
+  },
   {
     path: '/error',
     component: EmptyLayout,

+ 6 - 5
in-cloud-ui/src/views/quartz/quartzBase/index.vue

@@ -99,15 +99,16 @@
         <el-form-item label="名称" prop="name">
           <el-input v-model.trim="form.name" autocomplete="off"></el-input>
         </el-form-item>
-        <el-form-item label="执行类" prop="executeClass">
+        <el-form-item label="执行类"  prop="executeClass">
           <el-input
+            :disabled="typeEdit"
             v-model.trim="form.executeClass"
             autocomplete="off"
           ></el-input>
         </el-form-item>
 
         <el-form-item label="编码" prop="code">
-          <el-input v-model.trim="form.code" autocomplete="off"></el-input>
+          <el-input v-model.trim="form.code" :disabled="typeEdit" autocomplete="off"></el-input>
         </el-form-item>
 
         <el-form-item label="排序" prop="sor">
@@ -123,7 +124,7 @@
             v-model.trim="form.type"
             clearable
             placeholder="请选择"
-            :disabled="typeEdit"
+
             @change="typeChange"
           >
             <el-option
@@ -175,7 +176,7 @@
     getExecuteClass,
     getCode,
   } from '@/api/quartzBase'
-  import { getAll } from '@/api/integrationCompany'
+  import { getCompanyAll } from '@/api/integrationCompany'
   export default {
     name: 'QuartzBase',
 
@@ -301,7 +302,7 @@
         this.form.sor = value
       },
       getCompany() {
-        getAll()
+        getCompanyAll()
           .then((response) => {
             this.companys = response.data
             this.fetchData()

+ 73 - 45
in-cloud-ui/src/views/quartz/quartzInfo/index.vue

@@ -8,7 +8,11 @@
           :inline="true"
           @submit.native.prevent
         >
-          <el-select v-model="searchForm.stationCode" placeholder="请选择">
+          <el-select
+            v-model="searchForm.stationCode"
+            clearable
+            placeholder="请选择"
+          >
             <el-option
               v-for="item in stations"
               :key="item.stationCode"
@@ -63,10 +67,12 @@
           {{ scope.$index + 1 }}
         </template>
       </el-table-column>
+      <el-table-column show-overflow-tooltip prop="stationCode" :formatter="formatStation" label="场站" />
       <el-table-column show-overflow-tooltip prop="name" label="任务名称" />
       <el-table-column show-overflow-tooltip prop="jobName" label="任务标识" />
       <el-table-column show-overflow-tooltip prop="jobState" label="任务状态" />
       <el-table-column
+        :formatter="formatQuartz"
         show-overflow-tooltip
         prop="executeClass"
         label="执行类"
@@ -108,8 +114,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="场站" prop="name">
           <el-select
-            :disabled="isEdit"
             v-model="form.stationCode"
+            :disabled="isEdit"
             placeholder="请选择"
             @change="selectStationChange($event)"
           >
@@ -124,21 +130,22 @@
 
         <el-form-item label="执行类" prop="executeClass">
           <el-select
+            v-model="form.executeClass"
             :disabled="isEdit"
             style="width: 100%"
-            v-model="form.executeClass"
             placeholder="请选择"
             @change="selectExecuteClassChange($event)"
           >
             <el-option
-              v-for="item in quartzBases"
+              v-for="item in this.quartzBases"
               :key="item.executeClass"
               :label="item.name"
               :value="item.executeClass"
             >
-
               <span style="float: left">{{ item.name }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ item.type }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                {{ item.type }}
+              </span>
             </el-option>
           </el-select>
         </el-form-item>
@@ -152,15 +159,14 @@
             ></cron>
             <el-input
               slot="reference"
-              style="margin-top: -50%"
               v-model="form.cronExpression"
+              style="margin-top: -50%"
               placeholder="请输入定时策略"
               @click="cronPopover = true"
             ></el-input>
           </el-popover>
         </el-form-item>
 
-
         <el-form-item label="任务标识" prop="jobName">
           <el-input
             v-model.trim="form.jobName"
@@ -169,18 +175,12 @@
           ></el-input>
         </el-form-item>
 
-
-
-
         <el-form-item label="任务名称" prop="name">
           <el-input v-model.trim="form.name" autocomplete="off"></el-input>
         </el-form-item>
 
         <el-form-item label="任务操作" prop="operate">
-          <el-select
-            v-model="form.operate"
-            placeholder="请选择"
-          >
+          <el-select v-model="form.operate" placeholder="请选择">
             <el-option
               v-for="item in operates"
               :key="item.value"
@@ -190,17 +190,14 @@
           </el-select>
         </el-form-item>
 
-
-
         <el-form-item label="开始时间" prop="startTime">
           <el-date-picker
             v-model.trim="form.startTime"
             value-format="timestamp"
             type="datetime"
-            placeholder="选择日期时间">
-          </el-date-picker>
+            placeholder="选择日期时间"
+          ></el-date-picker>
         </el-form-item>
-
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="close">取 消</el-button>
@@ -211,16 +208,22 @@
 </template>
 
 <script>
-  import { fetchList, addObj, putObj, delObj,getJobName,getJobTime } from '@/api/quartz'
-  import { getChoose } from "@/api/quartzBase";
-
-  import { getAll } from '@/api/station'
+  import {
+    fetchList,
+    addObj,
+    putObj,
+    delObj,
+    getJobName,
+    getJobTime,
+  } from '@/api/quartz'
+  import { getChoose,getQuartzBaseAll} from '@/api/quartzBase'
+
+  import { getStationAll } from '@/api/station'
   import { cron } from 'vue-cron'
   export default {
     name: 'QuartzInfo',
     components: { cron },
     data() {
-
       const validateJobName = (rule, value, callback) => {
         if (!value) {
           return callback(new Error('请输入任务标识'))
@@ -241,6 +244,7 @@
         cron: '',
         stations: [],
         quartzBases: [],
+        quartzBaseAll: [],
         inCode: '',
         dialogFormVisible: false,
         dialogType: '',
@@ -279,7 +283,7 @@
           ],
 
           jobName: [
-            { required: true, trigger: 'change',  validator: validateJobName, },
+            { required: true, trigger: 'change', validator: validateJobName },
           ],
 
           cronExpression: [
@@ -301,32 +305,40 @@
       this.getStations()
     },
     methods: {
-      expandChange(row, expandedRows){
-        getJobTime(row.jobName)
-          .then((response) => {
-            row.nextFireTime = response.data.nextFireTime
-            row.laetFireTime = response.data.previousFireTime
-
-          })
-
+      expandChange(row, expandedRows) {
+        getJobTime(row.jobName).then((response) => {
+          row.nextFireTime = response.data.nextFireTime
+          row.laetFireTime = response.data.previousFireTime
+        })
       },
       changeCron(v) {
         this.form.cronExpression = v
       },
+      getQuartzBaseAll(){
+        getQuartzBaseAll()
+          .then((response) => {
+            this.quartzBaseAll = response.data
+            this.fetchData()
+            this.listLoading = false
+          })
+          .catch(() => {
+            this.listLoading = false
+          })
+      },
       getStations() {
         this.listLoading = true
-        getAll()
+        getStationAll()
           .then((response) => {
             this.stations = response.data
-            this.fetchData()
+            this.getQuartzBaseAll()
             this.listLoading = false
           })
           .catch(() => {
             this.listLoading = false
           })
       },
-      getQuartzBaseInCode() {
-        getChoose(this.inCode)
+      getQuartzBaseInCode(inCode) {
+        getChoose(inCode)
           .then((response) => {
             this.quartzBases = response.data
 
@@ -344,13 +356,12 @@
           // 筛选出匹配数据,是对应数据的整个对象
         })
         this.inCode = selectedItem.inCode
-        this.getQuartzBaseInCode()
+        this.getQuartzBaseInCode(this.inCode)
       },
 
       selectExecuteClassChange(value) {
         const selectedItem = this.quartzBases.find((item) => {
           return item.executeClass === value
-          // 筛选出匹配数据,是对应数据的整个对象
         })
         this.form.jobName = this.form.stationCode + '-' + selectedItem.code
       },
@@ -401,28 +412,31 @@
         this.$emit('fetch-data')
       },
       handleAdd() {
+        this.isEdit = false
         this.form = {}
         this.title = '新增'
         this.dialogType = 'add'
         this.dialogFormVisible = true
       },
       handleEdit(row) {
-      this.isEdit = true
+        this.isEdit = true
+        //var newObj = JSON.parse(JSON.stringify(row))
         this.form = row
         this.title = '修改'
         this.dialogType = 'edit'
         this.dialogFormVisible = true
+        this.getQuartzBaseInCode(row.inCode)
       },
       handleDelete(row) {
         this.$baseConfirm('你确定要删除当前项吗', null, async () => {
           await delObj(row.id)
-          this.$baseMessage("删除成功", 'success')
+          this.$baseMessage('删除成功', 'success')
           this.fetchData()
         })
       },
       saveOrUpdate() {
-        this.form.nextFireTime = null;
-        this.form.laetFireTime = null;
+        this.form.nextFireTime = null
+        this.form.laetFireTime = null
         if (this.dialogType == 'add') {
           this.save()
         } else {
@@ -448,7 +462,6 @@
         })
       },
       update() {
-        console.log(this.form)
         this.$refs.form.validate((valid) => {
           if (valid) {
             this.listLoading = true
@@ -474,6 +487,21 @@
           }
         })
       },
+
+      formatQuartz(row, column){
+        const selectedItem = this.quartzBaseAll.find((item) => {
+          return item.executeClass === row.executeClass
+        })
+        return selectedItem.name
+      },
+      formatStation(row, column){
+        const selectedItem = this.stations.find((item) => {
+          return item.stationCode === row.stationCode
+        })
+        return selectedItem.name
+      }
+
+
     },
   }
 </script>

+ 239 - 0
in-cloud-ui/src/views/record/index.vue

@@ -0,0 +1,239 @@
+<template>
+  <div class="table-container">
+    <vab-query-form>
+      <vab-query-form-left-panel>
+        <el-form
+          ref="searchForm"
+          :model="searchForm"
+          :inline="true"
+          @submit.native.prevent
+        >
+          <el-form-item>
+            <el-select
+              v-model="searchForm.stationCode"
+              clearable
+              placeholder="场站"
+            >
+              <el-option
+                v-for="item in stations"
+                :key="item.stationCode"
+                :label="item.name"
+                :value="item.stationCode"
+              ></el-option>
+            </el-select>
+
+          </el-form-item>
+          <el-form-item>
+            <el-select
+              v-model="searchForm.inCode"
+              clearable
+              placeholder="公司"
+            >
+              <el-option
+                v-for="item in companys"
+                :key="item.code"
+                :label="item.name"
+                :value="item.code"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              icon="el-icon-search"
+              type="primary"
+              native-type="submit"
+              @click="handleQuery"
+            >
+              查询
+            </el-button>
+          </el-form-item>
+        </el-form>
+      </vab-query-form-left-panel>
+    </vab-query-form>
+
+    <el-table
+      ref="table"
+      v-loading="listLoading"
+      :data="tableData"
+      :element-loading-text="elementLoadingText"
+      :height="height"
+      :header-cell-style="{ 'text-align': 'center' }"
+      :cell-style="{ 'text-align': 'center' }"
+    >
+      <el-table-column show-overflow-tooltip label="序号" width="95">
+        <template #default="scope">
+          {{ scope.$index + 1 }}
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        show-overflow-tooltip
+        label="一体化公司"
+        prop="inCode"
+        :formatter="formatCompany"
+      />
+
+      <el-table-column
+        show-overflow-tooltip
+        label="场站名称"
+        prop="stationCode"
+        :formatter="formatStation"
+      />
+      <el-table-column
+        show-overflow-tooltip
+        label="日志类型"
+        prop="type"
+
+      />
+
+      <el-table-column show-overflow-tooltip label="状态" prop="state" />
+      <el-table-column show-overflow-tooltip label="状态" prop="stateContent" />
+      <el-table-column show-overflow-tooltip label="时间" prop="time"  :formatter="formatDate"/>
+      <el-table-column show-overflow-tooltip label="创建时间" prop="createTime" :formatter="formatDate"/>
+    </el-table>
+    <el-pagination
+      :background="background"
+      :current-page="page.currentPage"
+      :layout="layout"
+      :page-size="page.pageSize"
+      :total="page.total"
+      @current-change="handleCurrentChange"
+      @size-change="handleSizeChange"
+    ></el-pagination>
+  </div>
+</template>
+
+<script>
+  import { fetchList } from '@/api/record'
+  import { getCompanyAll } from '@/api/integrationCompany'
+  import { getStationAll } from '@/api/station'
+
+  export default {
+    name: 'Record',
+
+    data() {
+      return {
+        tableData: [],
+        companys: [],
+        stations: [],
+        searchForm:{},
+        listLoading: true,
+        layout: 'total, sizes, prev, pager, next, jumper',
+        total: 0,
+        background: true,
+        elementLoadingText: '正在加载...',
+        page: {
+          total: 0, // 总页数
+          currentPage: 1, // 当前页数
+          pageSize: 20, // 每页显示多少条
+        },
+      }
+    },
+    computed: {
+      height() {
+        return this.$baseTableHeight()
+      },
+    },
+    created() {
+      this.getCompany()
+    },
+    methods: {
+      getCompany() {
+        getCompanyAll()
+          .then((response) => {
+            this.companys = response.data
+            this.getStation()
+            this.listLoading = false
+          })
+          .catch(() => {
+            this.listLoading = false
+          })
+      },
+
+      getStation() {
+        getStationAll()
+          .then((response) => {
+            this.stations = response.data
+            this.fetchData()
+            this.listLoading = false
+          })
+          .catch(() => {
+            this.listLoading = false
+          })
+      },
+      async fetchData() {
+        this.listLoading = true
+        fetchList(
+          Object.assign(
+            {
+              current: this.page.currentPage,
+              size: this.page.pageSize,
+            },
+            this.searchForm
+          )
+        )
+          .then((response) => {
+            this.tableData = response.data.records
+            this.page.total = response.data.total
+            this.listLoading = false
+          })
+          .catch(() => {
+            this.listLoading = false
+          })
+      },
+
+      handleSizeChange(val) {
+        this.page.pageSize = val
+        this.page.currentPage = 1
+        this.fetchData()
+      },
+      handleCurrentChange(val) {
+        this.page.currentPage = val
+        this.fetchData()
+      },
+      handleQuery() {
+        for (var v in this.searchForm) {
+          if (this.searchForm[v] == '') {
+            delete this.searchForm[v]
+          }
+        }
+
+        this.page.currentPage = 1
+        this.fetchData()
+      },
+      formatCompany(row, column) {
+        for (let i = 0; i < this.companys.length; i++) {
+          if (row.inCode == this.companys[i].code) {
+            return this.companys[i].name
+          }
+        }
+      },
+      formatStation(row, column){
+        const selectedItem = this.stations.find((item) => {
+          return item.stationCode === row.stationCode
+        })
+        return selectedItem.name
+      },
+      formatDate(row, column){
+        let pro = column.property
+       console.log(row[pro])
+        return row[pro]
+      },
+    },
+  }
+</script>
+
+<style>
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 50%;
+  }
+</style>

+ 0 - 1
in-cloud-ui/src/views/vab/inCompany/index.vue

@@ -130,7 +130,6 @@
     putObj,
     delObj,
     getObj,
-    getAll,
   } from '@/api/integrationCompany'
 
   export default {

+ 2 - 2
in-cloud-ui/src/views/vab/station/index.vue

@@ -162,7 +162,7 @@
 
 <script>
   import { fetchList, addObj, putObj, delObj, getObj } from '@/api/station'
-  import { getAll } from '@/api/integrationCompany'
+  import { getCompanyAll } from '@/api/integrationCompany'
 
   export default {
     name: 'Station',
@@ -235,7 +235,7 @@
     },
     methods: {
       getCompany() {
-        getAll()
+        getCompanyAll()
           .then((response) => {
             this.companys = response.data
             this.fetchData()

+ 81 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/controller/RecordController.java

@@ -0,0 +1,81 @@
+package com.jiayue.insu.incloud.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jiayue.insu.common.core.util.R;
+import com.jiayue.insu.incloud.entity.Record;
+import com.jiayue.insu.incloud.entity.Station;
+import com.jiayue.insu.incloud.service.RecordService;
+import com.jiayue.insu.incloud.service.StationService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * RecordController
+ *
+ * @author yh
+ * @date 2022-03-18 15:48:48
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/record")
+public class RecordController {
+
+    private final RecordService recordService;
+
+    /**
+     * 分页查询
+     *
+     * @param page   分页对象
+     * @param record record
+     * @return
+     */
+
+    @GetMapping("/page")
+    public R getStationPage(Page page, Record record) {
+        return R.ok(recordService.page(page, Wrappers.query(record)));
+    }
+
+    @GetMapping("/all")
+    public R getAll() {
+        return R.ok(recordService.list());
+    }
+
+    /**
+     * 新增record
+     *
+     * @param record record
+     * @return R
+     */
+
+    @PostMapping
+    public R save(@RequestBody Record record) {
+        return R.ok(recordService.save(record));
+    }
+
+    /**
+     * 修改record
+     *
+     * @param record record
+     * @return R
+     */
+
+    @PutMapping
+    public R updateById(@RequestBody Record record) {
+        return R.ok(recordService.updateById(record));
+    }
+
+    /**
+     * 通过id删除
+     *
+     * @param id id
+     * @return R
+     */
+    @DeleteMapping("/{id}")
+    public R removeById(@PathVariable Long id) {
+        return R.ok(recordService.removeById(id));
+    }
+
+
+}