From 24f91c6e8b6a5e5be813e0b740dec3d381abe254 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 06 一月 2025 10:56:50 +0800 Subject: [PATCH] 农户用水月统计、年统计查询实现 --- pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 201 insertions(+), 37 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java index 04cdb21..5a61fcf 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java @@ -4,25 +4,22 @@ import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper; import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; -import com.dy.pipIrrGlobal.voSt.VoClient; -import com.dy.pipIrrGlobal.voSt.VoDayClient; -import com.dy.pipIrrGlobal.voSt.VoMonthClient; -import com.dy.pipIrrStatistics.client.qo.AmountSpentQO; -import com.dy.pipIrrStatistics.client.qo.OpenCountQO; -import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO; -import com.dy.pipIrrStatistics.client.qo.WaterDurationQO; -import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO; -import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount; -import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal; -import com.dy.pipIrrGlobal.voSt.VoICCard; +import com.dy.pipIrrGlobal.daoSe.SeClientMapper; +import com.dy.pipIrrGlobal.voSt.*; import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO; +import com.dy.pipIrrStatistics.card.qo.CardUsageQO; import com.dy.pipIrrStatistics.client.qo.*; +import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Calendar; import java.util.List; import java.util.Map; import java.util.Optional; @@ -41,9 +38,10 @@ private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; @Autowired private SeCardOperateMapper seCardOperateMapper; - @Autowired private RmClientAmountDayLastMapper rmClientAmountDayLastMapper; + @Autowired + private SeClientMapper seClientMapper; /** * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍐滄埛 @@ -52,16 +50,14 @@ */ public QueryResultVo<List<VoClient>> getLargeOpenCountClients(OpenCountQO qo) { /** - * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + * 琛ラ綈璧锋鏃堕棿 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); - if(timeStart != null) { + if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; - }else { - timeStart = LocalDate.now() + " 00:00:00"; } - if(timeStop != null) { + if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); @@ -90,16 +86,14 @@ */ public QueryResultVo<List<VoClient>> getSmallOpenCountClients(OpenCountQO qo) { /** - * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + * 琛ラ綈璧锋鏃堕棿 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); - if(timeStart != null) { + if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; - }else { - timeStart = LocalDate.now() + " 00:00:00"; } - if(timeStop != null) { + if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); @@ -128,16 +122,14 @@ */ public QueryResultVo<List<VoClient>> getLargeWaterConsumptionClients(WaterConsumptionQO qo) { /** - * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + * 琛ラ綈璧锋鏃堕棿 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); - if(timeStart != null) { + if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; - }else { - timeStart = LocalDate.now() + " 00:00:00"; } - if(timeStop != null) { + if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); @@ -160,6 +152,42 @@ } /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忎綆浜庢寚瀹氬�肩殑鍐滄埛 + * @param qo + * @return + */ + public QueryResultVo<List<VoClient>> getSmallWaterConsumptionClients(WaterConsumptionQO qo) { + /** + * 琛ラ綈璧锋鏃堕棿 + */ + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart != null && timeStart != "") { + timeStart = timeStart + " 00:00:00"; + } + if(timeStop != null && timeStop != "") { + timeStop = timeStop + " 23:59:59"; + } + qo.setTimeStart(timeStart); + qo.setTimeStop(timeStop); + + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getSmallWaterConsumptionClientsCount(params)).orElse(0L); + + QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallWaterConsumptionClients(params); + return rsVo ; + } + + /** * 鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍐滄埛 * @param qo * @return @@ -170,12 +198,10 @@ */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); - if(timeStart != null) { + if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; - }else { - timeStart = LocalDate.now() + " 00:00:00"; } - if(timeStop != null) { + if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); @@ -198,6 +224,42 @@ } /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦浣庝簬鎸囧畾鍊肩殑鍐滄埛 + * @param qo + * @return + */ + public QueryResultVo<List<VoClient>> getSmallAmountSpentClients(AmountSpentQO qo) { + /** + * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + */ + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart != null && timeStart != "") { + timeStart = timeStart + " 00:00:00"; + } + if(timeStop != null && timeStop != "") { + timeStop = timeStop + " 23:59:59"; + } + qo.setTimeStart(timeStart); + qo.setTimeStop(timeStop); + + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getSmallAmountSpentClientsCount(params)).orElse(0L); + + QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallAmountSpentClients(params); + return rsVo ; + } + + /** * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍐滄埛 * @param qo * @return @@ -208,12 +270,10 @@ */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); - if(timeStart != null) { + if(timeStart != null && timeStart != "") { timeStart = timeStart + " 00:00:00"; - }else { - timeStart = LocalDate.now() + " 00:00:00"; } - if(timeStop != null) { + if(timeStop != null && timeStop != "") { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); @@ -232,6 +292,42 @@ rsVo.calculateAndSet(itemTotal, params); rsVo.obj = rmOpenCloseValveHistoryMapper.getLargeWaterDurationClients(params); + return rsVo ; + } + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱浣庝簬鎸囧畾鍊肩殑鍐滄埛 + * @param qo + * @return + */ + public QueryResultVo<List<VoClient>> getSmallWaterDurationClients(WaterDurationQO qo) { + /** + * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + */ + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart != null && timeStart != "") { + timeStart = timeStart + " 00:00:00"; + } + if(timeStop != null && timeStop != "") { + timeStop = timeStop + " 23:59:59"; + } + qo.setTimeStart(timeStart); + qo.setTimeStop(timeStop); + + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getSmallWaterDurationClientsCount(params)).orElse(0L); + + QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallWaterDurationClients(params); return rsVo ; } @@ -350,8 +446,12 @@ * @return */ public QueryResultVo<List<VoDayClient>> getDayAmountAndMoney(ClientAmountQO qo) throws ParseException { - Integer year = qo.getYearMonth().getYear(); - Integer month = qo.getYearMonth().getMonthValue(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String yearMonth = qo.getYearMonth(); + yearMonth = yearMonth + "-01"; + yearMonth = dateFormat.format(dateFormat.parse(yearMonth)); + Integer year = Integer.parseInt(yearMonth.substring(0,4)); + Integer month = Integer.parseInt(yearMonth.substring(5,7)); qo.setYear(year); qo.setMonth(month); @@ -396,4 +496,68 @@ rsVo.obj = rmClientAmountDayLastMapper.getMonthAmountAndMoney(params); return rsVo ; } + + /** + * 鏈�杩戞湭鍏呭�肩殑鍐滄埛 + * @param qo + * @return + */ + public QueryResultVo<List<VoClient>> getNotRechargeLastClients(CommonQO qo) { + String timeStart = qo.getTimeStart(); + if (timeStart != null && timeStart != ""){ + timeStart = timeStart + " 00:00:00"; + qo.setTimeStart(timeStart); + } + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(rmClientAmountDayLastMapper.getNotRechargeLastClientsCount(params)).orElse(0L); + + QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmClientAmountDayLastMapper.getNotRechargeLastClients(params); + return rsVo ; + } + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰� + * @param qo + * @return + */ + public QueryResultVo<List<VoCardUsage>> getClientUsages(CardUsageQO qo) { + + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + + if (timeStart != null && timeStart != ""){ + timeStart = timeStart + " 00:00:00"; + }else { + timeStart = LocalDateTime.now().minusYears(1).toString(); + } + if (timeStop != null && timeStop != ""){ + timeStop = timeStop + " 23:59:59"; + }else { + timeStop = LocalDateTime.now().toString(); + } + qo.setTimeStart(timeStart); + qo.setTimeStop(timeStop); + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(seClientMapper.getClientUsagesCount(params)).orElse(0L); + + QueryResultVo<List<VoCardUsage>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seClientMapper.getClientUsages(params); + return rsVo ; + } } -- Gitblit v1.8.0