From 4d6f344319654bb50aa58a366517630b99615398 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期三, 18 九月 2024 15:27:43 +0800 Subject: [PATCH] 2024-09-18 朱宝民 获取消费记录接口、获取返还记录接口 --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java | 2 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 59 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 43 +++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 59 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 35 +++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java | 70 +++++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 12 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java | 15 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java | 61 ++++++++++ 9 files changed, 355 insertions(+), 1 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 6002ef3..21ec5bd 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 @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory; +import com.dy.pipIrrGlobal.voRm.VoExpend; import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve; import com.dy.pipIrrGlobal.voSt.VoClient; import com.dy.pipIrrGlobal.voSt.VoIntake; @@ -263,4 +264,18 @@ * @return */ List<VoIntake> getNoOpenHaveCloseIntakes(Map<String, Object> params); + + /** + * 鑾峰彇姘村崱娑堣垂璁板綍鏁伴噺锛岀鐞嗗钩鍙颁娇鐢� + * @param params + * @return + */ + Long getExpendsCount(Map<String, Object> params); + + /** + * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢� + * @param params + * @return + */ + List<VoExpend> getExpends(Map<String, Object> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java index dca9467..93d6b74 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java @@ -59,6 +59,18 @@ */ List<VoRechargeNew> getRechargesNew(Map<?, ?> params); + /** + * 鑾峰彇杩旇繕璁板綍鏁伴噺锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢� + * @param params + * @return + */ + Long getRefundsCount(Map<?, ?> params); + /** + * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢� + * @param params + * @return + */ + List<VoRefund> getRefunds(Map<?, ?> params); /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍鏁� diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java new file mode 100644 index 0000000..92eed8d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java @@ -0,0 +1,70 @@ +package com.dy.pipIrrGlobal.voRm; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-09-14 17:17 + * @LastEditTime 2024-09-14 17:17 + * @Description 娑堣�楄鍥惧璞★紝姘村崱娑堣�楄褰� + */ +@Data +@JsonPropertyOrder({"clientName", "clientNum", "cardNum", "intakeName", "rtuAddr", "moneyAmount", "waterAmount", "duration", "operateTime"}) +public class VoExpend { + private static final long serialVersionUID = 202409141721001L; + + /** + * 鍐滄埛濮撳悕 + */ + private String clientName; + + /** + * 鍐滄埛缂栧彿 + */ + private String clientNum; + + /** + * 姘村崱缂栧彿 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long cardNum; + + /** + * 鍙栨按鍙g紪鍙� + */ + private String intakeName; + + /** + * 闃�鎺у櫒鍦板潃 + */ + private String rtuAddr; + + /** + * 鏈鑺辫垂閲戦 + */ + private Float moneyAmount; + + /** + * 鏈鐢ㄦ按閲� + */ + private Float waterAmount; + + /** + * 鏈鐢ㄦ按鏃堕暱 + */ + private Integer duration; + + /** + * 鎿嶄綔鏃堕棿 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date operateTime; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java new file mode 100644 index 0000000..b38e4ad --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java @@ -0,0 +1,61 @@ +package com.dy.pipIrrGlobal.voSe; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-09-18 15:04 + * @LastEditTime 2024-09-18 15:04 + * @Description 杩旇繕瑙嗗浘瀵硅薄 + */ + +@Data +@JsonPropertyOrder({"clientName", "clientNum", "cardNum", "money", "refundAmount", "operator", "operateTime"}) +public class VoRefund { + private static final long serialVersionUID = 202409181505001L; + + /** + * 鍐滄埛濮撳悕 + */ + private String clientName; + + /** + * 鍐滄埛缂栧彿 + */ + private String clientNum; + + /** + * 姘村崱缂栧彿 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long cardNum; + + /** + * 杩旇繕鍓嶄綑棰� + */ + private Float money; + + /** + * 杩旇繕閲戦 + */ + private Float refundAmount; + + /** + * 鎿嶄綔浜� + */ + private String operator; + + /** + * 鎿嶄綔鏃堕棿 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date operateTime; +} 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 cb816f9..e852f5b 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml @@ -1054,4 +1054,63 @@ </if> </trim> </select> + + <!--鑾峰彇姘村崱娑堣垂璁板綍鏁伴噺锛岀鐞嗗钩鍙颁娇鐢�--> + <select id="getExpendsCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM rm_open_close_valve_history och + INNER JOIN se_client cli ON cli.id = och.client_id + INNER JOIN pr_intake inta ON inta.id = och.intake_id + <where> + AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "clientNum != null and clientNum > 0"> + AND cli.clientNum like CONCAT('%',#{clientNum},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%') + </if> + </where> + </select> + + <!--鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�--> + <select id="getExpends" resultType="com.dy.pipIrrGlobal.voRm.VoExpend"> + SELECT + cli.name AS clientName, + cli.clientNum, + och.cl_ic_card_no AS cardNum, + inta.name AS intakeName, + och.rtu_addr AS rtuAddr, + och.cl_this_money AS moneyAmount, + och.cl_this_amount AS waterAmount, + och.cl_this_time AS duration, + och.cl_dt AS operateTime + FROM rm_open_close_valve_history och + INNER JOIN se_client cli ON cli.id = och.client_id + INNER JOIN pr_intake inta ON inta.id = och.intake_id + <where> + AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "clientNum != null and clientNum > 0"> + AND cli.clientNum like CONCAT('%',#{clientNum},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%') + </if> + </where> + ORDER BY och.cl_dt 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> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml index 376c5ab..77b6343 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -943,4 +943,63 @@ </if> </trim> </select> + + <!--鑾峰彇杩旇繕璁板綍鏁伴噺锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�--> + <select id="getRefundsCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM se_client_card card + INNER JOIN se_client cli ON cli.id = card.clientId + LEFT JOIN se_card_operate ope ON ope.card_id = card.id + INNER JOIN ba_user us ON us.id = ope.operator + <where> + AND ope.operate_type = 5 + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "clientNum != null and clientNum > 0"> + AND cli.clientNum like CONCAT('%',#{clientNum},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND card.cardNum like CONCAT('%',#{cardNum},'%') + </if> + </where> + </select> + + <!--鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�--> + <select id="getRefunds" resultType="com.dy.pipIrrGlobal.voSe.VoRefund"> + SELECT + cli.name AS clientName, + cli.clientNum, + card.cardNum, + IFNULL(ope.money, 0) AS money, + IFNULL(ope.refund_amount, 0) AS refundAmount, + us.name AS operator, + ope.operate_dt AS operateTime + FROM se_client_card card + INNER JOIN se_client cli ON cli.id = card.clientId + LEFT JOIN se_card_operate ope ON ope.card_id = card.id + INNER JOIN ba_user us ON us.id = ope.operator + <where> + AND ope.operate_type = 5 + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "clientNum != null and clientNum > 0"> + AND cli.clientNum like CONCAT('%',#{clientNum},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND card.cardNum like CONCAT('%',#{cardNum},'%') + </if> + </where> + ORDER BY ope.operate_dt 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> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java index 7c4e317..3553183 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java @@ -27,7 +27,7 @@ }) } ) -@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoPr"}) +@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoPr", "com.dy.pipIrrGlobal.daoRm"}) public class PipIrrSellApplication { public static void main(String[] args) { diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java index b67e8ba..0556ce3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -11,6 +11,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; import com.dy.pipIrrGlobal.util.AmountToChinese; +import com.dy.pipIrrGlobal.voRm.VoExpend; import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.*; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; @@ -869,6 +870,40 @@ } /** + * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢� + * @param vo + * @return + */ + @GetMapping(path = "/refunds") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoRefund>>> getRefunds(QoRecharge vo){ + try { + QueryResultVo<List<VoRefund>> res = cardOperateSv.getRefunds(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇杩旇繕璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢� + * @param vo + * @return + */ + @GetMapping(path = "/expends") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoExpend>>> getExpends(QoRecharge vo){ + try { + QueryResultVo<List<VoExpend>> res = cardOperateSv.getExpends(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇娑堣垂璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗鏄庣粏 * @param vo * @return diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java index 1e09c0a..8dc78b3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java @@ -7,8 +7,10 @@ import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; +import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; import com.dy.pipIrrGlobal.daoSe.*; import com.dy.pipIrrGlobal.pojoSe.*; +import com.dy.pipIrrGlobal.voRm.VoExpend; import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; @@ -61,6 +63,9 @@ @Autowired private SeRechargeHistoryMapper seRechargeHistoryMapper; + + @Autowired + private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; @Value("${project.projectNo}") private Integer projectNo; @@ -325,6 +330,44 @@ } /** + * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoRefund>> getRefunds(QoRecharge queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = seCardOperateMapper.getRefundsCount(params); + + QueryResultVo<List<VoRefund>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seCardOperateMapper.getRefunds(params); + return rsVo ; + } + + /** + * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoExpend>> getExpends(QoRecharge queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = rmOpenCloseValveHistoryMapper.getExpendsCount(params); + + QueryResultVo<List<VoExpend>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOpenCloseValveHistoryMapper.getExpends(params); + return rsVo ; + } + + /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍 * @param vo * @return -- Gitblit v1.8.0