package com.dy.pipIrrStatistics.client;
|
|
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.card.IcCardqo.CommonQO;
|
import com.dy.pipIrrStatistics.client.qo.*;
|
import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO;
|
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.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @author ZhuBaoMin
|
* @date 2024-08-06 9:43
|
* @LastEditTime 2024-08-06 9:43
|
* @Description
|
*/
|
|
@Slf4j
|
@RestController
|
@RequestMapping(path="statistics")
|
@RequiredArgsConstructor
|
public class ClientCtrl {
|
private final ClientSv clientSv;
|
|
/**
|
* 获取指定时间段内开阀次数超过指定值的农户
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getLargeOpenCountClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getLargeOpenCountClients(@Valid OpenCountQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getLargeOpenCountClients(qo));
|
} catch (Exception e) {
|
log.error("获取开卡记录异常", e);
|
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()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内用水量超过指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getLargeWaterConsumptionClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getLargeWaterConsumptionClients(@Valid WaterConsumptionQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getLargeWaterConsumptionClients(qo));
|
} catch (Exception e) {
|
log.error("获取开卡记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内用水量低于指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getSmallWaterConsumptionClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getSmallWaterConsumptionClients(@Valid WaterConsumptionQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getSmallWaterConsumptionClients(qo));
|
} catch (Exception e) {
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内消费金额超过指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getLargeAmountSpentClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getLargeAmountSpentClients(@Valid AmountSpentQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getLargeAmountSpentClients(qo));
|
} catch (Exception e) {
|
log.error("获取开卡记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内消费金额低于指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getSmallAmountSpentClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getSmallAmountSpentClients(@Valid AmountSpentQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getSmallAmountSpentClients(qo));
|
} catch (Exception e) {
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内用水时长超过指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getLargeWaterDurationClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getLargeWaterDurationClients(@Valid WaterDurationQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getLargeWaterDurationClients(qo));
|
} catch (Exception e) {
|
log.error("获取开卡记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 获取指定时间段内用水时长低于指定值的农户
|
* @param qo
|
* @param bindingResult
|
* @return
|
*/
|
@GetMapping(path = "/getSmallWaterDurationClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getSmallWaterDurationClients(@Valid WaterDurationQO qo, BindingResult bindingResult) {
|
if(bindingResult != null && bindingResult.hasErrors()){
|
return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getSmallWaterDurationClients(qo));
|
} catch (Exception e) {
|
log.error("获取开卡记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 统计指定月份各农户各天用水量及消费金额
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getDayAmountAndMoney")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoDayClient>>> getDayAmountAndMoney(ClientAmountQO qo) {
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
String yearMonth = qo.getYearMonth();
|
if(yearMonth == null) {
|
return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.YEAR_AND_MONTH_CANNOT_BE_NULL.getMessage());
|
}else {
|
yearMonth = yearMonth + "-01";
|
try {
|
Date date = dateFormat.parse(yearMonth);
|
} catch (Exception e) {
|
return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.YEAR_OR_MONTH_IS_ERROR.getMessage());
|
}
|
}
|
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getDayAmountAndMoney(qo));
|
} catch (Exception e) {
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 统计指定年份各农户各月用水量及消费金额
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getMonthAmountAndMoney")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoMonthClient>>> getMonthAmountAndMoney(ClientAmountQO qo) {
|
if(qo.getYear() == null) {
|
return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.YEAR_CANNOT_BE_NULL.getMessage());
|
}
|
try {
|
return BaseResponseUtils.buildSuccess(clientSv.getMonthAmountAndMoney(qo));
|
} catch (Exception e) {
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage()) ;
|
}
|
}
|
|
/**
|
* 指定时间段内开物理卡农户
|
*
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getOpenIcCardClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClientOpenCardCount>>> getOpenIcCardClients(CommonQO qo) {
|
try {
|
QueryResultVo<List<VoClientOpenCardCount>> res = clientSv.getOpenIcCardClients(qo);
|
return BaseResponseUtils.buildSuccess(res);
|
}catch (Exception e){
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage());
|
}
|
}
|
|
/**
|
* 指定时间段内每个农户充值合计(物理卡)
|
*
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getRechargeTotalClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClientRechargeTotal>>> getRechargeTotalClients(CommonQO qo) {
|
try {
|
QueryResultVo<List<VoClientRechargeTotal>> res = clientSv.getRechargeTotalClients(qo);
|
return BaseResponseUtils.buildSuccess(res);
|
}catch (Exception e){
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage());
|
}
|
}
|
|
|
/**
|
* 指定时间段内物理卡充值金额超过指定值的农户
|
*
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getRechargeTotalGtValueClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClientRechargeTotal>>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) {
|
try {
|
QueryResultVo<List<VoClientRechargeTotal>> res = clientSv.getRechargeTotalGtValueClients(qo);
|
return BaseResponseUtils.buildSuccess(res);
|
}catch (Exception e){
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage());
|
}
|
}
|
|
|
/**
|
* 最近未充值的农户
|
*
|
* @param qo
|
* @return
|
*/
|
@GetMapping(path = "/getNotRechargeLastClients")
|
@SsoAop()
|
public BaseResponse<QueryResultVo<List<VoClient>>> getNotRechargeLastClients(CommonQO qo) {
|
try {
|
QueryResultVo<List<VoClient>> res = clientSv.getNotRechargeLastClients(qo);
|
return BaseResponseUtils.buildSuccess(res);
|
}catch (Exception e){
|
log.error("获取记录异常", e);
|
return BaseResponseUtils.buildException(e.getMessage());
|
}
|
}
|
}
|