package com.dy.pipIrrStatistics.intake; import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voSt.*; import com.dy.pipIrrStatistics.intake.qo.*; import com.dy.pipIrrGlobal.voSt.VoBatteryVolt; import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow; import com.dy.pipIrrGlobal.voSt.VoIntake; import com.dy.pipIrrGlobal.voSt.VoSignalIntensity; import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO; import com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount; import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO; import com.dy.pipIrrStatistics.intake.qo.IntakeQO; import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO; import com.dy.pipIrrStatistics.intake.qo.IntakeCountValueQO; import com.dy.pipIrrStatistics.result.StatisticlResultCode; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Objects; /** * @author ZhuBaoMin * @date 2024-08-01 13:57 * @LastEditTime 2024-08-01 13:57 * @Description */ @Slf4j @RestController @RequestMapping(path="statistics") @RequiredArgsConstructor public class IntkeCtrl { private final IntakeSv intakeSv; /** * 获取指定时间段内未上线的取水口 * @param qo * @return */ @GetMapping(path = "/getNotOnlineIntakes") @SsoAop() public BaseResponse>> getNotOnlineIntakes(@Valid CommonQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getNotOnlineIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取累计流量超过指定值的取水口 * @param qo * @return */ @GetMapping(path = "/getLargeFlowIntakes") @SsoAop() public BaseResponse>> getLargeFlowIntakes(@Valid CumulativeFlowQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getLargeFlowIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取累计流量低于指定值的取水口 * @param qo * @return */ @GetMapping(path = "/getSmallFlowIntakes") @SsoAop() public BaseResponse>> getSmallFlowIntakes(@Valid CumulativeFlowQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getSmallFlowIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取欠压取水口 * @param qo * @return */ @GetMapping(path = "/getUnderVoltIntakes") @SsoAop() public BaseResponse>> getUnderVoltIntakes(@Valid BatteryVoltQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getUnderVoltIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取指定信号强度的取水口 * @param qo * @return */ @GetMapping(path = "/getSpecifiedSignalIntakes") @SsoAop() public BaseResponse>> getSpecifiedSignalIntakes(@Valid SignalIntensityQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getSpecifiedSignalIntakes(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据开阀类型获取操作次数 * @param qo * @return */ @GetMapping(path = "/getCountByOpenType") @SsoAop() public BaseResponse> getCountByOpenType(@Valid OpenTypeQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getCountByOpenType(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据关阀类型获取操作次数 * @param qo * @return */ @GetMapping(path = "/getCountByCloseType") @SsoAop() public BaseResponse> getCountByCloseType(@Valid CloseTypeQo qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(intakeSv.getCountByCloseType(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取从未开过阀的取水口 * @param * @return */ @GetMapping(path = "/getNeverOpenValveIntakes") @SsoAop() public BaseResponse>> getNeverOpenValveIntakes(CommonQO qo) { try { QueryResultVo> res = intakeSv.getNeverOpenValveIntakes(qo); if(res.itemTotal == 0) { return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage()); } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取指定时间段内开阀次数超过指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveGtIntakes") @SsoAop() public BaseResponse>> getOpenValveGtIntakes(IntakeCountValueQO qo) { try { QueryResultVo> res = intakeSv.getOpenValveGtIntakes(qo); if(res.itemTotal == 0) { return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage()); } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 获取指定时间段内开阀次数低于指定值的取水口 * @param * @return */ @GetMapping(path = "/getOpenValveLtIntakes") @SsoAop() public BaseResponse>> getOpenValveLtIntakes(IntakeCountValueQO qo) { try { QueryResultVo> res = intakeSv.getOpenValveLtIntakes(qo); if(res.itemTotal == 0) { return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage()); } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 指定时间段内用水量超过指定值的取水口 * @param * @return */ @GetMapping(path = "/getUseWaterGtValueIntakes") @SsoAop() public BaseResponse>> getUseWaterGtValueIntakes(IntakeAmountValueQO qo) { try { QueryResultVo> res = intakeSv.getUseWaterGtValueIntakes(qo); if(res.itemTotal == 0) { return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage()); } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } }