尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SpringBoot3+Vue3 资产盘点差异处理:更正、盘亏核销、盘盈建卡与审批回写

SpringBoot3+Vue3 资产盘点差异处理:更正、盘亏核销、盘盈建卡与审批回写 SpringBoot3Vue3 资产盘点差异处理更正、盘亏核销、盘盈建卡与审批回写文档地址https://ruoyioffice.com源码1·GitHubhttps://github.com/yuqing2026/ruoyi-office源码2·GitCodehttps://gitcode.com/zhouzhongyan/ruoyi-office源码3·Giteehttps://gitee.com/yqzy1688/ruoyi-office微信17156169080备注「RuoYi Office」一句话盘点执行只回答「账实差在哪」卡片该不该改要另开一张差异处理单走审批。RuoYi Office 按异常 / 盘亏 / 盘盈分成更正、核销、建卡三条回写过账前盘点明细锁成处理中同一行不能进第二张在途单。▲ 源头必须是已完成盘点单。相符行不进差异单。三条回写改卡、报废、新建。生成时明细标处理中过账后行标已处理可重入跳过引言实盘扫完最危险的是当场改台账资产全生命周期、折旧计提已有专文。盘点差异经常被做成「盘点表上直接改位置」。现场会炸在这三句现场原话当场改卡的后果「位置扫错了先改回去」没有审批监守自盗和误扫分不清「少了一台平板卡片删掉」履历断了折旧和盘点对不上「多出来一台没编号的显示器」分类自定义字段拦住整单差异单卡死盘点单负责执行和统计相符 / 盘盈 / 盘亏差异处理单负责经过审批的台账后果。两张单不要合成一张。技术栈锚点2026Spring Boot 3.5 Java 17PC 为 Vue3 差异处理详情审批走 Flowable回写走onProcessApproved。一、先完成盘点再生成差异单结论未完成的盘点单禁止 generate相符行不进候选。演示盘点PD-ADJ-1785663016名称「差异回写验收盘点」进度 100%合计 4 / 已盘 4正常 0、盘盈 1、盘亏 1。右上角有「生成差异处理单」。▲ 盘点单 PD-ADJ-1785663016管理员盘点已盘 100%。四行结果MOCK-CS-010 位置不符异常、MOCK-CS-009 状态不符异常、MOCK-CS-008 盘亏、一行无编号盘盈。账面/实际位置与状态并排生成差异单吃的就是这些结果码进候选的结果码盘点结果默认处理类型是否必须勾选异常位置/状态不符信息更正全部进入盘亏盘亏核销全部进入盘盈盘盈建卡可「全部盘盈」或指定行 ID相符—不进盘点明细如果已经adjustStatus ≠ 未处理再生成会抛「已关联」防止同一条实盘差异挂两张单。生成成功后把这些明细标成处理中并互写adjustItemId。二、一张差异单三种处理类型同屏结论处理类型在生成时按结果码赋好审批前可改回写位置 / 分类 / 原值不能把盘亏行偷偷改成相符后不了了之——要改去盘点执行里重盘。演示差异单AM707-2026080200002已审批通过差异行数 4来源正是上面那张盘点单。▲ 单据 AM707-2026080200002审批通过。来源盘点 PD-ADJ-1785663016差异 4 行。明细能看到处理类型、差异说明、账面/实际位置与状态两行信息更正市场部→分公司 A、使用中→闲置、一行盘亏核销、一行盘盈建卡四行和盘点执行一一对应处理类型对应实盘过账做什么信息更正位置不符 / 状态不符改卡片位置、状态写盘点调整履历盘亏核销账上有、实盘无卡片改为报废履历类型走报废盘盈建卡实盘有、账上无新开卡片来源类型盘盈回写盘点明细 assetId头表汇总correctCount/lossCount/surplusCount列表页能看出这张单是「改位置」还是「要报废」。三、生成锁明细不改卡片结论generate 只写差异行并锁盘点明细净值、位置、状态全部不动。if(!Objects.equals(stocktake.getStocktakeStatus(),STOCKTAKE_STATUS_COMPLETED)){throwexception(ASSET_STOCKTAKE_NOT_COMPLETED);}// 异常、盘亏一律进盘盈按 includeAllSurplus 或指定 IDif(adj!null!Objects.equals(adj,ADJUST_STATUS_NONE)){throwexception(ASSET_STOCKTAKE_ADJUST_ITEM_LINKED);}adjustMapper.insert(head);adjustItemMapper.insertBatch(rows);for(AssetStocktakeAdjustItemDOrow:rows){AssetStocktakeItemDOunewAssetStocktakeItemDO();u.setId(row.getStocktakeItemId());u.setAdjustItemId(row.getId());u.setAdjustStatus(ADJUST_STATUS_PROCESSING);stocktakeItemMapper.updateById(u);}盘盈行生成时把实盘填的分类、原值、实际位置抄到差异行。名称或分类在提交审批时还空着过账会失败所以要在可编辑阶段补齐而不是等到 Flowable 通过才发现。四、过账三条回写一行一次结论onProcessApproved才碰卡片已处理的行直接 continue回调重入安全。for(AssetStocktakeAdjustItemDOitem:items){if(Objects.equals(item.getHandleStatus(),HANDLE_STATUS_DONE)){continue;}if(CORRECT)writebackCorrect(head,item);elseif(LOSS)writebackLoss(head,item);elseif(SURPLUS)writebackSurplus(head,item);// 行标已处理盘盈把新卡 ID 写回盘点明细}更正目标位置或目标状态相对卡片有变化才 update。位置变更写进履历正文「A → B」状态没变就不写 before/after避免「闲置→闲置」空日志。盘亏不删卡。assetStatus 报废履历类型按报废记内容带差异单号和原盘点单号。折旧、历史领用还在只是这张卡不再进盘点池。盘盈generateAssetCode()新编号来源类型盘盈来源单据本差异单。注释写得很清楚——走入库同款直写台账避开分类自定义必填字段阻断整单。新卡 ID 回写到差异行cardId和盘点明细assetId下次盘点就能扫到编号。盘点明细过账后adjustStatus 已处理。驳回 / 取消只改差异单流程状态不自动解锁明细——避免审批否决后另一张单把同一行再提一次却对不上现场。解锁应走作废差异单的专门入口取消接口而不是靠驳回副作用。五、设计决策与边界决策点方案理由盘点与差异拆单执行单 处理单实盘和改账审批分离必须已完成generate 校验状态盘到一半不能改卡相符不进只捞异常/亏/盈差异单保持可审明细加锁处理中禁止再关联一差一单三种处理类型更正 / 核销 / 建卡后果完全不同不能一个 update盘亏不删卡改报废履历和折旧还在盘盈直写台账跳过分类自定义必填整单不被一块必填卡住过账幂等行 handleStatus回调重入不报废两次更正无变化则跳过位置状态都没变 return少写空履历审批中不改卡只在 onProcessApproved驳回可重填回写位置边界维修中的卡仍可盘亏。是否允许「在途领用中盘亏」要在盘点范围里提前排除不要在过账里偷偷 return。盘盈原值允许 0。财务要净值过账后走折旧模块补年限和残值率。同一张盘点可以分批勾选盘盈生成多张差异单但每一行只能进一张。六、数据结构要点差异头bill_code、stocktake_id/stocktake_bill_code、total_count、三类计数、process_status。差异行handle_type、handle_status、账面/实际/回写位置与状态、盘盈category_id/original_value、过账后card_id。盘点明细check_result、adjust_status0 未处理 / 1 处理中 / 2 已处理、adjust_item_id。卡片更正改location_id/asset_status盘亏改状态盘盈 insertsource_type为盘盈。七、技术亮点总结设计要点实现方式价值账实与改账分离两张单据实盘可复核完成态门禁未完成拒绝生成盘到一半不改卡明细锁adjustStatus一差一单三叉回写更正/报废/建卡后果可预期盘亏留卡状态报废履历不断盘盈直写跳过自定义必填整单能过过账幂等行已处理跳过回调安全履历带单号差异单盘点单能倒推无变化不写日志更正短路少噪音盘盈回写编号明细补 assetId下次能扫到八、快速体验在线演示https://ruoyioffice.com/web/账号 admin / admin123打开资产 → 资产盘点进入PD-ADJ-1785663016看四行异常 / 盘亏 / 盘盈和右上角生成按钮。打开差异处理单AM707-2026080200002核对四行处理类型与账面/实际对照。点开盘亏那台MOCK-CS-008的卡片看状态是否已报废、履历是否有盘亏核销。点开盘盈新建的卡看来源类型是否为盘盈、来源单号是否指向差异单。更正行看卡片位置是否已从市场部改到分公司 A。尝试对同一张已关联明细再生成差异单应被后端拒绝。源码仓库GitHubhttps://github.com/yuqing2026/ruoyi-office GitCodehttps://gitcode.com/zhouzhongyan/ruoyi-office Giteehttps://gitee.com/yqzy1688/ruoyi-office常见问题FAQ盘点执行页点保存会不会改资产卡片不会。执行页只写盘点明细的实际位置、实际状态和结果码。卡片要等差异单审批通过后的三条writeback*。盘亏为什么不直接删除卡片删了就没有折旧、领用、盘点履历。改成报废后不再进下一次盘点池历史对账还在。盘盈为什么可以没有资产编号实盘多出来的东西本来没有编号。过账时系统generateAssetCode()再把新 ID 写回盘点明细。生成差异单时编号列空是正常的。审批驳回后盘点明细还能再做一张差异单吗生成时只要adjustStatus不是未处理就会拒绝。驳回默认不自动解锁。需要作废当前差异单、把明细解锁后才能重提。位置扫错能不能在差异单上改成「相符」不要。相符行根本不进差异单。扫错应在盘点执行里改实际值并重算结果再生成。差异单负责改账不负责改实盘。结语资产盘点差异的工程难点不是把盘盈盘亏显示成两个色块而是让改账可审批、可回滚口径、可倒推履历。盘点单锁执行差异单锁后果更正改位置、盘亏改报废、盘盈建新卡三条回写不要共用一个 update。明细在生成时锁、过账时结同一条实盘差异不会进第二张在途单。折旧解决这个月净值少多少盘点差异解决账上这张卡还在不在、在哪。两件事都不要在没有单据的 SQL 里直接改卡片。你们现在年终盘点是 Excel 对完当场改台账还是已经能从差异单翻到报废履历欢迎在评论里对一下盘盈建卡卡在分类必填没有。想要体验 RuoYi Office 的强大功能在线演示https://ruoyioffice.com/web/账号 admin / admin123源码仓库GitHubhttps://github.com/yuqing2026/ruoyi-office GitCodehttps://gitcode.com/zhouzhongyan/ruoyi-office Giteehttps://gitee.com/yqzy1688/ruoyi-office技术咨询添加微信17156169080备注「RuoYi Office」⭐如果觉得不错请给个 Star 支持一下
返回列表