/-

企业购销合同管理系统

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

contractms

企业购销合同管理系统

源起

我任职的公司是一个中型体量的传统业务型企业。从不足百人的公司发展到250人左右的体量,公司的业务范围和项目也在急剧扩张。在这样的情况下,首当其冲的就是出现了大量的业务合同需要进行管理。因为是传统业务型公司,公司各个职能部门对信息化的理解程度各有偏差,造成了合同管理的困难和混乱。公司内部管理也属于高速成长期的粗放管理型,最严重的时候我们部门所经手的项目甚至有找不到当时签署的合同文件,不知道时谁签署的合同,也不知道几时要进行付款的情况。信息部门尚且如此,更遑论其余经手合同更加多的业务部门了。

写这个系统的起源,是在上述的公司大环境下,我们部门在2020年初参与了一个重要项目集,与合作方因为申报需求签署了大量的合同。但因为项目的变迁,有些合同需要作废,有些合同升级为框架,还有些合同需要推进签署和落实各期付款。这样就造成部门内部对合同的管理形成很大压力,各位同事都在花大量的精力对自己经手的项目合同进行管理、追踪,对信息部门的其他职能反而造成了疏忽。同时因为公司管理制度的变更,合同管理这个事务也出现了变革的需求。

有鉴于此,我根据任职公司的合同主要方向、公司合同管理的制度流程、财务法务对合同签署后的管理要求等内容开始设计这套系统。也因为于此,本系统未必能适合所有人的合同管理要求。当然,我也从未考虑过要将这个系统设计成一个大而全的产品,我只希望能够减轻部门内同事的压力,进而让他们能够更好的进行信息管理的工作。

因为我的主要技能树建立在企业业务ERP和O记数据库管理、SQL、Python之上,所以会先行从后台DB、中间业务层进行设计、编码做起。未来将逐渐把前台做出来。

设计-需求

  1. 能够了解合同的概况,了解合同是谁签署的,合同时间范围,合同金额,什么时候需要付款/收款。
  2. 收款/付款情况跟踪,发票需要对应。
  3. 能够关联合同、收付款情况,直观展现合同完成比率。
  4. 对收付款发票科目进行汇总,这个需求是申报所产生的。
  5. 能够了解合同存放位置。
  6. 如果能够有合同借阅管理就更好了。

项目使用技术

  1. 数据库-Oracle RDBMS
  2. 中间层-Python3 Flask
  3. 接口形式-RESTful
  4. 展示层-暂缺,未设计

业务流程动作拆解

根据调研与现场观察、实操所收集到的情况,我司合同管理包括以下几个业务流程

  1. 合同建立
  2. 合同审批
  3. 合同通过并登记入册
  4. 合同执行
  5. 合同验收
  6. 合同付款
  7. 验收登记入册
  8. 查阅历史合同
  9. 查阅历史付款

对于这些业务流程,我希望软件功能聚焦在流程3、5、6、7、8、9几个流程上。

以下拆解流程至动作:

  1. 合同通过并登记入册
    1. 对已审批通过的合同赋予编码
    2. 摘要信息重要信息(甲乙方、时间、付款时间等)
    3. 对合同登记入册并电子化纸本文件
    4. 确认存放位置并记录
  1. 合同验收
    1. 对应合同验收条件进行项目/实物验收
    2. 确认通过后对验收文件进行签字盖章
  1. 合同付款
    1. 确认验收
    2. 确认收到发票
    3. 确认达到合同所约定付款条件
    4. 提交财务付款流程
  1. 验收登记入册
    1. 验收文件数字化
    2. 收录进合同相关册中
  1. 查阅历史合同
    1. 根据各种纬度对单份合同进行检索查询
    2. 根据各种纬度对多份合同进行汇总查询
  1. 查阅历史付款
    1. 根据各种纬度对单份付款信息进行检索查询
    2. 根据各种纬度对多份付款信息进行汇总查询

对流程1、流程2的处理

对于流程1合同建立、流程2合同审批,我所任职的公司有更加合适的工具进行处理。合同系统建立接口接受其他业务系统建立审批完成后的数据结果作为后续业务的基础数据。优先处理后续没有很好数字化的业务痛点问题。

数据库业务表设计

应用层设计

前台UI设计