New file |
| | |
| | | package com.dy.pipIrrTemp.changeSome; |
| | | |
| | | import com.dy.common.util.DateTime; |
| | | import com.dy.pipIrrGlobal.daoTmp.ChangeMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmLossDay; |
| | | import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth; |
| | | import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear; |
| | | import com.dy.pipIrrGlobal.pojoSt.StLossMonth; |
| | | import com.dy.pipIrrGlobal.pojoSt.StLossYear; |
| | | import com.dy.pipIrrGlobal.voSt.VoIntake; |
| | | 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.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2024/12/24 8:47 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class ChSomeIntakeLossSv { |
| | | |
| | | private ChangeMapper dao; |
| | | @Autowired |
| | | private void setDao(ChangeMapper dao){ |
| | | this.dao = dao; |
| | | } |
| | | |
| | | //////////////////////////////////////// |
| | | // |
| | | // 有关日统计 |
| | | // |
| | | /////////////////////////////////////// |
| | | /** |
| | | * 调整取水口日漏损量统计 |
| | | * @throws Exception |
| | | */ |
| | | public void chIntakeLossDay() throws Exception{ |
| | | List<VoIntake> list = dao.selectAllPrIntakes() ; |
| | | if(list != null && list.size() > 0){ |
| | | for(VoIntake vo : list){ |
| | | List<RmLossDay> adList = dao.selectOneIntakeAllLossDay(vo.getIntakeId()) ; |
| | | if(adList != null && adList.size() > 0){ |
| | | //adList中数据以id升序排列 |
| | | for(RmLossDay ad : adList){ |
| | | if(ad.lossAmount != null && ad.lossAmount > StClientAmountConstant.IntakeLossDayFlag){ |
| | | this.doUpdateOneIntakeLossDay(ad.id, 0.0); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Transactional |
| | | protected int doUpdateOneIntakeLossDay(Long id, Double loss){ |
| | | return dao.updateOneIntakeLossDay(id, loss); |
| | | } |
| | | |
| | | |
| | | |
| | | //////////////////////////////////////// |
| | | // |
| | | // 有关月统计 |
| | | // |
| | | /////////////////////////////////////// |
| | | |
| | | private static final int DealStartYear = 2024 ; |
| | | private static final int DealStartMonth = 8 ; |
| | | |
| | | private static final String endDayOfMonth(int year, int month){ |
| | | if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ |
| | | return "31" ; |
| | | }else{ |
| | | if(month == 2){ |
| | | if(DateTime.isLeapYear(year)){ |
| | | return "29" ; |
| | | }else{ |
| | | return "28" ; |
| | | } |
| | | }else{ |
| | | return "30" ; |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 删除所有取水口月漏损量统计 |
| | | * @throws Exception |
| | | */ |
| | | @Transactional |
| | | public void deleteAllIntakeLossMonth(){ |
| | | dao.deleteAllIntakeLossMonth(); |
| | | } |
| | | |
| | | /** |
| | | * 统计取水口月漏损量 |
| | | * @throws Exception |
| | | */ |
| | | public void statisticsIntakeLossMonth() throws Exception{ |
| | | int nowYear = Integer.parseInt(DateTime.yyyy()) ; |
| | | int nowMonth = Integer.parseInt(DateTime.MM()) ; |
| | | Date startDt ; |
| | | Date endDt ; |
| | | List<StLossMonth> list ; |
| | | for(int year = DealStartYear; year <= nowYear; year ++){ |
| | | list = null ; |
| | | if(year < nowYear){ |
| | | for(int month = 1 ; month <= 12 ; month ++){ |
| | | startDt = DateTime.dateFrom_yyyy_MM_dd(year + "-" + month + "-01") ; |
| | | endDt = DateTime.dateFrom_yyyy_MM_dd(year + "-" + month + "-" + endDayOfMonth(year, month)) ; |
| | | list = dao.statisticAllIntakeLossMonthFromLossDay(startDt, endDt) ; |
| | | this.doStatisticsIntakeLossMonth(year, month, list) ; |
| | | } |
| | | }else{ |
| | | for(int month = 1 ; month <= nowMonth ; month ++){ |
| | | startDt = DateTime.dateFrom_yyyy_MM_dd(year + "-" + month + "-01") ; |
| | | endDt = DateTime.dateFrom_yyyy_MM_dd(year + "-" + month + "-" + endDayOfMonth(year, month)) ; |
| | | list = dao.statisticAllIntakeLossMonthFromLossDay(startDt, endDt) ; |
| | | this.doStatisticsIntakeLossMonth(year, month, list) ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | @Transactional |
| | | protected void doStatisticsIntakeLossMonth(int year, int month, List<StLossMonth> list) throws Exception{ |
| | | if(list != null && list.size() > 0){ |
| | | for(StLossMonth po : list){ |
| | | po.year = year ; |
| | | po.month = month ; |
| | | dao.saveOneIntakeLossMonth(po) ; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //////////////////////////////////////// |
| | | // |
| | | // 有关年统计 |
| | | // |
| | | /////////////////////////////////////// |
| | | /** |
| | | * 删除所有取水口年漏损量统计 |
| | | * @throws Exception |
| | | */ |
| | | @Transactional |
| | | public void deleteAllIntakeLossYear(){ |
| | | dao.deleteAllIntakeLossYear(); |
| | | } |
| | | |
| | | /** |
| | | * 统计取水口月漏损量 |
| | | * @throws Exception |
| | | */ |
| | | public void statisticsIntakeLossYear() throws Exception{ |
| | | int nowYear = Integer.parseInt(DateTime.yyyy()) ; |
| | | Date startDt ; |
| | | Date endDt ; |
| | | List<StLossYear> list ; |
| | | for(int year = DealStartYear; year <= nowYear; year ++){ |
| | | list = null ; |
| | | startDt = DateTime.dateFrom_yyyy_MM_dd(year + "-01-01") ; |
| | | endDt = DateTime.dateFrom_yyyy_MM_dd(year + "-12-31") ; |
| | | list = dao.statisticAllIntakeLossYearFromLossDay(startDt, endDt) ; |
| | | this.doStatisticsIntakeLossYear(year, list) ; |
| | | } |
| | | } |
| | | @Transactional |
| | | protected void doStatisticsIntakeLossYear(int year, List<StLossYear> list) throws Exception{ |
| | | if(list != null && list.size() > 0){ |
| | | for(StLossYear po : list){ |
| | | po.year = year ; |
| | | dao.saveOneIntakeLossYear(po) ; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |