package com.gyee.alarm.service.realtimelibrary;

import com.gyee.common.contant.ContantXk;
import com.gyee.common.model.PointData;
import com.gyee.common.util.DateUtils;
import com.gyee.alarm.init.CacheContext;
import com.gyee.alarm.model.auto.*;
import com.gyee.alarm.util.PointUtil;
import com.gyee.alarm.util.realtimesource.IEdosUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;

/*
@author   谢生杰
@date   2022/11/22-9:29

实时值
*/

@Service
public class RegionCalreService  {

    @Resource
    private IEdosUtil edosUtil;




    public void aqts() throws Exception {
        Date currentDate = DateUtils.getCurrentDate();
        List<ProBasicCompany> cpls = CacheContext.cpls;
        Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap = CacheContext.companypointmap;
        List<ProBasicEnergyGroup> egls = CacheContext.egls;
        Map<String, Map<String, ProBasicPowerstationPoint>> grouppointmap = CacheContext.grouppointmap;
        List<ProBasicRegion> rgls = CacheContext.rgls;
        Map<String, Map<String, ProBasicPowerstationPoint>> regionpointmap = CacheContext.regionpointmap;
        List<PointData> resultList = new ArrayList<>();
        List<ProBasicPowerstationPoint> points = new ArrayList<>();
        List<String> pointstring = new ArrayList<>();
        cpls.stream().forEach(company->{
            ProBasicPowerstationPoint cp0Point = companypointmap.get(company.getId()+"0").get(ContantXk.AQTS);
            ProBasicPowerstationPoint cp1Point = companypointmap.get(company.getId()+"-1").get(ContantXk.AQTS);
            ProBasicPowerstationPoint cp2Point = companypointmap.get(company.getId()+"-2").get(ContantXk.AQTS);
            points.add(cp0Point);
            points.add(cp1Point);
            points.add(cp2Point);
        });
        rgls.stream().forEach(company->{
            ProBasicPowerstationPoint rg0Point = regionpointmap.get(company.getId()+"0").get(ContantXk.AQTS);
            ProBasicPowerstationPoint rg1Point = regionpointmap.get(company.getId()+"-1").get(ContantXk.AQTS);
            ProBasicPowerstationPoint rg2Point = regionpointmap.get(company.getId()+"-2").get(ContantXk.AQTS);
            points.add(rg0Point);
            points.add(rg1Point);
            points.add(rg2Point);
        });
        egls.stream().forEach(company->{
            ProBasicPowerstationPoint eg0Point = grouppointmap.get(company.getId()+"0").get(ContantXk.AQTS);
            ProBasicPowerstationPoint eg1Point = grouppointmap.get(company.getId()+"-1").get(ContantXk.AQTS);
            ProBasicPowerstationPoint eg2Point = grouppointmap.get(company.getId()+"-2").get(ContantXk.AQTS);
            points.add(eg0Point);
            points.add(eg1Point);
            points.add(eg2Point);
        });
        points.stream().forEach(i->{
            pointstring.add(i.getNemCode());
        });

        List<PointData> realData = edosUtil.getRealData(pointstring);
        realData.stream().forEach(real->{
            real.setPointValueInDouble(real.getPointValueInDouble()+1);
            real.setPointValueInDouble2(real.getPointValueInDouble2()+1);
            real.setPointValue(real.getPointValueInDouble()+1+"");
            real.setPointTime(currentDate.getTime());
        });
        edosUtil.sendMultiPoint(realData);

    }
    /**
     *
     */
    public void companyCal() throws Exception {


        Date currentDate = DateUtils.getCurrentDate();
        List<ProBasicCompany> cpls = CacheContext.cpls;
        List<ProBasicPowerstation> zwpls = CacheContext.zwpls;
        Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap = CacheContext.companypointmap;
        Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap = CacheContext.wppointmap;
        List<PointData> resultList = new ArrayList<>();
        cpls.stream().forEach(company->{
            List<ProBasicPowerstation> wps0 = zwpls.stream().filter(wp -> wp.getCompanyId().equals(company.getId())).collect(Collectors.toList());
            List<ProBasicPowerstation> wps1 = wps0.stream().filter(wp -> wp.getId().contains("_FDC_")).collect(Collectors.toList());
            List<ProBasicPowerstation> wps2 = wps0.stream().filter(wp -> wp.getId().contains("_GDC_")).collect(Collectors.toList());
            if (wps1.size()>0)
                weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps1, "-1");
            if (wps2.size()>0)
                weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps2, "-2");
            if (wps0.size()>0)
                weightingCompany(currentDate, companypointmap, wppointmap, resultList, company, wps0, "0");

        });
        edosUtil.sendMultiPoint(resultList);
    }

    public void groupCal() throws Exception {


        Date currentDate = DateUtils.getCurrentDate();
        List<ProBasicEnergyGroup> egls = CacheContext.egls;
        List<ProBasicPowerstation> zwpls = CacheContext.zwpls;
        Map<String, Map<String, ProBasicPowerstationPoint>> grouppointmap = CacheContext.grouppointmap;
        Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap = CacheContext.wppointmap;
        List<PointData> resultList = new ArrayList<>();
        egls.stream().forEach(group->{
            List<ProBasicPowerstation> wps0 = zwpls.stream().filter(wp -> wp.getGroupId().equals(group.getId())).collect(Collectors.toList());
            List<ProBasicPowerstation> wps1 = wps0.stream().filter(wp -> wp.getId().contains("_FDC_")).collect(Collectors.toList());
            List<ProBasicPowerstation> wps2 = wps0.stream().filter(wp -> wp.getId().contains("_GDC_")).collect(Collectors.toList());
            if (wps1.size()>0)
                weightingGroup(currentDate, grouppointmap, wppointmap, resultList, group, wps1, "-1");
            if (wps2.size()>0)
                weightingGroup(currentDate, grouppointmap, wppointmap, resultList, group, wps2, "-2");
            if (wps0.size()>0)
                weightingGroup(currentDate, grouppointmap, wppointmap, resultList, group, wps0, "0");

        });
        edosUtil.sendMultiPoint(resultList);
    }




    public void RegionCal() throws Exception {
        Date currentDate = DateUtils.getCurrentDate();
        List<ProBasicRegion> rgls = CacheContext.rgls;
        List<ProBasicCompany> cpls = CacheContext.cpls;
        Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap = CacheContext.companypointmap;
        Map<String, Map<String, ProBasicPowerstationPoint>> regionpointmap = CacheContext.regionpointmap;
        List<PointData> resultList = new ArrayList<>();
        rgls.stream().forEach(region->{
            List<ProBasicCompany> companys = cpls.stream().filter(company -> company.getRegionId().equals(region.getId())).collect(Collectors.toList());
            if (region.getJrCapacity()>0)
                weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region,companys, "-2");
            if (region.getJrwindCapacity()>0)
                weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region, companys, "-1");
            weightingRegion(currentDate, companypointmap, regionpointmap, resultList,region, companys, "0");
        });
        edosUtil.sendMultiPoint(resultList);
    }

    private void weightingRegion(Date currentDate, Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap, Map<String, Map<String, ProBasicPowerstationPoint>> regionpointmap, List<PointData> resultList,ProBasicRegion region, List<ProBasicCompany> companys,String type) {
        Map<String, ProBasicPowerstationPoint> powerstationPointMap = regionpointmap.get(region.getId()+type);
        ProBasicPowerstationPoint zsspjfsPoint = null;
        ProBasicPowerstationPoint zsspjgzdPoint = null;

        if (type.equals("-1")){
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);

        }else if(type.equals("-2")){
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);

        }else {
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
        }
        ProBasicPowerstationPoint zaqtsPoint = powerstationPointMap.get(ContantXk.AQTS);
        ProBasicPowerstationPoint zczztPoint = powerstationPointMap.get(ContantXk.CZZT);
        ProBasicPowerstationPoint zsszglPoint = powerstationPointMap.get(ContantXk.SSZGL);
        ProBasicPowerstationPoint zsszglsyzPoint = powerstationPointMap.get(ContantXk.SSZGLSYZ);
        ProBasicPowerstationPoint zsszllglPoint = powerstationPointMap.get(ContantXk.SSZLLGL);
        ProBasicPowerstationPoint zsszbzglPoint = powerstationPointMap.get(ContantXk.SSZBZGL);
        ProBasicPowerstationPoint zssznhglzsPoint = powerstationPointMap.get(ContantXk.SSZNHGLZS);
        ProBasicPowerstationPoint zsszzyglPoint = powerstationPointMap.get(ContantXk.SSZZYGL);
        ProBasicPowerstationPoint zsszkyglPoint = powerstationPointMap.get(ContantXk.SSZKYGL);
        ProBasicPowerstationPoint zycglPoint = powerstationPointMap.get(ContantXk.ZYCGL);

        ProBasicPowerstationPoint zgztsmxPoint = powerstationPointMap.get(ContantXk.GZTSMX);
        ProBasicPowerstationPoint zcnslmxPoint = powerstationPointMap.get(ContantXk.CNSLGZTSMX);
        ProBasicPowerstationPoint zjxtsmxPoint = powerstationPointMap.get(ContantXk.JXTSMX);
        ProBasicPowerstationPoint zcnjxmxPoint = powerstationPointMap.get(ContantXk.CNSLJXTSMX);
        ProBasicPowerstationPoint zdjtsmxPoint = powerstationPointMap.get(ContantXk.DJTSMX);
        ProBasicPowerstationPoint zqxjclmxPoint = powerstationPointMap.get(ContantXk.QXJCLTSMX);
        ProBasicPowerstationPoint zsdtjmxPoint = powerstationPointMap.get(ContantXk.SDTJTSMX);
        ProBasicPowerstationPoint zxntsmxPoint = powerstationPointMap.get(ContantXk.XNTSMX);
        ProBasicPowerstationPoint zxdtjmxPoint = powerstationPointMap.get(ContantXk.XDTJTSMX);
        ProBasicPowerstationPoint zxdjclmxPoint = powerstationPointMap.get(ContantXk.XDJCLTSMX);
        ProBasicPowerstationPoint zcwsldwmxPoint = powerstationPointMap.get(ContantXk.CWSLDWTSMX);
        ProBasicPowerstationPoint zcwsltqmxPoint = powerstationPointMap.get(ContantXk.CWSLTQTSMX);
        ProBasicPowerstationPoint zlxtsmxPoint = powerstationPointMap.get(ContantXk.LXTSMX);
        ProBasicPowerstationPoint ztxzdmxPoint = powerstationPointMap.get(ContantXk.TXZDTSMX);
        ProBasicPowerstationPoint zdjtsPoint = powerstationPointMap.get(ContantXk.DJTS);
        ProBasicPowerstationPoint zyxtsPoint = powerstationPointMap.get(ContantXk.YXTS);
        ProBasicPowerstationPoint zgztsPoint = powerstationPointMap.get(ContantXk.GZTJTS);
        ProBasicPowerstationPoint zwhtsPoint = powerstationPointMap.get(ContantXk.JXTJTS);
        ProBasicPowerstationPoint zxdtsPoint = powerstationPointMap.get(ContantXk.XDTS);
        ProBasicPowerstationPoint zsltsPoint = powerstationPointMap.get(ContantXk.SLTS);
        ProBasicPowerstationPoint zlxtsPoint = powerstationPointMap.get(ContantXk.TXZDTS);

        AtomicReference<Double> sspjfs = new AtomicReference<>((double) 0);
        AtomicReference<Double> sspjgzd = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszglsyz = new AtomicReference<>((double) 0);
        AtomicReference<Double> zllgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zbzgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> znhglzs = new AtomicReference<>((double) 0);
        AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zycgl = new AtomicReference<>((double) 0);

        AtomicReference<Double> gztsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cngzmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> jxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cnjxmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> djtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> qxjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> sdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xntsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsldwmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsltqmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> txzdmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> yxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> gzts = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> whts = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdts = new AtomicReference<>((double) 0);
        AtomicReference<Double> slts = new AtomicReference<>((double) 0);
        AtomicReference<Double> djts = new AtomicReference<>((double) 0);
        AtomicInteger fcComCount = new AtomicInteger();
        AtomicInteger gcComCount = new AtomicInteger();
        AtomicInteger finalGcComCount = gcComCount;
        AtomicInteger finalFcComCount = fcComCount;
        double zczzt = 0;

        List<Double> aqtsList = new ArrayList<>();
        aqtsList.add(0.0);
//        companys.stream().forEach(company->{
         for(ProBasicCompany company:companys){
            if (company.getJrCapacity()>0 && company.getSpare3().equals("1")){
                finalGcComCount.getAndIncrement();
            }
            if (company.getJrwindCapacity()>0  && company.getSpare3().equals("1")){
                finalFcComCount.getAndIncrement();
            }
            Map<String, ProBasicPowerstationPoint> powerstationPointMap1 = companypointmap.get(company.getId()+type);
            if (powerstationPointMap1.size()>0){
                ProBasicPowerstationPoint sspjfsPoint = null;
                ProBasicPowerstationPoint sspjgzdPoint = null;

                if (type.equals("-1")){
                    sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);

                }else if(type.equals("-2")){
                    sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);

                }else {
                    sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);
                    sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);

                }

                ProBasicPowerstationPoint aqtsPoint = powerstationPointMap1.get(ContantXk.AQTS);
                ProBasicPowerstationPoint czztPoint = powerstationPointMap1.get(ContantXk.CZZT);
                ProBasicPowerstationPoint sszglPoint = powerstationPointMap1.get(ContantXk.SSZGL);
                ProBasicPowerstationPoint sszglsyzPoint = powerstationPointMap1.get(ContantXk.SSZGLSYZ);
                ProBasicPowerstationPoint sszllglPoint = powerstationPointMap1.get(ContantXk.SSZLLGL);
                ProBasicPowerstationPoint sszbzglPoint = powerstationPointMap1.get(ContantXk.SSZBZGL);
                ProBasicPowerstationPoint ssznhglzsPoint = powerstationPointMap1.get(ContantXk.SSZNHGLZS);
                ProBasicPowerstationPoint sszzyglPoint = powerstationPointMap1.get(ContantXk.SSZZYGL);
                ProBasicPowerstationPoint sszkyglPoint = powerstationPointMap1.get(ContantXk.SSZKYGL);
                ProBasicPowerstationPoint sszycglPoint = powerstationPointMap1.get(ContantXk.ZYCGL);

                ProBasicPowerstationPoint gztsmxPoint = powerstationPointMap1.get(ContantXk.GZTSMX);
                ProBasicPowerstationPoint cnslmxPoint = powerstationPointMap1.get(ContantXk.CNSLGZTSMX);
                ProBasicPowerstationPoint jxtsmxPoint = powerstationPointMap1.get(ContantXk.JXTSMX);
                ProBasicPowerstationPoint cnjxmxPoint = powerstationPointMap1.get(ContantXk.CNSLJXTSMX);
                ProBasicPowerstationPoint djtsmxPoint = powerstationPointMap1.get(ContantXk.DJTSMX);
                ProBasicPowerstationPoint qxjclmxPoint = powerstationPointMap1.get(ContantXk.QXJCLTSMX);
                ProBasicPowerstationPoint sdtjmxPoint = powerstationPointMap1.get(ContantXk.SDTJTSMX);
                ProBasicPowerstationPoint xntsmxPoint = powerstationPointMap1.get(ContantXk.XNTSMX);
                ProBasicPowerstationPoint xdtjmxPoint = powerstationPointMap1.get(ContantXk.XDTJTSMX);
                ProBasicPowerstationPoint xdjclmxPoint = powerstationPointMap1.get(ContantXk.XDJCLTSMX);
                ProBasicPowerstationPoint cwsldwmxPoint = powerstationPointMap1.get(ContantXk.CWSLDWTSMX);
                ProBasicPowerstationPoint cwsltqmxPoint = powerstationPointMap1.get(ContantXk.CWSLTQTSMX);
                ProBasicPowerstationPoint lxtsmxPoint = powerstationPointMap1.get(ContantXk.LXTSMX);
                ProBasicPowerstationPoint txzdmxPoint = powerstationPointMap1.get(ContantXk.TXZDTSMX);
                ProBasicPowerstationPoint djtsPoint = powerstationPointMap1.get(ContantXk.DJTS);
                ProBasicPowerstationPoint yxtsPoint = powerstationPointMap1.get(ContantXk.YXTS);
                ProBasicPowerstationPoint gztsPoint = powerstationPointMap1.get(ContantXk.GZTJTS);
                ProBasicPowerstationPoint whtsPoint = powerstationPointMap1.get(ContantXk.JXTJTS);
                ProBasicPowerstationPoint xdtsPoint = powerstationPointMap1.get(ContantXk.XDTS);
                ProBasicPowerstationPoint sltsPoint = powerstationPointMap1.get(ContantXk.SLTS);
                ProBasicPowerstationPoint lxtsPoint = powerstationPointMap1.get(ContantXk.TXZDTS);

                try {
                    double temp = edosUtil.getRealData(aqtsPoint).getPointValueInDouble();
                    aqtsList.add(temp);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
                    double temp1 = edosUtil.getRealData(czztPoint).getPointValueInDouble();
                    if (temp1 ==0){
                        continue;
                    }else {
                        zczzt = 1;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

                if (type.equals("-1")){
                    ProBasicPowerstationPoint finalSspjfsfsPoint = sspjfsPoint;
                    sspjfs.updateAndGet(v -> {
                        try {
                            return new Double((double) (v + edosUtil.getRealData(finalSspjfsfsPoint).getPointValueInDouble()));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return v;
                    });


                }else if (type.equals("-2")){
                    ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
                    sspjgzd.updateAndGet(v -> {
                        try {
                            return new Double((double) (v + edosUtil.getRealData(finalSspjgzdPoint).getPointValueInDouble()));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return v;
                    });

                }else {
                    ProBasicPowerstationPoint finalSspjfsfsPoint = sspjfsPoint;
                    sspjfs.updateAndGet(v -> {
                        try {
                            return new Double((double) (v + edosUtil.getRealData(finalSspjfsfsPoint).getPointValueInDouble()));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return v;
                    });
                    ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
                    sspjgzd.updateAndGet(v -> {
                        try {
                            return new Double((double) (v + edosUtil.getRealData(finalSspjgzdPoint).getPointValueInDouble()));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return v;
                    });
                }
                sszgl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                sszglsyz.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszglsyzPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                zllgl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszllglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                zbzgl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszbzglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                znhglzs.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(ssznhglzsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                zzygl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszzyglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                zkygl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszkyglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                zycgl.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sszycglPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });



                gztsmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(gztsmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                cngzmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(cnslmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                jxtsmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(jxtsmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                cnjxmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(cnjxmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                djtsmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(djtsmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                qxjclmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(qxjclmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                sdtjmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sdtjmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                xntsmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(xntsmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                xdtjmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(xdtjmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                xdjclmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(xdjclmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                cwsldwmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(cwsldwmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                cwsltqmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(cwsltqmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                lxtsmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(lxtsmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                txzdmx.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(txzdmxPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                djts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(djtsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                yxts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(yxtsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                gzts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(gztsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                whts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(whtsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                xdts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(xdtsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                slts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(sltsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
                lxts.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(lxtsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
            }

        }
        if (fcComCount.get()==0){
            fcComCount.getAndIncrement();
        }
        if (gcComCount.get()==0){
            gcComCount.getAndIncrement();
        }
        if (type.equals("-1")){
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fcComCount.doubleValue(),zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));

        }else if(type.equals("-2")){
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gcComCount.doubleValue(),zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));

        }else {
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fcComCount.doubleValue(),zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gcComCount.doubleValue(),zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
        }
        Double aqts = Collections.max(aqtsList);



//        resultList.add(PointUtil.createPointData(currentDate,aqts,zaqtsPoint.getNemCode(),zaqtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zczzt,zczztPoint.getNemCode(),zczztPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszgl.get(),zsszglPoint.getNemCode(),zsszglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszglsyz.get(),zsszglsyzPoint.getNemCode(),zsszglsyzPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zllgl.get(),zsszllglPoint.getNemCode(),zsszllglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zbzgl.get(),zsszbzglPoint.getNemCode(),zsszbzglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,znhglzs.get(),zssznhglzsPoint.getNemCode(),zssznhglzsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zzygl.get(),zsszzyglPoint.getNemCode(),zsszzyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zkygl.get(),zsszkyglPoint.getNemCode(),zsszkyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zycgl.get(),zycglPoint.getNemCode(),zycglPoint.getName()));


        resultList.add(PointUtil.createPointData(currentDate,gztsmx.get(),zgztsmxPoint.getNemCode(),zgztsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cngzmx.get(),zcnslmxPoint.getNemCode(),zcnslmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,jxtsmx.get(),zjxtsmxPoint.getNemCode(),zjxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cnjxmx.get(),zcnjxmxPoint.getNemCode(),zcnjxmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djtsmx.get(),zdjtsmxPoint.getNemCode(),zdjtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,qxjclmx.get(),zqxjclmxPoint.getNemCode(),zqxjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sdtjmx.get(),zsdtjmxPoint.getNemCode(),zsdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xntsmx.get(),zxntsmxPoint.getNemCode(),zxntsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdtjmx.get(),zxdtjmxPoint.getNemCode(),zxdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdjclmx.get(),zxdjclmxPoint.getNemCode(),zxdjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsldwmx.get(),zcwsldwmxPoint.getNemCode(),zcwsldwmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsltqmx.get(),zcwsltqmxPoint.getNemCode(),zcwsltqmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxtsmx.get(),zlxtsmxPoint.getNemCode(),zlxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,txzdmx.get(),ztxzdmxPoint.getNemCode(),ztxzdmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djts.get(),zdjtsPoint.getNemCode(),zdjtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,yxts.get(),zyxtsPoint.getNemCode(),zyxtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,gzts.get(),zgztsPoint.getNemCode(),zgztsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,whts.get(),zwhtsPoint.getNemCode(),zwhtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdts.get(),zxdtsPoint.getNemCode(),zxdtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,slts.get(),zsltsPoint.getNemCode(),zsltsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxts.get(),zlxtsPoint.getNemCode(),zlxtsPoint.getName()));
    }
    private void weightingCompany(Date currentDate, Map<String, Map<String, ProBasicPowerstationPoint>> companypointmap, Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap, List<PointData> resultList, ProBasicCompany company, List<ProBasicPowerstation> wps,String type) {
        Map<String, ProBasicPowerstationPoint> powerstationPointMap = companypointmap.get(company.getId()+type);
        int fdcsize = wps.stream().filter(wp -> wp.getId().contains("_FDC_") && wp.getSpare3().equals("1")).collect(Collectors.toList()).size();
        int gdcsize = wps.stream().filter(wp -> wp.getId().contains("_GDC_") && wp.getSpare3().equals("1")).collect(Collectors.toList()).size();
        if (fdcsize==0)
            fdcsize = 1;
        if (gdcsize==0)
            gdcsize=1;
        ProBasicPowerstationPoint zsspjfsPoint = null;
        ProBasicPowerstationPoint zsspjgzdPoint = null;
        if (type.equals("-1")){
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);

        }else if(type.equals("-2")){
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);

        }else {
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
        }

        ProBasicPowerstationPoint zaqtsPoint = powerstationPointMap.get(ContantXk.AQTS);
        ProBasicPowerstationPoint zczztPoint = powerstationPointMap.get(ContantXk.CZZT);
        ProBasicPowerstationPoint zsszglPoint = powerstationPointMap.get(ContantXk.SSZGL);
        ProBasicPowerstationPoint zsszglsyzPoint = powerstationPointMap.get(ContantXk.SSZGLSYZ);
        ProBasicPowerstationPoint zsszllglPoint = powerstationPointMap.get(ContantXk.SSZLLGL);
        ProBasicPowerstationPoint zsszbzglPoint = powerstationPointMap.get(ContantXk.SSZBZGL);
        ProBasicPowerstationPoint zssznhglzsPoint = powerstationPointMap.get(ContantXk.SSZNHGLZS);
        ProBasicPowerstationPoint zsszzyglPoint = powerstationPointMap.get(ContantXk.SSZZYGL);
        ProBasicPowerstationPoint zsszkyglPoint = powerstationPointMap.get(ContantXk.SSZKYGL);
        ProBasicPowerstationPoint zycglPoint = powerstationPointMap.get(ContantXk.ZYCGL);

        ProBasicPowerstationPoint zgztsmxPoint = powerstationPointMap.get(ContantXk.GZTSMX);
        ProBasicPowerstationPoint zcnslmxPoint = powerstationPointMap.get(ContantXk.CNSLGZTSMX);
        ProBasicPowerstationPoint zjxtsmxPoint = powerstationPointMap.get(ContantXk.JXTSMX);
        ProBasicPowerstationPoint zcnjxmxPoint = powerstationPointMap.get(ContantXk.CNSLJXTSMX);
        ProBasicPowerstationPoint zdjtsmxPoint = powerstationPointMap.get(ContantXk.DJTSMX);
        ProBasicPowerstationPoint zqxjclmxPoint = powerstationPointMap.get(ContantXk.QXJCLTSMX);
        ProBasicPowerstationPoint zsdtjmxPoint = powerstationPointMap.get(ContantXk.SDTJTSMX);
        ProBasicPowerstationPoint zxntsmxPoint = powerstationPointMap.get(ContantXk.XNTSMX);
        ProBasicPowerstationPoint zxdtjmxPoint = powerstationPointMap.get(ContantXk.XDTJTSMX);
        ProBasicPowerstationPoint zxdjclmxPoint = powerstationPointMap.get(ContantXk.XDJCLTSMX);
        ProBasicPowerstationPoint zcwsldwmxPoint = powerstationPointMap.get(ContantXk.CWSLDWTSMX);
        ProBasicPowerstationPoint zcwsltqmxPoint = powerstationPointMap.get(ContantXk.CWSLTQTSMX);
        ProBasicPowerstationPoint zlxtsmxPoint = powerstationPointMap.get(ContantXk.LXTSMX);
        ProBasicPowerstationPoint ztxzdmxPoint = powerstationPointMap.get(ContantXk.TXZDTSMX);
        ProBasicPowerstationPoint zdjtsPoint = powerstationPointMap.get(ContantXk.DJTS);
        ProBasicPowerstationPoint zyxtsPoint = powerstationPointMap.get(ContantXk.YXTS);
        ProBasicPowerstationPoint zgztsPoint = powerstationPointMap.get(ContantXk.GZTJTS);
        ProBasicPowerstationPoint zwhtsPoint = powerstationPointMap.get(ContantXk.JXTJTS);
        ProBasicPowerstationPoint zxdtsPoint = powerstationPointMap.get(ContantXk.XDTS);
        ProBasicPowerstationPoint zsltsPoint = powerstationPointMap.get(ContantXk.SLTS);
        ProBasicPowerstationPoint zlxtsPoint = powerstationPointMap.get(ContantXk.TXZDTS);
        AtomicReference<Double> sspjfs = new AtomicReference<>((double) 0);
        AtomicReference<Double> sspjgzd = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszglsyz = new AtomicReference<>((double) 0);
        AtomicReference<Double> zllgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zbzgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> znhglzs = new AtomicReference<>((double) 0);
        AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zycgl = new AtomicReference<>((double) 0);

        AtomicReference<Double> gztsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cngzmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> jxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cnjxmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> djtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> qxjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> sdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xntsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsldwmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsltqmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> txzdmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> yxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> gzts = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> whts = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdts = new AtomicReference<>((double) 0);
        AtomicReference<Double> slts = new AtomicReference<>((double) 0);
        AtomicReference<Double> djts = new AtomicReference<>((double) 0);
        Double zczzt = 0.0;
        List<Double> aqtsList = new ArrayList<>();
        aqtsList.add(0.0);
//        wps.stream().forEach(wp->{
        for(ProBasicPowerstation wp : wps) {

            Map<String, ProBasicPowerstationPoint> powerstationPointMap1 = wppointmap.get(wp.getId());

            ProBasicPowerstationPoint sspjfsPoint = null;
            ProBasicPowerstationPoint sspjgzdPoint = null;

            if (wp.getId().contains("_FDC_")) {
                sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);

            } else if (wp.getId().contains("_GDC_")) {
                sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);

            }
            ProBasicPowerstationPoint aqtsPoint = powerstationPointMap1.get(ContantXk.AQTS);
            ProBasicPowerstationPoint czztPoint = powerstationPointMap1.get(ContantXk.CZZT);
            ProBasicPowerstationPoint sszglPoint = powerstationPointMap1.get(ContantXk.SSZGL);
            ProBasicPowerstationPoint sszglsyzPoint = powerstationPointMap1.get(ContantXk.SSZGLSYZ);
            ProBasicPowerstationPoint sszllglPoint = powerstationPointMap1.get(ContantXk.SSZLLGL);
            ProBasicPowerstationPoint sszbzglPoint = powerstationPointMap1.get(ContantXk.SSZBZGL);
            ProBasicPowerstationPoint ssznhglzsPoint = powerstationPointMap1.get(ContantXk.SSZNHGLZS);
            ProBasicPowerstationPoint sszzyglPoint = powerstationPointMap1.get(ContantXk.SSZZYGL);
            ProBasicPowerstationPoint sszkyglPoint = powerstationPointMap1.get(ContantXk.SSZKYGL);
            ProBasicPowerstationPoint sszycglPoint = powerstationPointMap1.get(ContantXk.ZYCGL);

            ProBasicPowerstationPoint gztsmxPoint = powerstationPointMap1.get(ContantXk.GZTSMX);
            ProBasicPowerstationPoint cnslmxPoint = powerstationPointMap1.get(ContantXk.CNSLGZTSMX);
            ProBasicPowerstationPoint jxtsmxPoint = powerstationPointMap1.get(ContantXk.JXTSMX);
            ProBasicPowerstationPoint cnjxmxPoint = powerstationPointMap1.get(ContantXk.CNSLJXTSMX);
            ProBasicPowerstationPoint djtsmxPoint = powerstationPointMap1.get(ContantXk.DJTSMX);
            ProBasicPowerstationPoint qxjclmxPoint = powerstationPointMap1.get(ContantXk.QXJCLTSMX);
            ProBasicPowerstationPoint sdtjmxPoint = powerstationPointMap1.get(ContantXk.SDTJTSMX);
            ProBasicPowerstationPoint xntsmxPoint = powerstationPointMap1.get(ContantXk.XNTSMX);
            ProBasicPowerstationPoint xdtjmxPoint = powerstationPointMap1.get(ContantXk.XDTJTSMX);
            ProBasicPowerstationPoint xdjclmxPoint = powerstationPointMap1.get(ContantXk.XDJCLTSMX);
            ProBasicPowerstationPoint cwsldwmxPoint = powerstationPointMap1.get(ContantXk.CWSLDWTSMX);
            ProBasicPowerstationPoint cwsltqmxPoint = powerstationPointMap1.get(ContantXk.CWSLTQTSMX);
            ProBasicPowerstationPoint lxtsmxPoint = powerstationPointMap1.get(ContantXk.LXTSMX);
            ProBasicPowerstationPoint txzdmxPoint = powerstationPointMap1.get(ContantXk.TXZDTSMX);
            ProBasicPowerstationPoint djtsPoint = powerstationPointMap1.get(ContantXk.DJTS);
            ProBasicPowerstationPoint yxtsPoint = powerstationPointMap1.get(ContantXk.YXTS);
            ProBasicPowerstationPoint gztsPoint = powerstationPointMap1.get(ContantXk.GZTJTS);
            ProBasicPowerstationPoint whtsPoint = powerstationPointMap1.get(ContantXk.JXTJTS);
            ProBasicPowerstationPoint xdtsPoint = powerstationPointMap1.get(ContantXk.XDTS);
            ProBasicPowerstationPoint sltsPoint = powerstationPointMap1.get(ContantXk.SLTS);
            ProBasicPowerstationPoint lxtsPoint = powerstationPointMap1.get(ContantXk.TXZDTS);


            try {
                double temp = edosUtil.getRealData(aqtsPoint).getPointValueInDouble();
                aqtsList.add(temp);
            } catch (Exception e) {
                e.printStackTrace();
            }

            try {
                double temp1 = edosUtil.getRealData(czztPoint).getPointValueInDouble();
                if (temp1 == 0) {
                    continue;
                }else {
                    zczzt = 1.0;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            if (wp.getId().contains("_FDC_")) {
                ProBasicPowerstationPoint finalSspjfsPoint = sspjfsPoint;
                sspjfs.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(finalSspjfsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });

            } else if (wp.getId().contains("_GDC_")) {
                ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
                sspjgzd.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(finalSspjgzdPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
            }
            sszgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            sszglsyz.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszglsyzPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zllgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszllglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zbzgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszbzglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            znhglzs.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(ssznhglzsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zzygl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszzyglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zkygl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszkyglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zycgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszycglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });


            gztsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(gztsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cngzmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cnslmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            jxtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(jxtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cnjxmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cnjxmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            djtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(djtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            qxjclmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(qxjclmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            sdtjmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sdtjmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xntsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xntsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdtjmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdtjmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdjclmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdjclmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cwsldwmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cwsldwmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cwsltqmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cwsltqmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            lxtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(lxtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            txzdmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(txzdmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            djts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(djtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            yxts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(yxtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            gzts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(gztsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            whts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(whtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            slts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sltsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            lxts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(lxtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
        }
        if (type.equals("-1")){
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));

        }else if(type.equals("-2")){
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));

        }else {
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
        }

        Double aqts = Collections.max(aqtsList);
//        resultList.add(PointUtil.createPointData(currentDate,aqts,zaqtsPoint.getNemCode(),zaqtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zczzt,zczztPoint.getNemCode(),zczztPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszgl.get(),zsszglPoint.getNemCode(),zsszglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszglsyz.get(),zsszglsyzPoint.getNemCode(),zsszglsyzPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zllgl.get(),zsszllglPoint.getNemCode(),zsszllglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zbzgl.get(),zsszbzglPoint.getNemCode(),zsszbzglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,znhglzs.get(),zssznhglzsPoint.getNemCode(),zssznhglzsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zzygl.get(),zsszzyglPoint.getNemCode(),zsszzyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zkygl.get(),zsszkyglPoint.getNemCode(),zsszkyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zycgl.get(),zycglPoint.getNemCode(),zycglPoint.getName()));

        resultList.add(PointUtil.createPointData(currentDate,gztsmx.get(),zgztsmxPoint.getNemCode(),zgztsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cngzmx.get(),zcnslmxPoint.getNemCode(),zcnslmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,jxtsmx.get(),zjxtsmxPoint.getNemCode(),zjxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cnjxmx.get(),zcnjxmxPoint.getNemCode(),zcnjxmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djtsmx.get(),zdjtsmxPoint.getNemCode(),zdjtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,qxjclmx.get(),zqxjclmxPoint.getNemCode(),zqxjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sdtjmx.get(),zsdtjmxPoint.getNemCode(),zsdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xntsmx.get(),zxntsmxPoint.getNemCode(),zxntsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdtjmx.get(),zxdtjmxPoint.getNemCode(),zxdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdjclmx.get(),zxdjclmxPoint.getNemCode(),zxdjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsldwmx.get(),zcwsldwmxPoint.getNemCode(),zcwsldwmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsltqmx.get(),zcwsltqmxPoint.getNemCode(),zcwsltqmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxtsmx.get(),zlxtsmxPoint.getNemCode(),zlxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,txzdmx.get(),ztxzdmxPoint.getNemCode(),ztxzdmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djts.get(),zdjtsPoint.getNemCode(),zdjtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,yxts.get(),zyxtsPoint.getNemCode(),zyxtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,gzts.get(),zgztsPoint.getNemCode(),zgztsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,whts.get(),zwhtsPoint.getNemCode(),zwhtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdts.get(),zxdtsPoint.getNemCode(),zxdtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,slts.get(),zsltsPoint.getNemCode(),zsltsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxts.get(),zlxtsPoint.getNemCode(),zlxtsPoint.getName()));
    }
    private void weightingGroup(Date currentDate, Map<String, Map<String, ProBasicPowerstationPoint>> grouppointmap, Map<String, Map<String, ProBasicPowerstationPoint>> wppointmap, List<PointData> resultList, ProBasicEnergyGroup group, List<ProBasicPowerstation> wps, String type) {
        Map<String, ProBasicPowerstationPoint> powerstationPointMap = grouppointmap.get(group.getId()+type);
        int fdcsize = wps.stream().filter(wp -> wp.getId().contains("_FDC_") && wp.getSpare3().equals("1")).collect(Collectors.toList()).size();
        int gdcsize = wps.stream().filter(wp -> wp.getId().contains("_GDC_") && wp.getSpare3().equals("1")).collect(Collectors.toList()).size();
        if (fdcsize==0)
            fdcsize = 1;
        if (gdcsize==0)
            gdcsize=1;
        ProBasicPowerstationPoint zsspjfsPoint = null;
        ProBasicPowerstationPoint zsspjgzdPoint = null;
        if (type.equals("-1")){
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);

        }else if(type.equals("-2")){
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);

        }else {
            zsspjfsPoint = powerstationPointMap.get(ContantXk.SSPJFS);
            zsspjgzdPoint = powerstationPointMap.get(ContantXk.SSPJGZD);
        }

        ProBasicPowerstationPoint zaqtsPoint = powerstationPointMap.get(ContantXk.AQTS);
        ProBasicPowerstationPoint zczztPoint = powerstationPointMap.get(ContantXk.CZZT);
        ProBasicPowerstationPoint zsszglPoint = powerstationPointMap.get(ContantXk.SSZGL);
        ProBasicPowerstationPoint zsszglsyzPoint = powerstationPointMap.get(ContantXk.SSZGLSYZ);
        ProBasicPowerstationPoint zsszllglPoint = powerstationPointMap.get(ContantXk.SSZLLGL);
        ProBasicPowerstationPoint zsszbzglPoint = powerstationPointMap.get(ContantXk.SSZBZGL);
        ProBasicPowerstationPoint zssznhglzsPoint = powerstationPointMap.get(ContantXk.SSZNHGLZS);
        ProBasicPowerstationPoint zsszzyglPoint = powerstationPointMap.get(ContantXk.SSZZYGL);
        ProBasicPowerstationPoint zsszkyglPoint = powerstationPointMap.get(ContantXk.SSZKYGL);
        ProBasicPowerstationPoint zycglPoint = powerstationPointMap.get(ContantXk.ZYCGL);

        ProBasicPowerstationPoint zgztsmxPoint = powerstationPointMap.get(ContantXk.GZTSMX);
        ProBasicPowerstationPoint zcnslmxPoint = powerstationPointMap.get(ContantXk.CNSLGZTSMX);
        ProBasicPowerstationPoint zjxtsmxPoint = powerstationPointMap.get(ContantXk.JXTSMX);
        ProBasicPowerstationPoint zcnjxmxPoint = powerstationPointMap.get(ContantXk.CNSLJXTSMX);
        ProBasicPowerstationPoint zdjtsmxPoint = powerstationPointMap.get(ContantXk.DJTSMX);
        ProBasicPowerstationPoint zqxjclmxPoint = powerstationPointMap.get(ContantXk.QXJCLTSMX);
        ProBasicPowerstationPoint zsdtjmxPoint = powerstationPointMap.get(ContantXk.SDTJTSMX);
        ProBasicPowerstationPoint zxntsmxPoint = powerstationPointMap.get(ContantXk.XNTSMX);
        ProBasicPowerstationPoint zxdtjmxPoint = powerstationPointMap.get(ContantXk.XDTJTSMX);
        ProBasicPowerstationPoint zxdjclmxPoint = powerstationPointMap.get(ContantXk.XDJCLTSMX);
        ProBasicPowerstationPoint zcwsldwmxPoint = powerstationPointMap.get(ContantXk.CWSLDWTSMX);
        ProBasicPowerstationPoint zcwsltqmxPoint = powerstationPointMap.get(ContantXk.CWSLTQTSMX);
        ProBasicPowerstationPoint zlxtsmxPoint = powerstationPointMap.get(ContantXk.LXTSMX);
        ProBasicPowerstationPoint ztxzdmxPoint = powerstationPointMap.get(ContantXk.TXZDTSMX);
        ProBasicPowerstationPoint zdjtsPoint = powerstationPointMap.get(ContantXk.DJTS);
        ProBasicPowerstationPoint zyxtsPoint = powerstationPointMap.get(ContantXk.YXTS);
        ProBasicPowerstationPoint zgztsPoint = powerstationPointMap.get(ContantXk.GZTJTS);
        ProBasicPowerstationPoint zwhtsPoint = powerstationPointMap.get(ContantXk.JXTJTS);
        ProBasicPowerstationPoint zxdtsPoint = powerstationPointMap.get(ContantXk.XDTS);
        ProBasicPowerstationPoint zsltsPoint = powerstationPointMap.get(ContantXk.SLTS);
        ProBasicPowerstationPoint zlxtsPoint = powerstationPointMap.get(ContantXk.TXZDTS);
        AtomicReference<Double> sspjfs = new AtomicReference<>((double) 0);
        AtomicReference<Double> sspjgzd = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> sszglsyz = new AtomicReference<>((double) 0);
        AtomicReference<Double> zllgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zbzgl = new AtomicReference<>((double) 0);
        AtomicReference<Double> znhglzs = new AtomicReference<>((double) 0);
        AtomicReference<Double> zzygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zkygl = new AtomicReference<>((double) 0);
        AtomicReference<Double> zycgl = new AtomicReference<>((double) 0);

        AtomicReference<Double> gztsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cngzmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> jxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cnjxmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> djtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> qxjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> sdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xntsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdtjmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdjclmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsldwmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> cwsltqmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxtsmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> txzdmx = new AtomicReference<>((double) 0);
        AtomicReference<Double> yxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> gzts = new AtomicReference<>((double) 0);
        AtomicReference<Double> lxts = new AtomicReference<>((double) 0);
        AtomicReference<Double> whts = new AtomicReference<>((double) 0);
        AtomicReference<Double> xdts = new AtomicReference<>((double) 0);
        AtomicReference<Double> slts = new AtomicReference<>((double) 0);
        AtomicReference<Double> djts = new AtomicReference<>((double) 0);
        Double zczzt = 0.0;
        List<Double> aqtsList = new ArrayList<>();
        aqtsList.add(0.0);
//        wps.stream().forEach(wp->{
        for(ProBasicPowerstation wp : wps) {

            Map<String, ProBasicPowerstationPoint> powerstationPointMap1 = wppointmap.get(wp.getId());

            ProBasicPowerstationPoint sspjfsPoint = null;
            ProBasicPowerstationPoint sspjgzdPoint = null;

            if (wp.getId().contains("_FDC_")) {
                sspjfsPoint = powerstationPointMap1.get(ContantXk.SSPJFS);

            } else if (wp.getId().contains("_GDC_")) {
                sspjgzdPoint = powerstationPointMap1.get(ContantXk.SSPJGZD);

            }
            ProBasicPowerstationPoint aqtsPoint = powerstationPointMap1.get(ContantXk.AQTS);
            ProBasicPowerstationPoint czztPoint = powerstationPointMap1.get(ContantXk.CZZT);
            ProBasicPowerstationPoint sszglPoint = powerstationPointMap1.get(ContantXk.SSZGL);
            ProBasicPowerstationPoint sszglsyzPoint = powerstationPointMap1.get(ContantXk.SSZGLSYZ);
            ProBasicPowerstationPoint sszllglPoint = powerstationPointMap1.get(ContantXk.SSZLLGL);
            ProBasicPowerstationPoint sszbzglPoint = powerstationPointMap1.get(ContantXk.SSZBZGL);
            ProBasicPowerstationPoint ssznhglzsPoint = powerstationPointMap1.get(ContantXk.SSZNHGLZS);
            ProBasicPowerstationPoint sszzyglPoint = powerstationPointMap1.get(ContantXk.SSZZYGL);
            ProBasicPowerstationPoint sszkyglPoint = powerstationPointMap1.get(ContantXk.SSZKYGL);
            ProBasicPowerstationPoint sszycglPoint = powerstationPointMap1.get(ContantXk.ZYCGL);

            ProBasicPowerstationPoint gztsmxPoint = powerstationPointMap1.get(ContantXk.GZTSMX);
            ProBasicPowerstationPoint cnslmxPoint = powerstationPointMap1.get(ContantXk.CNSLGZTSMX);
            ProBasicPowerstationPoint jxtsmxPoint = powerstationPointMap1.get(ContantXk.JXTSMX);
            ProBasicPowerstationPoint cnjxmxPoint = powerstationPointMap1.get(ContantXk.CNSLJXTSMX);
            ProBasicPowerstationPoint djtsmxPoint = powerstationPointMap1.get(ContantXk.DJTSMX);
            ProBasicPowerstationPoint qxjclmxPoint = powerstationPointMap1.get(ContantXk.QXJCLTSMX);
            ProBasicPowerstationPoint sdtjmxPoint = powerstationPointMap1.get(ContantXk.SDTJTSMX);
            ProBasicPowerstationPoint xntsmxPoint = powerstationPointMap1.get(ContantXk.XNTSMX);
            ProBasicPowerstationPoint xdtjmxPoint = powerstationPointMap1.get(ContantXk.XDTJTSMX);
            ProBasicPowerstationPoint xdjclmxPoint = powerstationPointMap1.get(ContantXk.XDJCLTSMX);
            ProBasicPowerstationPoint cwsldwmxPoint = powerstationPointMap1.get(ContantXk.CWSLDWTSMX);
            ProBasicPowerstationPoint cwsltqmxPoint = powerstationPointMap1.get(ContantXk.CWSLTQTSMX);
            ProBasicPowerstationPoint lxtsmxPoint = powerstationPointMap1.get(ContantXk.LXTSMX);
            ProBasicPowerstationPoint txzdmxPoint = powerstationPointMap1.get(ContantXk.TXZDTSMX);
            ProBasicPowerstationPoint djtsPoint = powerstationPointMap1.get(ContantXk.DJTS);
            ProBasicPowerstationPoint yxtsPoint = powerstationPointMap1.get(ContantXk.YXTS);
            ProBasicPowerstationPoint gztsPoint = powerstationPointMap1.get(ContantXk.GZTJTS);
            ProBasicPowerstationPoint whtsPoint = powerstationPointMap1.get(ContantXk.JXTJTS);
            ProBasicPowerstationPoint xdtsPoint = powerstationPointMap1.get(ContantXk.XDTS);
            ProBasicPowerstationPoint sltsPoint = powerstationPointMap1.get(ContantXk.SLTS);
            ProBasicPowerstationPoint lxtsPoint = powerstationPointMap1.get(ContantXk.TXZDTS);


            try {
                double temp = edosUtil.getRealData(aqtsPoint).getPointValueInDouble();
                aqtsList.add(temp);
            } catch (Exception e) {
                e.printStackTrace();
            }

            try {
                double temp1 = edosUtil.getRealData(czztPoint).getPointValueInDouble();
                if (temp1 == 0) {
                    continue;
                }else {
                    zczzt = 1.0;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            if (wp.getId().contains("_FDC_")) {
                ProBasicPowerstationPoint finalSspjfsPoint = sspjfsPoint;
                sspjfs.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(finalSspjfsPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });

            } else if (wp.getId().contains("_GDC_")) {
                ProBasicPowerstationPoint finalSspjgzdPoint = sspjgzdPoint;
                sspjgzd.updateAndGet(v -> {
                    try {
                        return new Double((double) (v + edosUtil.getRealData(finalSspjgzdPoint).getPointValueInDouble()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return v;
                });
            }
            sszgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            sszglsyz.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszglsyzPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zllgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszllglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zbzgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszbzglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            znhglzs.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(ssznhglzsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zzygl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszzyglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zkygl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszkyglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            zycgl.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sszycglPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });


            gztsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(gztsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cngzmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cnslmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            jxtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(jxtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cnjxmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cnjxmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            djtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(djtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            qxjclmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(qxjclmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            sdtjmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sdtjmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xntsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xntsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdtjmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdtjmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdjclmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdjclmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cwsldwmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cwsldwmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            cwsltqmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(cwsltqmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            lxtsmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(lxtsmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            txzdmx.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(txzdmxPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            djts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(djtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            yxts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(yxtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            gzts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(gztsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            whts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(whtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            xdts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(xdtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            slts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(sltsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
            lxts.updateAndGet(v -> {
                try {
                    return new Double((double) (v + edosUtil.getRealData(lxtsPoint).getPointValueInDouble()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return v;
            });
        }
        if (type.equals("-1")){
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));

        }else if(type.equals("-2")){
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));

        }else {
            resultList.add(PointUtil.createPointData(currentDate,sspjfs.get()/fdcsize,zsspjfsPoint.getNemCode(),zsspjfsPoint.getName()));
            resultList.add(PointUtil.createPointData(currentDate,sspjgzd.get()/gdcsize,zsspjgzdPoint.getNemCode(),zsspjgzdPoint.getName()));
        }

        Double aqts = Collections.max(aqtsList);
//        resultList.add(PointUtil.createPointData(currentDate,aqts,zaqtsPoint.getNemCode(),zaqtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zczzt,zczztPoint.getNemCode(),zczztPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszgl.get(),zsszglPoint.getNemCode(),zsszglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sszglsyz.get(),zsszglsyzPoint.getNemCode(),zsszglsyzPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zllgl.get(),zsszllglPoint.getNemCode(),zsszllglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zbzgl.get(),zsszbzglPoint.getNemCode(),zsszbzglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,znhglzs.get(),zssznhglzsPoint.getNemCode(),zssznhglzsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zzygl.get(),zsszzyglPoint.getNemCode(),zsszzyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zkygl.get(),zsszkyglPoint.getNemCode(),zsszkyglPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,zycgl.get(),zycglPoint.getNemCode(),zycglPoint.getName()));

        resultList.add(PointUtil.createPointData(currentDate,gztsmx.get(),zgztsmxPoint.getNemCode(),zgztsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cngzmx.get(),zcnslmxPoint.getNemCode(),zcnslmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,jxtsmx.get(),zjxtsmxPoint.getNemCode(),zjxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cnjxmx.get(),zcnjxmxPoint.getNemCode(),zcnjxmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djtsmx.get(),zdjtsmxPoint.getNemCode(),zdjtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,qxjclmx.get(),zqxjclmxPoint.getNemCode(),zqxjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,sdtjmx.get(),zsdtjmxPoint.getNemCode(),zsdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xntsmx.get(),zxntsmxPoint.getNemCode(),zxntsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdtjmx.get(),zxdtjmxPoint.getNemCode(),zxdtjmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdjclmx.get(),zxdjclmxPoint.getNemCode(),zxdjclmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsldwmx.get(),zcwsldwmxPoint.getNemCode(),zcwsldwmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,cwsltqmx.get(),zcwsltqmxPoint.getNemCode(),zcwsltqmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxtsmx.get(),zlxtsmxPoint.getNemCode(),zlxtsmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,txzdmx.get(),ztxzdmxPoint.getNemCode(),ztxzdmxPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,djts.get(),zdjtsPoint.getNemCode(),zdjtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,yxts.get(),zyxtsPoint.getNemCode(),zyxtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,gzts.get(),zgztsPoint.getNemCode(),zgztsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,whts.get(),zwhtsPoint.getNemCode(),zwhtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,xdts.get(),zxdtsPoint.getNemCode(),zxdtsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,slts.get(),zsltsPoint.getNemCode(),zsltsPoint.getName()));
        resultList.add(PointUtil.createPointData(currentDate,lxts.get(),zlxtsPoint.getNemCode(),zlxtsPoint.getName()));
    }
}
