From a11d427687249a455b68fc2b3ea94ddc7fb80b29 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期三, 24 一月 2024 18:50:44 +0800 Subject: [PATCH] 1.查询开卡记录 2.修改取水口参数传入方式 3.完善取水口是否绑定控制器查询 --- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoActiveCard.java | 47 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 46 ++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoActiveCardNew.java | 55 +++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 1 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 71 ++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 34 ++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 18 +++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 6 + 9 files changed, 274 insertions(+), 8 deletions(-) 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 0b905c9..f4ace47 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 @@ -2,9 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; -import com.dy.pipIrrGlobal.voSe.VoRecharge; -import com.dy.pipIrrGlobal.voSe.VoTransaction; -import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; +import com.dy.pipIrrGlobal.voSe.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -96,4 +94,18 @@ */ //Float getPaymentSums(Map<?, ?> params); Float getPaymentSums(@Param("tradeDate") String tradeDate, @Param("paymentId") Long paymentId); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰曟暟 + * @param params + * @return + */ + Long getActiveCardRecordCount(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰� + * @param params + * @return + */ + List<VoActiveCardNew> getActiveCards(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoActiveCardNew.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoActiveCardNew.java new file mode 100644 index 0000000..21dfaba --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoActiveCardNew.java @@ -0,0 +1,55 @@ +package com.dy.pipIrrGlobal.voSe; + +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author :WuZeYu + * @Date :2024/1/23 16:36 + * @LastEditTime :2024/1/23 16:36 + * @Description + */ + +@Data +@Schema(title = "鍏呭�艰褰曡鍥惧璞�") +public class VoActiveCardNew implements BaseEntity { + private static final long serialVersionUID = 2024012316370001L; + + @Schema(title = "ID") + private Long id; + + @Schema(title = "鍐滄埛濮撳悕") + private String clientName; + + @Schema(title = "鍐滄埛缂栧彿") + private String clientNum; + + @Schema(title = "姘村崱缂栧彿") + private String cardNum; + + @Schema(title = "姘村崱鐘舵��") + private Byte state; + + @Schema(title = "姘村崱鐘舵�佸悕绉�") + private String stateName; + + @Schema(title = "鍗$墖璐圭敤") + private Integer cardCost; + + + @Schema(title = "鏀粯鏂瑰紡") + private Integer paymentId; + + @Schema(title = "鎿嶄綔浜�") + private String operator; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @Schema(title = "鎿嶄綔鏃堕棿") + private Date operateDt; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml index 9530df5..b277691 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml @@ -219,6 +219,7 @@ INNER JOIN ba_district country ON ge.countyId = country.id INNER JOIN ba_district town ON ge.townId = town.id INNER JOIN ba_district village ON ge.villageId = village.id + INNER JOIN pr_controller con ON con.intakeId = ge.id , (SELECT @i:=0) AS itable <where> ge.deleted = 0 @@ -245,6 +246,10 @@ divi.`name` AS divideName, blo.`name` AS blockName, ge.operateDt As operateDt, + (CASE + WHEN ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0) THEN "鏈粦瀹�" + WHEN ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0) THEN "宸茬粦瀹�" + END) AS isBind, CONCAT(country.`name`, town.`name`, village.`name`) AS address FROM pr_intake ge INNER JOIN pr_divide divi ON ge.divideId = divi.id @@ -252,6 +257,7 @@ INNER JOIN ba_district country ON ge.countyId = country.id INNER JOIN ba_district town ON ge.townId = town.id INNER JOIN ba_district village ON ge.villageId = village.id + INNER JOIN pr_controller con ON con.intakeId = ge.id , (SELECT @i:=0) AS itable <where> ge.deleted = 0 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 553c23f..e274a1a 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -451,4 +451,75 @@ </where> GROUP BY ope.payment_id, Date(ope.operate_dt) </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰曟暟閲�--> + <select id="getActiveCardRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> + select + COUNT(*) AS recordCount + FROM se_card_operate ope + INNER JOIN se_client_card card ON ope.card_id = card.id + INNER JOIN se_client cli ON ope.client_id = cli.id + <where> + AND ope.operate_type = 1 + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND card.cardNum like CONCAT('%',#{cardNum},'%') + </if> + + <if test = "state != null and state > 0"> + AND card.state = ${state} + </if> + + <if test = "activeTimeStart != null and activeTimeStop != null"> + AND ope.operate_dt BETWEEN #{activeTimeStart} AND #{activeTimeStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰�--> + <select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCardNew"> + SELECT + CAST(ope.id AS char) AS id , + cli.name AS clientName, + cli.clientNum AS clientNum, + card.cardNum AS cardNum, + card.state AS state, + (CASE + WHEN card.state = 1 THEN "姝e父" + WHEN card.state = 2 THEN "宸叉敞閿�" + WHEN card.state = 3 THEN "宸叉寕澶�" + END) AS stateName, + ope.card_cost AS cardCost, + ope.payment_id AS paymentId, + (SELECT `name` FROM ba_user WHERE id = ope.operator) AS operator, + ope.operate_dt AS operateDt + FROM se_card_operate ope + INNER JOIN se_client_card card ON ope.card_id = card.id + INNER JOIN se_client cli ON ope.client_id = cli.id + <where> + AND ope.operate_type = 1 + <if test = "clientName != null and clientName !=''"> + AND cli.name like CONCAT('%',#{clientName},'%') + </if> + + <if test = "cardNum != null and cardNum !=''"> + AND card.cardNum like CONCAT('%',#{cardNum},'%') + </if> + + <if test = "state != null and state > 0"> + AND card.state = ${state} + </if> + + <if test = "activeTimeStart != null and activeTimeStop != null"> + AND ope.operate_dt BETWEEN #{activeTimeStart} AND #{activeTimeStop} + </if> + </where> + ORDER BY ope.operate_dt DESC + <if test="pageCurr != null and pageSize != null"> + LIMIT ${pageCurr}, ${pageSize} + </if> + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java index fa5f55e..0d99ab9 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeCtrl.java @@ -114,9 +114,9 @@ schema = @Schema(implementation = VoActiveCard.class))} ) }) - @GetMapping(path = "getIntakes", consumes = MediaType.APPLICATION_JSON_VALUE) + @GetMapping(path = "getIntakes") @SsoAop() - public BaseResponse<QueryResultVo<List<VoIntake>>> getIntakes(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) QueryVo vo){ + public BaseResponse<QueryResultVo<List<VoIntake>>> getIntakes(QueryVo vo){ try { QueryResultVo<List<VoIntake>> res = intakeSv.getIntakes(vo); if(res == null) { 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 588905e..b412230 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 @@ -9,10 +9,13 @@ import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.util.Constant; +import com.dy.pipIrrGlobal.voSe.VoActiveCard; +import com.dy.pipIrrGlobal.voSe.VoActiveCardNew; import com.dy.pipIrrGlobal.voSe.VoRecharge; import com.dy.pipIrrSell.cardOperate.converter.RechargeDtoMapper; import com.dy.pipIrrSell.cardOperate.dto.*; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; +import com.dy.pipIrrSell.cardOperate.qo.QoActiveCard; import com.dy.pipIrrSell.cardOperate.qo.QoRecharge; import com.dy.pipIrrSell.cardOperate.qo.QoTransaction; import com.dy.pipIrrSell.cardOperate.qo.QoTransactionStatistics; @@ -804,4 +807,35 @@ return BaseResponseUtils.buildException(e.getMessage()) ; } } + + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰� + * @param vo + * @return + */ + @Operation(summary = "鑾峰彇寮�鍗¤褰�", description = "杩斿洖寮�鍗¤褰�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖涓�椤靛紑鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoActiveCard.class))} + ) + }) + @GetMapping(path = "/getActiveCards") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoActiveCardNew>>> get(QoActiveCard vo){ + try { + QueryResultVo<List<VoActiveCardNew>> res = cardOperateSv.getActiveCards(vo); + if(res.itemTotal == 0) { + return BaseResponseUtils.buildFail(SellResultCode.No_ActiveCards.getMessage()); + } + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + } 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 e019024..be26372 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 @@ -10,11 +10,10 @@ import com.dy.pipIrrGlobal.daoSe.SeClientMapper; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; -import com.dy.pipIrrGlobal.voSe.VoRecharge; -import com.dy.pipIrrGlobal.voSe.VoTransaction; -import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; +import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; +import com.dy.pipIrrSell.cardOperate.qo.QoActiveCard; import com.dy.pipIrrSell.cardOperate.qo.QoRecharge; import com.dy.pipIrrSell.cardOperate.qo.QoTransaction; import com.dy.pipIrrSell.cardOperate.qo.QoTransactionStatistics; @@ -385,4 +384,45 @@ return map_result; } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoActiveCardNew>> getActiveCards(QoActiveCard queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String activeTimeStart = queryVo.activeTimeStart; + String activeTimeStop = queryVo.activeTimeStop; + if(activeTimeStart != null) { + activeTimeStart = activeTimeStart + " 00:00:00"; + queryVo.setActiveTimeStart(activeTimeStart); + } + if(activeTimeStop != null) { + activeTimeStop = activeTimeStop + " 23:59:59"; + queryVo.setActiveTimeStop(activeTimeStop); + } + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + Long itemTotal = seCardOperateMapper.getActiveCardRecordCount(params); + + QueryResultVo<List<VoActiveCardNew>> rsVo = new QueryResultVo<>() ; + Integer pageCurr = 0; + Integer pageSize = 10000; + rsVo.pageCurr = 1; + rsVo.pageSize = 10000; + if(queryVo.pageSize != null && queryVo.pageCurr != null) { + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr; + pageSize = queryVo.pageSize ; + pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); + } + params.put("pageCurr", pageCurr); + params.put("pageSize", pageSize); + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seCardOperateMapper.getActiveCards(params); + return rsVo ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoActiveCard.java new file mode 100644 index 0000000..251c52d --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoActiveCard.java @@ -0,0 +1,47 @@ +package com.dy.pipIrrSell.cardOperate.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @author :WuZeYu + * @Date :2024/1/23 14:41 + * @LastEditTime :2024/1/23 14:41 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "IC鍗″紑鍗¤褰曟煡璇㈡潯浠�") +public class QoActiveCard extends QueryConditionVo { + +// @Schema(description = "鎿嶄綔绫诲瀷 1-寮�鍗★紝2-琛ュ崱") +// private Byte operateType; + + @Schema(description = "鍐滄埛濮撳悕") + public String clientName; + + @Schema(description = "IC鍗″彿") + //public String cardAddr; + public String cardNum; + + @Schema(description = "鍗$墖鐘舵��") + private Byte state; + + //@Schema(description = "寮�鍗℃椂闂確寮�濮�") + //public LocalDateTime activeTimeStart; + // + //@Schema(description = "寮�鍗℃椂闂確缁撴潫") + //public LocalDateTime activeTimeStop; + + @Schema(description = "寮�鍗℃椂闂確寮�濮�") + public String activeTimeStart; + + @Schema(description = "寮�鍗℃椂闂確缁撴潫") + public String activeTimeStop; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java index cb938b5..6b4a1f6 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java @@ -24,6 +24,7 @@ CARD_NUMBER_ERROR(10006, "鍗″彿閿欒锛岃鍗′笉瀛樺湪"), REPLACE_FAIL_WRITE_CLIENT_CARD_ERROR(10007, "琛ュ崱澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�"), REPLACE_FAIL_WRITE_RECHARGE_ERROR(10008, "琛ュ崱澶辫触-琛ュ崱璁板綍鍐欏叆寮傚父"), + No_ActiveCards(10009, "娌℃湁绗﹀悎鏉′欢鐨勫紑鍗℃暟鎹�"), /** * 鍏呭�� -- Gitblit v1.8.0