数据分析 左测下拉数据预测项不可点击
接口 获得影响因素结果列表
接口 获得影响因素结果列表
影响因素表添加组合唯一索引
已添加1个文件
已修改12个文件
169 ■■■■ 文件已修改
iailab-module-model/iailab-module-model-biz/db/mysql.sql 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictInfluenceFactorController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictInfluenceFactorDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictInfluenceFactorResultDao.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictInfluenceFactorResultService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictInfluenceFactorService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictInfluenceFactorResultServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictInfluenceFactorServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorResultListReqVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorResultVO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictInfluenceFactorResultDao.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/db/mysql.sql
@@ -1039,6 +1039,7 @@
                                                        `is_enable` tinyint DEFAULT NULL COMMENT '是否启用(0禁用 1启用)',
                                                        `create_time` datetime DEFAULT NULL,
                                                        PRIMARY KEY (`id`),
                                                        UNIQUE KEY `output_id_pattern_unique` (`output_id`,`pattern`),
                                                        KEY `output_id` (`output_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='预测项影响因素配置表';
@@ -1048,8 +1049,7 @@
                                                 `factor_output_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '因素预测项id',
                                                 `deviation_value` double DEFAULT NULL COMMENT '偏差值',
                                                 PRIMARY KEY (`id`),
                                                 KEY `config_id` (`config_id`),
                                                 KEY `item_id` (`factor_output_id`),
                                                 UNIQUE KEY `config_id_factor_output_id_unique` (`config_id`,`factor_output_id`),
                                                 CONSTRAINT `t_mm_predict_influence_factor_ibfk_1` FOREIGN KEY (`config_id`) REFERENCES `t_mm_predict_influence_factor_config` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='预测项影响因素关联表';
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -138,6 +138,7 @@
                PredictItemTreeDTO chd = new PredictItemTreeDTO();
                chd.setLabel(item1.getItemName());
                chd.setId(item1.getId());
                chd.setDisabled(true);
                List<PredictItemTreeDTO> chd1 = new ArrayList<>();
                List<MmItemOutputEntity> outList = mmItemOutputService.getByItemid(item1.getId());
                if (!CollectionUtils.isEmpty(outList)) {
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/admin/MmPredictInfluenceFactorController.java
@@ -11,9 +11,16 @@
import com.iailab.module.model.mcs.pre.service.MmPredictInfluenceFactorService;
import com.iailab.module.model.mcs.pre.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.iailab.framework.common.pojo.CommonResult.success;
@@ -78,4 +85,25 @@
        PageResult<MmPredictInfluenceFactorResultVO> pageResult = influenceFactorResultService.page(params);
        return success(pageResult);
    }
    @PostMapping("/getResultList")
    @Operation(summary = "获得影响因素结果列表")
    public CommonResult<Map<String,List<MmPredictInfluenceFactorResultVO>>> getResultList(@RequestBody MmPredictInfluenceFactorResultListReqVO params) {
        if (CollectionUtils.isEmpty(params.getOutIds())) {
            return success(new HashMap<>());
        }
        Map<String,List<MmPredictInfluenceFactorResultVO>> list = influenceFactorResultService.getResultList(params);
        return success(list);
    }
    @GetMapping("/getListByOutId")
    @Operation(summary = "通过outId获得影响因素列表")
    public CommonResult<List<MmPredictInfluenceFactorVO>> getListByOutId(String outId) {
        if (StringUtils.isBlank(outId)) {
            return success(new ArrayList<>());
        }
        List<MmPredictInfluenceFactorVO> list = influenceFactorService.getListByOutId(outId);
        return success(list);
    }
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictInfluenceFactorDao.java
@@ -9,6 +9,7 @@
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@@ -36,4 +37,7 @@
    void deleteInfluenceFactor(String configId);
    List<MmPredictInfluenceFactorHandleVO> selectList(@Param("params") Map<String, Object> params);
    @Select("SELECT t1.pattern,t2.factor_output_id,t3.result_name factor_output_name FROM t_mm_predict_influence_factor_config t1 LEFT JOIN t_mm_predict_influence_factor t2 ON t1.id = t2.config_id LEFT JOIN t_mm_item_output t3 ON t2.factor_output_id = t3.id WHERE t1.is_enable = 1 AND t1.output_id = #{outId}")
    List<MmPredictInfluenceFactorVO> getListByOutId(String outId);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictInfluenceFactorResultDao.java
@@ -3,9 +3,10 @@
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.model.mcs.pre.entity.MmPredictInfluenceFactorResultEntity;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultListReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;
import java.util.List;
/**
@@ -17,4 +18,6 @@
@Mapper
public interface MmPredictInfluenceFactorResultDao extends BaseMapperX<MmPredictInfluenceFactorResultEntity> {
    void insertOrUpdate(List<MmPredictInfluenceFactorResultEntity> list);
    List<MmPredictInfluenceFactorResultVO> getResultList(MmPredictInfluenceFactorResultListReqVO params);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictInfluenceFactorResultService.java
@@ -2,14 +2,13 @@
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.model.mcs.pre.entity.MmPredictInfluenceFactorConfigEntity;
import com.iailab.module.model.mcs.pre.entity.MmPredictInfluenceFactorResultEntity;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorConfigVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultListReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultVO;
import java.util.List;
import java.util.Map;
/**
 * @description:
@@ -21,4 +20,6 @@
    PageResult<MmPredictInfluenceFactorResultVO> page(MmPredictInfluenceFactorResultPageReqVO params);
    void insert(List<MmPredictInfluenceFactorResultEntity> resultList);
    Map<String,List<MmPredictInfluenceFactorResultVO>> getResultList(MmPredictInfluenceFactorResultListReqVO params);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictInfluenceFactorService.java
@@ -4,10 +4,9 @@
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.model.api.mcs.dto.MmPredictInfluenceFactorHandleReqVO;
import com.iailab.module.model.mcs.pre.entity.MmPredictInfluenceFactorConfigEntity;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorConfigVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultVO;
import com.iailab.module.model.mcs.pre.vo.*;
import java.util.List;
/**
 * @description:
@@ -27,4 +26,6 @@
    void delete(String id);
    void influenceFactorHandle(MmPredictInfluenceFactorHandleReqVO reqVO);
    List<MmPredictInfluenceFactorVO> getListByOutId(String outId);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictInfluenceFactorResultServiceImpl.java
@@ -1,8 +1,6 @@
package com.iailab.module.model.mcs.pre.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.common.pojo.SortingField;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
@@ -10,17 +8,16 @@
import com.iailab.module.model.mcs.pre.dao.MmPredictInfluenceFactorResultDao;
import com.iailab.module.model.mcs.pre.entity.MmPredictInfluenceFactorResultEntity;
import com.iailab.module.model.mcs.pre.service.MmPredictInfluenceFactorResultService;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorConfigVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultListReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultVO;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.C;
import org.springframework.stereotype.Service;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Service
@@ -43,4 +40,11 @@
    public void insert(List<MmPredictInfluenceFactorResultEntity> resultList) {
        baseDao.insertOrUpdate(resultList);
    }
    @Override
    public Map<String,List<MmPredictInfluenceFactorResultVO>> getResultList(MmPredictInfluenceFactorResultListReqVO params) {
        List<MmPredictInfluenceFactorResultVO> list = baseDao.getResultList(params);
        Map<String, List<MmPredictInfluenceFactorResultVO>> result = list.stream().collect(Collectors.groupingBy(MmPredictInfluenceFactorResultVO::getOutputId));
        return result;
    }
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictInfluenceFactorServiceImpl.java
@@ -17,7 +17,10 @@
import com.iailab.module.model.mcs.pre.service.MmItemResultJsonService;
import com.iailab.module.model.mcs.pre.service.MmPredictInfluenceFactorResultService;
import com.iailab.module.model.mcs.pre.service.MmPredictInfluenceFactorService;
import com.iailab.module.model.mcs.pre.vo.*;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorConfigVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorHandleVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorPageReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,8 +29,6 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@@ -169,6 +170,12 @@
    }
    @Override
    public List<MmPredictInfluenceFactorVO> getListByOutId(String outId) {
        List<MmPredictInfluenceFactorVO> list = baseDao.getListByOutId(outId);
        return list;
    }
    private Double influenceFactorAccuracyCalculate(MmPredictInfluenceFactorHandleVO influenceFactor, HashMap<String, Double> values, Date influenceTime) {
        if (values.containsKey(influenceFactor.getFactorOutputId())) {
            return values.get(influenceFactor.getFactorOutputId());
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorResultListReqVO.java
对比新文件
@@ -0,0 +1,37 @@
package com.iailab.module.model.mcs.pre.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.iailab.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
 * @description:
 * @author: dzd
 * @date: 2025/4/18 10:45
 **/
@Schema(description = "预测影响因素结果列表 - Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MmPredictInfluenceFactorResultListReqVO extends PageParam {
    @Schema(description = "输出ID列表")
    private List<String> outIds;
    @Schema(description = "开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    @Schema(description = "结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorResultVO.java
@@ -14,6 +14,10 @@
public class MmPredictInfluenceFactorResultVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 预测项id
     */
    private String outputId;
    /**
     * 因素id
     */
    private String factorId;
@@ -27,4 +31,14 @@
     * 影响值
     */
    private Double value;
    /**
     * 因素预测项名称
     */
    private String factorOutputName;
    /**
     * 统计方式
     */
    private String pattern;
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictInfluenceFactorVO.java
@@ -40,4 +40,9 @@
     * 偏差值
     */
    private Double deviationValue;
    /**
     * 统计方式
     */
    private String pattern;
}
iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictInfluenceFactorResultDao.xml
@@ -11,4 +11,30 @@
        ON DUPLICATE KEY UPDATE
        value = VALUES(value);
    </insert>
    <select id="getResultList" resultType="com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultVO"
            parameterType="com.iailab.module.model.mcs.pre.vo.MmPredictInfluenceFactorResultListReqVO">
        SELECT
            t1.output_id,
            t1.pattern,
            t3.result_name factor_output_name,
            t4.time,
            t4.value
        FROM
            t_mm_predict_influence_factor_config t1
                LEFT JOIN t_mm_predict_influence_factor t2 ON t1.id = t2.config_id
                LEFT JOIN t_mm_item_output t3 ON t2.factor_output_id = t3.id
                LEFT JOIN t_mm_predict_influence_factor_result t4 ON t4.factor_id = t2.id
        WHERE
        t1.is_enable = 1
        and t1.output_id IN
        <foreach collection="outIds" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
        <if test="startTime != null">
            AND t4.time &gt;= #{startTime}
        </if>
        <if test="endTime != null">
            AND t4.time &lt;= #{endTime}
        </if>
    </select>
</mapper>