Jelajahi Sumber

分析相关处理,未完

wukai 10 bulan lalu
induk
melakukan
dd0c0425aa

+ 2 - 2
jjt-biz/src/main/java/com/jjt/biz/controller/BizModelController.java

@@ -70,7 +70,7 @@ public class BizModelController extends BaseController {
     public List<ScoreVO> timeHistory() {
         List<ScoreVO> result = new ArrayList<>();
         LocalDateTime endTime = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0);
-        LocalDateTime beginTime = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0).minusHours(24);
+        LocalDateTime beginTime = endTime.minusHours(24);
         HlScore search = new HlScore();
         search.setHlType("1");
         Map<String, Object> params = new HashMap<>(16);
@@ -123,7 +123,7 @@ public class BizModelController extends BaseController {
         return result;
     }
 
-    @ApiOperation("历史健康度得分情况")
+    @ApiOperation("健康度得分情况")
     @GetMapping("/day/history")
     public List<ScoreVO> dayHistory() {
         List<ScoreVO> result = new ArrayList<>();

+ 27 - 0
jjt-biz/src/main/java/com/jjt/biz/vo/HlScoreVO.java

@@ -0,0 +1,27 @@
+package com.jjt.biz.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 业务模型对象 biz_model
+ *
+ * @author jjt
+ * @date 2024-08-26
+ */
+@ApiModel(value = "HlScoreVO", description = "业务模型当前健康度")
+@Data
+public class HlScoreVO {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("模型ID")
+    private Long modelId;
+    @ApiModelProperty("模型名称")
+    private String modelName;
+    @ApiModelProperty("健康度分数记录ID")
+    private Long hlScoreId;
+    @ApiModelProperty("健康度分值")
+    private BigDecimal hlScore;
+}

+ 18 - 10
jjt-biz/src/main/java/com/jjt/hl/mapper/HlScoreMapper.java

@@ -1,20 +1,21 @@
 package com.jjt.hl.mapper;
 
-import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jjt.biz.vo.HlScoreVO;
 import com.jjt.hl.domain.HlScore;
 
+import java.util.List;
+
 /**
  * 健康度分数记录Mapper接口
- * 
+ *
  * @author jjt
  * @date 2024-09-05
  */
-public interface HlScoreMapper extends BaseMapper<HlScore>
-{
+public interface HlScoreMapper extends BaseMapper<HlScore> {
     /**
      * 查询健康度分数记录
-     * 
+     *
      * @param hlScoreId 健康度分数记录主键
      * @return 健康度分数记录
      */
@@ -22,7 +23,7 @@ public interface HlScoreMapper extends BaseMapper<HlScore>
 
     /**
      * 查询健康度分数记录列表
-     * 
+     *
      * @param hlScore 健康度分数记录
      * @return 健康度分数记录集合
      */
@@ -30,7 +31,7 @@ public interface HlScoreMapper extends BaseMapper<HlScore>
 
     /**
      * 新增健康度分数记录
-     * 
+     *
      * @param hlScore 健康度分数记录
      * @return 结果
      */
@@ -38,7 +39,7 @@ public interface HlScoreMapper extends BaseMapper<HlScore>
 
     /**
      * 修改健康度分数记录
-     * 
+     *
      * @param hlScore 健康度分数记录
      * @return 结果
      */
@@ -46,7 +47,7 @@ public interface HlScoreMapper extends BaseMapper<HlScore>
 
     /**
      * 删除健康度分数记录
-     * 
+     *
      * @param hlScoreId 健康度分数记录主键
      * @return 结果
      */
@@ -54,9 +55,16 @@ public interface HlScoreMapper extends BaseMapper<HlScore>
 
     /**
      * 批量删除健康度分数记录
-     * 
+     *
      * @param hlScoreIds 需要删除的数据主键集合
      * @return 结果
      */
     public int deleteHlScoreByHlScoreIds(Long[] hlScoreIds);
+
+    /**
+     * 获取最近一次健康度得分
+     *
+     * @return 结果
+     */
+    List<HlScoreVO> selectHlScoreListLast();
 }

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

@@ -1,5 +1,6 @@
 package com.jjt.hl.service;
 
+import com.jjt.biz.vo.HlScoreVO;
 import com.jjt.hl.domain.HlScore;
 
 import java.util.Date;
@@ -86,4 +87,10 @@ public interface IHlScoreService {
      * @param modelId 模型Id
      */
     void day(Date date, Long modelId);
+
+    /**
+     * 获取最近一次健康度得分
+     * @return 结果
+     */
+    List<HlScoreVO> selectHlScoreListLast();
 }

+ 11 - 0
jjt-biz/src/main/java/com/jjt/hl/service/impl/HlScoreServiceImpl.java

@@ -3,6 +3,7 @@ package com.jjt.hl.service.impl;
 import com.googlecode.aviator.AviatorEvaluator;
 import com.jjt.biz.domain.BizModel;
 import com.jjt.biz.service.IBizModelService;
+import com.jjt.biz.vo.HlScoreVO;
 import com.jjt.common.utils.DateUtils;
 import com.jjt.common.utils.bean.BeanUtils;
 import com.jjt.hl.domain.*;
@@ -478,6 +479,16 @@ public class HlScoreServiceImpl implements IHlScoreService {
         updateHlScore(score);
     }
 
+    /**
+     * 获取最近一次健康度得分
+     *
+     * @return 结果
+     */
+    @Override
+    public List<HlScoreVO> selectHlScoreListLast() {
+        return hlScoreMapper.selectHlScoreListLast();
+    }
+
 
     /**
      * 根据模型ID删除健康度数据

+ 53 - 12
jjt-biz/src/main/java/com/jjt/risk/controller/RiskAnalysisController.java

@@ -1,6 +1,11 @@
 package com.jjt.risk.controller;
 
 import com.jjt.biz.domain.BizObj;
+import com.jjt.biz.domain.BizObjData;
+import com.jjt.biz.domain.BizObjMetrics;
+import com.jjt.biz.domain.BizObjMetricsData;
+import com.jjt.biz.service.IBizObjMetricsDataService;
+import com.jjt.biz.service.IBizObjMetricsService;
 import com.jjt.biz.service.IBizObjService;
 import com.jjt.common.annotation.Log;
 import com.jjt.common.core.controller.BaseController;
@@ -24,6 +29,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.text.DecimalFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,6 +51,10 @@ public class RiskAnalysisController extends BaseController {
     private IBizObjService objService;
     @Resource
     private JdbcTemplate jdbcTemplate;
+    @Resource
+    private IBizObjMetricsService objMetricsService;
+    @Resource
+    private IBizObjMetricsDataService dataService;
 
     /**
      * 查询风险分析结果列表
@@ -86,6 +96,8 @@ public class RiskAnalysisController extends BaseController {
     @GetMapping(value = "/atOnce/{riskId}")
     public AjaxResult atOnce(@PathVariable("riskId") Long riskId) {
         RiskModel rm = riskModelService.selectRiskModelByRiskId(riskId);
+
+
         String sql = "SELECT img_path FROM risk_analysis WHERE result_id=?";
         String ra_1 = jdbcTemplate.queryForObject(sql, String.class, -1L);
         String ra_2 = jdbcTemplate.queryForObject(sql, String.class, -2L);
@@ -114,20 +126,49 @@ public class RiskAnalysisController extends BaseController {
             riskAnalysisService.insertRiskAnalysis(ra);
             return type3info(ra.getResultId());
         } else {
+            LocalDateTime endTime = LocalDateTime.now();
+            LocalDateTime beginTime = endTime.minusDays(7);
+            Map<String, Object> currParams = new HashMap<>(16);
+            currParams.put("beginTime", beginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+            currParams.put("endTime", endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+
+            endTime = beginTime;
+            beginTime = endTime.minusDays(7);
+            Map<String, Object> lastParams = new HashMap<>(16);
+            currParams.put("beginTime", beginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+            currParams.put("endTime", endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 
             for (Long objId : objIds) {
-                RiskAnalysis ra = new RiskAnalysis();
-                ra.setRiskId(riskId);
-                ra.setObjId(objId);
-                ra.setResult("趋势好转");
-                ra.setAvgValue("98,88");
-                ra.setNormalValid("通过");
-                ra.setVarianceValid("通过");
-                ra.setConfidenceLevel(rm.getConfidenceLevel().toString());
-                ra.setPValue(r.nextInt(100) + "");
-                ra.setAnalyseTime(time);
-                ra.setImgPath(ra_1);
-                riskAnalysisService.insertRiskAnalysis(ra);
+                BizObjMetrics queryOm = new BizObjMetrics();
+                queryOm.setMetricsId(rm.getMetricsId());
+                queryOm.setObjId(objId);
+                List<BizObjMetrics> list = objMetricsService.selectBizObjMetricsList(queryOm);
+
+                list.forEach(om -> {
+                    //查询2周的数据,调用python接口,并且存储?
+                    BizObjMetricsData currQ = new BizObjMetricsData();
+                    currQ.setParams(currParams);
+                    BizObjMetricsData lastQ = new BizObjMetricsData();
+                    lastQ.setParams(lastParams);
+                    List<BizObjMetricsData> currList = dataService.selectBizObjMetricsDataList(currQ);
+                    List<BizObjMetricsData> lastList = dataService.selectBizObjMetricsDataList(lastQ);
+                    // "level":rm.getConfidenceLevel().floatValue();
+
+                    RiskAnalysis ra = new RiskAnalysis();
+                    ra.setRiskId(riskId);
+                    ra.setObjId(om.getObjMetricsId());
+                    ra.setResult("趋势好转");
+                    ra.setAvgValue("98,88");
+                    ra.setNormalValid("通过");
+                    ra.setVarianceValid("通过");
+                    ra.setConfidenceLevel(rm.getConfidenceLevel().toString());
+                    ra.setPValue(r.nextInt(100) + "");
+                    ra.setAnalyseTime(time);
+                    ra.setImgPath(ra_1);
+                    riskAnalysisService.insertRiskAnalysis(ra);
+                });
+//                rm.getMetricsId()
+
             }
             return success();
         }

+ 3 - 0
jjt-biz/src/main/java/com/jjt/risk/domain/RiskAnalysis.java

@@ -37,6 +37,9 @@ public class RiskAnalysis extends BaseEntity {
 
     @ApiModelProperty("分析类型")
     private String riskType;
+    /**
+     * 这里使用对象指标ID
+     */
     @ApiModelProperty("对象ID")
     private Long objId;
     @ApiModelProperty("对象名称")

+ 9 - 0
jjt-biz/src/main/resources/mapper/hl/HlScoreMapper.xml

@@ -73,6 +73,15 @@
         <include refid="selectHlScoreVo"/>
         where HL_SCORE_ID = #{hlScoreId}
     </select>
+    <select id="selectHlScoreListLast" resultType="com.jjt.biz.vo.HlScoreVO">
+        SELECT a.*, c.hl_score_id, hl_score
+        FROM biz_model a
+                 JOIN (SELECT model_id, MAX(hl_score_id) AS max_hl_score_id
+                       FROM hl_score
+                       WHERE hl_type = 1
+                       GROUP BY model_id) b ON a.model_id = b.model_id
+                 JOIN hl_score c ON b.max_hl_score_id = c.hl_score_id
+    </select>
 
     <insert id="insertHlScore" parameterType="HlScore" useGeneratedKeys="true"
             keyProperty="hlScoreId">

+ 1 - 0
jjt-biz/src/main/resources/mapper/obj/BizObjMetricsDataMapper.xml

@@ -31,6 +31,7 @@
             <if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''">
                 and CREATE_TIME between #{params.beginTime} and #{params.endTime}
             </if>
+            order by create_time
         </where>
     </select>
 

+ 16 - 9
jjt-biz/src/main/resources/mapper/risk/RiskAnalysisMapper.xml

@@ -24,14 +24,11 @@
     </resultMap>
 
     <sql id="selectRiskAnalysisVo">
-        select *
-        from (select A.RESULT_ID,
+        SELECT a.*, b.obj_name
+        FROM (SELECT A.RESULT_ID,
                      A.RISK_ID,
-                     A.OBJ_ID,
-                     C.OBJ_NAME,
-                     B.RISK_TYPE,
-                     B.METRICS_NAME,
                      A.RESULT,
+                     A.RISK_TYPE,
                      A.AVG_VALUE,
                      A.NORMAL_VALID,
                      A.VARIANCE_VALID,
@@ -43,9 +40,15 @@
                      A.CREATE_TIME,
                      A.UPDATE_BY,
                      A.UPDATE_TIME,
-                     A.REMARK
-              from risk_analysis a LEFT JOIN biz_obj c ON a.OBJ_ID=c.OBJ_ID,risk_model b
-              where a.risk_id = b.risk_id ) t
+                     A.REMARK,
+                     b.obj_id,
+                     b.metrics_name
+              FROM (SELECT a.*, b.RISK_TYPE
+                    from risk_analysis a,
+                         risk_model b
+                    WHERE a.risk_id = b.risk_id) a
+                       LEFT JOIN biz_obj_metrics b ON a.obj_id = b.obj_metrics_id) a
+                 LEFT JOIN biz_obj b ON a.obj_id = b.OBJ_ID
     </sql>
 
     <select id="selectRiskAnalysisList" parameterType="RiskAnalysis" resultMap="RiskAnalysisResult">
@@ -123,6 +126,8 @@
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="riskId != null">RISK_ID,
             </if>
+            <if test="objId != null">OBJ_ID,
+            </if>
             <if test="result != null">RESULT,
             </if>
             <if test="avgValue != null">AVG_VALUE,
@@ -153,6 +158,8 @@
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="riskId != null">#{riskId},
             </if>
+            <if test="objId != null">#{objId},
+            </if>
             <if test="result != null">#{result},
             </if>
             <if test="avgValue != null">#{avgValue},