package com.pqs9000.serviceimpl.common;

import com.pqs9000.mapper.common.HarmonicMapper;
import com.pqs9000.pojo.common.Harmonic;
import com.pqs9000.pojo.report.Condition;
import com.pqs9000.service.common.HarmonicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

@Service
public class HarmonicServiceImpl implements HarmonicService {
    @Autowired
    private HarmonicMapper harmonicMapper;

    @Override
    public List<List> getHarmonic(long lineId, Date startTime, Date endTime) {
        List<List> lists = new ArrayList<>();
        List<Harmonic> harmonics = harmonicMapper.getHarmonic(lineId, startTime, endTime);
        harmonics.removeAll(Collections.singleton(null));
        if (!harmonics.isEmpty()) {
            for (Harmonic harmonic : harmonics) {
                List<String> str = new ArrayList<>();
                str.add("谐波电压含有率(%)");
                str.add(String.valueOf(harmonic.getV2()));
                str.add(String.valueOf(harmonic.getV3()));
                str.add(String.valueOf(harmonic.getV4()));
                str.add(String.valueOf(harmonic.getV5()));
                str.add(String.valueOf(harmonic.getV6()));
                str.add(String.valueOf(harmonic.getV7()));
                str.add(String.valueOf(harmonic.getV8()));
                str.add(String.valueOf(harmonic.getV9()));
                str.add(String.valueOf(harmonic.getV10()));
                str.add(String.valueOf(harmonic.getV11()));
                str.add(String.valueOf(harmonic.getV12()));
                str.add(String.valueOf(harmonic.getV13()));
                str.add(String.valueOf(harmonic.getV14()));
                str.add(String.valueOf(harmonic.getV15()));
                str.add(String.valueOf(harmonic.getV16()));
                str.add(String.valueOf(harmonic.getV17()));
                str.add(String.valueOf(harmonic.getV18()));
                str.add(String.valueOf(harmonic.getV19()));
                str.add(String.valueOf(harmonic.getV20()));
                str.add(String.valueOf(harmonic.getV21()));
                str.add(String.valueOf(harmonic.getV22()));
                str.add(String.valueOf(harmonic.getV23()));
                str.add(String.valueOf(harmonic.getV24()));
                str.add(String.valueOf(harmonic.getV25()));
                if (harmonic.getV26() == 0 && harmonic.getV27() == 0 && harmonic.getV28() == 0 && harmonic.getV29() == 0 && harmonic.getV30() == 0 && harmonic.getV31() == 0 && harmonic.getV32() == 0 && harmonic.getV33() == 0 && harmonic.getV34() == 0 && harmonic.getV35() == 0 && harmonic.getV36() == 0 && harmonic.getV37() == 0 && harmonic.getV38() == 0 && harmonic.getV39() == 0 && harmonic.getV40() == 0 && harmonic.getV41() == 0 && harmonic.getV42() == 0 && harmonic.getV43() == 0 && harmonic.getV44() == 0 && harmonic.getV45() == 0 && harmonic.getV46() == 0 && harmonic.getV47() == 0 && harmonic.getV48() == 0 && harmonic.getV49() == 0 && harmonic.getV50() == 0) {

                }else{
                    str.add(String.valueOf(harmonic.getV26()));
                    str.add(String.valueOf(harmonic.getV27()));
                    str.add(String.valueOf(harmonic.getV28()));
                    str.add(String.valueOf(harmonic.getV29()));
                    str.add(String.valueOf(harmonic.getV30()));
                    str.add(String.valueOf(harmonic.getV31()));
                    str.add(String.valueOf(harmonic.getV32()));
                    str.add(String.valueOf(harmonic.getV33()));
                    str.add(String.valueOf(harmonic.getV34()));
                    str.add(String.valueOf(harmonic.getV35()));
                    str.add(String.valueOf(harmonic.getV36()));
                    str.add(String.valueOf(harmonic.getV37()));
                    str.add(String.valueOf(harmonic.getV38()));
                    str.add(String.valueOf(harmonic.getV39()));
                    str.add(String.valueOf(harmonic.getV40()));
                    str.add(String.valueOf(harmonic.getV41()));
                    str.add(String.valueOf(harmonic.getV42()));
                    str.add(String.valueOf(harmonic.getV43()));
                    str.add(String.valueOf(harmonic.getV44()));
                    str.add(String.valueOf(harmonic.getV45()));
                    str.add(String.valueOf(harmonic.getV46()));
                    str.add(String.valueOf(harmonic.getV47()));
                    str.add(String.valueOf(harmonic.getV48()));
                    str.add(String.valueOf(harmonic.getV49()));
                    str.add(String.valueOf(harmonic.getV50()));
                }
                lists.add(str);
            }
        } else {
            List<String> str = new ArrayList<>();
            str.add("谐波电压含有率(%)");
            for(int i=0;i<24;i++){
                str.add("/");
            }
            lists.add(str);
        }
        return lists;
    }

    @Override
    public List<List> getoffHarmonic(Condition condition) {
        List<List> lists = new ArrayList<>();

        List<String> str = new ArrayList<>();
        str.add("谐波电压含有率(%)");
        
        for(int i=2;i<51;i++){
        	Float harmonic = harmonicMapper.getoffHarmonic(condition,i);
        	if(harmonic == null){
        		str.add("/");
        	}else{
        		str.add(String.valueOf(harmonic));
        	}
        }
        lists.add(str);
        return lists;
    }
}
