瀏覽代碼

//代码优化故障预测功能完善

wyj0522 3 周之前
父節點
當前提交
48a3ec83aa

+ 3 - 2
gm-base-ser/src/main/java/com/goomood/phm/controller/FaultStatisticsController.java

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -29,7 +30,7 @@ public class FaultStatisticsController extends BaseController {
     @ApiOperation("获取近三年下月故障最多的5类部件")
     @GetMapping("/top5NextMonth")
     public AjaxResult getTop5FaultyPartsNextMonthInThreeYears() {
-        Map<String, Long> result = faultMonitorService.getTop5FaultyPartsNextMonthInThreeYears();
+        List<Map<String, Object>> result = faultMonitorService.getTop5FaultyPartsNextMonthInThreeYears();
         return success(result);
     }
 
@@ -39,7 +40,7 @@ public class FaultStatisticsController extends BaseController {
     @ApiOperation("获取近半年故障最多的5类部件")
     @GetMapping("/top5SixMonths")
     public AjaxResult getTop5FaultyPartsInSixMonths() {
-        Map<String, Long> result = faultMonitorService.getTop5FaultyPartsInSixMonths();
+        List<Map<String, Object>> result = faultMonitorService.getTop5FaultyPartsInSixMonths();
         return success(result);
     }
 }    

+ 2 - 2
gm-base-ser/src/main/java/com/goomood/phm/controller/KGraphClauseController.java

@@ -34,8 +34,8 @@ public class KGraphClauseController extends BaseController {
     /**
      * 查询知识图谱分句结果列表
      */
-    @GetMapping("/list")
-    public TableDataInfo list(KGraphClause po) {
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody KGraphClause po) {
         startPage();
         List<KGraphClause> list = kGraphClauseService.selectList(po);
         return getDataTable(list);

+ 7 - 7
gm-base-ser/src/main/java/com/goomood/phm/domain/FaultMonitor.java

@@ -145,17 +145,17 @@ public class FaultMonitor extends BaseEntity
 
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "故障件装本机工作时次", width = 30, dateFormat = "HH:mm:ss")
-    private Time workHoursCurrent;
+    private Date workHoursCurrent;
 
     /** 故障件总工作时次 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "故障件总工作时次", width = 30, dateFormat = "HH:mm:ss")
-    private Time workHoursTotal;
+    private Date workHoursTotal;
 
     /** 故障件修后时次 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "故障件修后时次", width = 30, dateFormat = "HH:mm:ss")
-    private Time workHoursAfterRepair;
+    private Date workHoursAfterRepair;
 
     /** 故换件型别 */
     @Excel(name = "故换件型别")
@@ -172,7 +172,7 @@ public class FaultMonitor extends BaseEntity
     /** 故换件总工作时次 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "故换件总工作时次", width = 30, dateFormat = "HH:mm:ss")
-    private Time replacementWorkHoursTotal;
+    private Date replacementWorkHoursTotal;
 
     /** 故换件翻修厂 */
     @Excel(name = "故换件翻修厂")
@@ -181,7 +181,7 @@ public class FaultMonitor extends BaseEntity
     /** 故换件修后时次 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "故换件修后时次", width = 30, dateFormat = "HH:mm:ss")
-    private Time replacementHoursAfterRepair;
+    private Date replacementHoursAfterRepair;
 
     /** 故障失常码 */
     @Excel(name = "故障失常码")
@@ -254,7 +254,7 @@ public class FaultMonitor extends BaseEntity
     /** 排故工时 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "排故工时", width = 30, dateFormat = "HH:mm:ss")
-    private Time maintenanceHours;
+    private Date maintenanceHours;
 
     /** 排故人数 */
     @Excel(name = "排故人数")
@@ -263,7 +263,7 @@ public class FaultMonitor extends BaseEntity
     /** 排故时间 */
     @JsonFormat(pattern = "HH:mm:ss")
     @Excel(name = "排故时间", width = 30, dateFormat = "HH:mm:ss")
-    private Time maintenanceTime;
+    private Date maintenanceTime;
 
     /** 是否立功 */
     @Excel(name = "是否立功", readConverterExp = "fault_yes=是,fault_no=否")

+ 3 - 2
gm-base-ser/src/main/java/com/goomood/phm/service/FaultMonitorService.java

@@ -1,5 +1,6 @@
 package com.goomood.phm.service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -11,11 +12,11 @@ public interface FaultMonitorService {
      * 统计近三年下月发生故障最多的5类部件
      * @return 部件名称与故障次数的映射
      */
-    Map<String, Long> getTop5FaultyPartsNextMonthInThreeYears();
+    List<Map<String, Object>> getTop5FaultyPartsNextMonthInThreeYears();
 
     /**
      * 统计近半年发生故障最多的5类部件
      * @return 部件名称与故障次数的映射
      */
-    Map<String, Long> getTop5FaultyPartsInSixMonths();
+    List<Map<String, Object>> getTop5FaultyPartsInSixMonths();
 }    

+ 19 - 15
gm-base-ser/src/main/java/com/goomood/phm/service/impl/FaultMonitorServiceAImpl.java

@@ -23,7 +23,7 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
     private FaultMonitorAMapper faultMonitorAMapper;
 
     @Override
-    public Map<String, Long> getTop5FaultyPartsNextMonthInThreeYears() {
+    public List<Map<String, Object>> getTop5FaultyPartsNextMonthInThreeYears() {
         LocalDate currentDate = LocalDate.now();
         LocalDate nextMonth = currentDate.plusMonths(1);
         int targetMonth = nextMonth.getMonthValue();
@@ -48,6 +48,7 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
 
         List<FaultMonitorA> faultMonitors = faultMonitorAMapper.selectList(queryWrapper);
 
+        // 按故障部件分组统计数量并转换为指定格式
         return faultMonitors.stream()
                 .filter(this::isValidFaultPart)
                 .collect(Collectors.groupingBy(
@@ -57,16 +58,17 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
                 .entrySet().stream()
                 .sorted(Map.Entry.<String, Long>comparingByValue().reversed())
                 .limit(5)
-                .collect(Collectors.toMap(
-                        Map.Entry::getKey,
-                        Map.Entry::getValue,
-                        (e1, e2) -> e1,
-                        LinkedHashMap::new
-                ));
+                .map(entry -> {
+                    Map<String, Object> resultMap = new HashMap<>();
+                    resultMap.put("partName", entry.getKey());
+                    resultMap.put("count", entry.getValue());
+                    return resultMap;
+                })
+                .collect(Collectors.toList());
     }
 
     @Override
-    public Map<String, Long> getTop5FaultyPartsInSixMonths() {
+    public List<Map<String, Object>> getTop5FaultyPartsInSixMonths() {
         LocalDate currentDate = LocalDate.now();
         LocalDate sixMonthsAgo = currentDate.minusMonths(6);
 
@@ -78,6 +80,7 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
 
         List<FaultMonitorA> faultMonitors = faultMonitorAMapper.selectList(queryWrapper);
 
+        // 按故障部件分组统计数量并转换为指定格式
         return faultMonitors.stream()
                 .filter(this::isValidFaultPart)
                 .collect(Collectors.groupingBy(
@@ -87,12 +90,13 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
                 .entrySet().stream()
                 .sorted(Map.Entry.<String, Long>comparingByValue().reversed())
                 .limit(5)
-                .collect(Collectors.toMap(
-                        Map.Entry::getKey,
-                        Map.Entry::getValue,
-                        (e1, e2) -> e1,
-                        LinkedHashMap::new
-                ));
+                .map(entry -> {
+                    Map<String, Object> resultMap = new HashMap<>();
+                    resultMap.put("partName", entry.getKey());
+                    resultMap.put("count", entry.getValue());
+                    return resultMap;
+                })
+                .collect(Collectors.toList());
     }
 
     // 辅助方法:LocalDate转Date
@@ -111,4 +115,4 @@ public class FaultMonitorServiceAImpl implements FaultMonitorService {
                 && fault.getFaultyPartName() != null
                 && !fault.getFaultyPartName().trim().isEmpty();
     }
-}
+}

+ 1 - 1
gm-web/.env.development

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 飞机供电系统PHM软件
 ENV = 'development'
 
 # 管理系统/开发环境
-VUE_APP_BASE_API = 'http://localhost:8085'
+VUE_APP_BASE_API = '/api'
 #VUE_APP_BASE_API = 'http://122.51.221.211:8080'
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 1 - 1
gm-web/.env.production

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 飞机供电系统PHM软件
 ENV = 'production'
 
 # 管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
+VUE_APP_BASE_API = '/api'
 
 # 管理系统/生产环境
 #VUE_APP_BASE_API = 'http://122.51.221.211:8080'

+ 1 - 1
gm-web/.env.staging

@@ -7,4 +7,4 @@ NODE_ENV = production
 ENV = 'staging'
 
 # 管理系统/测试环境
-VUE_APP_BASE_API = '/stage-api'
+VUE_APP_BASE_API = '/api'

+ 1 - 1
gm-web/src/api/als/ERManage.js

@@ -9,7 +9,7 @@ export function getERList(data) {
   return request({
     url: '/kgqa/relation/getAllTriples',
     method: 'get',
-    data: data
+    params: data
   })
 }
 

+ 1 - 1
gm-web/src/api/als/entityManage.js

@@ -9,7 +9,7 @@ export function getEntityList(data) {
   return request({
     url: '/kgqa/entity/getAllEntities',
     method: 'get',
-    data: data
+    params: data
   })
 }
 

+ 1 - 1
gm-web/src/api/als/knowledgeExtraction.js

@@ -84,7 +84,7 @@ export function taskPro(data) {
 export function getClauseList(data) {
   return request({
     url: '/als/kGraphClause/list',
-    method: 'get',
+    method: 'post',
     data: data
   })
 }

+ 4 - 5
gm-web/src/views/ChatComponent.vue

@@ -126,9 +126,8 @@ export default {
   methods: {
     getWarning() {
       getFaultSetting(1).then((response) => {
-        var setting = response.data;
         // 三月未处理故障
-        if (setting.threeMonthOpen == "true") {
+        if (response.data.threeMonthOpen === "true") {
           var index = 0;
           getWarning().then((response) => {
             index = response.data;
@@ -145,9 +144,9 @@ export default {
     },
     handleDetail(device) {
       this.belongId = device.belongId
-      if (device.belongType == "tech") {
+      if (device.belongType === "tech") {
         this.teachShowFlag = true
-      } else if (device.belongType == 'case') {
+      } else if (device.belongType === 'case') {
         this.caseShowFlag = true
       } else {
         this.faultShowFlag = true
@@ -262,7 +261,7 @@ export default {
       });
     },
     textLines(dataArray) {
-      if (dataArray == "") {
+      if (dataArray === "") {
         return [];
       } else {
         return dataArray.map((item) => {

+ 17 - 16
gm-web/src/views/FaultStatisticsBoard.vue

@@ -75,7 +75,8 @@
 <script>
 import * as echarts from 'echarts'
 import { formatDate } from '@/utils/dataUtils'
-import { debounce } from '@/utils/tools' // 引入防抖工具函数
+import { debounce } from '@/utils/tools'
+import { getTop5NextMonth, getTop5SixMonths } from '@/api/faultStatistics' // 引入防抖工具函数
 
 export default {
   name: 'FaultStatisticsBoard',
@@ -144,21 +145,21 @@ export default {
       this.loading = true
       try {
         // 实际项目中启用API请求
-        // const [nextMonthRes, sixMonthsRes] = await Promise.all([
-        //   getTop5NextMonth(),
-        //   getTop5SixMonths()
-        // ])
-        // this.nextMonthData = nextMonthRes.data || []
-        // this.sixMonthsData = sixMonthsRes.data || []
-
-        // 模拟数据(已修正排序问题)
-        this.sixMonthsData = [
-          { partName: '滚动轴承', count: 88 },
-          { partName: '液压泵', count: 72 },
-          { partName: '密封件', count: 59 },
-          { partName: '驱动电机', count: 48 },
-          { partName: '电磁阀', count: 36 }
-        ]
+        const [nextMonthRes, sixMonthsRes] = await Promise.all([
+          getTop5NextMonth(),
+          getTop5SixMonths()
+        ])
+        this.nextMonthData = nextMonthRes.data || []
+        this.sixMonthsData = sixMonthsRes.data || []
+
+        // // 模拟数据(已修正排序问题)
+        // this.sixMonthsData = [
+        //   { partName: '滚动轴承', count: 88 },
+        //   { partName: '液压泵', count: 72 },
+        //   { partName: '密封件', count: 59 },
+        //   { partName: '驱动电机', count: 48 },
+        //   { partName: '电磁阀', count: 36 }
+        // ]
         this.nextMonthData = [
           { partName: '驱动电机', count: 128 },
           { partName: '滚动轴承', count: 95 },

+ 17 - 7
gm-web/src/views/knowledgeExtraction/index.vue

@@ -3,14 +3,24 @@
     <div style="width: 100%">
       <div class="view-dataType-title">
         <div class="view-dataType-title-btn">
-          <el-button type="success" @click="openDialog()">新增抽取任务</el-button>
-          <el-button type="warning" @click="remove(tableCheckItems)" :disabled="tableCheckItems.length === 0">删除</el-button>
-        </div>
-        <div class="view-dataType-title-search">
-          <el-input placeholder="请输入任务名称" v-model="keyWordData" class="input1">
-            <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
-          </el-input>
+          <div>
+            <el-row :gutter="20">
+              <el-col :span="6" style="margin: 10px 10px 10px 10px">
+                <el-input placeholder="请输入任务名称" v-model="keyWordData" w class="input1">
+                  <el-button slot="append" icon="el-icon-search" @click="searchClick"/>
+                </el-input>
+              </el-col>
+            </el-row>
+            <el-row :gutter="20">
+              <el-col :span="6" style="margin: 10px 10px 10px 10px">
+                <el-button type="success" @click="openDialog()">新增抽取任务</el-button>
+                <el-button type="warning" @click="remove(tableCheckItems)" :disabled="tableCheckItems.length === 0">删除</el-button>
+              </el-col>
+            </el-row>
+          </div>
+
         </div>
+
       </div>
       <div class="view-dataType-table">
         <LTable ref="table" @selection-change="selection" :defaultFetch="false" :fetch="fetch" :columns="columns" :dataSource="tableData" :options="options" :pagination="tableRequest"></LTable>

+ 13 - 9
gm-web/src/views/knowledgeManage/ERManage/index.vue

@@ -2,15 +2,19 @@
   <div class="view-table-content">
     <div style="width: 100%">
       <div class="view-dataType-title">
-        <div class="view-dataType-title-btn">
-          <el-button type="success" @click="openDialog()">新增</el-button>
-          <el-button type="warning" @click="reset()">重置</el-button>
-        </div>
-        <div class="view-dataType-title-search">
-          <el-input placeholder="请输入主体/客体名称" v-model="keyWordData" class="input1">
-            <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
-          </el-input>
-        </div>
+        <el-row :gutter="20">
+          <el-col :span="6" style="margin: 10px 10px 10px 10px">
+            <el-input placeholder="请输入主体/客体名称" v-model="keyWordData" class="input1">
+              <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
+            </el-input>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="6" style="margin: 10px 10px 10px 10px">
+            <el-button type="success" @click="openDialog()">新增</el-button>
+            <el-button type="warning" @click="reset()">重置</el-button>
+          </el-col>
+        </el-row>
       </div>
       <div class="view-dataType-table">
         <LTable ref="table" @selection-change="selection" :defaultFetch="false" :fetch="fetch" :columns="columns" :dataSource="tableData" :options="options" :pagination="tableRequset"></LTable>

+ 13 - 9
gm-web/src/views/knowledgeManage/entityManage/index.vue

@@ -2,15 +2,19 @@
   <div class="view-table-content">
     <div style="width: 100%">
       <div class="view-dataType-title">
-        <div class="view-dataType-title-btn">
-          <el-button type="success" @click="openDialog()">新增</el-button>
-          <el-button type="warning" @click="reset()">重置</el-button>
-        </div>
-        <div class="view-dataType-title-search">
-          <el-input placeholder="请输入实体名称" v-model="keyWordData" class="input1">
-            <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
-          </el-input>
-        </div>
+        <el-row :gutter="20">
+          <el-col :span="6" style="margin: 10px 10px 10px 10px">
+            <el-input placeholder="请输入实体名称" v-model="keyWordData" class="input1">
+              <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
+            </el-input>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="6" style="margin: 10px 10px 10px 10px">
+            <el-button type="success" @click="openDialog()">新增</el-button>
+            <el-button type="warning" @click="reset()">重置</el-button>
+          </el-col>
+        </el-row>
       </div>
       <div class="view-dataType-table">
         <LTable ref="table" @selection-change="selection" :defaultFetch="false" :fetch="fetch" :columns="columns" :dataSource="tableData" :options="options" :pagination="tableRequset"></LTable>

+ 7 - 16
gm-web/vue.config.js

@@ -33,22 +33,13 @@ module.exports = {
     port: port,
     open: true,
     proxy: {
-      // detail: https://cli.vuejs.org/config/#devserver-proxy
-      [process.env.VUE_APP_BASE_API]: {
-        //target: `http://122.51.221.211:8080`,
-        target: `http://localhost:8085`,
-        changeOrigin: true,
-        pathRewrite: {
-          ['^' + process.env.VUE_APP_BASE_API]: ''
-        }
-      },
       ['/api/kgqa']: {
         // target: 'http://192.168.0.107:7073',
         target: 'http://192.168.2.120:7073',
         ws: false,
         changeOrigin: true,
         pathRewrite: {
-          ['^' + '/api/kgqa']: '/kgqa'
+          ['^' +'/api/kgqa']: '/kgqa'
         }
       },
       ['/api/knowledge_base']: {
@@ -60,13 +51,13 @@ module.exports = {
         }
       },
       [process.env.VUE_APP_BASE_API]: {
-        target: process.env.VUE_APP_BASE_API_target,
-        ws: false, //也可以忽略不写,不写不会影响跨域
-        changeOrigin: true, //是否开启跨域,值为 true 就是开启, false 不开启
+        // http://8.210.105.62:8080
+        target: `http://localhost:8085`,
+        changeOrigin: true,
         pathRewrite: {
-          ['^' + process.env.VUE_APP_BASE_API]: ''
-        }
-      }
+          ["^" + process.env.VUE_APP_BASE_API]: "",
+        },
+      },
     },
     disableHostCheck: true
   },

+ 1 - 1
pom.xml

@@ -33,7 +33,7 @@
         <elasticsearch.version>7.17.0</elasticsearch.version>
 
         <mybatis-plus-version>3.5.12</mybatis-plus-version>
-        <lombok-version>1.18.12</lombok-version>
+        <lombok-version>1.18.30</lombok-version>
     </properties>
 
     <!-- 依赖声明 -->