pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
@@ -4,6 +4,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeClient; import com.dy.pipIrrGlobal.voSe.VoClient; import com.dy.pipIrrGlobal.voSe.VoClientWechat; import com.dy.pipIrrGlobal.voSt.VoCardUsage; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -112,4 +113,18 @@ * @return */ VoClientWechat getSimpleClientInfo(@Param("sessionId") Long sessionId, @Param("openId") String openId); /** * 获取指定时间段农户:充值合计、消费合计、余额 * @param params * @return */ Long getClientUsagesCount(Map<String, Object> params); /** * 获取指定时间段农户:充值合计、消费合计、余额 * @param params * @return */ List<VoCardUsage> getClientUsages(Map<String, Object> params); } pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -475,5 +475,41 @@ </where> LIMIT 0,1 </select> <!--获取指定时间段农户:充值合计、消费合计、余额--> <select id="getClientUsagesCount" resultType="java.lang.Long"> SELECT count(*) FROM se_client cli <where> <if test="clientName != null and clientName != ''"> AND cli.name like CONCAT('%', #{clientName}, '%') </if> <if test="clientNum != null and clientNum != ''"> AND cli.clientNum like CONCAT('%', #{clientNum}, '%') </if> </where> </select> <!--获取指定时间段农户:充值合计、消费合计、余额--> <select id="getClientUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage"> SELECT cli.name AS clientName, (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.clientId = cli.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge, (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.client_id = cli.id AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption, (SELECT ROUND(SUM(card.money),2) FROM se_client_card card WHERE card.clientId = cli.id) AS balance FROM se_client cli <where> <if test="clientName != null and clientName != ''"> AND cli.name like CONCAT('%', #{clientName}, '%') </if> <if test="clientNum != null and clientNum != ''"> AND cli.clientNum like CONCAT('%', #{clientNum}, '%') </if> </where> ORDER BY totalConsumption DESC, totalRecharge DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} </if> </trim> </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardSv.java
@@ -167,7 +167,7 @@ if (timeStart != null && timeStart != ""){ timeStart = timeStart + " 00:00:00"; }else { timeStart = LocalDate.now() + " 00:00:00"; timeStart = LocalDateTime.now().minusYears(1).toString(); } if (timeStop != null && timeStop != ""){ timeStop = timeStop + " 23:59:59"; pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -6,6 +6,7 @@ import com.dy.common.webUtil.QueryResultVo; 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 com.dy.pipIrrStatistics.result.StatisticlResultCode; @@ -316,4 +317,25 @@ return BaseResponseUtils.buildException(e.getMessage()); } } /** * 获取指定时间段农户:充值合计、消费合计、余额 * @param qo //* @param bindingResult * @return */ @GetMapping(path = "/client_usage") @SsoAop() public BaseResponse<QueryResultVo<List<VoCardUsage>>> getClientUsages(@Valid CardUsageQO qo, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } try { return BaseResponseUtils.buildSuccess(clientSv.getClientUsages(qo)); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -4,8 +4,10 @@ import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper; import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; 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; @@ -36,9 +38,10 @@ private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; @Autowired private SeCardOperateMapper seCardOperateMapper; @Autowired private RmClientAmountDayLastMapper rmClientAmountDayLastMapper; @Autowired private SeClientMapper seClientMapper; /** * 获取指定时间段内开阀次数超过指定值的农户 @@ -520,4 +523,41 @@ 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 ; } }