背景: 某初创公司,主营第三方产品的安装与维保服务,需要对服务单及进度进行管理,以及记录日常经营支出,由个人完成整个系统设计、开发、日常维护
业务流程:
1、接受第三方派发的服务单,导入系统,记录关键信息及附件
2、记录服务、回款状态,保存现场照片及相关证明
3、记录业务支出,保存报销凭证,月度导出以供财务记账
功能:
1、基础用户管理、第三方公司信息维护
2、服务单据导入导出,流程管理,附件管理,支持 OCR
3、报销单导入导出,流程管理,附件管理
4、建议看板,显示待处理单据,月度统计
思路:
1、初创公司,且个人需同时负责公司日常业务,因此采用最简技术栈开发
2、根据实际业务需求持续迭代
3、使用容器集群部署,简化服务器配置
架构:
1、整体基于 B/S 架构实现,后端使用 Spring Boot MVC、Spring Data JPA、PostgresSQL,后续由于服务器资源限制改为 Fiber、Gorm实现。前端使用 Vue、Vuetify
2、采用 Docker Compose 部署,前端使用 Caddy 进行静态资源部署和 SSL 证书自动管理,后端使用基础镜像挂载目录部署
难点:
1.限于成本,需实现基础的本地附件管理,并将文件系统操作纳入数据库事务。通过抽象文件操作以及对应逆操作实现。
2、需实现本地 OCR 支持,采用 Rapidocr 实现,Java 技术栈下可直接引入,Go 技术栈部署对应镜像,并通过 RPC 调用实现
3、需支持不同第三方派单文档的映射识别。采用策略模式实现,Java技术栈下使用 Spring Bean 注入机制,Go 技术栈下则提供注册接口由模块内手动注册