liriming
3 天以前 db8472b9471de96a68c7fcdb2e66124b2f16854b
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -28,7 +28,6 @@
import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmConfigSaveReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigDetEntity;
import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity;
import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
import com.iailab.module.model.mcs.sche.service.*;
@@ -216,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));
@@ -272,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));
            }
@@ -331,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));
            }
@@ -422,6 +421,19 @@
            default:
                break;
        }
        //处理预测累计
        if (outPut.getIscumulant() != null && outPut.getIscumulant() == 1) {
            /*if (StringUtils.isNotBlank(outPut.getCumulpoint())) {
                dataView.setCumulantRealData(getHisData(outPut.getCumulpoint(), startTime, endTime));
            }*/
            List<Object[]> cumulantPreList = mmItemResultService.getData(outPut.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
            dataView.setCumulantPreData(cumulantPreList);
            if (!CollectionUtils.isEmpty(cumulantPreList)) {
                dataView.setCumulantPreLast(new BigDecimal(cumulantPreList.get(cumulantPreList.size() - 1)[1].toString()).setScale(2, BigDecimal.ROUND_HALF_UP));
            }
        }
        if (!CollectionUtils.isEmpty(dataView.getRealData())) {
            Object[] rdo = dataView.getRealData().get(dataView.getRealData().size() - 1);
            dataView.setCurrValue(new BigDecimal(rdo[1].toString()));
@@ -549,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;
@@ -565,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;
@@ -865,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();