New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |