From c081e4f2d10ded85f3b76745f4e642531159c77d Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期二, 06 八月 2024 11:12:07 +0800 Subject: [PATCH] 2024-08-06 朱宝民 获取指定时间段内开阀次数低于指定值的农户 --- /dev/null | 22 ------- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 31 ++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java | 38 ++++++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java | 14 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java | 21 +++++++ 5 files changed, 104 insertions(+), 22 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java index ef1ae3d..c1f9157 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java @@ -136,4 +136,18 @@ * @return */ List<VoClient> getLargeOpenCountClients(Map<String, Object> params); + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺 + * @param params + * @return + */ + Long getSmallOpenCountClientsCount(Map<String, Object> params); + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛 + * @param params + * @return + */ + List<VoClient> getSmallOpenCountClients(Map<String, Object> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml index 74ddee5..2904017 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml @@ -755,4 +755,35 @@ </if> </trim> </select> + + <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺--> + <select id="getSmallOpenCountClientsCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM se_client cli + WHERE (SELECT COUNT(*) + FROM rm_open_close_valve_history his + WHERE his.client_id = cli.id + AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) < #{openCount} + </select> + + <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛--> + <select id="getSmallOpenCountClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient"> + SELECT cli.id AS clientId, + cli.name AS clientName, + cli.clientNum, + CONCAT(cli.districtTitle, cli.address) AS address, + cli.phone, + cli.idCard + FROM se_client cli + WHERE (SELECT COUNT(*) + FROM rm_open_close_valve_history his + WHERE his.client_id = cli.id + AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) < #{openCount} + ORDER BY cli.id + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java index 5beecb3..e780db2 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java @@ -50,4 +50,25 @@ return BaseResponseUtils.buildException(e.getMessage()) ; } } + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛 + * @param qo + * @param bindingResult + * @return + */ + @GetMapping(path = "/getSmallOpenCountClients") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoClient>>> getSmallOpenCountClients(@Valid OpenCountQO qo, BindingResult bindingResult) { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + try { + return BaseResponseUtils.buildSuccess(clientSv.getSmallOpenCountClients(qo)); + } catch (Exception e) { + log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } } 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 d2fa9c7..13e5a35 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 @@ -64,4 +64,42 @@ rsVo.obj = rmOpenCloseValveHistoryMapper.getLargeOpenCountClients(params); return rsVo ; } + + /** + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛 + * @param qo + * @return + */ + public QueryResultVo<List<VoClient>> getSmallOpenCountClients(OpenCountQO qo) { + /** + * 琛ラ綈璧锋鏃堕棿锛屽鏋滃紑濮嬫椂闂翠负绌猴紝鍒欓粯璁や负褰撳墠鏃ユ湡 + */ + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart != null) { + timeStart = timeStart + " 00:00:00"; + }else { + timeStart = LocalDate.now() + " 00:00:00"; + } + if(timeStop != null) { + 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.getSmallOpenCountClientsCount(params)).orElse(0L); + + QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallOpenCountClients(params); + return rsVo ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/CloseCountQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/CloseCountQO.java deleted file mode 100644 index af064a6..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/CloseCountQO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dy.pipIrrStatistics.client.qo; - -import com.dy.pipIrrStatistics.intake.qo.CommonQO; -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -/** - * @author ZhuBaoMin - * @date 2024-08-06 9:58 - * @LastEditTime 2024-08-06 9:58 - * @Description 鍏抽榾娆℃暟鏌ヨ瀵硅薄 - */ - -@Data -public class CloseCountQO extends CommonQO { - - /** - * 鍏抽榾娆℃暟 - */ - @NotNull(message = "鍏抽榾娆℃暟涓嶈兘涓虹┖") - private Integer closeCount; -} -- Gitblit v1.8.0