1. 引言
在2019年工作会议上,国家电网公司创造性地提出建设“三型两网、世界一流”具有全球竞争力的能源互联网企业的战略目标。三型包括“枢纽型、平台型、共享型”,其中,“平台型”指建成“一站式服务”的智慧能源综合服务平台,实现内部数据“即时获取”,业务需求“敏捷响应”,实现数据融通,服务价值创造。
文献 [1] 对物资采购模式和流程进行了论述,文献 [2] [3] [4] 对ERP系统中发票对接实现方式进行了设计,文献 [5] [6] 对供应商在结算过程中如何与采购单位协同进行了方案设计,基本实现了供应商与采购单位发票数据交互,达到便捷结算的目的。为深入贯彻落实国网工作会议精神,国网江苏省电力有限公司落实“放管服”改革内容,积极推行物资供应链管理“一站式”线上服务,拓展供应商服务应用领域。基于移动互联网技术,通过建设基于移动应用的供应链合同发票管理系统,激发供应链的活力与动力,持续提升供应链服务水平。
2. 系统设计
2.1. 功能设计
供应链合同发票管理系统主要分为两部分:ERP端合同发票信息系统和APP端合同发票登记系统。ERP端合同发票信息系统首先根据合同执行进度自动触发合同待开票清单至APP端,其次接收APP端登记回传的合同发票信息,最后负责合同发票数据系统检查及财务记账;APP端合同发票登记系统主要负责接收和展示合同待开票信息,待登记及已登记发票信息展示、合同发票信息登记编辑及上传等功能。本系统的功能图如图1所示。
2.2. 数据库设计
系统通过数据库进行数据存储,数据库从逻辑上分为:1) 用户信息数据库:主要包括用户编码、用户名称、所属公司编码、所属公司名称、用户状态、创建日期等数据信息;2) 合同数据库:主要包括合同编号、供应商编码、供应商名称、合同状态、含税总价、不含税总价、合同生效日期、合同属性、行项目序号、物资唯一码、采购订单、物料编码、物料描述、合同数量等数据信息;3) 待开票清单数据库:主要包括内部合同号、供应商编码、采购订单、行项目、物资唯一码、采购订单数量、已收货数量、过账日期、开票状态、下传状态、下传时间等数据信息;4) 发票登记信息数据库:主要包括合同编码、采购订单、供应商编码、供应商名称、行项目序号、物资唯一码、发票登记号、发票号码、发票代码、开票日期、开票数量、税款、价税合计、记录状态、登记日期、登记时间、上传日期、上传时间等数据信息。
2.3. 系统结构设计
APP端合同发票登记系统体系结构如图2,逻辑上分为6层,从上至下依次是:1) 手机端程序:主要完成用户交互功能,客户端前台主要是HTML5页面,基于开源前端框架(bootstrap)和JS库(JQuery)实现页面的展现,向服务器提交数据通过移动平台封装的AJAX数据请求插件进行处理。后台管理系统数据的展示主要使用JSP生成HTML页面,用户的输入使用HTML控件,一些特殊的操作和页面效果通过JavaScript完成,用CSS来规范页面样式。向服务器提交的数据提交到后台的Action类进行处理,部分功能通过AJAX方式提交以提高用户界面友好性。2) 平台层:手机端程序通过平台(电力公司内部单位通过i国网,供应商通过电力一点通)进行跳转到移动应用后台的业务支撑服务,然后进行逻辑处理。3) 页面控制层:采用成熟的MVC应用框架struts,由界面控制器Action组件、struts、xml、JSP页面组件和灵活的属性配置组成。控制器Action接受用户的输入并调用业务逻辑层的业务方法和界面表示层的组件去完成用户的需求。当用户提交JSP表单时,控制器接收请求并调用相应的业务逻辑层方法去处理请求,然后调用相应的视图来显示业务逻辑层返回的数据。4) 业务逻辑层:Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。IOC (Inversion of Control)控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。AOP (Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。5) 数据访问层:JDBC (Java Data Base Connectivity,java数据库连接)用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。6) 数据库:数据库采用ORACLE数据库系统,作为一个通用的数据库系统,它具有完整的数据管理功能,作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能,使用该架构可轻松部署和管理数据库云。
3. 系统实现
3.1. ERP端系统实现
ERP作为公司管理信息系统的核心,是供应链合同发票管理系统的源头和归宿,首先在ERP获取满足开票条件的合同作为数据源,其次回收保存合同发票数据信息,最后在ERP完成财务记账处理。
其中,ERP端“合同待开票清单及下发”功能根据定制规则自动检查采购订单收货情况,对完成收货的记录自动定期下传合同待开票清单,同时保留手动触发下传操作,下传成功后更新下传状态,发票登记上传成功后更新开票状态,如图3所示。
3.2. APP端系统实现
APP端合同发票登记系统将物资部门和供应商有机地统一到一个系统中,APP端自动接收ERP端合同待开票清单数据,通过移动应用APP“一站式”定制信息推送,搭建内(电力公司)外(供应商)信息共享和业务处理渠道。
1) 物资部门APP
电力公司物资部门用户通过i国网登陆物资部门APP,APP支持多种查询方式,输入查询条件列出满足条件的合同清单记录,可以分类查看待登记和已登记的记录,选择某一条记录点击“>”按钮,可以查看该记录的详细信息,依次如图4、图5、图6、图7所示。
![](//html.hanspub.org/file/2-1541491x11_hanspub.png)
Figure 3. List of contracts to be invoiced and issued
图3. 合同待开票清单及下发
![](//html.hanspub.org/file/2-1541491x12_hanspub.png)
Figure 4. Contract invoice list inquiry 1
图4. 合同开票清单查询1
![](//html.hanspub.org/file/2-1541491x13_hanspub.png)
Figure 5. Contract invoice list inquiry 2
图5. 合同开票清单查询2
![](//html.hanspub.org/file/2-1541491x14_hanspub.png)
Figure 6. List of records to be invoiced
图6. 待开票记录清单
![](//html.hanspub.org/file/2-1541491x15_hanspub.png)
Figure 7. Details of pending invoice record
图7. 待开票记录详细信息
2) 供应商服务APP
供应商用户通过电力一点通登陆供应商服务APP,根据输入条件查询清单记录,选择某一条待登记清单记录点击“>”按钮,进入编辑发票界面,一条记录可以对应多张发票,点击“新增”按钮进入新发票登记界面,支持手工输入和扫描发票二维码两种登记方式,登记完毕后保存数据记录,登记数量与收货数量一致的数据信息可以上传ERP。依次如图8、图9、图10、图11所示。
![](//html.hanspub.org/file/2-1541491x16_hanspub.png)
Figure 8. Inquiry of contract invoice list
图8. 合同开票清单查询
![](//html.hanspub.org/file/2-1541491x18_hanspub.png)
Figure 10. Invoice information registration and preservation
图10. 发票信息登记保存
![](//html.hanspub.org/file/2-1541491x19_hanspub.png)
Figure 11. Upload invoice registration information to ERP
图11. 发票登记信息上传ERP
4. 结束语
本项目搭建的供应链合同发票管理系统,采用移动APP方式部署,突破办公场所限制,便于随时进行业务查询和办理,实现业务即来即办,降低了供应商的商业成本,提升了供应商对供应链服务的满意度。在未来的研究工作中,我们将考虑连接金税系统进行发票认证的可行性,从而进一步提升合同结算业务办理的时效。