From ea84f710b449f931562ce649ff44cab05c15d9e0 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 10 七月 2024 18:07:15 +0800 Subject: [PATCH] 1、实现用水户日用水量水费统计; 2、靳总IC卡结构中卡号(用户号)由10位改为17位,相应协议也变化。 --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 124 +++++++++++++++++----------------------- 1 files changed, 53 insertions(+), 71 deletions(-) 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 7ff5012..c42f2a8 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 @@ -76,27 +76,40 @@ return BaseResponseUtils.buildErrorMsg(SellResultCode.AREA_CODE_MISTAKE.getMessage()); } - // p206V1_0_1鍗忚锛屽皢鍓�6浣嶈鏀垮尯鍒掓敼涓�100000 - if(po.getProtocol().trim().equals("p206V1_0_1")) { - areaCode = "100000" + areaCode.substring(6); + // p206V1_0_1鍗忚锛屽彇琛屾斂鍖哄垝鐨勫悗6浣� + if(po.getProtocol() != null && po.getProtocol().trim().equals("p206V1_0_1")) { + areaCode = areaCode.substring(6); } /** * 鏍规嵁琛屾斂鍖哄垝涓诧紙areaCode锛夊湪姘村崱琛ㄤ腑閽堝姘村崱缂栧彿锛坈ardNum锛夎繘琛屾ā绯婃煡璇� - * 濡傛灉4浣嶉『搴忓彿宸茬粡杈惧埌鏈�澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛� - * 濡傛灉4浣嶉『搴忓彿鏈揪鍒版渶澶у�硷紝鍒欏姞1 + * 濡傛灉椤哄簭鍙峰凡缁忚揪鍒版渶澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛� + * 濡傛灉椤哄簭鍙锋湭杈惧埌鏈�澶у�硷紝鍒欏姞1 * cardNum涓烘柊鐨勫崱鍙� */ String cardNum = Optional.ofNullable(cardOperateSv.getCardNumOfMax(areaCode)).orElse(""); - if(cardNum != null && cardNum.trim().length() > 0) { - Integer number = Integer.parseInt(cardNum.substring(12)); - number = number + 1; - if(number > 65535) { - return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + if(po.getProtocol().trim().equals("p206V1_0_1")) { + if(cardNum != null && cardNum.trim().length() > 0) { + Integer number = Integer.parseInt(cardNum.substring(6)); + number = number + 1; + if(number > 9999) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + } + cardNum = cardNum.substring(0, 6) + String.format("%04d", number); + } else { + cardNum = areaCode + "0001"; } - cardNum = cardNum.substring(0, 12) + String.format("%05d", number); - } else { - cardNum = areaCode + "00001"; + }else { + if(cardNum != null && cardNum.trim().length() > 0) { + Integer number = Integer.parseInt(cardNum.substring(12)); + number = number + 1; + if(number > 65535) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + } + cardNum = cardNum.substring(0, 12) + String.format("%05d", number); + } else { + cardNum = areaCode + "00001"; + } } /** @@ -182,13 +195,9 @@ } } - if(po.getProtocol().trim().equals("p206V1_0_1")) { - cardNum = cardNum.substring(6,12) + cardNum.substring(13); - } - Map map = new HashMap(); map.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); - map.put("orderNumber", cardId); + map.put("orderNumber", rec); map.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map) ; } @@ -231,21 +240,13 @@ Long operator = po.getOperator(); String protocol = null; - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - protocol = "p206V1_0_1"; - } - cardNum = Long.valueOf(cardNumS); - // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶变笖鏈ˉ鍗$殑鍙互琛ュ崱 if(!cardOperateSv.isLostAndUnreplaced(cardNum)) { return BaseResponseUtils.buildErrorMsg(SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); } // 濡傛灉浼犲叆浜嗛��杩橀噾棰濓紝闇�瑕佸垽鏂�佸崱锛堣鎸傚け鐨勬按鍗★級鎸傚け鏃舵槸鍚﹀凡缁忛��娆撅紝鏃犺閫�娆惧灏戦兘鎻愮ず鐢ㄦ埛鎸傚け鏃跺凡閫�娆� - if(reissueAmount != null) { + if(reissueAmount != null && reissueAmount > 0) { Double tradeAmount = cardOperateSv.getTradeAmountByCardNo(cardNum); if(tradeAmount != null) { return BaseResponseUtils.buildErrorMsg(SellResultCode.THE_FEE_CANNOT_BE_REFUNDED.getMessage()); @@ -275,12 +276,14 @@ /** * 娣诲姞寮�鍗¤褰曪紝閫�杩橀噾棰濆啿鍒版柊鍗′腑 */ + if(String.valueOf(cardNum).trim().length() == 10) { + protocol = "p206V1_0_1"; + } DtoActiveCard dtoActiveCard = new DtoActiveCard(); dtoActiveCard.setProtocol(protocol); dtoActiveCard.setCardAddr(cardAddr); dtoActiveCard.setClientNum(clientNum); dtoActiveCard.setOriginalCardId(cardId); - //dtoActiveCard.setOriginalCardId(cardNum); dtoActiveCard.setCardCost(cardCost); dtoActiveCard.setAmount(reissueAmount); dtoActiveCard.setPaymentId(paymentId); @@ -353,13 +356,6 @@ Long operator = po.getOperator(); Date cancelTime = new Date(); - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - } - cardNum = Long.valueOf(cardNumS); - // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); if(stateName.length() == 0 || !stateName.equals("姝e父")) { @@ -411,7 +407,11 @@ return BaseResponseUtils.buildErrorMsg(SellResultCode.CANCEL_FAIL_WRITE_CANCELL_ERROR.getMessage()); } - return BaseResponseUtils.buildSuccess(true) ; + Map map_response = new HashMap(); + map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("orderNumber", rec); + map_response.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map_response) ; } /** @@ -446,13 +446,6 @@ String remarks = po.getRemarks(); Long operator = po.getOperator(); Date lossTime = new Date(); - - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - } - cardNum = Long.valueOf(cardNumS); // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); @@ -507,7 +500,11 @@ return BaseResponseUtils.buildErrorMsg(SellResultCode.LOSS_FAIL_WRITE_LOSS_ERROR.getMessage()); } - return BaseResponseUtils.buildSuccess(true) ; + Map map_response = new HashMap(); + map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("orderNumber", rec); + map_response.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map_response) ; } /** @@ -542,13 +539,6 @@ String remarks = po.getRemarks(); Long operator = po.getOperator(); Date reversalTime = new Date(); - - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - } - cardNum = Long.valueOf(cardNumS); // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); @@ -598,7 +588,12 @@ return BaseResponseUtils.buildErrorMsg(SellResultCode.REVERSAL_FAIL_WRITE_REVERSAL_ERROR.getMessage()); } - return BaseResponseUtils.buildSuccess(true) ; + Map map_response = new HashMap(); + map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("orderNumber", rec); + map_response.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map_response) ; + } /** @@ -633,13 +628,6 @@ String remarks = po.getRemarks(); Long operator = po.getOperator(); Date refundTime = new Date(); - - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - } - cardNum = Long.valueOf(cardNumS); // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); @@ -679,7 +667,6 @@ seCardOperate.setCardId(cardId); seCardOperate.setClientId(clientId); seCardOperate.setMoney(money); - //seCardOperate.setNoTradeAmount(refund); seCardOperate.setRefundAmount(refund); seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode()); seCardOperate.setRemarks(remarks); @@ -723,13 +710,6 @@ String remarks = po.getRemarks(); Long operator = po.getOperator(); Date unlockTime = new Date(); - - // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙� - String cardNumS = String.valueOf(cardNum).trim(); - if(cardNumS.length() == 10) { - cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6); - } - cardNum = Long.valueOf(cardNumS); // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶卞叾鏈ˉ鍗$殑鍙互瑙i攣 if(!cardOperateSv.isLostAndUnreplaced(cardNum)) { @@ -778,7 +758,12 @@ return BaseResponseUtils.buildErrorMsg(SellResultCode.UNLOCK_FAIL_WRITE_UNLOCK_ERROR.getMessage()); } - return BaseResponseUtils.buildSuccess(true) ; + Map map_response = new HashMap(); + map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("orderNumber", rec); + map_response.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map_response) ; + } /** @@ -800,9 +785,6 @@ public BaseResponse<QueryResultVo<List<VoRecharge>>> get(QoRecharge vo){ try { QueryResultVo<List<VoRecharge>> res = cardOperateSv.getRecharges(vo); - //if(res.itemTotal == 0) { - // return BaseResponseUtils.buildFail(SellResultCode.No_RECHARGES.getMessage()); - //} return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鑾峰彇鍏呭�艰褰曞紓甯�", e); -- Gitblit v1.8.0