From db31f95644e77010ffb88ac9e57e618818737733 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 09 一月 2025 11:25:23 +0800 Subject: [PATCH] 优化”开阀操作次数“、”关阀操作次数“、”时间段内开阀次数超过指定值“、”时间段内开阀次数低于指定值“、”时间段有开阀无关阀“、”时间段无开阀有关阀“功能实现及sql。 --- pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java | 225 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 174 insertions(+), 51 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java index 5409a0a..d141c28 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java @@ -1,6 +1,8 @@ package com.dy.pipIrrStatistics.intake; import com.dy.common.aop.SsoAop; +import com.dy.common.util.DateTime; +import com.dy.common.util.IDLongGenerator; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; @@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Objects; @@ -50,7 +53,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getNotOnlineIntakes(qo)); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -69,7 +72,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getLargeFlowIntakes(qo)); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -88,7 +91,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getSmallFlowIntakes(qo)); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -107,7 +110,7 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getUnderVoltIntakes(qo)); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -126,48 +129,165 @@ try { return BaseResponseUtils.buildSuccess(intakeSv.getSpecifiedSignalIntakes(qo)); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } - /** + /** ok 11 * 鏍规嵁寮�闃�绫诲瀷鑾峰彇鎿嶄綔娆℃暟 * @param qo * @return */ @GetMapping(path = "/getCountByOpenType") @SsoAop() - public BaseResponse<QueryResultVo<VoCountOfOpenType>> getCountByOpenType(@Valid OpenTypeQO qo, BindingResult bindingResult) { + public BaseResponse<QueryResultVo<VoCountOfOpenType>> getCountByOpenType(@Valid OpenTypeQO qo, BindingResult bindingResult) throws Exception{ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + long startId = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + long endId = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { - return BaseResponseUtils.buildSuccess(intakeSv.getCountByOpenType(qo)); + return BaseResponseUtils.buildSuccess(intakeSv.getCountByOpenType(startId, endId, qo.getOpenType())); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } - /** + /** ok 12 * 鏍规嵁鍏抽榾绫诲瀷鑾峰彇鎿嶄綔娆℃暟 * @param qo * @return */ @GetMapping(path = "/getCountByCloseType") @SsoAop() - public BaseResponse<QueryResultVo<VoCountOfCloseType>> getCountByCloseType(@Valid CloseTypeQo qo, BindingResult bindingResult) { + public BaseResponse<QueryResultVo<VoCountOfCloseType>> getCountByCloseType(@Valid CloseTypeQo qo, BindingResult bindingResult) throws Exception{ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + long startId = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + long endId = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { - return BaseResponseUtils.buildSuccess(intakeSv.getCountByCloseType(qo)); + return BaseResponseUtils.buildSuccess(intakeSv.getCountByCloseType(startId, endId, qo.getCloseType())); } catch (Exception e) { - log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + log.error("鑾峰彇璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } + + /** ok 13 + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙� + * @param + * @return + */ + @GetMapping(path = "/getOpenValveGtIntakes") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(@Valid IntakeCountValueQO qo, BindingResult bindingResult) throws Exception { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; + try { + QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveGtIntakes(qo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** ok 14 + * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍙栨按鍙� + * @param + * @return + */ + @GetMapping(path = "/getOpenValveLtIntakes") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(@Valid IntakeCountValueQO qo, BindingResult bindingResult) throws Exception { + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; + try { + QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveLtIntakes(qo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + /** * 鑾峰彇浠庢湭寮�杩囬榾鐨勫彇姘村彛 @@ -179,41 +299,6 @@ public BaseResponse<QueryResultVo<List<VoIntake>>> getNeverOpenValveIntakes(CommonQO qo) { try { QueryResultVo<List<VoIntake>> res = intakeSv.getNeverOpenValveIntakes(qo); - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鑾峰彇璁板綍寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - - /** - * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙� - * @param - * @return - */ - @GetMapping(path = "/getOpenValveGtIntakes") - @SsoAop() - public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(IntakeCountValueQO qo) { - try { - QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveGtIntakes(qo); - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鑾峰彇璁板綍寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - /** - * 鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍙栨按鍙� - * @param - * @return - */ - @GetMapping(path = "/getOpenValveLtIntakes") - @SsoAop() - public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(IntakeCountValueQO qo) { - try { - QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveLtIntakes(qo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鑾峰彇璁板綍寮傚父", e); @@ -306,14 +391,33 @@ } } - /** + /** ok 15 * 鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛 * @param * @return */ @GetMapping(path = "/getHaveOpenNoCloseIntakes") @SsoAop() - public BaseResponse<QueryResultVo<List<VoIntake>>> getHaveOpenNoCloseIntakes(CommonQO qo) { + public BaseResponse<QueryResultVo<List<VoIntake>>> getHaveOpenNoCloseIntakes(IntakeCountValueQO qo) throws Exception { + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntake>> res = intakeSv.getHaveOpenNoCloseIntakes(qo); return BaseResponseUtils.buildSuccess(res); @@ -330,7 +434,26 @@ */ @GetMapping(path = "/getNoOpenHaveCloseIntakes") @SsoAop() - public BaseResponse<QueryResultVo<List<VoIntake>>> getNoOpenHaveCloseIntakes(CommonQO qo) { + public BaseResponse<QueryResultVo<List<VoIntake>>> getNoOpenHaveCloseIntakes(IntakeCountValueQO qo) throws Exception { + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart == null || timeStart.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈠紑濮嬫椂闂�"); + } + if(timeStop == null || timeStop.trim().equals("")){ + return BaseResponseUtils.buildErrorMsg("璇疯缃煡璇㈡埅姝㈡椂闂�"); + } + long dur = DateTime.daysBetweenyyyy_MM_dd(timeStop, timeStart) ; + if(dur < 0){ + return BaseResponseUtils.buildErrorMsg("鎴鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�"); + } + if(dur > 366){ + return BaseResponseUtils.buildErrorMsg("鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�骞�"); + } + int[] ymdStart = DateTime.yyyy_MM_dd_2_ymdGroup(timeStart) ; + int[] ymdEnd = DateTime.yyyy_MM_dd_2_ymdGroup(timeStop) ; + qo.idStart = IDLongGenerator.generateOneDayStartId(ymdStart[0], ymdStart[1], ymdStart[2]) ; + qo.idEnd = IDLongGenerator.generateOneDayStartId(ymdEnd[0], ymdEnd[1], ymdEnd[2]) ; try { QueryResultVo<List<VoIntake>> res = intakeSv.getNoOpenHaveCloseIntakes(qo); return BaseResponseUtils.buildSuccess(res); -- Gitblit v1.8.0