zhubaomin
2024-10-24 e5ac29afd5569196a54bd4f77457848afc7adf55
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -614,8 +614,7 @@
    }
    /**
     * 补扣
     *
     * 补扣、反写
     * @param po
     * @param bindingResult
     * @return
@@ -633,10 +632,11 @@
         * clientId         农户编号(非传入参数,由cardNum反查)
         * cardNum          水卡编号
         * money            卡片余额
         * refund           补扣余额
         * refund           补扣余额/反写金额
         * remarks          备注
         * operator         操作人编号
         * refundTime       补扣时间
         * operateType      操作类型:1-补扣,2-反写
         */
        Long cardId = 0L;
        Long clientId = 0L;
@@ -645,7 +645,7 @@
        Float refund = po.getRefund();
        String remarks = po.getRemarks();
        Long operator = po.getOperator();
        Date refundTime = new Date();
        Integer operateType = po.getOperateType();
        // 验证水卡状态是否支持当前操作
        String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse("");
@@ -685,16 +685,29 @@
        SeCardOperate seCardOperate = new SeCardOperate();
        seCardOperate.setCardId(cardId);
        seCardOperate.setClientId(clientId);
        if(operateType == 1) {
            // 补扣
        seCardOperate.setMoney(money);
        seCardOperate.setRefundAmount(refund);
        seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode());
        }else {
            // 反写
            seCardOperate.setMoney(refund);
            seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode());
        }
        //seCardOperate.setMoney(money);
        seCardOperate.setRefundAmount(refund);
        //seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode());
        seCardOperate.setRemarks(remarks);
        seCardOperate.setOperator(operator);
        seCardOperate.setOperateDt(refundTime);
        seCardOperate.setOperateDt(new Date());
        seCardOperate.setOperateValid((byte) 1);
        Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L);
        if (rec == 0) {
            if(operateType == 1) {
            return BaseResponseUtils.buildErrorMsg(SellResultCode.REFUND_FAIL_WRITE_REFUND_ERROR.getMessage());
            }else {
                return BaseResponseUtils.buildErrorMsg(SellResultCode.WRITE_BACK_FAIL_WRITE_BACK_ERROR.getMessage());
            }
        }
        return BaseResponseUtils.buildSuccess(true);
@@ -881,6 +894,16 @@
            cardOperateSv.turnOperateValidByCardId(cardId, operateType);
            cardOperateSv.updateRefund(operateType, cardId);
        }
        else if (operateType == 10) {
            /**
             * 反写操作执行通知
             *  1.操作记录改为有效
             *  2.修改水卡表的操作信息及余额-从操作记录中取money
             *  说明:返还操作记录中的money就是反写金额
             */
            cardOperateSv.turnOperateValidByCardId(cardId, operateType);
            cardOperateSv.updateWriteBack(operateType, cardId);
        }
        return BaseResponseUtils.buildSuccess();
    }