认款
2019-04-30 18:07:54 0 举报
为你推荐
查看更多
认款
作者其他创作
大纲/内容
遍历handlerCodeMap.每个proceedsCode只存在一条必要字段;1.流水入账会计日期2.流水ID3.流水code4.handlerCodeMap value的size长度(redis要递增的长度)
接收流水退款数据
结束
根据proceedsModifyMap获取的实体dto的交易金额+自身dto的交易金额赋值给proceedsModifyMap获取的实体dto
循环
返回currentItemCode 截取1 是组装过后最大的code数 = lastCode
是否出现异常
否
因为proceedsId不为空证明已经封装过因为关联了流水需要回写第一条认款的部分数据1.proceedsId2.产品编码3.产品名称4.款项类型编码5.款项类型名称6.法人主体编码7.法人主体名称8.流水入账会计日期9.交易金额
redis编码递增value.size长度= xxx,currentItemCode+= xxx
根据流水入账会计日期和认款入账会计日期分片数据
数据添加到current表
封装current表数据分片
回写产品线编码和产品线名称and款项类型编码和款项类型名称前提未入账&未认款1.如果之前是总账处理模式现在是营收处理模式回写成营收处理模式产品线和款项类型都回写2.如果account_type_code=5 代表虚拟银行 回写法人主体3.当un_confirm_money_amount 小于0时抛出异常4.如果款项类型=11是内部转账并且当前ebs入账状态不是已入账则改为无需入账35.如果款项类型!=11并且当前ebs入账状态不等于已入账则改为未入账 16.如果款项类型=11并且并且当前ebs入账状态不等于已入账则认款状态改为无需认款4
是否是未入账
证明是第一次封装以后的数据数据字典的款项类型编码不包含根据proceedsModifyMap获取的款项类型&包含自身的款项类型
判断current表中是否含有这条数据
判断流水数据是否是((已入账||无需入账)& (已认款||无需认款))||支方向
流水修改金额是否抛出异常
是
流水ID是否为空
根据redis批量封装id
每条数据itemCode递增(lastCode-value.size + 1) ++
把数据装入handlerCodeMap
开始
把自身的dto款项类型编码和款项类型名称赋值给根据proceedsModifyMap获取的实体dto
同一流水数据获取认款编码需要加锁,以保证认款流水尾号+1递增
遍历proceedsModifyMap 修改流水余额
countDownLatch.await
根据proceedsCode封装数据如果proceedsModifyMap存在dto直接返回 否则自身放入proceedsModifyMap在返回dto
遍历value
判断是否生成认款单号
异步迁移流水数据
释放redis锁
第一个线程
根据流水入账会计日期查询mysql获取最后一条
把数据装入迁移流水数据的集合
countDownLatch.await抛出异常
vr虚拟模式已经生成
更新流水
在current表删除数据
开启CountDownLatch多线程设置2个子线程
判断是否是收方向
是否查询到
从redis获取流水编码判断是否存在key=\"item:payment_item_code_key_+proceedsCode
循环处理数据
根据不同表后缀批量插入数据库
第二个线程
收藏
0 条评论
回复 删除
下一页