APP下载

基于Python 语言的成本管理系统设计与开发

2024-03-06陈泽帆郭苗梓李满孙思达广汽乘用车有限公司

锻造与冲压 2024年4期
关键词:用量费用数据库

文/陈泽帆,郭苗梓,李满,孙思达·广汽乘用车有限公司

在数字化时代的背景下,成本管理是汽车制造业管理业务中的重要组成部分,如何通过数字化改善来提高成本管理水平是一个十分重要的课题。考虑到成本管理业务具有较高的定制化特性,G 厂制造部基于Python 语言的灵活性自主设计和开发了成本管理系统。通过成本管理需求搭设系统架构,建立数据库,设计并开发了数据管理、预算管理、执行过程管理和费用预实分析等一系列功能,自上线以来实现了信息的共享化、统计的精确化和决策的科学化,有效提高了成本管理效率和整体水平。

随着时代的进步,在汽车制造业中信息化逐渐得到推广和使用,如何将信息化积累的数据进行有效利用的数字化时代已悄然到来。在数字化背景下,汽车制造业也在积极探索数字化改善和转型的道路。成本管理作为企业管理的重要组成部分,实现系统自动分析无疑会提高成本管理效率,为企业的经营、决策提供科学可靠的数据支撑。

传统的汽车制造业成本管理大部分处于Office 简单分析的阶段,即便借由ERP、MES 等系统对底层数据完成自动采集,但在更进一步的数据整理和分析层面仍缺乏系统化和现代化的手段。加上随着社会经济的快速发展,经营环境的日渐复杂,企业对于成本管理的精细化要求程度也越来越高,再采用人工手动整理、分析成本数据将会耗费大量的工时,同时无法形成累计的多年变化趋势,很难从发展中识别出变化点,支持企业管理者及时、有效地决策。鉴于此,G 厂制造部从冲压等各制造车间成本管理人员的实际业务需求出发,以最大程度提高成本管理效率为目的,基于Python 语言自主设计和开发了成本管理系统,作为向管理数字化探索迈出的第一步。

开发技术概述

成本管理系统是一个采用B/S 架构模式的Web 系统,后端基于Python 语言中的轻量化网络框架Flask 进行开发,前端采用了经典的“三剑客”——HTML、CSS 和JavaScript,数据库使用了免费开源的MySQL 数据库。

Python 语言作为一门高层次的脚本语言,有很强的可读性,对初学者友好,支持多类应用程序开发,广受各行各业的使用者欢迎。Flask 是一个使用Python 编写的轻量级Web 应用框架,相比其他同类型的网络框架更加灵活、轻便,且具有很强的定制性,用户可以根据自己的需求来添加相应的功能,非常适合需求灵活且定制化程度较高的成本管理系统开发使用。

HTML+CSS+JavaScript 是Web 应用前端页面的传统三件套。HTML 用于描述页面的结构,CSS 用于控制页面中元素的表现,JavaScript 用于响应用户行为,三者共同构成网页前端。

MySQL 是一个关系型数据库管理系统,通过建立不同的数据表来存放数据。相比把所有数据都放在一个大仓库内,分表存放可以极大地提高查询速度和灵活性。

成本管理需求

成本管理是指企业生产经营过程中成本计算、成本分析、成本控制和成本决策等一系列科学管理活动的总称,主要分为事前计划、事中控制、事后分析三个过程。因此,成本管理对系统的基本需求主要包括成本数据的管理、年度预算费用预测、费用明细项分析和费用预实分析等相关功能,贯穿整个成本管理过程。

当前市面上存在的与成本管理相关的系统主要是ERP(企业资源计划)、EAM(企业资产管理)等系统,其功能主要集中在业务流程管理,如冲压材料的出入库,周转材料的进出场等都会形成数据并录入到系统里。在数据分析方面仅提供简单的数据汇总等通用性较强的功能,对于成本分析、费用预测等功能往往涉及较少。究其原因,一是成本分析关联的数据并不仅仅来源于一个系统,在旧有系统导入初期并未做出协同规划。像G 厂冲压车间需计算生产时某种耗材的单台用量,就需要在ERP 和MES(制造执行系统)至少两个系统中获取数据(耗材总用量和产量),仅靠ERP 一个系统并不能实现,需要花费额外精力去打通数据壁垒;二是相比起流程处理这类通用性较强的系统功能来说,成本分析的专用性更强,需根据企业、部门的实际业务需求来进行开发,是一种具有高度定制化特性的功能,相应地也就需要更高的开发成本。

因此,在相当长的一段时间里,G 厂制造部成本数据的分析和归集都是依靠人工来完成的。在进行分析前由预算员利用Excel 等工具将用量清单、月度产量、出账费用等相关数据手动汇集在一起,再进行数据分析和报表制作。各类与成本管理相关的数据离散在各个业务流程系统之中,极大地增加了管理成本。

系统功能设计

通过对成本管理需求的整理,本文的成本管理系统在设计之初就将更多的功能集中在数据分析方面。利用数据库接口和导入功能直接在ERP、MES 和GIO等系统提取底层数据源,简化数据采集流程。再结合Python 语言面向对象编程的特性开发出贴合实际业务需求的成本分析功能。整个成本管理系统主要设计了以下几个模块对成本进行管理,如图1 所示。

数据管理模块

该功能模块主要是对成本相关的源数据如费用明细、预实推移、物料出库等数据进行管理。成本管理系统内的数据管理模块以MySQL 数据库管理系统为内核,除了将数据库增、删、改、查等基本功能做到前端UI 界面之外,还支持将数据以.csv、.xls 等常规数据格式文件导出,如图2 所示。开发了多种数据导入渠道,如通过数据库接口直接传输、通过.xls等文件格式整体导入、通过系统生成表单填写等,能适用各种情况下的数据获取。更加全面地从其他系统、数据文件甚至纸质文件获取成本相关数据,并进行数据清洗和整合,建立成本大数据库,这样既有利于原本离散的成本数据归集,又能提高数据管理效率。

图2 费用预实推移表管理界面

预算管理模块

此功能模块主要应用于成本管理中的事前计划阶段,通过输入预算年度的基本数据(如冲压的预算产量、生产天数等)由系统通过算法和模型来生成该年度的费用预测,以此达到提高预算精准度的目的。

常见的预算编制方法主要有调整预算法和零基预算法。调整预算法是以现有的费用水平为基础,根据预算期内业务量的变化,对现有费用水平进行调整,以确定预算数的方法。零基预算法则是指在编制预算时对于所有的预算支出均以零为基底,从根本上研究分析每项预算是否有支出的必要和支出数额的大小。总体来说,两种预算编制方法各有优劣,因此本文系统中的预算管理模块在设计过程中融合了两种预算编制方法,在力求提高预算编制效率的同时兼顾预算准确性。

系统中的预算管理模块主要功能有年度费用预测和历年费用推移两种。年度费用预测是系统根据使用者输入的预算前提调用不同费用科目预先设定的模型和算法来自动计算出预算费用的功能。此处以G 厂制造部冲压车间的能源费为例进行说明,能源费由能耗用量和能源单价两个因素来主导,能源单价作为预算前提由人工导入到系统中。而能耗用量则进一步细分为电、水等类型,其中用电量就分为长时间开启的24 小时设备能耗、与产量相关性较强的变动能耗和与工作日相关性较强的固定能耗(此处的变动、固定是以产量作为衡量标准)三个部分。根据具体设备能耗统计出每个部分的用电单耗,再乘以对应的预算前提(自然日、产量、工作日)就能得出年度用电量情况。历年费用推移功能是对年度费用预测功能的辅助和补充,顾名思义,该功能是系统自动对数据库中所存储的历年费用情况进行整理,并输出相应的趋势图表供用户分析和使用,同时系统后台还会根据历年费用情况对前文的费用预测结果进行修正。当前G 厂制造部成本系统数据库中已经保存了从2012 年至今10 余年的数据,数据量越多对于费用预测的修正结果也会越准确。

费用过程管理模块

此功能模块主要应用于成本管理中的事中控制阶段,针对重点的费用科目开发了一系列管理功能。主要包括用于管控低值易耗品、劳保用品等物料的用量管理功能、管控投资项目节点的项目管理功能等。此处重点说明使用较多的用量管理功能。

用量管理功能是一种可以快速汇总海量数据的交互式方法,对于一个生产部门来说,随着时间的推移,与物料用量相关的如备件、劳保出入库等明细数据会不断累积。据初步统计,G 厂制造部1 年可产生的费用明细数据就达到10 万条左右,其中更是涉及73 个不同的费用科目和3800 多种不同的物料。因此以往仅能通过初步统计后对用量最高的TOP5 或TOP10 物料进行详细分析,再有针对性地开展过程管理。这种管理方式虽然也能在一定程度上把控高用量物料的使用趋势,但并不能很好地发现低用量物料的异常。且随着管理精细化程度的不断提高,仅仅把握高用量的几种物料情况显然已经无法满足日常的业务需求。

用量管理功能可以全面覆盖所有物料,并对每一种物料的用量、费用、单台、单价等情况进行分析,如图3 所示。根据业务需求,系统功能中内置了多种维度的分析选项,如时间维度分为月度推移和年度推移,费用类型维度区分办公费、维保费等等。使用者只需选择对应的查询条件,系统就可以快速地在数据库中找出相应数据,并整理输出方便分析的目视化图表。得益于系统的高效率算法,从查询到生成任意一种物料的分析图表只需要0.5 秒,即便需要生成一年内使用过的全部物料的分析图表也仅需半小时左右,极大地提高了工作效率。

图3 某一物料用量情况分析

费用预实分析模块

此功能模块应用于成本管理的事后分析阶段,可以根据费用数据自主生成费用分析报表。事后分析是全面预算管理中不可或缺的一个阶段,它在成本管理循环中处于承上启下的关键环节。管理者及时地对当期结果进行差异分析,才能进行下一期的战略调整和预算调整,不断提高预算的精确性和合理性。

费用预实分析模块的功能主要集中在对财务出账费用数据的预实分析上,包括每个月的费用预实推移、费用执行率分析和当月费用预实差异分析等功能。所有功能在时间维度上都以月为基础分为当月数据和累计数据,在费用类型维度上分为基本预算、执行预算和实际费用。常见的预实分析是对预算和实际之间的对比和分析,但为了进一步提高费用分析的准确率,G 厂在基本预算的基础上使用了执行预算的概念。相比起基本预算,执行预算是将基本预算中的变动费用根据实际产量与预算产量的比值进行调整后的预算。

剔除了产量因素的影响,但同时也提高了计算的复杂性。尤其是随着精细化管理的发展,各项变动费用的计算方式从最开始全年相同的变动比例到每个月不同的变动比例,再到如今的变动单台,精确性逐步提高的同时也让计算量成倍增加。费用预实分析模块则内置了执行预算计算的算法,使用者只需输入不同费用科目的变动单台费用,系统就可以自主提取基本预算费用、预算产量、实际产量等相关数据计算出每一个月的执行预算。

同时成本精细化管理也要求从更多维度来分析成本数据,如区分不同费用类型(劳务费、管理费等7类)、不同的费用科目(73 个)、不同统计口径(总计、可控费用)等。因此费用预实分析模块针对性地开发了可控费用调整功能,如图4 所示。

图4 可控费用调整功能

该功能让使用者可以通过勾选的方式来调整每一次生成的分析报表中包含的数据源,简单来说就是允许使用者对73 个费用科目进行自由组合,系统会自动根据组合情况在数据库中快速检索相应数据,执行计算后生成分析报表,如图5 所示。这样不管是任何维度或统计口径下的成本分析需求都能快速满足,极大地增强了数据分析的灵活性。

图5 费用预实分析界面

系统数据库说明

本文的成本管理系统采用的是关系型数据库,使用表来定义数据对象,不同的表之间使用关系连接。同时为了提高系统数据库的安全性,降低开发难度,成本管理系统利用SQLAlchemy 来操作数据库。它简化了连接数据库服务器、管理数据库操作会话等各类工作,把底层的SQL 数据实体转化为高层的Python 对象,让开发者可以直接通过Python 代码来完成数据库操作。定义数据库模型使用Python 类定义表模式,并声明映射关系。所有的模型类都需要继承SQLAlchemy 提供的db.Model 基类。表的字段由db.Column 类的实例表示,字段的类型通过Column类构造方法的第一个参数传入。

创建完数据模型后,SQLAlchemy 使用数据库会话来管理数据库操作。数据库会话代表一个临时存储区,对数据库做出的任何改动都会存放在里面。开发者可以调用add()方法将新创建的对象添加到数据库会话中,或是对会话中的对象进行更新。这些改动直到对数据库会话对象调用commit()方法时,才会被提交到数据库,确保了数据提交的一致性。同时,数据库会话也支持回滚操作,当开发者对会话调用rollback()方法时,添加到会话中且未提交的改动都将被撤销。

系统架构及安全性

系统采用单体架构,也就是较为典型的三层架构,按照前端表示层(Web)、中间业务逻辑层和数据库层进行划分,各相邻层之间采用接口相互访问,如图6 所示。这种系统架构的优点在于分工明确,开发人员各司其职,不仅可以专注于各自架构层功能的设计和开发,提高开发效率,也有利于后续系统的更新和维护。

图6 系统三层架构图

前端表示层与用户直接接触,主要功能是实现系统数据的传入和输出。对于传入的数据,前端表示层可以通过JavaScript 进行初步验证,例如数据类型、数据长度和数据有效性的验证等,但这类验证的安全性往往存在弊端。因为Web 前端都是依赖客户端的浏览器来生成页面的,这意味着浏览器势必会接收到前端表示层的代码,懂得代码知识的用户可以通过修改代码改变Web 页面的表现形式来跳过安全验证,使写在前端的逻辑功能都无效化。所以前端表示层的数据验证更像是一种数据筛选,用于规范常规用户的输入数据。

业务逻辑层用于实现主要功能,包括成本分析、结果输出、报表生成等。同时作为串联前端和数据库的中间层,业务逻辑层也承担了大部分安全检测的功能,对于用户的身份验证、权限验证、输入数据验证等均在此层完成,确保系统和数据库的安全性。系统所使用的Flask 网络框架封装了很多安全性的措施,如使用ORM 对象关系映射的数据库管理方式,对于SQL 注入拥有一定的防护力;使用Jinja2 模板引擎,默认将渲染变量进行HTML 转义;使用提高安全性的加密函数等。经过安全验证的数据通过视图函数里的算法、模型运算后,最终将结果再反馈至前端表示层。

至于数据的增、删、改、查等操作则是在数据库层来完成。数据库层不包含任何代码,访问逻辑都放在业务逻辑层,只有数据库和相关的存储过程。这样可以避免表示层直接访问数据库层,提高了数据安全性。

结束语

为应对日趋激烈的市场竞争,提高企业的行业竞争力,技术创新是必不可少的。在数字化改革背景下,成本管理作为企业的重中之重,必须深入研究数字化创新,转变固有的成本观念。本文提出的基于Python语言自主开发的成本管理系统是G 厂制造部结合成本业务开展的一次内部数字化探索,旨在通过系统功能进一步推动成本管理水平的提升。自2021 年初系统上线以来,通过数据管理、费用分析、费用预测和报表生成等功能,有效提高了成本管理人员数据处理的准确性和工作效率,同时系统分析的高效性和科学性也有助于管理者及时、准确地做出决策,展现了该系统降低成本和提高管理效率的使用效果。

随着数字化浪潮的到来,汽车制造业也在积极探索数字化转型,成本管理业务的数字化也是数字化转型中不可或缺的一部分。下一步G 厂制造部将继续通过系统开发等数字化改善对传统的管理业务和方法进行优化,不断提高管理水平和工作效率。

猜你喜欢

用量费用数据库
2021年日本钛加工材在各个领域用量统计
大豆种植意向增加16.4%化肥用量或将减少
关于发票显示额外费用的分歧
监理费用支付与项目管理
数据库
Side force controlon slender body by self-excited oscillation flag
数据库
数据库
数据库
农户如何称取和配制小用量固体农药