Newer
Older
alarm / WebRoot / WEB-INF / classes / com / casic / dma / MinimumFlowSumFetcher.java
zhout on 2 Mar 2022 2 KB first commit
package com.casic.dma;

import com.casic.alarm.utils.PropertiesUtil;
import com.casic.dma.dmamanager.DmaLogManager;
import com.casic.dma.dmamanager.MinimumFlowSumManager;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * Created by admin on 2017/2/15.
 */
@Service
public class MinimumFlowSumFetcher {

    @Resource
    public DmaLogManager dmaLogManager;

    @Resource
    public MinimumFlowSumManager minimumFlowSumManager;

    protected PropertiesUtil propUtil = new PropertiesUtil("application.properties");


    public MinimumFlowSum getFlowSumByRange(Date _start, Date _end, long regionId) {
        Date start=(Date)_start.clone();
        Date end=(Date)_end.clone();

        MinimumFlowSum minimumFlowSum=new MinimumFlowSum();
        minimumFlowSum.setRegionID((int)regionId);
        minimumFlowSum.setStart(_start);
        minimumFlowSum.setEnd(_end);
        try {
            List<MinimumFlow> minimumFlowList=minimumFlowSumManager.GetMinimumFlowSumByDateAndRegion(start, end, regionId);
            if (minimumFlowList == null || minimumFlowList.size() == 0) {
                minimumFlowSum.setOk(false);

                dmaLogManager.saveLog(regionId,true,"查询时间范围内无最小流量数据" +
                        _start.toLocaleString() + "至" + _end.toLocaleString());
                return minimumFlowSum;
            }
            minimumFlowSum.setOk(true);
            minimumFlowSum.setMinimumFlowList(minimumFlowList);
            minimumFlowSum.setMinFlowSum(getMinimumFlowFromTable(minimumFlowList));

        }catch(Exception ex){
            ex.printStackTrace();
            minimumFlowSum.setOk(false);

        }

        return minimumFlowSum;
    }

    private Double getMinimumFlowFromTable(List<MinimumFlow> minimumFlowList)
    {
        Double sumMinimumFlow = 0.0;
        try {
            for (MinimumFlow minimumFlow : minimumFlowList) {
                sumMinimumFlow += minimumFlow.getMinFlow();
            }
            return sumMinimumFlow * Double.parseDouble(propUtil.getProperty("dma.dayNightFactor"));
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            dmaLogManager.save(ex);
            return 0.0;
        }
    }

}