预占
2023-06-26 16:16:19 0 举报
预占
作者其他创作
大纲/内容
下发结算单号 ,原结算单来源是SAP,生成结算单号为结算单统一前缀D,设置为下发结算单号
po_settlement
下发结算单号 ,如果原结算单类型是卡券结算单,生成结算单号为卡券前缀Q,设置为下发结算单号,设置结算单来源为5 卡券
设置addPendingAmount为结算单预占金额,设置surplusAmount为结算单剩余可兑金额
po_account_detail
po_business_log
不为0
得到易理货预占金额occupyAmount,结算单的预占金额addPendingAmount,本次改变的金额changeAmount=结算单的可用金额,设置结算单的可用金额surplusAmount=0,修改结算单预占金额和剩余可兑金额
预占接口:/v1/easytrally/rebate/occupy请求方式Post参数:EasyTrallyOccupyReqDto occupyDto
将参数 每张结算单兑现的金额,易理货请求数据,可进行预占的结算单,小B账户,易理货预占状态未生效传入,执行cashBillChange方法
po_operation_log
请求参数检验-根据易理货请求参数 进行参数以及金额的校验得到occupyAmount,根据易理货请求的流水号是否已经执行过预占,获取要操作的小B账户编码accountCode,根据账户编码进行加账户锁
得到易理货预占金额occupyAmount,结算单的预占金额addPendingAmount,本次改变的金额changeAmount=结算单可兑金额,结算单可兑金额surplusAmount=0,修改结算单预占金额和剩余可兑金额
po_account_flow
如果向易理货推送账户流水入参实体不为空,调用接口,将推送流水到易理货,并新增业务请求记录表
po_cash_bill
预占数据操作,调用rebateOccupyUpdate方法,传入易理货预占DTO,账户剩余可兑余额,小B账户,可以进行预占的结算单信息
如果集合ylhPushCashReqDtoList不为空,推送流水到易理货,否则返回预占数据操作异常
易理货预占金额 小于 结算单可兑金额的时候
创建兑现单对象poCashBillEo,设置为小B账号,结算单兑现的金额设置为兑现金额,账号类型设置为小B,然后做插入操作
执行accountFlowInsert方法,插入小B账户流水返回poAccountFlowEo
创建向易理货推送账户流水入参对象ylhPushCashReqDtoList,遍历可进行预占的结算单,设置本次改变的金额changeAmount为0,
根据账户编码,账户类型查询小B账户poAccountDetailEo,根据请求参数转化类型-SAP类型和卡券类型,查询可以进行预占的结算单
获取结算单结算单的预占金额addPendingAmount,获取结算单剩余可兑金额surplusAmount,
开始
创建兑现明细 poCashDetailEo对象,将小B账号设置为账户编号,将小b账号id设置为兑现单id,每张结算单兑现的金额,原结算单剩余可兑金额设置为 剩余可兑金额,原结算单号设置为 结算单号,易理货预占订单编号设置为订单编号
设置下发兑现流水号,全部都是小B兑现明细 ,设置账户类型为小B,设置易理货资金流水号,这事易理货预占状态未生效,标明兑现系统为易理货,执行插入操作,返回兑现明细
GPMS来源,生成的单号为前缀J
通过结算单号,结算单预占,本次改变的金额,将结算单变更数据更新插入
为0
结算单剩余可兑金额为负的时候
判断易理货兑现金额 为 0 或者结算单的可用金额为0 的时候
通过accountDetailUpdate方法,对小B账户预占金额,和可用金额进行数据修改,然后进行更新操作
rebateOccupy方法执行预占操作 ,首先获取锁,因为传的参数为null,所以加锁不会成功
易理货预占金额 大于 等于 结算单可兑金额的时候
得到结算单的预占金额addPendingAmount,结算单可兑金额surplusAmount,本次改变的金额changeAmount=易理货预占金额,易理货预占金额occupyAmount=0,修改结算单预占金额和剩余可兑金额
回传易理货的流水,将兑换明细,结算单等参数转化为易理货流水实体ylhPushCashReqDto1,设置易理货流水号为易理货资金流水号,然后添加到ylhPushCashReqDtoList集合中
0 条评论
下一页