package com.tofly.xrtygis.custom.service.impl;

import com.tofly.xrtygis.custom.mapper.LscreenMapper;
import com.tofly.xrtygis.custom.service.LscreenService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
@AllArgsConstructor
@Slf4j
public class LscreenServiceImpl implements LscreenService {

    @Autowired
    private LscreenMapper lscreenMapper;

//    @Autowired
//    private YxdbCustomerRecordService yxdbCustomerRecordService;
//
//    @Override
//    public  Map<String,Object> getUseWater() {
//       String year=LocalDate.now().getYear()+"";
//       String lastYear=LocalDate.now().getYear()-1+"";
//        return lscreenMapper.getUseWater(year,lastYear);
//    }
//
//    @Override
//    public List<Map<String, Object>> getUserCount() {
//           List< Map<String, Object>> list=new ArrayList<>();
//           Date now=new Date();
//           String formatter="yyyyMM";
//         for (Integer i=1;i<=12;i++){
//             String yearAndMonth=getYearAndMonth(now,-i,formatter);
//             Map<String, Object> map=lscreenMapper.getUserCount(yearAndMonth);
//             if(map==null){
//                 map=new HashMap<>();
//             }
//             map.put("cwrq",yearAndMonth);
//
//             list.add(map);
//         }
//
//        return list;
//    }
//
//    @Override
//    public List<Map<String, Object>> getUserCount(String startMonth,String endMonth) {
//        List< Map<String, Object>> list=new ArrayList<>();
//
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//            Calendar calendar=Calendar.getInstance();
//            Date endTime=calendar.getTime();
//            startMonth=CalendarHelper.getYearAndMonth(endTime,-12,"yyyyMM");
//            endMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//
//        }
//
//       List<String> listDate=CalendarHelper.getMonthBetweenDate(startMonth,endMonth,"");
//       listDate.forEach(item->{
//         Map<String, Object> vo=lscreenMapper.getUserCount(item);
//         if(vo==null){
//             vo=new HashMap<>();
//         }
//         vo.put("cwrq",item);
//         list.add(vo);
//     });
//
//        return list;
//    }
//
//    @Override
//    public List<LargeUseWaterVo> getLargeUseWater(Integer topNum) {
//        return lscreenMapper.getLargeUseWater(topNum);
//    }
//
//
//
//    public List<Map<String, Object>> getUserYsXzAndMoney(String startMonth,String endMonth) {
//       return lscreenMapper.getUserYsXzAndMoney(startMonth,endMonth);
//    }
//
//    @Override
//    public Map<String, Object> getLastSfQf() {
//        return lscreenMapper.getLastSfQf();
//    }
//
//
//
//    @Override
//    public List<Map<String, Object>> GetMeterReadingRate(String startMonth,String endMonth) {
//        List<Map<String ,Object>> list=new ArrayList<>();
//         //默认取今年的数据
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//           Integer year= LocalDate.now().getYear();
//            startMonth=year+"01";
//            endMonth=year+"12";
//
//        }
//
//           List<String> listRq=CalendarHelper.getMonthBetweenDate(startMonth,endMonth,"");
//        //得到开始日期和结束日期之间的月份
//            listRq.forEach(a->{
//            Map<String ,Object>  map=lscreenMapper.GetMeterReadingRate(a);
//            if(map==null){
//                map=new HashMap<>();
//
//            }
//            map.put("cwrq",a);
//            list.add(map);
//        });
//
//       return list;
//    }
//
//
//    @Override
//    public List<Map<String, Object>> getQf3Data() {
//        //欠费超过3月数据统计
//        List<Map<String ,Object>> list=new ArrayList<>();
//        Date now=new Date();
//        String formatter="yyyyMM";
//        for (Integer i=0;i<=11;i++){
//            String yearAndMonth=getYearAndMonth(now,-i,formatter);
//            String yearAnd3Month=getYearAndMonth(now,-(i+3),formatter);
//            Map<String ,Object>  map=lscreenMapper.getQf3Data(yearAnd3Month);
//            if(map==null){
//                map=new HashMap<>();
//            }
//            map.put("cwrq",yearAndMonth);
//            list.add(map);
//        }
//        return list;
//    }
//    @Override
//    public List<Map<String, Object>> getQfData(String startMonth,String endMonth) {
//
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//            Calendar calendar=Calendar.getInstance();
//            Date endTime=calendar.getTime();
//            startMonth=CalendarHelper.getYearAndMonth(endTime,-12,"yyyyMM");
//            endMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//
//        }
//        //欠费超过3月数据统计
//        return lscreenMapper.getQfData(startMonth,endMonth);
//
//    }
//
//    @Override
//    public List<Map<String, Object>> getNearNumber() {
//        Integer startYear=LocalDate.now().getYear()-1;
//        Integer endYear=LocalDate.now().getYear();
//        return lscreenMapper.getNearNumber(startYear,endYear);
//
//    }
//
//    @Override
//    public List<CollectionRateVo> GetCollectionRate() {
//
//        Integer startYear=LocalDate.now().getYear()-1;
//        Integer endYear=LocalDate.now().getYear();
//        List<CollectionRateVo> list=lscreenMapper.GetCollectionRate(startYear,endYear);
//        if(list!=null && list.size()>0){
//            list.forEach(a->{
//                if(a.getZje()==0F){
//                    a.setCollectionrate(0F);
//                }else{
//                    float   cc  =  a.getSfje()/a.getZje();
//                    float  collectionRate   =  (float)(Math.round(cc*10000))/10000;
//                    a.setCollectionrate(collectionRate);
//                }
//            });
//        }
//
//        return list;
//    }
//
//
//    @Override
//    public List<Map<String, Object>> getNearPay() {
//        //去年，今年收费金额统计
//        Integer startYear=LocalDate.now().getYear()-1;
//        Integer endYear=LocalDate.now().getYear();
//        return lscreenMapper.getNearPay(startYear,endYear);
//    }
//
//
//    @Override
//    public List<Map<String, Object>> getqdPay(String startMonth,String endMonth) {
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//            Calendar calendar=Calendar.getInstance();
//            calendar.add(Calendar.MONTH, -1);
//            Date endTime=calendar.getTime();
//            startMonth=CalendarHelper.getYearAndMonth(endTime,-12,"yyyyMM");
//            endMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//
//        }
//
//        return lscreenMapper.getqdPay(startMonth,endMonth);
//    }
//
//    @Override
//    public boolean saveCustomerData(String recordMonth) {
//        List<String> list=Arrays.asList(recordMonth.split(","));
//        list.forEach(item->yxdbCustomerRecordService.saveCustomerData(item));
//        return true;
//    }
//
//    @Override
//    public List<Map<String, Object>> getUserWaterType() {
//        return lscreenMapper.getUserWaterTypeNew();
//
//
//
//    }
//
//    @Override
//    public List<Map<String, Object>> getSalesWaterTotal(String startMonth,String endMonth) {
//
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//            Calendar calendar=Calendar.getInstance();
//            calendar.add(Calendar.MONTH, -1);
//            Date endTime=calendar.getTime();
//            endMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//            startMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//        }
//
//        return lscreenMapper.getSalesWaterTotal(startMonth,endMonth);
//    }
//
//    @Override
//    public Map<String, Object> getPayInfo() {
//       return lscreenMapper.getPayInfo();
//    }
//
//    @Override
//    public List<Map<String, Object>> getPayMoneyInfo() {
//        //去年，今年收费金额统计
//        Integer startYear=LocalDate.now().getYear()-1;
//        Integer endYear=LocalDate.now().getYear();
//         return lscreenMapper.getPayMoneyInfo(startYear,endYear);
//    }
//
//    @Override
//    public List<Map<String, Object>> getPayUserInfo() {
//        return lscreenMapper.getPayUserInfo();
//    }
//
//    @Override
//    public List<Map<String, Object>> getWaterType() {
//       return  lscreenMapper.getWaterType();
//    }
//    @Override
//    public List<Map<String, Object>> getSalesWaterCount(String  startMonth,String endMonth) {
//        //近12月生产，售水量统计
//        List<Map<String ,Object>> list=new ArrayList<>();
//
//        if(!StringUtil.isNotEmpty(startMonth) && !StringUtil.isNotEmpty(endMonth)){
//            Calendar calendar=Calendar.getInstance();
//            calendar.add(Calendar.MONTH, -1);
//            Date endTime=calendar.getTime();
//            startMonth=CalendarHelper.getYearAndMonth(endTime,-12,"yyyyMM");
//            endMonth=CalendarHelper.getFormatDate(endTime,"yyyyMM");
//
//        }
//
//            List<String> list_rq=CalendarHelper.getMonthBetweenDate(startMonth,endMonth,"");
//
//        list_rq.forEach(a->{
//            Map<String ,Object>  map=lscreenMapper.getSalesWaterCount(a);
//            if(map==null){
//                map=new HashMap<>();
//            }
//            map.put("cwrq",a);
//            list.add(map);
//        });
//
//        return list;
//
//    }
//
//    @Override
//    public Map<String, Object> getLastMonthSalesWater() {
//        //上月生产，售水量统计
//        Date now=new Date();
//        String formatter="yyyyMM";
//       String yearAndMonth=getYearAndMonth(now,-1,formatter);
//       return lscreenMapper.getSalesWaterCount(yearAndMonth);
//
//    }

    @Override
    public Map<String, Object> getUserAndMoneyReport() {
        return lscreenMapper.getUserAndMoneyReport();
    }

//    public String getYearAndMonth(Date time, Integer num,String formatter){//SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//Date date = format.parse(time);
//
//        Calendar calendar=Calendar.getInstance();
//
//        calendar.setTime(time);
//
//        calendar.add(Calendar.MONTH, num);
//
//        Date newTime=calendar.getTime();
//        SimpleDateFormat sdf = new SimpleDateFormat(formatter);
//        String formatDate = sdf.format(newTime);
//        return formatDate;
//
//    }

}
