一、前言
面向审计人员的企业年报审计公众号,核心用途就是外勤现场录入底稿、查看汇总报表。公众号环境受限,不适合复杂重交互,同时审计表单字段多、报表需要汇总、导出、按企业筛选。如果直接照搬 PC 后台的表单和报表逻辑,会出现排版拥挤、加载慢、填写体验差等问题。
本文分享这套公众号表单、报表模块的设计思路,兼顾移动端填写效率、数据校验、权限控制,适配微信公众号的运行环境,满足外勤审计的基础业务需求。
二、业务痛点梳理
审计底稿表单包含企业信息、年报数据、抽查记录、审定金额、复核意见等大量字段,放到公众号页面里,屏幕空间有限。报表需要按项目、企业、审计状态汇总,支持筛选查看。 常见问题有:表单一次性加载全部控件,页面卡顿;报表数据量大,翻页难;字段校验提示不友好;表单提交后不能快速回查;报表导出在公众号内兼容差。 同时公众号没有独立的本地存储能力,弱网场景下填写内容容易丢失,这些都是设计阶段需要提前考虑的。
三、表单模块设计思路
表单采用分步加载、分组展示的方式,不把所有字段堆在同一屏。按业务划分分组,企业基础信息、年报填报数据、调整分录、复核信息分开展示。 公共字段统一复用,一套表单模板可以下发给多个审计项目,后台支持配置字段是否必填、是否隐藏、数据校验规则。 提交链路增加本地缓存,填写过程实时存入公众号前端缓存,页面意外关闭后重新进入可以恢复填写内容。提交前在前端做基础校验,数值格式、必填项、金额校验提前拦截,减少无效请求。 表单提交后自动关联项目 ID、企业 ID、操作人,后端统一留存填写日志,每一次修改都记录版本,满足审计追溯要求。
四、报表模块设计思路
报表分为汇总报表和单企业明细报表两类。汇总报表展示项目下所有企业的审计进度、审定总额、异常标记;明细报表对应单家企业完整年报底稿数据。 报表默认只加载摘要行,点击展开再拉取明细数据,减少一次性传输的数据量。筛选条件简化,只保留项目、审计状态、企业名称这些高频筛选项,避免筛选栏过于复杂。 导出功能不直接在公众号前端生成文件,点击导出后后端异步生成 Excel,生成完成推送公众号消息通知,用户在消息内下载文件,解决公众号环境导出兼容的问题。
五、核心代码示例
// 获取分组表单配置,按公众号端做字段裁剪 public List<FormGroupDTO> getAuditForm(String templateId) { List<FormGroupDTO> groupList = formTemplateService.getGroupConfig(templateId); return formAdaptService.adaptForWechat(groupList); }
// 报表分页汇总查询,按项目统计审计数据 public Page<ReportSummaryDTO> getReportSummary(ReportQueryDTO query) { return reportMapper.selectSummaryByProject(query); }
六、权限与数据隔离
审计项目权限严格隔离,不同审计人员只能看到自己负责企业的表单和报表。后台配置角色权限,实习生只能录入,项目经理可以复核、查看全部报表。 报表里面敏感财务数据,公众号端增加脱敏规则,非项目负责人自动隐藏部分核心金额字段。
七、落地踩坑点
第一个坑,一开始直接复用 PC 端长表单,公众号移动端横向挤压,输入框错位,填写体验很差,必须重新做移动端适配布局。 第二个坑,报表一次性全量查询,项目企业一多,接口超时,改成分页 + 懒加载明细。 第三个坑,异步导出没有消息通知,用户提交导出请求之后不知道什么时候完成,容易重复点击。 第四个坑,缓存没有过期清理,长期保存审计财务数据,存在隐私风险,增加自动清理逻辑。
八、总结
公众号表单和报表模块,核心原则是轻量化适配移动端,表单分组、报表摘要先行,不照搬 PC 端复杂交互。表单负责现场数据录入,报表负责汇总查看、进度管控,两者共用同一套底稿数据,和 PC 后台数据互通。 这套方案适合外勤轻量化使用,复杂复核、批量编辑操作依旧留在 PC 后台,分工明确。