.stackedit-trash/README.md updated

This commit is contained in:
xiaobin 2024-02-27 14:43:52 +08:00
parent 4958ab2449
commit cbcb59102a

View File

@ -40,14 +40,42 @@
5. 否则:部分开票 5. 否则:部分开票
6. 当ERP系统里面发票结案状态为"强结案"同步到CRM系统时需要将强结案的发票红冲状态修改为"作废",将目前系统里面发票核销状态显示"已核销"逻辑去除并按原始核销状态的取值逻辑取值; 6. 当ERP系统里面发票结案状态为"强结案"同步到CRM系统时需要将强结案的发票红冲状态修改为"作废",将目前系统里面发票核销状态显示"已核销"逻辑去除并按原始核销状态的取值逻辑取值;
**四、收款分析** **四、收款与核销分析**
收款业务主要有收款单核销与收款单确认主要用于关联发票与收款单进行核销操作。 收款业务主要有收款单核销与收款单确认主要用于关联发票与收款单进行核销操作。
#### 算法
涉及算法的位置点击核销打开核销详情页面匹配发票数筛选相同开票单位且和当前选中的发票未核销金额相等的发票最多支持同时匹配3条
x=当前发票未核销金额a=匹配发票未核销金额b=匹配发票未核销金额c=匹配发票未核销金额size=数组长度i=数组当前下标minSize=数组最小下标maxSize=数组最大下标arr=数组
1. 匹配数1条
a=x
1. 匹配数2条
a+b=x
1. 匹配数3条
a+b+c=x
该算法的关键在于去除重复匹配的数据,减少循环层数,提高查询效率。
算法核心固定i同时前后移动数组进行比较这里只说明三条匹配的算法两条是一样的原理
1. 当minSize=0且maxSize=0时minSize=i+1maxSize=size+1同时从数组前后进行比比较
2. 当minSize>=size时i+1且跳出循环此时说明当次比较已经完成跳出循环进行下次比较
3. 当minSize>=maxSize时使maxSize=0maxSize=0i+1且跳出循环此时也说明当次比较完成跳出循环将下标进行初始化当前下标+1进行下一次比较
4. 当a+b+c=x时使maxSize=0maxSize=0i+1且跳出循环并将arr[i]arr[minSize]arr[maxSize]放入结果中(此时说明满足条件,将结果放入满足条件的集合中,跳出循环进行下一次比较)
5. 当a+b+c>x时minSizei保持不变maxSize-1继续进行比较
6. 当a+b+c<x时maxSizei保持不变minSize+1继续进行比较
#### 关键业务流程
![输入图片说明](/imgs/2024-02-27/QyRs49i3AeCiLNFZ.png)![](https://dev.rzdata.net/download/attachments/32900500/worddave0391ac8f62ed7c5b7c0a6ee64ee585b.png?version=1&modificationDate=1679883554000&api=v2)
<!--stackedit_data: <!--stackedit_data:
eyJoaXN0b3J5IjpbNjk5NzY5MjkyLC0yNjIwMzU3MjQsMjUyMD eyJoaXN0b3J5IjpbLTEyNjU5MTQ0ODMsNjk5NzY5MjkyLC0yNj
M2MTU5LC0yODU3NTQ0MTQsLTE5MTc2NTA0MDYsLTIxMzYzNTM5 IwMzU3MjQsMjUyMDM2MTU5LC0yODU3NTQ0MTQsLTE5MTc2NTA0
NzQsLTE5MTc2NTA0MDYsLTIxMzYzNTM5NzQsLTIxMzYzNTM5Nz MDYsLTIxMzYzNTM5NzQsLTE5MTc2NTA0MDYsLTIxMzYzNTM5Nz
QsMTAwMTMxOTEwOSwxNTcwODI0Nzc4LC0xODc1NzY5NTc5XX0= QsLTIxMzYzNTM5NzQsMTAwMTMxOTEwOSwxNTcwODI0Nzc4LC0x
ODc1NzY5NTc5XX0=
--> -->