package com.dy.pipIrrTemp.statistics; 
 | 
  
 | 
import com.dy.common.util.DateTime; 
 | 
import com.dy.pipIrrGlobal.daoSt.StClientAmountDayMapper; 
 | 
import com.dy.pipIrrGlobal.daoSt.StClientAmountMonthMapper; 
 | 
import com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth; 
 | 
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics; 
 | 
import com.dy.pipIrrTemp.util.StClientAmountConstant; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2024/12/30 09:52 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class StClientAmountMonthSv { 
 | 
  
 | 
    protected StClientAmountDayMapper stClientAmountDayDao; 
 | 
  
 | 
    protected StClientAmountMonthMapper stClientAmountMonthDao; 
 | 
  
 | 
    @Autowired 
 | 
    private void setDao(StClientAmountDayMapper dao) { 
 | 
        this.stClientAmountDayDao = dao; 
 | 
    } 
 | 
  
 | 
    @Autowired 
 | 
    private void setDao(StClientAmountMonthMapper dao) { 
 | 
        this.stClientAmountMonthDao = dao; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除所有 
 | 
     * @throws Exception 
 | 
     */ 
 | 
    public void deleteAllStClientAmountMonth() throws Exception { 
 | 
        stClientAmountMonthDao.deleteAll() ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 转存农户月取水量 
 | 
     * 
 | 
     * @throws Exception 
 | 
     */ 
 | 
    public void statisticsClientAmountMonth() throws Exception { 
 | 
        //统计到昨天,今天的统计明日零晨定时任务统计 
 | 
        Long curYm = Long.parseLong(DateTime.yyyy_MM().replaceAll("-", "")); 
 | 
        Long atMonth ; 
 | 
        for(int[] ym : StClientAmountConstant.yearMonthGrp) { 
 | 
            atMonth = Long.parseLong(ym[0] + "" + (ym[1] < 10?("0" + ym[1]):ym[1]) ) ; 
 | 
            if(atMonth <= curYm) { 
 | 
                this.doSome(ym[0], ym[1]); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    @Transactional 
 | 
    protected void doSome(Integer statisticsYear, Integer statisticsMonth){ 
 | 
        List<VoClientAmountStatistics> list = stClientAmountDayDao.statisticsByClient(statisticsYear, statisticsMonth) ; 
 | 
        if(list != null && list.size() > 0){ 
 | 
            List<StClientAmountMonth> listOfMonth = stClientAmountMonthDao.selectByYear(statisticsYear) ; 
 | 
            for(VoClientAmountStatistics vo : list){ 
 | 
                StClientAmountMonth po = this.getDataOfClient(listOfMonth, vo.clientId) ; 
 | 
                if(po == null){ 
 | 
                    po = new StClientAmountMonth() ; 
 | 
                    po.clientId = vo.clientId ; 
 | 
                    po.year = statisticsYear ; 
 | 
                } 
 | 
                this.setValue(statisticsMonth, vo, po); 
 | 
                if(po.id == null) { 
 | 
                    stClientAmountMonthDao.insert(po); 
 | 
                }else{ 
 | 
                    stClientAmountMonthDao.updateByPrimaryKeySelective(po) ; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    private StClientAmountMonth getDataOfClient(List<StClientAmountMonth> list, Long clientId){ 
 | 
        if(list != null && list.size() > 0){ 
 | 
            for(StClientAmountMonth vo : list){ 
 | 
                if(vo.clientId.longValue() == clientId.longValue()){ 
 | 
                    //程序逻辑控制上,集合中只有一个对象 
 | 
                    return vo ; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        return null ; 
 | 
    } 
 | 
  
 | 
    private void setValue(Integer statisticsMonth, VoClientAmountStatistics vo, StClientAmountMonth po){ 
 | 
        switch (statisticsMonth) { 
 | 
            case 1: 
 | 
                po.amount1 = vo.amount; 
 | 
                po.money1 = vo.money; 
 | 
                po.times1 = vo.times; 
 | 
                break; 
 | 
            case 2: 
 | 
                po.amount2 = vo.amount; 
 | 
                po.money2 = vo.money; 
 | 
                po.times2 = vo.times; 
 | 
                break; 
 | 
            case 3: 
 | 
                po.amount3 = vo.amount; 
 | 
                po.money3 = vo.money; 
 | 
                po.times3 = vo.times; 
 | 
                break; 
 | 
            case 4: 
 | 
                po.amount4 = vo.amount; 
 | 
                po.money4 = vo.money; 
 | 
                po.times4 = vo.times; 
 | 
                break; 
 | 
            case 5: 
 | 
                po.amount5 = vo.amount; 
 | 
                po.money5 = vo.money; 
 | 
                po.times5 = vo.times; 
 | 
                break; 
 | 
            case 6: 
 | 
                po.amount6 = vo.amount; 
 | 
                po.money6 = vo.money; 
 | 
                po.times6 = vo.times; 
 | 
                break; 
 | 
            case 7: 
 | 
                po.amount7 = vo.amount; 
 | 
                po.money7 = vo.money; 
 | 
                po.times7 = vo.times; 
 | 
                break; 
 | 
            case 8: 
 | 
                po.amount8 = vo.amount; 
 | 
                po.money8 = vo.money; 
 | 
                po.times8 = vo.times; 
 | 
                break; 
 | 
            case 9: 
 | 
                po.amount9 = vo.amount; 
 | 
                po.money9 = vo.money; 
 | 
                po.times9 = vo.times; 
 | 
                break; 
 | 
            case 10: 
 | 
                po.amount10 = vo.amount; 
 | 
                po.money10 = vo.money; 
 | 
                po.times10 = vo.times; 
 | 
                break; 
 | 
            case 11: 
 | 
                po.amount11 = vo.amount; 
 | 
                po.money11 = vo.money; 
 | 
                po.times11 = vo.times; 
 | 
                break; 
 | 
            case 12: 
 | 
                po.amount12 = vo.amount; 
 | 
                po.money12 = vo.money; 
 | 
                po.times12 = vo.times; 
 | 
                break; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |