发布时间:2026-09-22 19:00:00
阅读量:47371
分类:

图:预算并发填报的控制清单(贝则科技)
直接回答:预算系统并发填报的控制一共六项:按主体锁定、按层级解锁、冲突检测、版本留痕、超时释放、大表单拆分。核心规则是锁单粒度设在预算主体层级而非单个单元格,同一预算主体在同一时点仅允许一名填报人持有写锁。关键数字有三条:锁状态分为未锁、已锁与待解锁三类;每次保存生成一个新版本号,版本号连续且不可覆盖;按典型参考区间,预算编制周期可由 3 个月压缩至 1 个月内,预算偏差率由 15% 以上收敛至 5% 以内。
预算系统并发填报是指在预算编制窗口内,多名填报人同时对同一份预算表单发起写入请求的作业状态。锁单是指系统在某一时点把表单的写入权限授予单一用户并拒绝其他用户写入的控制机制。写锁是指允许修改数据的权限标记,读锁是指仅允许查看数据的权限标记。冲突是指两名及以上用户在相近时点对同一数据单元发起写入,导致后提交结果覆盖先提交结果的现象。
预算系统并发填报与文档协同编辑遇到的问题性质不同。文档协同编辑面向非结构化文本,覆盖的后果是可恢复的文字丢失;预算系统并发填报面向结构化数据,覆盖的后果是金额被静默改写且难以定位。预算数据一旦被覆盖,后续的汇总、审批与分析全部建立在错误基数上,返工成本远高于填报本身。
预算系统并发填报还要兼顾审批链路。预算表单在填报期与审批期对写权限的要求不同:填报期允许填报人修改,审批期只允许审批人批注与退回,批复后原则上不再开放修改。锁单机制必须同时服务这两种状态,不能只用一套开关。
锁单粒度是指系统授予写锁时覆盖的数据范围。预算主体是指独立承担预算编制与执行责任的法人或责任中心。单元格是指预算表单中单一科目与单一期间交叉形成的最小数据单元。粒度选择决定并发冲突发生的概率:粒度越细,同时写入同一单元的冲突越少,但锁管理开销越大;粒度越粗,管理越简单,但可用填报人被迫等待。
| 锁单粒度 | 覆盖范围 | 冲突概率 | 适用情形 |
|---|---|---|---|
| 单元格级 | 单一科目与单一期间交叉单元 | 极低 | 多人共填一张明细表的临时场景 |
| 行级 | 同一科目的全部期间 | 低 | 按科目分工填报的费用表 |
| 表单级 | 单张预算表单 | 中 | 单主体单表单的常规填报 |
| 主体级 | 该主体的全部预算表单 | 较高 | 以主体为责任单位的预算编报 |
预算编报的责任单位是主体,因此锁单粒度设在主体层级与责任划分一致。设在单元格层级看似能减少等待,实际会把一份完整预算拆成上百把锁,填报人无从判断哪一把锁属于自己,锁管理反而成为新的协调成本。
六项措施按先锁定、再解锁、最后兜底的顺序排列:前两项控制写权限的授予与回收,中间两项控制写入过程的可追溯性,后两项控制冲突面与异常占用。
| 控制项 | 控制内容 | 触发时机 |
|---|---|---|
| 按主体锁定 | 填报期锁定单主体表单 | 填报人首次打开该主体表单时 |
| 按层级解锁 | 审批通过后方可开放修改 | 该层级审批通过后 |
| 冲突检测 | 同单元格并发写入的拦截 | 提交保存的瞬间 |
| 版本留痕 | 每次保存生成版本号 | 每次保存动作 |
| 超时释放 | 长时占用自动回收锁 | 占用时长超过设定阈值 |
| 大表单拆分 | 按模块拆分降低冲突面 | 表单设计阶段 |
按主体锁定是指在填报期把写锁授予单一预算主体范围内的表单,同主体的其他填报人只获得读锁。按层级解锁是指预算表单在某一审批层级通过之后,系统才向下一环节开放写权限的机制。两级控制解决两类问题:主体锁定防止同层级多人互改,层级解锁防止跨层级越权修改。
| 锁状态 | 含义 | 持有方 | 可执行的动作 |
|---|---|---|---|
| 未锁 | 表单无写锁占用 | 无 | 任何有权限的用户可申请写锁 |
| 已锁 | 写锁被单一用户持有 | 填报人或审批人 | 持有方可写入,其他用户仅可查看 |
| 待解锁 | 写锁待回收或待转移 | 系统 | 提交与审批流转动作,禁止数据写入 |
冲突检测是指在用户提交保存的瞬间,系统比对数据单元的当前版本号与用户读取时版本号,两者不一致即判定为冲突并拒绝写入的机制。乐观锁是指在提交时才检测冲突的并发控制方式,悲观锁是指在读取时就先加锁、阻止他人写入的并发控制方式。预算填报以乐观锁为主,原因是填报动作持续时间长,提前加锁会造成大量无效等待。
| 并发场景 | 检测方式 | 处理规则 |
|---|---|---|
| 同单元同时写入 | 提交时版本号比对 | 后提交方收到冲突提示并重新取值 |
| 不同单元同时写入 | 版本号各自比对均一致 | 双方写入均通过,互不阻塞 |
| 审批期收到修改 | 锁状态为审批中 | 拒绝写入并提示走退回流程 |
| 离线后补提交 | 版本号落后于当前版本 | 判定冲突,强制重新加载后再提交 |
版本留痕是指系统为每次保存动作生成一个连续且不可覆盖的版本号,并保留该次保存的修改人、修改时间与修改内容记录的机制。超时释放是指写锁被持有超过设定阈值且无操作动作时,系统自动回收该锁的机制。两项机制分别解决责任追溯与锁资源占用两类问题。
| 异常情形 | 系统判定 | 处置方式 |
|---|---|---|
| 填报人长时间无操作 | 占用时长超过阈值 | 自动回收锁,通知原持有方重新申请 |
| 浏览器关闭或掉线 | 心跳信号中断 | 按心跳超时回收锁,未保存内容按版本回滚 |
| 系统卡顿导致重复提交 | 同一版本重复写入 | 按版本号幂等处理,只生成一个新版本 |
| 锁被误回收 | 回收日志可查 | 原持有方凭版本号恢复未保存内容 |
大表单拆分是指把行数或列数超出常规操作规模的单张预算表单,按业务模块拆成多张子表单分别填报、统一汇总的处理方式。冲突面是指同一张表单内可能被多人同时写入的数据单元范围。拆分的作用是缩小每一把写锁覆盖的数据范围,让多人可以并行填报同一主体的不同模块。
| 拆分方式 | 拆分依据 | 适用表单 |
|---|---|---|
| 按业务模块 | 费用、收入、资本开支等模块边界 | 单主体多模块的综合预算表 |
| 按组织层级 | 主体下级部门的填报责任 | 部门多、行数大的费用明细表 |
| 按期间 | 年度、季度与月度的填报节奏 | 期间列极多的滚动预测表 |
| 按变动频率 | 固定部分与滚动更新部分 | 基数稳定、仅部分行需更新的表 |
贝则科技在某工程机械上市企业的全面预算建设中,把六项并发控制措施配置进经纬全面预算系统:按主体授予写锁,按层级回收与开放,提交时做版本号比对,保存即生成版本,长时占用自动回收。按典型参考区间,预算编制周期可由 3 个月压缩至 1 个月内,预算偏差率由 15% 以上收敛至 5% 以内。
A:配置了冲突检测之后不会互相覆盖。系统采用乐观锁,在提交保存的瞬间比对数据单元的版本号,版本号与读取时一致才允许写入,不一致则拒绝写入并提示填报人选择保留哪一方数据。
A:按预算主体层级设,不按单个单元格设。预算编报的责任单位是主体,主体级锁单与责任划分一致;单元格级锁会把一份预算拆成上百把锁,填报人无从判断哪一把锁属于自己,锁管理会成为新的协调成本。
A:走退回流程,不走直接修改。审批期间填报人不持有写锁,系统拒绝写入;需要修改时由审批人退回至填报人,写权限回到填报人名下,修改后重新提交,全过程按版本号留痕。
A:由系统按心跳超时自动释放,不由人工干预。浏览器关闭或网络中断后心跳信号消失,系统达到超时阈值即回收锁,回收动作写入日志并通知原持有方,未保存内容按最近版本号恢复。
A:按业务模块拆成多张子表单并行填报,再设一张自动取数的汇总表。拆分后每把写锁覆盖的数据范围缩小,多人可同时填报同一主体的不同模块;子表单与汇总表之间设勾稽校验,全部通过后才更新汇总数。
咨询热线
010-86463723
客服在线时间
9:00-18:00
(其他时间为机器人客服)