Bläddra i källkod

ws-采集器删除功能

ws 1 år sedan
förälder
incheckning
c1908a7c79

+ 10 - 0
industry-admin/src/api/collector.js

@@ -100,3 +100,13 @@ export function refreshConfig(id) {
     }
   })
 }
+
+export function deleteCollectorApi(id) {
+  return request({
+    url: '/collector/deleteCollector',
+    method: 'delete',
+    params: {
+      id
+    }
+  })
+}

+ 31 - 3
industry-admin/src/views/collector/index.vue

@@ -47,14 +47,16 @@
             <template slot-scope="scope">
               <el-button size="mini" type="text" icon="el-icon-tickets" @click="handelConfig(scope.row.id)">配置
               </el-button>
-              <el-button size="mini" type="text" icon="el-icon-s-order" style="color: #b1b1b1;" @click="handelLog(scope.row.id)">日志
-              </el-button>
+<!--              <el-button size="mini" type="text" icon="el-icon-s-order" style="color: #b1b1b1;" @click="handelLog(scope.row.id)">日志-->
+<!--              </el-button>-->
 <!--              <el-button size="mini" type="text" icon="el-icon-refresh" @click="refreshConfig(scope.row.id)">刷新配置-->
 <!--              </el-button>-->
               <el-button v-if="!scope.row.runStatus || scope.row.runStatus === 0" :disabled="scope.row.onLine !== 1" size="mini" type="text" icon="el-icon-video-play" style="color: #67c23a;" @click="handelStart(scope.row.id)">启动
               </el-button>
               <el-button v-if="scope.row.runStatus === 1" :disabled="scope.row.onLine !== 1" size="mini" type="text" icon="el-icon-video-pause" style="color: #f56c6c;" @click="handelStop(scope.row.id)">停止
               </el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete" style="color: #f56c6c;" @click="deleteCollector(scope.row)">删除
+              </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -262,7 +264,8 @@ import {
   saveCollector,
   saveConfigInfo,
   startClient,
-  stopClient
+  stopClient,
+  deleteCollectorApi
 } from "@/api/collector";
 
 export default {
@@ -717,6 +720,31 @@ export default {
       this.itemTableData = this.itemTableData.filter(item => {
         return row.itemGroupId !== item.itemGroupId
       })
+    },
+    deleteCollector(row) {
+      if (row.runStatus === 1) {
+        this.$message({
+          message: '采集器已启动,请先停止采集器再删除',
+          type: 'warning'
+        })
+        return
+      }
+      this.$confirm('是否删除该采集器?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.deleteCollectorApi(row.id).then(json => {
+          this.$message({
+            type: json.code === 200 ? 'success' : 'warning',
+            message: json.code === 200 ? '删除成功!' : json.msg
+          });
+          this.getCollectorList()
+        })
+
+      }).catch(() => {
+
+      });
     }
   }
 }

+ 13 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/controller/CollectorController.java

@@ -181,4 +181,17 @@ public class CollectorController {
         }
         return collectorService.getLogFile(id);
     }
+
+    /**
+     * 删除采集器
+     * @param id
+     * @return
+     */
+    @DeleteMapping("deleteCollector")
+    public Result deleteCollector(Integer id) {
+        if (Blank.isEmpty(id)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS);
+        }
+        return collectorService.deleteCollector(id);
+    }
 }

+ 7 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/dao/CollectorDao.java

@@ -38,6 +38,13 @@ public interface CollectorDao {
     Boolean deleteCollectorItemGroup(@Param("clientId") Integer clientId);
 
     /**
+     * 删除采集器
+     * @param clientId
+     * @return
+     */
+    Boolean deleteCollector(@Param("clientId") Integer clientId);
+
+    /**
      * 保存采集配置
      * @param clientId
      * @param list

+ 2 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/service/CollectorService.java

@@ -68,4 +68,6 @@ public interface CollectorService {
      */
     Result getLogFile(Integer id);
 
+    Result deleteCollector(Integer id);
+
 }

+ 20 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/CollectorServiceImpl.java

@@ -13,6 +13,7 @@ import com.example.opc_common.util.Result;
 import com.example.opc_da.dao.CollectorDao;
 import com.example.opc_da.dao.InFluxDBDao;
 import com.example.opc_da.service.CollectorService;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -201,4 +202,23 @@ public class CollectorServiceImpl implements CollectorService {
             return Result.no(400, "获取日志失败");
         }
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result deleteCollector(Integer id) {
+        Collector collector = collectorDao.getCollectorInfo(id);
+        if (Blank.isEmpty(collector)) {
+            return Result.no(101, "未查询到对应的采集器");
+        }
+        String body = ClientUtil.http(collector.getIpAddr(), clientPort, ClientUtil.Client.STATUS_API).execute().body();
+        JSONObject obj = JSONUtil.parseObj(body);
+        obj = obj.getJSONObject("data");
+        if (obj.getInt("status", 0) == 1) {
+            return Result.no(102, "采集器运行中,请先停止采集器");
+        }
+        Boolean status = false;
+        status = collectorDao.deleteCollectorItemGroup(id);
+        status = collectorDao.deleteCollector(id);
+        return Result.ok(status);
+    }
 }

+ 5 - 0
industry-system/industry-da/src/main/resources/mapper/CollectorDao.xml

@@ -120,4 +120,9 @@
         LEFT JOIN t_data_source_type tdst ON tds.type_id = tdst.id
     </select>
 
+    <!-- 删除采集器 -->
+    <delete id="deleteCollector">
+        delete from f_telegraf_client where id = #{clientId}
+    </delete>
+
 </mapper>