liriming
3 天以前 db8472b9471de96a68c7fcdb2e66124b2f16854b
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -215,7 +215,7 @@
            viewDto.setOutId(outId);
            viewDto.setResultstr(output.getResultstr());
            viewDto.setResultName(output.getResultName());
            viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime));
            viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime, reqVO.getPrec()));
            viewDto.setPreDataN(mmItemResultService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
            viewDto.setPreDataL(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
            viewDto.setCurData(mmItemResultJsonService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
@@ -271,7 +271,7 @@
            //处理预测累计
            if (output.getIscumulant() == 1) {
                if (StringUtils.isNotBlank(output.getCumulpoint())) {
                    viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime));
                    viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime, reqVO.getPrec()));
                }
                viewDto.setCumulantPreData(mmItemResultService.getData(output.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
            }
@@ -330,13 +330,13 @@
            legend.add(out.getResultName());
            PreDataSampleViewRespDTO viewDto = new PreDataSampleViewRespDTO();
            if (StringUtils.isNotBlank(out.getPointid())) {
                viewDto.setRealData(getHisData(out.getPointid(), startTime, endTime));
                viewDto.setRealData(getHisData(out.getPointid(), startTime, endTime, reqVO.getPrec()));
            }
            viewDto.setPreDataN(mmItemResultService.getData(out.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
            //处理预测累计
            if (out.getIscumulant() == 1) {
                if (StringUtils.isNotBlank(out.getCumulpoint())) {
                    viewDto.setCumulantRealData(getHisData(out.getCumulpoint(), startTime, endTime));
                    viewDto.setCumulantRealData(getHisData(out.getCumulpoint(), startTime, endTime, reqVO.getPrec()));
                }
                viewDto.setCumulantPreData(mmItemResultService.getData(out.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
            }
@@ -561,9 +561,10 @@
     * @param pointId
     * @param startTime
     * @param endTime
     * @param prec
     * @return
     */
    private List<Object[]> getHisData(String pointId, Date startTime, Date endTime) {
    private List<Object[]> getHisData(String pointId, Date startTime, Date endTime, Integer prec) {
        List<Object[]> result = new ArrayList<>();
        if (StringUtils.isBlank(pointId)) {
            return result;
@@ -577,10 +578,17 @@
        if (CollectionUtils.isEmpty(valueDTOS)) {
            return result;
        }
        int defaultPrec = 3;
        valueDTOS.forEach(item -> {
            Object[] values = new Object[2];
            values[0] = DateUtils.format(item.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
            values[1] = new BigDecimal(item.getV()).setScale(3, BigDecimal.ROUND_HALF_UP);
            if (prec != null && prec < 0) {
                values[1] = item.getV();
            } else if (prec != null && prec > 0) {
                values[1] = new BigDecimal(item.getV()).setScale(prec, BigDecimal.ROUND_HALF_UP);
            } else {
                values[1] = new BigDecimal(item.getV()).setScale(defaultPrec, BigDecimal.ROUND_HALF_UP);
            }
            result.add(values);
        });
        return result;
@@ -877,6 +885,11 @@
        return mmItemResultLastPointService.getData(reqVO.getOutputid(),reqVO.getStartTime(),reqVO.getEndTime(),reqVO.getTimeFormat());
    }
    @Override
    public Boolean useSuggest(StAlarmAndSuggestReqVO reqVO) {
        return stScheduleSuggestService.useSuggest(reqVO);
    }
    private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {
        Date[] result = new Date[3];
        Date predictTime = predictItem.getLastTime();