Selaa lähdekoodia

健康度单次计算处理

wukai 8 kuukautta sitten
vanhempi
commit
2138d814e6
21 muutettua tiedostoa jossa 583 lisäystä ja 585 poistoa
  1. 187 0
      jjt-admin/src/main/resources/application-junit.yml
  2. 27 0
      jjt-admin/src/test/java/com/test/HlTest.java
  3. 0 2
      jjt-biz/src/main/java/com/jjt/biz/service/impl/BizModelServiceImpl.java
  4. 15 13
      jjt-biz/src/main/java/com/jjt/hl/controller/HlMetricsScoreController.java
  5. 17 49
      jjt-biz/src/main/java/com/jjt/hl/domain/HlMetricsScoreDetail.java
  6. 1 1
      jjt-biz/src/main/java/com/jjt/hl/domain/HlScore.java
  7. 9 0
      jjt-biz/src/main/java/com/jjt/hl/mapper/HlMetricsMapper.java
  8. 15 7
      jjt-biz/src/main/java/com/jjt/hl/mapper/HlMetricsScoreDetailMapper.java
  9. 16 8
      jjt-biz/src/main/java/com/jjt/hl/service/IHlMetricsScoreDetailService.java
  10. 18 5
      jjt-biz/src/main/java/com/jjt/hl/service/IHlMetricsService.java
  11. 6 0
      jjt-biz/src/main/java/com/jjt/hl/service/IHlScoreService.java
  12. 17 4
      jjt-biz/src/main/java/com/jjt/hl/service/impl/HlMetricsScoreDetailServiceImpl.java
  13. 17 1
      jjt-biz/src/main/java/com/jjt/hl/service/impl/HlMetricsServiceImpl.java
  14. 121 12
      jjt-biz/src/main/java/com/jjt/hl/service/impl/HlScoreServiceImpl.java
  15. 56 0
      jjt-biz/src/main/java/com/jjt/hl/vo/HlMetricsVO.java
  16. 0 143
      jjt-biz/src/main/resources/mapper/hl/BizInspectionDetailMapper.xml
  17. 0 143
      jjt-biz/src/main/resources/mapper/hl/BizInspectionMapper.xml
  18. 0 165
      jjt-biz/src/main/resources/mapper/hl/BizInspectionMetricsMapper.xml
  19. 15 0
      jjt-biz/src/main/resources/mapper/hl/HlMetricsMapper.xml
  20. 41 28
      jjt-biz/src/main/resources/mapper/hl/HlMetricsScoreDetailMapper.xml
  21. 5 4
      jjt-quartz/src/main/java/com/jjt/quartz/config/ScheduleConfig.java

+ 187 - 0
jjt-admin/src/main/resources/application-junit.yml

@@ -0,0 +1,187 @@
+# 项目相关配置
+jjt:
+  # 名称
+  name: jjt
+  # 版本
+  version: 3.8.7
+  # 版权年份
+  copyrightYear: 2024
+  # 文件路径 示例( Windows配置D:/jjt/uploadPath,Linux配置 /home/jjt/uploadPath)
+  profile: D:/jjt/uploadPath
+  # 获取ip地址开关
+  addressEnabled: false
+  # 验证码类型 math 数字计算 char 字符验证
+  captchaType: math
+
+# 开发环境配置
+server:
+  # 服务器的HTTP端口,默认为8080
+  port: 9527
+  servlet:
+    # 应用的访问路径
+    context-path: /
+  tomcat:
+    # tomcat的URI编码
+    uri-encoding: UTF-8
+    # 连接数满后的排队数,默认为100
+    accept-count: 1000
+    threads:
+      # tomcat最大线程数,默认为200
+      max: 800
+      # Tomcat启动初始化的线程数,默认值10
+      min-spare: 100
+
+# 日志配置
+logging:
+  level:
+    com.jjt: debug
+    org.springframework: warn
+
+# 用户配置
+user:
+  password:
+    # 密码最大错误次数
+    maxRetryCount: 5
+    # 密码锁定时间(默认10分钟)
+    lockTime: 10
+
+# Spring配置
+spring:
+  # 数据源配置
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driverClassName: com.mysql.cj.jdbc.Driver
+    druid:
+      # 主库数据源
+      master:
+        url: jdbc:mysql://localhost:33306/jy2024?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
+        username: root
+        password: 123456
+      # 从库数据源
+      slave:
+        # 从数据源开关/默认关闭
+        enabled: false
+        url:
+        username:
+        password:
+      # 初始连接数
+      initialSize: 5
+      # 最小连接池数量
+      minIdle: 10
+      # 最大连接池数量
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置连接超时时间
+      connectTimeout: 30000
+      # 配置网络超时时间
+      socketTimeout: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      # 配置一个连接在池中最大生存的时间,单位是毫秒
+      maxEvictableIdleTimeMillis: 900000
+      # 配置检测连接是否有效
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      webStatFilter:
+        enabled: true
+      statViewServlet:
+        enabled: true
+        # 设置白名单,不填则允许所有访问
+        allow:
+        url-pattern: /druid/*
+        # 控制台管理用户名和密码
+        login-username: jjt
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 慢SQL记录
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+  # 资源信息
+  messages:
+    # 国际化资源文件路径
+    basename: i18n/messages
+  # 文件上传
+  servlet:
+    multipart:
+      # 单个文件大小
+      max-file-size: 10MB
+      # 设置总上传的文件大小
+      max-request-size: 20MB
+  # 服务模块
+  devtools:
+    restart:
+      # 热部署开关
+      enabled: true
+  # redis 配置
+  redis:
+    # 地址
+    host: 192.168.188.66
+    # 端口,默认为6379
+    port: 6379
+    # 数据库索引
+    database: 0
+    # 密码
+    password: redis@123
+    # 连接超时时间
+    timeout: 10s
+    lettuce:
+      pool:
+        # 连接池中的最小空闲连接
+        min-idle: 0
+        # 连接池中的最大空闲连接
+        max-idle: 8
+        # 连接池的最大数据库连接数
+        max-active: 8
+        # #连接池最大阻塞等待时间(使用负值表示没有限制)
+        max-wait: -1ms
+
+# token配置
+token:
+  # 令牌自定义标识
+  header: Authorization
+  # 令牌密钥
+  secret: JJT@basic!2024.
+  # 令牌有效期(默认30分钟)
+  expireTime: 30
+
+# MyBatis Plus配置
+mybatis-plus:
+  # 搜索指定包别名
+  typeAliasesPackage: com.jjt.**.domain
+  # 配置mapper的扫描,找到所有的mapper.xml映射文件
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 加载全局的配置文件
+  configLocation: classpath:mybatis/mybatis-config.xml
+
+# PageHelper分页插件
+pagehelper:
+  helperDialect: mysql
+  supportMethodsArguments: true
+  params: count=countSql
+
+# Swagger配置
+swagger:
+  # 是否开启swagger
+  enabled: true
+  # 请求前缀
+  pathMapping: /dev-api
+
+# 防止XSS攻击
+xss:
+  # 过滤开关
+  enabled: true
+  # 排除链接(多个用逗号分隔)
+  excludes: /system/notice
+  # 匹配链接
+  urlPatterns: /system/*,/monitor/*,/tool/*

+ 27 - 0
jjt-admin/src/test/java/com/test/HlTest.java

@@ -0,0 +1,27 @@
+package com.test;
+
+import com.jjt.JjtApplication;
+import com.jjt.hl.service.IHlScoreService;
+import com.jjt.quartz.config.ScheduleConfig;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ */
+@SpringBootTest(classes = JjtApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@ActiveProfiles("junit")
+public class HlTest {
+    @Resource
+    private IHlScoreService scoreService;
+
+    @Test
+    void data() {
+        scoreService.score(4l);
+    }
+
+}

+ 0 - 2
jjt-biz/src/main/java/com/jjt/biz/service/impl/BizModelServiceImpl.java

@@ -39,8 +39,6 @@ public class BizModelServiceImpl implements IBizModelService {
     @Resource
     private IHlClassService hlClassService;
     @Resource
-    private IHlObjService hlObjService;
-    @Resource
     private SqlSessionFactory factory;
 
     /**

+ 15 - 13
jjt-biz/src/main/java/com/jjt/hl/controller/HlMetricsScoreController.java

@@ -7,6 +7,8 @@ import com.jjt.common.core.page.TableDataInfo;
 import com.jjt.common.enums.BusinessType;
 import com.jjt.common.utils.poi.ExcelUtil;
 import com.jjt.hl.domain.HlMetricsScore;
+import com.jjt.hl.domain.HlMetricsScoreDetail;
+import com.jjt.hl.service.IHlMetricsScoreDetailService;
 import com.jjt.hl.service.IHlMetricsScoreService;
 import com.jjt.hl.vo.ScoreDetailVO;
 import io.swagger.annotations.Api;
@@ -16,8 +18,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.Random;
 
@@ -33,6 +33,8 @@ import java.util.Random;
 public class HlMetricsScoreController extends BaseController {
     @Resource
     private IHlMetricsScoreService hlMetricsScoreService;
+    @Resource
+    private IHlMetricsScoreDetailService detailService;
 
     /**
      * 查询模型健康度分类得分列表
@@ -56,17 +58,17 @@ public class HlMetricsScoreController extends BaseController {
 //        String[] names = {"cluster-node1", "cluster-node2", "cluster-node3", "cluster-node4", "cluster-node5"};
 //        String[] remarks = {"超过80%,且持续1小时", "超过60,且持续1小时", "超过90%", "超过200,且持续1小时", "当前值超过5"};
         Random random = new Random();
-        List<ScoreDetailVO> list = new ArrayList<>();
-        for (int i = 0; i < 5; i++) {
-            ScoreDetailVO vo = new ScoreDetailVO();
-            vo.setObjName("node-" + random.nextInt(50));
-            vo.setEvent("超过80,且持续1小时");
-            vo.setMetricsName("内存使用率");
-            float v = 80F + random.nextInt(20);
-            vo.setValue(v);
-            vo.setTime(new Date());
-            list.add(vo);
-        }
+        List<ScoreDetailVO> list = detailService.detailList(scoreMetricsId);
+//        for (int i = 0; i < 5; i++) {
+//            ScoreDetailVO vo = new ScoreDetailVO();
+//            vo.setObjName("node-" + random.nextInt(50));
+//            vo.setEvent("超过80,且持续1小时");
+//            vo.setMetricsName("内存使用率");
+//            float v = 80F + random.nextInt(20);
+//            vo.setValue(v);
+//            vo.setTime(new Date());
+//            list.add(vo);
+//        }
         return AjaxResult.success(list);
     }
 

+ 17 - 49
jjt-biz/src/main/java/com/jjt/hl/domain/HlMetricsScoreDetail.java

@@ -1,12 +1,11 @@
 package com.jjt.hl.domain;
 
 import com.baomidou.mybatisplus.annotation.TableId;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.jjt.common.annotation.Excel;
 import com.jjt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 /**
  * 业务模型健康度得分指标明细对象 hl_metrics_score_detail
@@ -15,59 +14,28 @@ import com.jjt.common.core.domain.BaseEntity;
  * @date 2024-09-05
  */
 @ApiModel(value = "HlMetricsScoreDetail", description = "业务模型健康度得分指标明细")
-public class HlMetricsScoreDetail extends BaseEntity
-{
+@Data
+public class HlMetricsScoreDetail extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 指标明细ID */
+    /**
+     * 指标明细ID
+     */
     @ApiModelProperty("指标明细ID")
     @TableId
     private Long scoreDetailId;
 
-    /** 指标明细ID */
+    /**
+     * 指标明细ID
+     */
     @ApiModelProperty("指标明细ID")
     @Excel(name = "指标明细ID")
     private Long scoreMetricsId;
 
-    /** ID */
-    @ApiModelProperty("ID")
-    @Excel(name = "ID")
-    private Long objMetricsId;
-
-    public void setScoreDetailId(Long scoreDetailId)
-    {
-        this.scoreDetailId = scoreDetailId;
-    }
-
-    public Long getScoreDetailId()
-    {
-        return scoreDetailId;
-    }
-    public void setScoreMetricsId(Long scoreMetricsId)
-    {
-        this.scoreMetricsId = scoreMetricsId;
-    }
-
-    public Long getScoreMetricsId()
-    {
-        return scoreMetricsId;
-    }
-    public void setObjMetricsId(Long objMetricsId)
-    {
-        this.objMetricsId = objMetricsId;
-    }
-
-    public Long getObjMetricsId()
-    {
-        return objMetricsId;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("scoreDetailId", getScoreDetailId())
-            .append("scoreMetricsId", getScoreMetricsId())
-            .append("objMetricsId", getObjMetricsId())
-            .toString();
-    }
+    /**
+     * ID
+     */
+    @ApiModelProperty("事件ID")
+    @Excel(name = "事件ID")
+    private Long eventId;
 }

+ 1 - 1
jjt-biz/src/main/java/com/jjt/hl/domain/HlScore.java

@@ -25,7 +25,7 @@ public class HlScore extends BaseEntity {
     /**
      * 健康度分数记录ID;
      */
-    @ApiModelProperty("健康度分数记录ID;")
+    @ApiModelProperty("健康度分数记录ID")
     @TableId
     private Long hlScoreId;
 

+ 9 - 0
jjt-biz/src/main/java/com/jjt/hl/mapper/HlMetricsMapper.java

@@ -1,7 +1,9 @@
 package com.jjt.hl.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jjt.biz.domain.BizObjMetrics;
 import com.jjt.hl.domain.HlMetrics;
+import com.jjt.hl.vo.HlMetricsVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -69,4 +71,11 @@ public interface HlMetricsMapper extends BaseMapper<HlMetrics> {
      * @return 结果
      */
     List<HlMetrics> selectHlMetricsList4ModelId(@Param("modelId") Long modelId, @Param("objType") String objType);
+    /**
+     * 根据健康度分类获取所有指标对象
+     *
+     * @param hlClassId 健康度分类ID
+     * @return 结果
+     */
+    List<HlMetricsVO> hlMetricsList(Long hlClassId);
 }

+ 15 - 7
jjt-biz/src/main/java/com/jjt/hl/mapper/HlMetricsScoreDetailMapper.java

@@ -3,10 +3,11 @@ package com.jjt.hl.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jjt.hl.domain.HlMetricsScoreDetail;
+import com.jjt.hl.vo.ScoreDetailVO;
 
 /**
  * 业务模型健康度得分指标明细Mapper接口
- * 
+ *
  * @author jjt
  * @date 2024-09-05
  */
@@ -14,7 +15,7 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 {
     /**
      * 查询业务模型健康度得分指标明细
-     * 
+     *
      * @param scoreDetailId 业务模型健康度得分指标明细主键
      * @return 业务模型健康度得分指标明细
      */
@@ -22,7 +23,7 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 
     /**
      * 查询业务模型健康度得分指标明细列表
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 业务模型健康度得分指标明细集合
      */
@@ -30,7 +31,7 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 
     /**
      * 新增业务模型健康度得分指标明细
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 结果
      */
@@ -38,7 +39,7 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 
     /**
      * 修改业务模型健康度得分指标明细
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 结果
      */
@@ -46,7 +47,7 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 
     /**
      * 删除业务模型健康度得分指标明细
-     * 
+     *
      * @param scoreDetailId 业务模型健康度得分指标明细主键
      * @return 结果
      */
@@ -54,9 +55,16 @@ public interface HlMetricsScoreDetailMapper extends BaseMapper<HlMetricsScoreDet
 
     /**
      * 批量删除业务模型健康度得分指标明细
-     * 
+     *
      * @param scoreDetailIds 需要删除的数据主键集合
      * @return 结果
      */
     public int deleteHlMetricsScoreDetailByScoreDetailIds(Long[] scoreDetailIds);
+    /**
+     * 通过scoreId查询明细
+     *
+     * @param scoreMetricsId id
+     * @return 结果
+     */
+    List<ScoreDetailVO> detailList(Long scoreMetricsId);
 }

+ 16 - 8
jjt-biz/src/main/java/com/jjt/hl/service/IHlMetricsScoreDetailService.java

@@ -2,18 +2,19 @@ package com.jjt.hl.service;
 
 import java.util.List;
 import com.jjt.hl.domain.HlMetricsScoreDetail;
+import com.jjt.hl.vo.ScoreDetailVO;
 
 /**
  * 业务模型健康度得分指标明细Service接口
- * 
+ *
  * @author jjt
  * @date 2024-09-05
  */
-public interface IHlMetricsScoreDetailService 
+public interface IHlMetricsScoreDetailService
 {
     /**
      * 查询业务模型健康度得分指标明细
-     * 
+     *
      * @param scoreDetailId 业务模型健康度得分指标明细主键
      * @return 业务模型健康度得分指标明细
      */
@@ -21,7 +22,7 @@ public interface IHlMetricsScoreDetailService
 
     /**
      * 查询业务模型健康度得分指标明细列表
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 业务模型健康度得分指标明细集合
      */
@@ -29,7 +30,7 @@ public interface IHlMetricsScoreDetailService
 
     /**
      * 新增业务模型健康度得分指标明细
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 结果
      */
@@ -37,7 +38,7 @@ public interface IHlMetricsScoreDetailService
 
     /**
      * 修改业务模型健康度得分指标明细
-     * 
+     *
      * @param hlMetricsScoreDetail 业务模型健康度得分指标明细
      * @return 结果
      */
@@ -45,7 +46,7 @@ public interface IHlMetricsScoreDetailService
 
     /**
      * 批量删除业务模型健康度得分指标明细
-     * 
+     *
      * @param scoreDetailIds 需要删除的业务模型健康度得分指标明细主键集合
      * @return 结果
      */
@@ -53,9 +54,16 @@ public interface IHlMetricsScoreDetailService
 
     /**
      * 删除业务模型健康度得分指标明细信息
-     * 
+     *
      * @param scoreDetailId 业务模型健康度得分指标明细主键
      * @return 结果
      */
     public int deleteHlMetricsScoreDetailByScoreDetailId(Long scoreDetailId);
+
+    /**
+     * 通过scoreId查询明细
+     * @param scoreMetricsId id
+     * @return 结果
+     */
+    List<ScoreDetailVO> detailList(Long scoreMetricsId);
 }

+ 18 - 5
jjt-biz/src/main/java/com/jjt/hl/service/IHlMetricsService.java

@@ -1,8 +1,11 @@
 package com.jjt.hl.service;
 
-import java.util.List;
-
+import com.jjt.biz.domain.BizObjMetrics;
 import com.jjt.hl.domain.HlMetrics;
+import com.jjt.hl.vo.HlMetricsVO;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 业务模型健康度指标Service接口
@@ -10,8 +13,7 @@ import com.jjt.hl.domain.HlMetrics;
  * @author jjt
  * @date 2024-09-05
  */
-public interface IHlMetricsService
-{
+public interface IHlMetricsService {
     /**
      * 查询业务模型健康度指标
      *
@@ -62,6 +64,7 @@ public interface IHlMetricsService
 
     /**
      * 查询指标列表
+     *
      * @param modelId 模型ID
      * @param objType 对象类型
      * @return
@@ -70,9 +73,19 @@ public interface IHlMetricsService
 
     /**
      * 添加指标
+     *
      * @param hlClassId 分类ID
-     * @param ids 指标IDS
+     * @param ids       指标IDS
      * @return 结果
      */
     int insertMetrics(Long hlClassId, Long[] ids);
+
+    /**
+     * 根据健康度分类获取所有指标对象
+     * 并按metricsId分组
+     *
+     * @param hlClassId 健康度分类ID
+     * @return 结果
+     */
+    Map<Long,List<HlMetricsVO>> hlMetricsList(Long hlClassId);
 }

+ 6 - 0
jjt-biz/src/main/java/com/jjt/hl/service/IHlScoreService.java

@@ -64,6 +64,12 @@ public interface IHlScoreService {
      * 健康度评分
      */
     void score();
+    /**
+     * 按模型ID进行评分
+     *
+     * @param modelId 模型ID
+     */
+    void score(Long modelId);
 
     /**
      * 日健康度评分

+ 17 - 4
jjt-biz/src/main/java/com/jjt/hl/service/impl/HlMetricsScoreDetailServiceImpl.java

@@ -1,11 +1,13 @@
 package com.jjt.hl.service.impl;
 
-import java.util.List;
-import org.springframework.stereotype.Service;
-import com.jjt.hl.mapper.HlMetricsScoreDetailMapper;
 import com.jjt.hl.domain.HlMetricsScoreDetail;
+import com.jjt.hl.mapper.HlMetricsScoreDetailMapper;
 import com.jjt.hl.service.IHlMetricsScoreDetailService;
+import com.jjt.hl.vo.ScoreDetailVO;
+import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 业务模型健康度得分指标明细Service业务层处理
@@ -48,7 +50,7 @@ public class HlMetricsScoreDetailServiceImpl implements IHlMetricsScoreDetailSer
      */
     @Override
     public int insertHlMetricsScoreDetail(HlMetricsScoreDetail hlMetricsScoreDetail) {
-            return hlMetricsScoreDetailMapper.insertHlMetricsScoreDetail(hlMetricsScoreDetail);
+        return hlMetricsScoreDetailMapper.insertHlMetricsScoreDetail(hlMetricsScoreDetail);
     }
 
     /**
@@ -83,4 +85,15 @@ public class HlMetricsScoreDetailServiceImpl implements IHlMetricsScoreDetailSer
     public int deleteHlMetricsScoreDetailByScoreDetailId(Long scoreDetailId) {
         return hlMetricsScoreDetailMapper.deleteHlMetricsScoreDetailByScoreDetailId(scoreDetailId);
     }
+
+    /**
+     * 通过scoreId查询明细
+     *
+     * @param scoreMetricsId id
+     * @return 结果
+     */
+    @Override
+    public List<ScoreDetailVO> detailList(Long scoreMetricsId) {
+        return hlMetricsScoreDetailMapper.detailList(scoreMetricsId);
+    }
 }

+ 17 - 1
jjt-biz/src/main/java/com/jjt/hl/service/impl/HlMetricsServiceImpl.java

@@ -1,13 +1,17 @@
 package com.jjt.hl.service.impl;
 
+import com.jjt.biz.domain.BizObjMetrics;
 import com.jjt.common.utils.DateUtils;
 import com.jjt.hl.domain.HlMetrics;
 import com.jjt.hl.mapper.HlMetricsMapper;
 import com.jjt.hl.service.IHlMetricsService;
+import com.jjt.hl.vo.HlMetricsVO;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 业务模型健康度指标Service业务层处理
@@ -104,7 +108,7 @@ public class HlMetricsServiceImpl implements IHlMetricsService {
      * 添加指标
      *
      * @param hlClassId 分类ID
-     * @param ids    指标IDS
+     * @param ids       指标IDS
      * @return 结果
      */
     @Override
@@ -120,4 +124,16 @@ public class HlMetricsServiceImpl implements IHlMetricsService {
         }
         return 0;
     }
+
+    /**
+     * 根据健康度分类获取所有指标对象
+     *
+     * @param hlClassId 健康度分类ID
+     * @return 结果
+     */
+    @Override
+    public Map<Long, List<HlMetricsVO>> hlMetricsList(Long hlClassId) {
+        List<HlMetricsVO> list = hlMetricsMapper.hlMetricsList(hlClassId);
+        return list.stream().collect(Collectors.groupingBy(HlMetricsVO::getMetricsId));
+    }
 }

+ 121 - 12
jjt-biz/src/main/java/com/jjt/hl/service/impl/HlScoreServiceImpl.java

@@ -2,22 +2,24 @@ package com.jjt.hl.service.impl;
 
 import com.googlecode.aviator.AviatorEvaluator;
 import com.jjt.biz.domain.BizModel;
-import com.jjt.biz.service.IBizModelDetailService;
 import com.jjt.biz.service.IBizModelService;
 import com.jjt.common.utils.DateUtils;
 import com.jjt.common.utils.bean.BeanUtils;
 import com.jjt.hl.domain.*;
+import com.jjt.hl.mapper.HlMetricsScoreDetailMapper;
 import com.jjt.hl.mapper.HlScoreMapper;
 import com.jjt.hl.service.*;
+import com.jjt.hl.vo.HlMetricsVO;
+import org.apache.ibatis.session.ExecutorType;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
+import java.math.RoundingMode;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -34,10 +36,6 @@ public class HlScoreServiceImpl implements IHlScoreService {
     @Resource
     private IBizModelService modelService;
     @Resource
-    private IBizModelDetailService modelDetailService;
-    @Resource
-    private IHlClassService hlClassService;
-    @Resource
     private IHlClassScoreService hlClassScoreService;
     @Resource
     private IHlObjService hlObjService;
@@ -46,10 +44,9 @@ public class HlScoreServiceImpl implements IHlScoreService {
     @Resource
     private IHlMetricsScoreService hlMetricsScoreService;
     @Resource
-    private IHlMetricsScoreDetailService hlMetricsScoreDetailService;
-    @Resource
     private JdbcTemplate jdbcTemplate;
-
+    @Resource
+    private SqlSessionFactory factory;
 
     /**
      * 查询健康度分数记录
@@ -189,6 +186,118 @@ public class HlScoreServiceImpl implements IHlScoreService {
     }
 
     /**
+     * 按模型ID进行评分
+     *
+     * @param modelId 模型ID
+     */
+    @Override
+    public void score(Long modelId) {
+        HlScore score = new HlScore();
+        score.setModelId(modelId);
+        score.setHlDate(new Date());
+        //单次评分
+        score.setHlType("1");
+        insertHlScore(score);
+        BigDecimal totalScore = BigDecimal.ZERO;
+        //查找健康度分类
+        List<HlClass> classList = modelService.selectHlClassList4modelId(modelId);
+        List<HlMetricsScoreDetail> details = new ArrayList<>();
+        for (HlClass hlClass : classList) {
+            HlClassScore hlClassScore = new HlClassScore();
+            BeanUtils.copyBeanProp(hlClassScore, hlClass);
+            hlClassScore.setHlScoreId(score.getHlScoreId());
+            hlClassScoreService.insertHlClassScore(hlClassScore);
+            HlMetrics hm = new HlMetrics();
+            hm.setHlClassId(hlClass.getHlClassId());
+            List<HlMetrics> hlMetricsList = hlMetricsService.selectHlMetricsList(hm);
+            //所有指标
+            Map<Long, List<HlMetricsVO>> metricsMap = hlMetricsService.hlMetricsList(hlClass.getHlClassId());
+
+            BigDecimal lostClass = BigDecimal.ZERO;
+
+            for (HlMetrics hlMetrics : hlMetricsList) {
+                if ("1".equals(hlClass.getScoreType())) {
+                    //1.均分 2.细项分
+                    //如果是均分,需要计算,如果是细项分,直接用
+                    BigDecimal metricsScore = hlClass.getHlScore().divide(BigDecimal.valueOf(hlMetricsList.size()), RoundingMode.HALF_UP);
+                    hlMetrics.setHlScore(metricsScore);
+                }
+
+                List<HlMetricsVO> vos = metricsMap.get(hlMetrics.getMetricsId());
+                if (vos == null || vos.size() == 0) {
+                    //如果没有事件产生,则无事发生
+                    continue;
+                }
+                //扣分
+                BigDecimal lost = BigDecimal.ZERO;
+                //指标总数也
+                int total = vos.size();
+                //评分标准 1.当前值  2.持续1小时值
+                int eventNum = 0;
+                List<Long> eventIds = new ArrayList<>();
+                for (HlMetricsVO vo : vos) {
+                    if (vo.getEventId() != null) {
+                        eventIds.add(vo.getEventId());
+                        if ("1".equals(hlMetrics.getHlStand())) {
+                            //有事件就扣分
+                            eventNum++;
+                        } else {
+                            //需要判断是否持续1小时
+                            if (vo.getEndTime() == null) {
+                                //如果没有结束时间,则判断至当前是否已经到1小时
+                                vo.setEndTime(new Date());
+                            }
+                            if (vo.getEndTime().getTime() - vo.getStartTime().getTime() > 3600 * 1000) {
+                                eventNum++;
+                            }
+                        }
+                    }
+                }
+                //(告警组件数量/总数量 )*细项分
+                if (eventNum > 0) {
+                    lost = BigDecimal.valueOf(eventNum).divide(BigDecimal.valueOf(total), RoundingMode.HALF_UP).multiply(hlMetrics.getHlScore());
+                }
+                //最终得分 = 分数-扣分
+                BigDecimal score2 = BigDecimal.ZERO;
+                if (hlMetrics.getHlScore().compareTo(lost) >= 0) {
+                    score2 = hlMetrics.getHlScore().subtract(lost);
+                }
+                HlMetricsScore metricsScore = new HlMetricsScore();
+                BeanUtils.copyBeanProp(metricsScore, hlMetrics);
+                metricsScore.setLoseScore(lost);
+                metricsScore.setScore(score2);
+                metricsScore.setScoreClassId(hlClassScore.getScoreClassId());
+                hlMetricsScoreService.insertHlMetricsScore(metricsScore);
+
+                for (Long eventId : eventIds) {
+                    HlMetricsScoreDetail detail = new HlMetricsScoreDetail();
+                    detail.setScoreMetricsId(metricsScore.getScoreMetricsId());
+                    detail.setEventId(eventId);
+                    details.add(detail);
+                }
+                lostClass = lostClass.add(lost);
+            }
+            hlClassScore.setLoseScore(lostClass);
+            BigDecimal df = BigDecimal.ZERO;
+            if (hlClassScore.getHlScore().compareTo(lostClass) >= 0) {
+                df = hlClassScore.getHlScore().subtract(lostClass);
+            }
+            hlClassScore.setScore(df);
+            totalScore = totalScore.add(df);
+            hlClassScoreService.updateHlClassScore(hlClassScore);
+        }
+        if (details.size() > 0) {
+            try (SqlSession sqlSession = factory.openSession(ExecutorType.BATCH, false)) {
+                HlMetricsScoreDetailMapper mapper = sqlSession.getMapper(HlMetricsScoreDetailMapper.class);
+                details.forEach(mapper::insertHlMetricsScoreDetail);
+                sqlSession.commit();
+            }
+        }
+        score.setHlScore(totalScore);
+        updateHlScore(score);
+    }
+
+    /**
      * 日健康度评分
      *
      * @param date 时间

+ 56 - 0
jjt-biz/src/main/java/com/jjt/hl/vo/HlMetricsVO.java

@@ -0,0 +1,56 @@
+package com.jjt.hl.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jjt.biz.domain.MetricsDef;
+import com.jjt.common.annotation.Excel;
+import com.jjt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 业务对象指标对象 biz_obj_metrics
+ *
+ * @author jjt
+ * @date 2024-08-09
+ */
+@ApiModel(value = "HlMetricsVO", description = "业务对象指标")
+@Data
+public class HlMetricsVO {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("指标对象ID")
+    private Long objMetricsId;
+    @ApiModelProperty("业务对象ID")
+    private Long objId;
+    @ApiModelProperty("对象名称")
+    private String objName;
+    @ApiModelProperty("对象业务类型")
+    private String objType;
+    @ApiModelProperty("模板ID")
+    private Long tplId;
+    @ApiModelProperty("指标ID")
+    private Long metricsId;
+    @ApiModelProperty("指标名称")
+    private String metricsName;
+    @ApiModelProperty("指标编码")
+    private String metricsCode;
+    @ApiModelProperty("事件ID")
+    private Long eventId;
+    @ApiModelProperty("事件开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
+    private Date startTime;
+    @ApiModelProperty("事件结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
+    private Date endTime;
+    @ApiModelProperty("事件状态")
+    @Excel(name = "事件状态")
+    private String eventStatus;
+    @ApiModelProperty("事件产生时值")
+    @Excel(name = "事件产生时值")
+    private BigDecimal eventValue;
+
+}

+ 0 - 143
jjt-biz/src/main/resources/mapper/hl/BizInspectionDetailMapper.xml

@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jjt.biz.mapper.BizInspectionDetailMapper">
-
-    <resultMap type="BizInspectionDetail" id="BizInspectionDetailResult">
-            <result property="inspectionDetailId" column="INSPECTION_DETAIL_ID"/>
-            <result property="inspectionId" column="INSPECTION_ID"/>
-            <result property="bizDetailId" column="BIZ_DETAIL_ID"/>
-            <result property="objScore" column="OBJ_SCORE"/>
-            <result property="createBy" column="CREATE_BY"/>
-            <result property="createTime" column="CREATE_TIME"/>
-            <result property="updateBy" column="UPDATE_BY"/>
-            <result property="updateTime" column="UPDATE_TIME"/>
-            <result property="remark" column="REMARK"/>
-    </resultMap>
-
-    <sql id="selectBizInspectionDetailVo">
-        select INSPECTION_DETAIL_ID, INSPECTION_ID, BIZ_DETAIL_ID, OBJ_SCORE, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK
-        from biz_inspection_detail
-    </sql>
-
-    <select id="selectBizInspectionDetailList" parameterType="BizInspectionDetail" resultMap="BizInspectionDetailResult">
-        <include refid="selectBizInspectionDetailVo"/>
-        <where>
-                        <if test="inspectionId != null ">
-                            and INSPECTION_ID = #{inspectionId}
-                        </if>
-                        <if test="bizDetailId != null ">
-                            and BIZ_DETAIL_ID = #{bizDetailId}
-                        </if>
-                        <if test="objScore != null ">
-                            and OBJ_SCORE = #{objScore}
-                        </if>
-                        <if test="createBy != null  and createBy != ''">
-                            and CREATE_BY = #{createBy}
-                        </if>
-                        <if test="createTime != null ">
-                            and CREATE_TIME = #{createTime}
-                        </if>
-                        <if test="updateBy != null  and updateBy != ''">
-                            and UPDATE_BY = #{updateBy}
-                        </if>
-                        <if test="updateTime != null ">
-                            and UPDATE_TIME = #{updateTime}
-                        </if>
-                        <if test="remark != null  and remark != ''">
-                            and REMARK = #{remark}
-                        </if>
-        </where>
-    </select>
-
-    <select id="selectBizInspectionDetailByInspectionDetailId" parameterType="Long"
-            resultMap="BizInspectionDetailResult">
-            <include refid="selectBizInspectionDetailVo"/>
-            where INSPECTION_DETAIL_ID = #{inspectionDetailId}
-    </select>
-
-    <insert id="insertBizInspectionDetail" parameterType="BizInspectionDetail" useGeneratedKeys="true"
-            keyProperty="inspectionDetailId">
-        insert into biz_inspection_detail
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-                    <if test="inspectionId != null">INSPECTION_ID,
-                    </if>
-                    <if test="bizDetailId != null">BIZ_DETAIL_ID,
-                    </if>
-                    <if test="objScore != null">OBJ_SCORE,
-                    </if>
-                    <if test="createBy != null">CREATE_BY,
-                    </if>
-                    <if test="createTime != null">CREATE_TIME,
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY,
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME,
-                    </if>
-                    <if test="remark != null">REMARK,
-                    </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-                    <if test="inspectionId != null">#{inspectionId},
-                    </if>
-                    <if test="bizDetailId != null">#{bizDetailId},
-                    </if>
-                    <if test="objScore != null">#{objScore},
-                    </if>
-                    <if test="createBy != null">#{createBy},
-                    </if>
-                    <if test="createTime != null">#{createTime},
-                    </if>
-                    <if test="updateBy != null">#{updateBy},
-                    </if>
-                    <if test="updateTime != null">#{updateTime},
-                    </if>
-                    <if test="remark != null">#{remark},
-                    </if>
-        </trim>
-    </insert>
-
-    <update id="updateBizInspectionDetail" parameterType="BizInspectionDetail">
-        update biz_inspection_detail
-        <trim prefix="SET" suffixOverrides=",">
-                    <if test="inspectionId != null">INSPECTION_ID =
-                        #{inspectionId},
-                    </if>
-                    <if test="bizDetailId != null">BIZ_DETAIL_ID =
-                        #{bizDetailId},
-                    </if>
-                    <if test="objScore != null">OBJ_SCORE =
-                        #{objScore},
-                    </if>
-                    <if test="createBy != null">CREATE_BY =
-                        #{createBy},
-                    </if>
-                    <if test="createTime != null">CREATE_TIME =
-                        #{createTime},
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY =
-                        #{updateBy},
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME =
-                        #{updateTime},
-                    </if>
-                    <if test="remark != null">REMARK =
-                        #{remark},
-                    </if>
-        </trim>
-        where INSPECTION_DETAIL_ID = #{inspectionDetailId}
-    </update>
-
-    <delete id="deleteBizInspectionDetailByInspectionDetailId" parameterType="Long">
-        delete
-        from biz_inspection_detail where INSPECTION_DETAIL_ID = #{inspectionDetailId}
-    </delete>
-
-    <delete id="deleteBizInspectionDetailByInspectionDetailIds" parameterType="String">
-        delete from biz_inspection_detail where INSPECTION_DETAIL_ID in
-        <foreach item="inspectionDetailId" collection="array" open="(" separator="," close=")">
-            #{inspectionDetailId}
-        </foreach>
-    </delete>
-</mapper>

+ 0 - 143
jjt-biz/src/main/resources/mapper/hl/BizInspectionMapper.xml

@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jjt.biz.mapper.BizInspectionMapper">
-
-    <resultMap type="BizInspection" id="BizInspectionResult">
-            <result property="inspectionId" column="INSPECTION_ID"/>
-            <result property="modelId" column="MODEL_ID"/>
-            <result property="inspectionTime" column="INSPECTION_TIME"/>
-            <result property="modelScore" column="MODEL_SCORE"/>
-            <result property="createBy" column="CREATE_BY"/>
-            <result property="createTime" column="CREATE_TIME"/>
-            <result property="updateBy" column="UPDATE_BY"/>
-            <result property="updateTime" column="UPDATE_TIME"/>
-            <result property="remark" column="REMARK"/>
-    </resultMap>
-
-    <sql id="selectBizInspectionVo">
-        select INSPECTION_ID, MODEL_ID, INSPECTION_TIME, MODEL_SCORE, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK
-        from biz_inspection
-    </sql>
-
-    <select id="selectBizInspectionList" parameterType="BizInspection" resultMap="BizInspectionResult">
-        <include refid="selectBizInspectionVo"/>
-        <where>
-                        <if test="modelId != null ">
-                            and MODEL_ID = #{modelId}
-                        </if>
-                        <if test="inspectionTime != null ">
-                            and INSPECTION_TIME = #{inspectionTime}
-                        </if>
-                        <if test="modelScore != null ">
-                            and MODEL_SCORE = #{modelScore}
-                        </if>
-                        <if test="createBy != null  and createBy != ''">
-                            and CREATE_BY = #{createBy}
-                        </if>
-                        <if test="createTime != null ">
-                            and CREATE_TIME = #{createTime}
-                        </if>
-                        <if test="updateBy != null  and updateBy != ''">
-                            and UPDATE_BY = #{updateBy}
-                        </if>
-                        <if test="updateTime != null ">
-                            and UPDATE_TIME = #{updateTime}
-                        </if>
-                        <if test="remark != null  and remark != ''">
-                            and REMARK = #{remark}
-                        </if>
-        </where>
-    </select>
-
-    <select id="selectBizInspectionByInspectionId" parameterType="Long"
-            resultMap="BizInspectionResult">
-            <include refid="selectBizInspectionVo"/>
-            where INSPECTION_ID = #{inspectionId}
-    </select>
-
-    <insert id="insertBizInspection" parameterType="BizInspection" useGeneratedKeys="true"
-            keyProperty="inspectionId">
-        insert into biz_inspection
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-                    <if test="modelId != null">MODEL_ID,
-                    </if>
-                    <if test="inspectionTime != null">INSPECTION_TIME,
-                    </if>
-                    <if test="modelScore != null">MODEL_SCORE,
-                    </if>
-                    <if test="createBy != null">CREATE_BY,
-                    </if>
-                    <if test="createTime != null">CREATE_TIME,
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY,
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME,
-                    </if>
-                    <if test="remark != null">REMARK,
-                    </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-                    <if test="modelId != null">#{modelId},
-                    </if>
-                    <if test="inspectionTime != null">#{inspectionTime},
-                    </if>
-                    <if test="modelScore != null">#{modelScore},
-                    </if>
-                    <if test="createBy != null">#{createBy},
-                    </if>
-                    <if test="createTime != null">#{createTime},
-                    </if>
-                    <if test="updateBy != null">#{updateBy},
-                    </if>
-                    <if test="updateTime != null">#{updateTime},
-                    </if>
-                    <if test="remark != null">#{remark},
-                    </if>
-        </trim>
-    </insert>
-
-    <update id="updateBizInspection" parameterType="BizInspection">
-        update biz_inspection
-        <trim prefix="SET" suffixOverrides=",">
-                    <if test="modelId != null">MODEL_ID =
-                        #{modelId},
-                    </if>
-                    <if test="inspectionTime != null">INSPECTION_TIME =
-                        #{inspectionTime},
-                    </if>
-                    <if test="modelScore != null">MODEL_SCORE =
-                        #{modelScore},
-                    </if>
-                    <if test="createBy != null">CREATE_BY =
-                        #{createBy},
-                    </if>
-                    <if test="createTime != null">CREATE_TIME =
-                        #{createTime},
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY =
-                        #{updateBy},
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME =
-                        #{updateTime},
-                    </if>
-                    <if test="remark != null">REMARK =
-                        #{remark},
-                    </if>
-        </trim>
-        where INSPECTION_ID = #{inspectionId}
-    </update>
-
-    <delete id="deleteBizInspectionByInspectionId" parameterType="Long">
-        delete
-        from biz_inspection where INSPECTION_ID = #{inspectionId}
-    </delete>
-
-    <delete id="deleteBizInspectionByInspectionIds" parameterType="String">
-        delete from biz_inspection where INSPECTION_ID in
-        <foreach item="inspectionId" collection="array" open="(" separator="," close=")">
-            #{inspectionId}
-        </foreach>
-    </delete>
-</mapper>

+ 0 - 165
jjt-biz/src/main/resources/mapper/hl/BizInspectionMetricsMapper.xml

@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jjt.biz.mapper.BizInspectionMetricsMapper">
-
-    <resultMap type="BizInspectionMetrics" id="BizInspectionMetricsResult">
-            <result property="autoId" column="AUTO_ID"/>
-            <result property="inspectionDetailId" column="INSPECTION_DETAIL_ID"/>
-            <result property="bizMetricsId" column="BIZ_METRICS_ID"/>
-            <result property="metricsValue" column="METRICS_VALUE"/>
-            <result property="isAlarm" column="IS_ALARM"/>
-            <result property="metricsScore" column="METRICS_SCORE"/>
-            <result property="createBy" column="CREATE_BY"/>
-            <result property="createTime" column="CREATE_TIME"/>
-            <result property="updateBy" column="UPDATE_BY"/>
-            <result property="updateTime" column="UPDATE_TIME"/>
-            <result property="remark" column="REMARK"/>
-    </resultMap>
-
-    <sql id="selectBizInspectionMetricsVo">
-        select AUTO_ID, INSPECTION_DETAIL_ID, BIZ_METRICS_ID, METRICS_VALUE, IS_ALARM, METRICS_SCORE, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, REMARK
-        from biz_inspection_metrics
-    </sql>
-
-    <select id="selectBizInspectionMetricsList" parameterType="BizInspectionMetrics" resultMap="BizInspectionMetricsResult">
-        <include refid="selectBizInspectionMetricsVo"/>
-        <where>
-                        <if test="inspectionDetailId != null ">
-                            and INSPECTION_DETAIL_ID = #{inspectionDetailId}
-                        </if>
-                        <if test="bizMetricsId != null ">
-                            and BIZ_METRICS_ID = #{bizMetricsId}
-                        </if>
-                        <if test="metricsValue != null ">
-                            and METRICS_VALUE = #{metricsValue}
-                        </if>
-                        <if test="isAlarm != null  and isAlarm != ''">
-                            and IS_ALARM = #{isAlarm}
-                        </if>
-                        <if test="metricsScore != null ">
-                            and METRICS_SCORE = #{metricsScore}
-                        </if>
-                        <if test="createBy != null  and createBy != ''">
-                            and CREATE_BY = #{createBy}
-                        </if>
-                        <if test="createTime != null ">
-                            and CREATE_TIME = #{createTime}
-                        </if>
-                        <if test="updateBy != null  and updateBy != ''">
-                            and UPDATE_BY = #{updateBy}
-                        </if>
-                        <if test="updateTime != null ">
-                            and UPDATE_TIME = #{updateTime}
-                        </if>
-                        <if test="remark != null  and remark != ''">
-                            and REMARK = #{remark}
-                        </if>
-        </where>
-    </select>
-
-    <select id="selectBizInspectionMetricsByAutoId" parameterType="Long"
-            resultMap="BizInspectionMetricsResult">
-            <include refid="selectBizInspectionMetricsVo"/>
-            where AUTO_ID = #{autoId}
-    </select>
-
-    <insert id="insertBizInspectionMetrics" parameterType="BizInspectionMetrics" useGeneratedKeys="true"
-            keyProperty="autoId">
-        insert into biz_inspection_metrics
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-                    <if test="inspectionDetailId != null">INSPECTION_DETAIL_ID,
-                    </if>
-                    <if test="bizMetricsId != null">BIZ_METRICS_ID,
-                    </if>
-                    <if test="metricsValue != null">METRICS_VALUE,
-                    </if>
-                    <if test="isAlarm != null">IS_ALARM,
-                    </if>
-                    <if test="metricsScore != null">METRICS_SCORE,
-                    </if>
-                    <if test="createBy != null">CREATE_BY,
-                    </if>
-                    <if test="createTime != null">CREATE_TIME,
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY,
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME,
-                    </if>
-                    <if test="remark != null">REMARK,
-                    </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-                    <if test="inspectionDetailId != null">#{inspectionDetailId},
-                    </if>
-                    <if test="bizMetricsId != null">#{bizMetricsId},
-                    </if>
-                    <if test="metricsValue != null">#{metricsValue},
-                    </if>
-                    <if test="isAlarm != null">#{isAlarm},
-                    </if>
-                    <if test="metricsScore != null">#{metricsScore},
-                    </if>
-                    <if test="createBy != null">#{createBy},
-                    </if>
-                    <if test="createTime != null">#{createTime},
-                    </if>
-                    <if test="updateBy != null">#{updateBy},
-                    </if>
-                    <if test="updateTime != null">#{updateTime},
-                    </if>
-                    <if test="remark != null">#{remark},
-                    </if>
-        </trim>
-    </insert>
-
-    <update id="updateBizInspectionMetrics" parameterType="BizInspectionMetrics">
-        update biz_inspection_metrics
-        <trim prefix="SET" suffixOverrides=",">
-                    <if test="inspectionDetailId != null">INSPECTION_DETAIL_ID =
-                        #{inspectionDetailId},
-                    </if>
-                    <if test="bizMetricsId != null">BIZ_METRICS_ID =
-                        #{bizMetricsId},
-                    </if>
-                    <if test="metricsValue != null">METRICS_VALUE =
-                        #{metricsValue},
-                    </if>
-                    <if test="isAlarm != null">IS_ALARM =
-                        #{isAlarm},
-                    </if>
-                    <if test="metricsScore != null">METRICS_SCORE =
-                        #{metricsScore},
-                    </if>
-                    <if test="createBy != null">CREATE_BY =
-                        #{createBy},
-                    </if>
-                    <if test="createTime != null">CREATE_TIME =
-                        #{createTime},
-                    </if>
-                    <if test="updateBy != null">UPDATE_BY =
-                        #{updateBy},
-                    </if>
-                    <if test="updateTime != null">UPDATE_TIME =
-                        #{updateTime},
-                    </if>
-                    <if test="remark != null">REMARK =
-                        #{remark},
-                    </if>
-        </trim>
-        where AUTO_ID = #{autoId}
-    </update>
-
-    <delete id="deleteBizInspectionMetricsByAutoId" parameterType="Long">
-        delete
-        from biz_inspection_metrics where AUTO_ID = #{autoId}
-    </delete>
-
-    <delete id="deleteBizInspectionMetricsByAutoIds" parameterType="String">
-        delete from biz_inspection_metrics where AUTO_ID in
-        <foreach item="autoId" collection="array" open="(" separator="," close=")">
-            #{autoId}
-        </foreach>
-    </delete>
-</mapper>

+ 15 - 0
jjt-biz/src/main/resources/mapper/hl/HlMetricsMapper.xml

@@ -78,6 +78,21 @@
                                                 AND a.MODEL_ID = #{modelId})
                              group BY metrics_id)
     </select>
+    <select id="hlMetricsList" resultType="com.jjt.hl.vo.HlMetricsVO">
+        SELECT a.*, b.EVENT_ID, b.START_TIME, b.END_TIME, b.EVENT_STATUS, b.EVENT_VALUE
+        FROM (SELECT a.*
+              FROM biz_obj_metrics a,
+                   (SELECT a.OBJ_ID, b.METRICS_ID
+                    FROM hl_obj a,
+                         hl_metrics b
+                    WHERE a.HL_CLASS_ID = b.HL_CLASS_ID
+                      AND a.HL_CLASS_ID = #{hlClassId}) b
+              WHERE a.obj_id = b.obj_id
+                AND a.METRICS_ID = b.metrics_id) a
+                 LEFT JOIN
+                 (SELECT * FROM hl_event WHERE event_status = 1) b ON a.OBJ_METRICS_ID = b.obj_metrics_id
+
+    </select>
 
     <insert id="insertHlMetrics" parameterType="HlMetrics" useGeneratedKeys="true"
             keyProperty="hlMetricsId">

+ 41 - 28
jjt-biz/src/main/resources/mapper/hl/HlMetricsScoreDetailMapper.xml

@@ -5,67 +5,80 @@
 <mapper namespace="com.jjt.hl.mapper.HlMetricsScoreDetailMapper">
 
     <resultMap type="HlMetricsScoreDetail" id="HlMetricsScoreDetailResult">
-            <result property="scoreDetailId" column="SCORE_DETAIL_ID"/>
-            <result property="scoreMetricsId" column="SCORE_METRICS_ID"/>
-            <result property="objMetricsId" column="OBJ_METRICS_ID"/>
+        <result property="scoreDetailId" column="SCORE_DETAIL_ID"/>
+        <result property="scoreMetricsId" column="SCORE_METRICS_ID"/>
+        <result property="eventId" column="EVENT_ID"/>
     </resultMap>
 
     <sql id="selectHlMetricsScoreDetailVo">
-        select SCORE_DETAIL_ID, SCORE_METRICS_ID, OBJ_METRICS_ID
+        select SCORE_DETAIL_ID, SCORE_METRICS_ID, EVENT_ID
         from hl_metrics_score_detail
     </sql>
 
-    <select id="selectHlMetricsScoreDetailList" parameterType="HlMetricsScoreDetail" resultMap="HlMetricsScoreDetailResult">
+    <select id="selectHlMetricsScoreDetailList" parameterType="HlMetricsScoreDetail"
+            resultMap="HlMetricsScoreDetailResult">
         <include refid="selectHlMetricsScoreDetailVo"/>
         <where>
-                        <if test="scoreMetricsId != null ">
-                            and SCORE_METRICS_ID = #{scoreMetricsId}
-                        </if>
-                        <if test="objMetricsId != null ">
-                            and OBJ_METRICS_ID = #{objMetricsId}
-                        </if>
+            <if test="scoreMetricsId != null ">
+                and SCORE_METRICS_ID = #{scoreMetricsId}
+            </if>
+            <if test="eventId != null ">
+                and EVENT_ID = #{eventId}
+            </if>
         </where>
     </select>
 
     <select id="selectHlMetricsScoreDetailByScoreDetailId" parameterType="Long"
             resultMap="HlMetricsScoreDetailResult">
-            <include refid="selectHlMetricsScoreDetailVo"/>
-            where SCORE_DETAIL_ID = #{scoreDetailId}
+        <include refid="selectHlMetricsScoreDetailVo"/>
+        where SCORE_DETAIL_ID = #{scoreDetailId}
+    </select>
+    <select id="detailList" resultType="com.jjt.hl.vo.ScoreDetailVO">
+        SELECT b.obj_name, c.METRICS_NAME,a.start_time TIME,a.event_value value,c.EVENT
+        FROM (SELECT a.*, b.SCORE_DETAIL_ID, SCORE_METRICS_ID
+            FROM hl_event a,
+            hl_metrics_score_detail b
+            WHERE a.event_id = b.EVENT_ID) a,
+            biz_obj b,
+            biz_obj_metrics c
+        WHERE a.obj_id = b.obj_id
+          AND a.OBJ_METRICS_ID = c.OBJ_METRICS_ID
     </select>
 
     <insert id="insertHlMetricsScoreDetail" parameterType="HlMetricsScoreDetail" useGeneratedKeys="true"
             keyProperty="scoreDetailId">
         insert into hl_metrics_score_detail
         <trim prefix="(" suffix=")" suffixOverrides=",">
-                    <if test="scoreMetricsId != null">SCORE_METRICS_ID,
-                    </if>
-                    <if test="objMetricsId != null">OBJ_METRICS_ID,
-                    </if>
+            <if test="scoreMetricsId != null">SCORE_METRICS_ID,
+            </if>
+            <if test="eventId != null">EVENT_ID,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-                    <if test="scoreMetricsId != null">#{scoreMetricsId},
-                    </if>
-                    <if test="objMetricsId != null">#{objMetricsId},
-                    </if>
+            <if test="scoreMetricsId != null">#{scoreMetricsId},
+            </if>
+            <if test="eventId != null">#{eventId},
+            </if>
         </trim>
     </insert>
 
     <update id="updateHlMetricsScoreDetail" parameterType="HlMetricsScoreDetail">
         update hl_metrics_score_detail
         <trim prefix="SET" suffixOverrides=",">
-                    <if test="scoreMetricsId != null">SCORE_METRICS_ID =
-                        #{scoreMetricsId},
-                    </if>
-                    <if test="objMetricsId != null">OBJ_METRICS_ID =
-                        #{objMetricsId},
-                    </if>
+            <if test="scoreMetricsId != null">SCORE_METRICS_ID =
+                #{scoreMetricsId},
+            </if>
+            <if test="eventId != null">EVENT_ID =
+                #{eventId},
+            </if>
         </trim>
         where SCORE_DETAIL_ID = #{scoreDetailId}
     </update>
 
     <delete id="deleteHlMetricsScoreDetailByScoreDetailId" parameterType="Long">
         delete
-        from hl_metrics_score_detail where SCORE_DETAIL_ID = #{scoreDetailId}
+        from hl_metrics_score_detail
+        where SCORE_DETAIL_ID = #{scoreDetailId}
     </delete>
 
     <delete id="deleteHlMetricsScoreDetailByScoreDetailIds" parameterType="String">

+ 5 - 4
jjt-quartz/src/main/java/com/jjt/quartz/config/ScheduleConfig.java

@@ -2,7 +2,9 @@ package com.jjt.quartz.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
 import javax.sql.DataSource;
 import java.util.Properties;
 
@@ -12,11 +14,10 @@ import java.util.Properties;
  * @author jjt
  */
 @Configuration
-public class ScheduleConfig
-{
+@Profile("!junit")
+public class ScheduleConfig {
     @Bean
-    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource)
-    {
+    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) {
         SchedulerFactoryBean factory = new SchedulerFactoryBean();
         factory.setDataSource(dataSource);