pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -484,6 +484,12 @@ /** * ä¸¤ä¸ªæ¥æç¸å·®å¤©æ° */ public static long daysBetweenyyyy_MM_dd(Date yyyy_MM_dd_1 , Date yyyy_MM_dd_2)throws Exception{ return ((((yyyy_MM_dd_1.getTime() - yyyy_MM_dd_2.getTime())/1000)/60)/60)/24 ; } /** * ä¸¤ä¸ªæ¥æç¸å·®å¤©æ° */ public static long daysBetweenyyyyMMdd(String yyyyMMdd_1 , String yyyyMMdd_2)throws Exception{ return ((((dateFrom_yyyy_MM_dd(yyyyMMdd_1).getTime()-dateFrom_yyyy_MM_dd(yyyyMMdd_2).getTime())/1000)/60)/60)/24 ; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoTmp/ChangeMapper.java
New file @@ -0,0 +1,88 @@ package com.dy.pipIrrGlobal.daoTmp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay; import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth; import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear; import com.dy.pipIrrGlobal.voSt.VoIntake; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; /** * @Author: liurunyu * @Date: 2024/12/14 09:27 * @Description */ @Mapper public interface ChangeMapper extends BaseMapper<Object> { /** * æ¥è¯¢å ¨é¨åæ°´å£ * * @return å®ä½éå */ List<VoIntake> selectAllPrIntakes(); /** * æ¥è¯¢ä¸ä¸ªåæ°´å£çæ¥ç¨æ°´éç»è®¡è®°å½ * * @return å®ä½éå */ List<RmIntakeAmountDay> selectOneIntakeAllAmountDay(@Param("intakeId")Long intakeId); /** * æ´æ°ä¸ä¸ªåæ°´å£çæ¥ç¨æ°´éç»è®¡ * * @return å½±åå®ä½æ° */ int updateOneIntakeAmountDay(@Param("id")Long id, @Param("amount")Double amount); /** * å 餿æåæ°´å£çæç¨æ°´éç»è®¡ * @return å½±åå®ä½æ° */ int deleteAllIntakeAmountMonth(); /** * ç»è®¡ææåæ°´å£çæç¨æ°´é * @return å®ä½éå */ List<StIntakeAmountMonth> statisticAllIntakeAmountMonthFromAmountDay(@Param("startDt")Date startDt, @Param("endDt")Date endDt); /** * ä¿ååæ°´å£çæç¨æ°´éç»è®¡ * @return å½±åå®ä½æ° */ int saveOneIntakeAmountMonth(StIntakeAmountMonth pojo); /** * å 餿æåæ°´å£çå¹´ç¨æ°´éç»è®¡ * @return å½±åå®ä½æ° */ int deleteAllIntakeAmountYear(); /** * ç»è®¡ææåæ°´å£çå¹´ç¨æ°´é * @return å®ä½éå */ List<StIntakeAmountYear> statisticAllIntakeAmountYearFromAmountDay(@Param("startDt")Date startDt, @Param("endDt")Date endDt); /** * ä¿ååæ°´å£çæç¨æ°´éç»è®¡ * @return å½±åå®ä½æ° */ int saveOneIntakeAmountYear(StIntakeAmountYear pojo); } pipIrr-platform/pipIrr-global/src/main/resources/application-global(spɳÅÌϵͳ).yml
@@ -137,7 +137,13 @@ webPort: 8089 actutorPort: 9089 idSuffix: 11 # 2023-10-24æ°å¢ï¼ç¨äºæ§è¡ä¸´æ¶ä»»å¡ï¼ä¾å¦å 餿°æ®åºä¸ä¸äºåºéçæ°æ® temp: webPort: 8099 actutorPort: 9099 idSuffix: 98 # åå¸å¼webæä»¶ç³»ç» file: idSuffix: 99 file1: pipIrr-platform/pipIrr-global/src/main/resources/application-global(test²âÊÔϵͳ).yml
@@ -137,7 +137,13 @@ webPort: 8089 actutorPort: 9089 idSuffix: 11 # 2023-10-24æ°å¢ï¼ç¨äºæ§è¡ä¸´æ¶ä»»å¡ï¼ä¾å¦å 餿°æ®åºä¸ä¸äºåºéçæ°æ® temp: webPort: 8099 actutorPort: 9099 idSuffix: 98 # åå¸å¼webæä»¶ç³»ç» file: idSuffix: 99 file1: pipIrr-platform/pipIrr-global/src/main/resources/application-global(ymԪıϵͳ).yml
@@ -137,7 +137,13 @@ webPort: 8089 actutorPort: 9089 idSuffix: 11 # 2023-10-24æ°å¢ï¼ç¨äºæ§è¡ä¸´æ¶ä»»å¡ï¼ä¾å¦å 餿°æ®åºä¸ä¸äºåºéçæ°æ® temp: webPort: 8099 actutorPort: 9099 idSuffix: 98 # åå¸å¼webæä»¶ç³»ç» file: idSuffix: 99 file1: pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -80,8 +80,6 @@ global: dev: false #æ¯å¦å¼åé¶æ®µï¼trueæfalse dsName: ym #å¼åé¶æ®µï¼è®¾ç½®ä¸´æ¶çæ°æ®åºåç§° sql: print: true #æ¯å¦æå°SQLè¯å¥ï¼trueæfalse nginx: webPort: 54321 mw: pipIrr-platform/pipIrr-global/src/main/resources/mapper/Temp4ChangeMapper.xml
New file @@ -0,0 +1,93 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dy.pipIrrGlobal.daoTmp.ChangeMapper"> <!-- æ¥è¯¢åºææåæ°´å£ --> <select id="selectAllPrIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake"> select id as intakeId, name as intakeNum from pr_intake order by id ASC </select> <!-- åæ°´å£åæ°´éæ¥ç»è®¡ç¸å ³, æ¤SQLä¸ç âorder by id ASC âä¸å¯ä¿®æ¹ --> <select id="selectOneIntakeAllAmountDay" resultType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> select id as id, intake_id as intakeId , dt as dt, amount as amount, total_amount_last as totalAmountLast from rm_intake_amount_day where intake_id = #{intakeId} order by id ASC </select> <!-- ä¿®æ¹åæ°´å£åæ°´éæ¥ç»è®¡ --> <update id="updateOneIntakeAmountDay" > update rm_intake_amount_day set amount = #{amount, jdbcType=FLOAT} where id = #{id, jdbcType=BIGINT} </update> <delete id="deleteAllIntakeAmountMonth"> delete from st_intake_amount_month </delete> <!-- --> <select id="statisticAllIntakeAmountMonthFromAmountDay" resultType="com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth"> select intake_id as intakeId , sum(amount) as amount from rm_intake_amount_day where dt <![CDATA[>=]]> #{startDt, jdbcType=DATE} and dt <![CDATA[<=]]> #{endDt, jdbcType=DATE} group by intake_id </select> <insert id="saveOneIntakeAmountMonth" parameterType="com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth"> <!--@mbg.generated--> insert into st_intake_amount_month ( id, intake_id, year, month, amount ) values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, #{month,jdbcType=INTEGER}, #{amount,jdbcType=FLOAT} ) </insert> <delete id="deleteAllIntakeAmountYear"> delete from st_intake_amount_year </delete> <!-- --> <select id="statisticAllIntakeAmountYearFromAmountDay" resultType="com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear"> select intake_id as intakeId , sum(amount) as amount from rm_intake_amount_day where dt <![CDATA[>=]]> #{startDt, jdbcType=DATE} and dt <![CDATA[<=]]> #{endDt, jdbcType=DATE} group by intake_id </select> <insert id="saveOneIntakeAmountYear" parameterType="com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear"> <!--@mbg.generated--> insert into st_intake_amount_year ( id, intake_id, year, amount ) values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, #{amount,jdbcType=FLOAT} ) </insert> </mapper> pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(spɳÅÌ).xml
@@ -78,6 +78,7 @@ notifyTimesAfterOver="1" /> <!-- æ¯ææ¨¡å ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test²âÊÔ).xml
@@ -78,6 +78,7 @@ notifyTimesAfterOver="1" /> <!-- æ¯ææ¨¡å ç工使¶é¿çº¿ç¨æ± ï¼çº¿ç¨è´è´£ç¨æ¶è¾ççå·¥ä½ä»»å¡ pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeCtrl.java
New file @@ -0,0 +1,65 @@ package com.dy.pipIrrTemp.changeSome; import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Author: liurunyu * @Date: 2024/12/14 9:22 * @Description */ @Slf4j @RestController @RequestMapping(path = "chSome") @SuppressWarnings("unchecked")//javaçæ¬è¶é«ï¼å¯¹æ³å约æè¶ä¸¥ï¼æä»¥é ç½®SuppressWarnings("unchecked") public class ChSomeCtrl { private ChSomeIntakeAmountSv intakeAmountSv; @Autowired private void setSv(ChSomeIntakeAmountSv sv) { this.intakeAmountSv = sv; } /** * ä¿®æ¹ä¸äºåæ°´å£åæ°´éæ¥ç»è®¡ * @return */ @GetMapping(path = "changeSomeIntakeDayAmount") @SsoAop() public BaseResponse<Boolean> changeSomeIntakeDayAmount() throws Exception{ this.intakeAmountSv.chIntakeAmountDay(); return BaseResponseUtils.buildSuccess(true); } /** * éæ°ç»è®¡åæ°´å£æåæ°´é * @return */ @GetMapping(path = "reStatisticsAllIntakeMonthAmount") @SsoAop() public BaseResponse<Boolean> reStatisticsAllIntakeMonthAmount() throws Exception{ this.intakeAmountSv.deleteAllIntakeAmountMonth(); this.intakeAmountSv.statisticsIntakeAmountMonth(); return BaseResponseUtils.buildSuccess(true); } /** * éæ°ç»è®¡åæ°´å£æåæ°´é * @return */ @GetMapping(path = "reStatisticsAllIntakeYearAmount") @SsoAop() public BaseResponse<Boolean> reStatisticsAllIntakeYearAmount() throws Exception{ this.intakeAmountSv.deleteAllIntakeAmountYear(); this.intakeAmountSv.statisticsIntakeAmountYear(); return BaseResponseUtils.buildSuccess(true); } } pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/changeSome/ChSomeIntakeAmountSv.java
New file @@ -0,0 +1,250 @@ 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.pojoSt.StIntakeAmountMonth; import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear; import com.dy.pipIrrGlobal.voSt.VoIntake; 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/14 9:25 * @Description */ @Slf4j @Service public class ChSomeIntakeAmountSv { private ChangeMapper dao; private static final int IntakeAmountDayFlag = 800 ;//2024-12-14ç»è®¡å è°æ°æ®åºå®æ¶æ°æ®ï¼åç°å¤§äº800çæ£ç¡®çæ°æ®ä¸åå¨ï¼èå°äº800çåºæ¬ä¸ºæ£ç¡®æ°æ® @Autowired private void setDao(ChangeMapper dao){ this.dao = dao; } //////////////////////////////////////// // // æå ³æ¥ç»è®¡ // /////////////////////////////////////// /** * è°æ´åæ°´å£æ¥åæ°´éç»è®¡ * @throws Exception */ public void chIntakeAmountDay() throws Exception{ RmIntakeAmountDay lastAd = null ; List<VoIntake> list = dao.selectAllPrIntakes() ; if(list != null && list.size() > 0){ for(VoIntake vo : list){ lastAd = null ; List<RmIntakeAmountDay> adList = dao.selectOneIntakeAllAmountDay(vo.getIntakeId()) ; if(adList != null && adList.size() > 0){ //adList䏿°æ®ä»¥idååºæå for(RmIntakeAmountDay ad : adList){ if(lastAd == null){ lastAd = ad ; if(lastAd.amount != null && lastAd.amount > IntakeAmountDayFlag){ this.doUpdateOneIntakeAmountDay(lastAd.id, 0.0); } }else{ if(ad.amount != null && ad.amount > IntakeAmountDayFlag){ if(ad.totalAmountLast != null && lastAd.totalAmountLast != null){ //éæ°è®¡ç®æ¥åæ°´é ad.amount = ad.totalAmountLast - lastAd.totalAmountLast; if(ad.amount < 0){//è®¡ç®æ¥åæ°´éåï¼å¯è½ä¼æè¿ç§æ åµåçï¼è´å¼ï¼ log.info("åºç°è°æ´åçæ¥åæ°´éåºç°è´å¼" + ad.amount + "æ åµï¼æ°æ®id=" + ad.id + "ï¼åæ°´å£id=" + ad.intakeId + "ï¼æ¥æ=" + ad.dt + "ï¼è®¾ç½®æ°´é=0.0" ); ad.amount = 0.0 ; } if(ad.amount > IntakeAmountDayFlag){ //è®¡ç®æ¥åæ°´éåï¼ä»å¤§äºIntakeAmountDayFlag log.info("åºç°è°æ´åçæ¥åæ°´éä»å¤§äº" + IntakeAmountDayFlag + "çæ åµï¼æ°æ®id=" + ad.id + "ï¼åæ°´å£id=" + ad.intakeId + "ï¼æ¥æ=" + ad.dt + ad.amount ); if(ad.dt != null && lastAd.dt != null){ if(DateTime.daysBetweenyyyy_MM_dd(ad.dt, lastAd.dt) == 1){ //åªç¸å·®ä¸å¤© log.info("åºç°ç¸å·®ä¸å¤©ä½æ¥åæ°´é大äº" + IntakeAmountDayFlag + "çæ åµï¼æ°æ®id=" + ad.id + "ï¼åæ°´å£id=" + ad.intakeId + "ï¼æ¥æ=" + ad.dt + "ï¼è®¾ç½®æ°´é=0.0" + "ï¼è®¾ç½®åæ°´é= " + ad.amount ); ad.amount = 0.0 ; }else{ //å·²ç»ä¿®æ¹åçæ°å¼ä»ç¶å¤§äºIntakeAmountDayFlagï¼è¯´ææ¯å¤§æ¥æªä¸æ¥æ°æ®èç§¯ç´¯ä¸æ¥,å¯ä»¥å¤§äºIntakeAmountDayFlag //ad.amount = ad.amount ; log.info("åºç°ç¸å·®å¤å¤©æ¥åæ°´é大äº" + IntakeAmountDayFlag + "çæ åµï¼æ°æ®id=" + ad.id + "ï¼åæ°´å£id=" + ad.intakeId + "ï¼æ¥æ=" + ad.dt + "ï¼æ°´éä¿æä¸å=" + ad.amount ); } } } }else{ log.info("åºç°ç¸å·®å¤å¤©æ¥åæ°´é大äº" + IntakeAmountDayFlag + "å¹¶ä¸å±æ§totalAmountLast为nullçæ åµï¼æ°æ®id=" + ad.id + "ï¼åæ°´å£id=" + ad.intakeId + "ï¼æ¥æ=" + ad.dt + "ï¼è®¾ç½®æ°´é=0.0" + "ï¼è®¾ç½®åæ°´é= " + ad.amount ); ad.amount = 0.0 ; } this.doUpdateOneIntakeAmountDay(ad.id, ad.amount); } } lastAd = ad ; } } } } } @Transactional int doUpdateOneIntakeAmountDay(Long id, Double amount){ return dao.updateOneIntakeAmountDay(id, amount); } //////////////////////////////////////// // // æå ³æç»è®¡ // /////////////////////////////////////// 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 */ public void deleteAllIntakeAmountMonth(){ dao.deleteAllIntakeAmountMonth(); } /** * ç»è®¡åæ°´å£æåæ°´é * @throws Exception */ public void statisticsIntakeAmountMonth() throws Exception{ int nowYear = Integer.parseInt(DateTime.yyyy()) ; int nowMonth = Integer.parseInt(DateTime.mm()) ; Date startDt ; Date endDt ; List<StIntakeAmountMonth> list ; for(int year = DealStartYear; year <= nowYear; year ++){ list = null ; if(year < nowYear){ for(int month = 1 ; month <= 12 ; month ++){ startDt = DateTime.dateFrom_MM_dd(year + "-" + month + "-01") ; endDt = DateTime.dateFrom_MM_dd(year + "-" + month + endDayOfMonth(year, month)) ; list = dao.statisticAllIntakeAmountMonthFromAmountDay(startDt, endDt) ; this.doStatisticsIntakeAmountMonth(year, month, list) ; } }else{ for(int month = 1 ; month <= nowMonth ; month ++){ startDt = DateTime.dateFrom_MM_dd(year + "-" + month + "-01") ; endDt = DateTime.dateFrom_MM_dd(year + "-" + month + endDayOfMonth(year, month)) ; list = dao.statisticAllIntakeAmountMonthFromAmountDay(startDt, endDt) ; this.doStatisticsIntakeAmountMonth(year, month, list) ; } } } } private void doStatisticsIntakeAmountMonth(int year, int month, List<StIntakeAmountMonth> list) throws Exception{ if(list != null && list.size() > 0){ for(StIntakeAmountMonth po : list){ po.year = year ; po.month = month ; dao.saveOneIntakeAmountMonth(po) ; } } } //////////////////////////////////////// // // æå ³å¹´ç»è®¡ // /////////////////////////////////////// /** * å 餿æåæ°´å£å¹´åæ°´éç»è®¡ * @throws Exception */ public void deleteAllIntakeAmountYear(){ dao.deleteAllIntakeAmountYear(); } /** * ç»è®¡åæ°´å£æåæ°´é * @throws Exception */ public void statisticsIntakeAmountYear() throws Exception{ int nowYear = Integer.parseInt(DateTime.yyyy()) ; Date startDt ; Date endDt ; List<StIntakeAmountYear> list ; for(int year = DealStartYear; year <= nowYear; year ++){ list = null ; startDt = DateTime.dateFrom_MM_dd(year + "-01-01") ; endDt = DateTime.dateFrom_MM_dd(year + "-12-31") ; list = dao.statisticAllIntakeAmountYearFromAmountDay(startDt, endDt) ; this.doStatisticsIntakeAmountYear(year, list) ; } } private void doStatisticsIntakeAmountYear(int year, List<StIntakeAmountYear> list) throws Exception{ if(list != null && list.size() > 0){ for(StIntakeAmountYear po : list){ po.year = year ; dao.saveOneIntakeAmountYear(po) ; } } } } pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/log4j2.yml
@@ -1,6 +1,6 @@ Configuration: #statusï¼è¿ä¸ªç¨äºè®¾ç½®log4j2èªèº«å é¨çä¿¡æ¯è¾åºï¼å¯ä»¥ä¸è®¾ç½®ï¼å½è®¾ç½®ætraceæ¶ï¼ä½ ä¼çå°log4j2å é¨åç§è¯¦ç»è¾åºï¼å¯ä»¥è®¾ç½®æOff(å ³é)æError(åªè¾åºé误信æ¯) status: Error status: Info Properties: # å®ä¹å ¨å±åé Property: pipIrr-platform/pipIrr-web/pipIrr-web-temp/˵Ã÷.txt
@@ -1,2 +1,17 @@ è¿ä¸ªtempæ¨¡åæ§è¡ä¸´æ¶ä»»å¡ï¼ä¾å¦å 餿°æ®åºä¸ä¸äºéè¯¯æ°æ®ç ç³»ç»æ£å¼è¿è¡ä¸éè¦è¿ä¸ªæ¨¡å ç³»ç»æ£å¼è¿è¡ä¸éè¦è¿ä¸ªæ¨¡å æ§è¡åè½ï¼ 1ãå é¤ä¸äºæ¼æç»è®¡---é夿°æ® /temp/delSome/deleteSomeStatisticLossAmount 2ãå é¤ä¸äºåæ°´å£ç»è®¡---é夿°æ® /temp/delSome/deleteSomeStatisticIntakeAmount 3ãå é¤ä¸äºåæ·ç»è®¡---é夿°æ® /temp/delSome/deleteSomeStatisticClientAmount 4ãä¿®æ¹ä¸äºåæ°´å£æ¥åæ°´éç»è®¡---å RTUä¸å¤©å æ´ç¹æ¥ä¸ç´¯è®¡æµéé´æåºç°0å¼ï¼ä¸¤æ¬¡ä¸æ¥ç´¯è®¡æµéå·®å¼ä¼äº§çå¤§å¼ /temp/chSome/changeSomeIntakeDayAmount 5ãéæ°ç»è®¡åæ°´å£æåæ°´éï¼æ§è¡åå ³ééä¿¡ä¸é´ä»¶ï¼ /temp/chSome/reStatisticsAllIntakeMonthAmount 6ãéæ°ç»è®¡åæ°´å£æåæ°´éï¼æ§è¡åå ³ééä¿¡ä¸é´ä»¶ï¼ /temp/chSome/reStatisticsAllIntakeYearAmount