基于PHP的碳排放减排管理系统设计与实现
**技术说明:**本文围绕碳排放减排管理系统进行信息系统设计复盘,重点整理PHP Web开发、MySQL数据建模、排放数据录入、减排任务管理、统计分析和系统测试等实现要点。内容用于PHP信息系统开发和数据分析方法交流,不构成专业环境管理建议。
摘要
在当前全球非常重视环境保护和碳排放问题的背景下,建立一个高效碳排放管理信息系统非常必要。本文将通过PHP技术开发一个完整碳排放管理系统,帮助企业或者管理部门可以有效的管理和分析他们的碳排放情况。通过PHP动态网页技术的特点结合MySQL数据库的存储方式,实现数据的存取和处理的过程。系统功能可能包含碳排放数据录入、统计汇总、生成报表还有图表展示这些方面。能够有效完成各种不同碳排放指标数据的收集和加工处理,让使用者可以得到直观和具体的碳排放信息。实际使用中发现用PHP开发的碳排管理系统运行稳定,操作简单并且容易扩展功能,使管理人员的工作效率和管理水平提升,对企业制定节能减排决策提供数据支持,在碳排放管理方面取得了不错效果,具备较高的实用价值。
关键字:碳排放;PHP;减排管理系统;数据分析;可持续发展
Abstract
Against the backdrop of the current global emphasis on environmental protection and carbon emissions, it is essential to establish an efficient carbon emissions management information system. This article will develop a complete carbon emission management system using PHP technology to help businesses or management departments effectively manage and analyze their carbon emissions. By combining the characteristics of PHP dynamic web technology with the storage method of MySQL database, the process of data access and processing is achieved. The system functions may include carbon emission data entry, statistical summary, report generation, and chart display. It can effectively collect and process data on various carbon emission indicators, allowing users to obtain intuitive and specific carbon emission information. In practical use, it has been found that the carbon emission management system developed with PHP runs stably, is easy to operate, and has expandable functions, which improves the work efficiency and management level of management personnel. It provides data support for enterprises to make energy-saving and emission reduction decisions and has achieved good results in carbon emission management, with high practical value.
Keywords:CarbonEmissions;PHP;EmissionReductionManagementSystem;Data Analysis;Sustainable Development
绪论
研究背景
由于全球气候变暖问题变得严重,碳排放问题已经成为了国际重点关注对象,各个国家和区域都陆续制定严格的碳排放目标和政策,用来应对气候变化带来的各种挑战。欧盟推出Fit for 55计划,目标是到2030年时让温室气体排放量比1990年减少55%的比例,中国也制定了双碳目标1,表明了积极响应气候变化,坚持绿色发展低碳的决心。在这种情况下,企业作为碳排放的主要来源,承受着减排的巨大压力。
以前的碳排放管理都是靠人工记录和分析,这样效率不高还容易搞错,企业想要准确了解碳排放数据和做好减排方案的需求就很难。比如有一家制造厂在用人工统计碳排放数据,因为它需要处理很多生产环节和复杂的数据计算,每个月都要花很多的人力和时间,并且数据错误能达到10%左右,结果企业自己都很难正确评估碳排放情况,更不可能制定出很准确的减排计划了。
现在信息技术的快速发展给碳排放管理创造了新的机会。大数据、云计算还有物联网这些技术现在应用得很成熟了,这让快速收集、存好多碳排放数据并且能深入分析它们变成了现实2。所以用信息化系统来管碳排放数据和分析数据就成了必须的趋势,这样基于php的碳排放减排管理信息系统就在这种情况下出现了。php作为很多人都在用的免费编程语言,因为它花钱少、做系统快、还能跟各种数据库搭配得好这些优点,可以让做系统的钱更少,还能让系统做得更快更稳当,这对建设碳排放减排管理信息系统功能很完善提供了有力的技术帮助。
研究目的与意义
本研究主要是想用PHP技术开发一个功能比较齐全的碳排放减排管理系统。通过这个系统可以对企业碳排放数据进行自动采集和比较准确,用一些数据分析模型来深入分析,再用图表直观地显示结果,让企业能清楚和比较全面地了解自己的碳排放情况,这样就能帮助他们制定出可行、比较科学的减排方案,给企业提供数据上的帮助和做决定的参考,这样可以帮助企业实现碳排放目标,符合现在全球都在搞低碳发展的趋势。
企业层面:站在企业管理运营的角度,这个系统使用后可以有效提高碳排放管理效率,节省了人力和时间上的成本浪费6,并且也降低了数据错误,
提升管理上面的准确和细致。当碳排放政策经常变化的时候,这个系统可以帮企业很快做出反应,及时地改变他们的运营策略,这样企业就能更好适应政策,并且在市场上更有竞争力。
社会方面:在全世界都努力减少碳排放的情况下,这个系统的使用给其他公司提供了可以参考的信息化案例,帮助全社会节能减排工作的进行开展8,推动各行业向绿色转型,同时这对解决全球气候变化问题有很大作用,并且为实现可持续发展目标起到重要帮助,为全球减少碳排放做出了贡献。
研究内容与方法
研究内容
系统需求深入分析:通过实地调研、问卷发放、访谈交流这些方法,收集全企业在碳排放管理中的各种需求。分析不同规模企业还有不同行业的企业,他们在碳排放数据管理流程上的不同,准确找到系统需要哪些功能,比如数据采集要多久一次、精度要求、分析的角度还有报表怎么定制这些方面。同时还要明确系统性能、安全这些非功能需求的标准,以及系统是否容易使用,这样让系统开发有明确目标3。
系统架构创新想法:结合先进软件工程思想,做出高聚合低关联的架构。数据库这块用了分布式存储加关系数据库混合的办法,让数据存和读变快了,大量碳排放数据能够管得更有效率。功能模块方面搞成能拆能装的组合式结构,比如做了通用型数据采集接口,可以方便连接各类设备,单独的数据分析算法部分分出来,之后算法要改进或者增加功能比较方便。
系统开发要做到高效:用PHP技术栈为基础,结合一些比较新的框架工具来做系统开发。按照微服务架构的思路,把系统分成好几个独立的服务模块,比如用户管理、数据采集、数据分析这些,这样提升系统的可维护性并且扩展性更好。另外还加入了自动化测试框架,在开发时进行持续集成和交付(CI/CD)流程,保证代码不出问题,从而让开发更快
系统测试覆盖全面:制定比较完整的测试方案,覆盖到功能检查、性能测试、安全验证、适配性测试这些方面。功能测试用黑盒和白盒两种测试方法一起用,这样能保证功能都按设计来;性能测试就是模仿很多用户同时使用的情况,看系统反应速度和数据处理能力这些数据;安全测试主要检查有没有漏洞,做渗透测试,这样就能保证系统安全;兼容性测试要在不同系统、浏览器还有手机平板这些设备上都试一遍,确保系统哪里都能用
研究方法
文献计量和知识图谱方法:用文献计量学的工具对碳排放管理领域、信息系统开发领域、还有PHP技术应用这些领域的相关文献做计算分析,然后画出知识图谱。通过分析这些图谱,可以更清楚看出当前的研究重点在哪里,最前沿的发展方向是什么,以及各个不同研究主题之间有关系,这样就能为后续系统的设计和开发工作提供比较全面的理论支撑。
标杆企业调研方法:选国内国外那些在碳排放管理信息化做得特别厉害的公司来仔细调查4。去到现场看他们怎么搭建系统、日常维护和运行情况、实际效果这些方面,跟公司的技术员和管理层聊天,直接拿到资料。把这些好公司的做法记下来,把他们有用的技术办法和管理方式整理出来,最后用在自己系统的研究里。
敏捷开发与迭代优化的方法:用敏捷开发来做系统开发,把项目分成很多个迭代周期。每个迭代周期里会有需求分析、设计、开发还有测试这些步骤,通过不断迭代让系统功能越来越完善。在迭代的时候要及时收集用户的反馈意见,根据这些反馈来调整和优化系统,确保系统一直符合用户的需求,这样系统的实用性和用户满意度都得到了提高。
相关技术介绍
PHP语言
PHP也就是超文本预处理器,它是一种开放源代码并且通用的脚本语言类型,特别适合用来做网页开发,可以直接嵌入到HTML里面进行使用。PHP存在下面这些明显的特点:
语法比较简洁容易学:PHP语法像C语言啊Java这些,有编程基础的人学起来容易。代码结构也挺清楚,刚学的人也能很快明白怎么写基本程序逻辑了。
可定制性强:PHP有很多函数库和扩展模块,开发者能根据项目需要自由选择和组合搭配,可以轻松实现比如文件处理、数据库管理、图像编辑之类的功能。比如说一个碳排放管理系统的开发,通过PHP的文件处理函数来处理碳排放数据文件会比较方便
兼容性好的数据库:PHP可以支持很多主流的数据库,比如MySQL还有Oracle、SQL Server这些。当PHP和MySQL数据库一起用的时候,因为PHP自己高效的数据库连接和查询操作,能够很快地存储和读取碳排放的数据,给整个系统的数据管理提供了比较可靠的保障。
PHP是免费的开源:它作为开放代码的软件,有很大的开发者群体,开发者不用花钱就能使用,并且社区里有很多技术帮助和互相分享资源,这样帮助技术越来越进步和革新。
PHP被广泛的用于各种Web应用开发,不管是个人小型网站还是企业级的大型应用都有PHP的存在。在碳排放减排管理系统中PHP要处理业务逻辑部分,负责接收用户提出的请求,然后和数据库联系交换数据,再把结果返回给用户,这样是系统功能实现的主要技术组成之一。
XAMPP
XAMPP是一个容易安装的Apache的发行版本,里面包括有Apache服务器、MySQL数据库、PHP解释器还有Perl这些组件,算是一个功能很强大的集合开发环境,主要的特点有下面这些:
安装配置很简单:XAMPP有一键式安装包,只要几步就能装好,不用复杂的配置步骤。这对刚入门的新手或者急着要搭开发环境的人,能省下很多时间精力。比如做那个碳排放管理系统开发的时候,程序员直接通过XAMPP快速搭个本地服务器,这样项目推进速度就上去了。
跨平台支持方面,XAMPP可以在比如Windows、Linux、Mac OS这些主流系统上都可以使用,兼容性跨平台很好。所以开发者不管是什么操作系统都能用XAMPP开发项目,这样灵活性更高了。
方便测试和调试:XAMPP 搭建本地服务器环境,给开发者们提供一个安全稳定的测试调试环境。开发时可以在本地环境随时测试系统功能,发现问题和调试修复,防止线上环境出错,从而确保系统可靠和稳定运行。
XAMPP在网站开发里使用得很普遍,给开发者带来了方便的测试开发的环境。在碳排放系统开发的时候,XAMPP用来搭建本地的服务器环境,然后还有安装PHP程序,还能管理MySQL数据,这让整个系统开发测试什么的都效率更高了。
系统需求分析
平台定位
这个处理碳排放减少的管理系统根据企业和资源管理设计,目的是成为多功能碳排放管理和分析的一个平台。他不光是数据储存仓库,还是企业做碳排放方案、评价减排效果的有效工具。通过收集企业碳排放有关的各种数据,系统能给出完整准确的碳排放信息,帮助企业管理碳排放过程更好,完成节约能源减少排放的任务目5。
数据整合中心就是对企业里各部门和各业务环节产生的碳排放数据,进行集中地收集整理存储,打破数据各自孤立的情况,从而让数据管理统一起来。
决策支持平台:通过数据分析和数据挖掘的技术,把碳排放的数据进行深入分析,这样就能给公司管理者提供参考,比如在制定减少排放的方案时候,或者改变生产安排时候能作为决策基础。
合规监管小助手------它主要能帮企业们满足政府关于碳排放监管的要求,按时正确交碳排放的报告,这样就能防止因为不合规被罚款的情况
需求分析
功能需求
- 碳排放数据管理
数据采集模块允许进行手动输入企业在各个部门比如生产环节、运输环节还有办公部门这些地方的能源消耗的数据例如电力煤炭或者天然气用量,同时记录其它排放相关数据比方说工业废气的排放量。然后设置有接口跟企业现在有的能源管理系统或者生产管理系统这些进行对接,就能做到自动采集和实时更新这些数据10。
数据存储方面:构建碳排放的数据库,把收集来的数据分门别类的保存,比如像企业的基础信息、不同时期的排放量数据、排放源这些信息。使用安全性高的存储方法,保证数据不要丢失和出错,同时也方便后续追踪这些数据
数据查询和统计:能够提供比较灵活的数据查寻,用户可以通过时间范围、排放源、部门这些条件来查碳排放的数据7。然后还能对结果进行统计分析,比如算不同时间段的碳排放总量,各个排放源的比例什么的,然后用表格或者图表来显示。
- 碳排放分析
趋势分析方面:针对历史排放碳的数据展开趋势分析,使用了折线图等这类可视化的方法展示出碳排放量随时间的变化趋势,使得用户能够理解企业碳排放在发展上的态势。另外分析排放的碳是否存在某种季节性或周期性的变化规律,这样能为企业制定减少排放策略的依据。
对标分析这块,他们需要提供行业里面平均数碳排放的数据或者同类型其他企业的碳排放数据作为对标参考,然后把自己公司的碳排放情况和这些数据做对比。然后找出公司和被对比对象之间存在的差距地方,这样就能知道企业在全行业里面碳排放处于什么水平位置了。
影响因素分析部分:分析不同的因素比如生产规模、能源结构还有工艺改进这些方面对碳排放能有多大影响,然后通过数据挖掘统计方法分析来找出来碳排放的关键影响因素11。这样就能给企业制定减排措施提供数据支撑了。
- 减排措施管理
制定措施方面:通过碳排放分析的结果,系统会给出减排措施建议比如优化能源的结构、改进生产工艺流程、设备维护等。用户根据实际情况,可以制定适合自己的减排方案措施,还能设置这些措施的目标是什么、什么时候开始做、谁来负责等内容。
措施执行和监控方面:需要把减排措施执行的过程记录下来,比如什么时候开始实施、具体进展怎么样、还有遇到了哪些问题等等。然后要随时监测这些减排措施的效果,将实施前和实施后的碳排放数字进行对比,看看这些措施到底有没有用。
措施调整和优化方面:基于减排措施实施后的效果和现实情况,系统会给出调整和优化的建议。用户能对这些措施进行修改、暂停或者停止处理,这样就能保证减排目标能够达成。
- 报告生成与管理
报告模板可以定制:它有很多模板可以选择,用户能按自己需要去选,还能自己调整这些模板,像是在格式、内容或者图表这部分都能改。
生成报告功能:根据用户选好的报告模板和数据范围,系统自己会生成碳排放的报告,报告里面会有碳排放的数据,还有分析出来的结果,以及减排的方法这些内容。并且可以把报告导出成常用的文件格式像是PDF、Excel这些,这样用户分享给别人和保存起来都更方便了。
报告审批和发布功能:该功能支持用户设置审批流程,然后用户能够指定审批人以及审批步骤,然后对生成的报告进行审核和批准这些操作。当报告通过审批后,就可以在系统里发布出来,相关人员可以查看或下载这些报告。
- 用户管理
用户注册和登录方面:需要支持用户能够注册,用户得填写比如用户名、密码、联系电话这些信息才能完成注册。登录的时候要有安全的机制,可以支持多因素认证这样的方式,这样用户的账号才会更安全。
角色和权限管理方面:系统里设置不同用户角色,比如有管理员、普通用户、企业这些角色,各个角色的操作权限都不同。管理员能管理用户角色还有权限,像是可以增加、修改或者删掉用户角色,然后给他们分配权限之类的操作。
用户信息的管理:用户自己可以修改他们的个人数据,像是电话或者登录密码什么的。而管理员则能管理用户的信息,包含查看用户数据、修改或删除它们这些操作。
非功能需求
系统的响应时间应该要控制在合理范围里,比如做简单查询的话响应时间应该不能超过3秒这样6,然后复杂的数据分析还有生成报告的时候响应时间10秒以内就差不多了。然后系统必须要有高并发处理的能力,就是说至少100个用户同时在线访问和操作都能带得动,这样在业务比较忙的时候系统也不会卡住不能用。
用加密方法处理像用户密码、碳排放信息这类重要数据在保存和传送时不泄密。通过设置严格的用户身份验证和权限管理,让获得批准的用户才能登入系统和处理数据。要经常检查系统有没有安全隐患并及时修补,避免遭到网络攻击或被病毒程序破坏。
系统用了分块设计的方法,每个功能模块比较独立又能扩展,这样对系统升级和修护比较方便。代码都按规范来写,读起来容易后面的人改代码也方便。另外文档写得很全像需求设计开发的测试这些文档都有,维护升级的时候可以照着这些材料来弄。
系统界面设计要做到简洁美观和便于操作,根据用户平时的使用习惯来设计。需要提供清晰的导航和提示信息,这样用户就能更快找到需要的功能或操作步骤。用户进行操作时应该及时反馈,操作结果和错误信息要及时显示出来,这样可以提升用户的操作体验。
管理员需求分析
用户管理:管理员是整个系统权限最大的人,可以管理用户所有的流程操作。需要审核用户注册时的资料,保证用户填写的信息都是真的;还有给企业或其他人开通权限的时候要新建账号;然后删除那些不用系统或者违反规定的用户账号。然后他们还要负责用户登录和找回密码这些步骤,有问题的时候就处理一下来保证账户安全。用password_hash这个加密方法把新用户密码转码保存,这样就能避免用户密码被泄露的情况出现。
系统配置管理:管理员负责系统运行需要的参数设置。比如修改数据采集脚本运行时间,确保多源设备碳排放数据收集得完整和及时;还有负责XAMPP服务环境的配置,比如改进Apache服务器配置参数(比如调服务器内核参数、优化HTTP请求处理的流程这些),让系统性能变得更好。
报表管理:管理员可以根据企业自身管理和外部监管需要,自己创建各种碳排放的报表模版,比如说日报、月报、年报还有一些专门的分析报告等等。需要对这些报表生成的过程进行监督管控,然后通过优化数据库的查询命令和报表模版的设计,这样能够让报表生成的更快。
数据管理:管理员可以对收集的碳排放数据管理,包括备份数据、恢复数据和清理数据这些功能。数据备份能避免数据弄丢,恢复功能在数据出问题时能保证数据完整,清理数据则能保证数据库质量合理使用存储空间。另外管理员还要审批部门领导交上来的数据,保证这些数据正确并且符合规定。
管理员用例图
总管理管理员登录理碳排放数据查看查询盘查方案查看减排目标与措施数据分析与报表系统退出 总管理管理员登录理碳排放数据查看查询盘查方案查看减排目标与措施数据分析与报表系统退出
图3-1 管理员用例图
管理员需求分析
需要去配置系统在运行时的一些参数,比如调整数据采集脚本的执行时间周期,这样能保证从不同设备收集到的碳排放数据既完整又能及时12。还要管理XAMPP服务器环境里的相关设置,像是优化Apache的一些服务器参数配置(比如调整服务器内核参数和优化HTTP请求的处理流程等等),这样系统性能就能提高了。有权限按照企业内部管理需要和外部监管的规定,来制定不同类型的碳排放报表模板,包括每天的报告、每月报告、年度总结还有专门的分析报告这些。要监控管理报表生成的过程,通过优化数据库中的查询语句还有报表模板的设计,让报表能快点生成出来。可以对收集的碳排放数据进行全面管理,比如数据的备份恢复以及清理数据等操作,来确保数据库里数据质量和存储空间能合理利用。还要审核部门主管提交上来的数据,来确保这些数据准确和符合规定要求。
企业需求分析
数据收集和核对:企业要从生产设备、能源表等这些多个不同设备来源正确及时的收集关于碳排放的能源消耗、生产量等基础信息,然后转化生成碳排放数据。另外还需要对采集到的结果做简单检查核对,保证数据的质量没有问题,把符合的数据存入数据库里面,这样就能给后面的分析和管理工作提供支持13。
数据分析与指标统计:企业想要对大量碳排放的数据进行分析挖掘,然后计算碳排放总量、单位产品碳排放量、碳排放变化趋势这些重要指标。然后通过这些数据指标,可以让企业清楚知道自己碳排放的情况,从而制定节能和减排的具体措施,这些数据为企业的决策提供了数据依据。
相关性分析跟节能减排可能的发现:企业要做相关分析,看看碳排放和生产流程、能源类型这些有什么关系。这样分析后就能帮企业找到可能节省能源减少排放的地方,然后根据这些调整生产方式,减少碳排放。
数据可视化和决策支持:企业希望生成柱状图折线图这类图表能直观地展示分析结果,让公司领导层更快看懂数据然后做决定。通过可视化的数据分析结果的话,管理层可以更直接地了解企业碳排放的情况变化,及时制定或者调整他们的管理措施。
数据审核和部门的管理方面:企业需要审核本部门碳排放的数据,保证这些数据的准确和合规。同时也要查看部门的碳排放分析报告,掌握部门内碳排放的情况,为管理部门和制定决策提供支持依据。另外企业还能对部门的碳排放数据做一些分析处理,例如查看某个时间段的碳排放趋势,从而便于更好地管理部门的碳排放。
企业用例图
企业企业登录碳排放数据查看查询碳排放数据录入能源记录管理系统退出 企业企业登录碳排放数据查看查询碳排放数据录入能源记录管理系统退出
图3-2 企业用例图
企业需求分析
对大量的碳排放数据进行深入分析,算出总碳排放量、每单位产品的碳排放量还有碳排放的变化趋势这些重要数据,用来给企业做节能方案提供参考(14)。做相关性分析,研究碳排放和生产流程、能源类型这些因素之间有没有联系,这样公司能找到可能的节能办法。制作柱状图、线图、饼状图这些图片来展示数据结果,让领导们能更快看懂数据好做决定。检查自己部门的碳排放数据,保证这些数据是正确和符合规定。看自己部门的碳排放报告,知道部门的排放情况,给部门管理作参考。可以对自己部门的碳排放数据做一些简单分析处理,比如看看某段时间里碳排放是怎么变化的。
系统设计
系统设计

图4-1 系统功能模块图
这个用PHP开发的碳排放减排管理系统主要包含企业、管理员和首页三个模块,具体来说有这些部分:
企业功能模块:企业用户可以在该模块中查看自己的排放数据情况、以及年度报表,还能输入排放的数据,同时也能知道燃料排放的情况,从而对企业的碳排信息进行管理和监测。
管理模块部分:管理人员可以对不同企业的碳排放情况进行查看,进行盘查的方案审核,制定减排相关的措施和目标,开展碳排放和系统的数据分析,以及报表生成的工作,还可以导出关于燃料的分析报表,还要负责整个系统的管理,还有支持领导决策的任务。
数据库设计
数据库逻辑结构设计

图4-2 企业实体属性图

图4-3 管理员实体属性图

图4-4 企业碳排放清单实体图

图4-5 盘查方案实体图
图4-6 基于PHP的碳排放减排管理信息系统的数据库E-R图

这是一张关于碳排放管理方面系统的ER结构(实体-关系)图,在这张ER图中可以体现出很多个实体和它们之间关联的联系:
用户表里面含有id、用户名称、密码还有用户标识这些字段,用关联的关系和企业信息表连起来,是属于一对多的这种关系情况。
企业信息表里面包含id、企业名称、组织机构代码、企业地址等信息项,它和减排措施表、盘查方案表还有燃料表这些表都有关系。
减排措施的数据表:里面包括了id、减排目标预计完成时间这些数据项,并且这个表还跟企业的信息表有关系。
盘查方案表里边有比如像id、盘查方案名字、对应的企业id这些内容,它和排放源的数据表还有盘查方案自己这个表相互关联,还和企业资料表相互有关系。
排放源信息表里面包含的有类型编号/id号、排放源种类名称等这些字段,然后还有跟盘查方案表、燃料表这些表都有关系。
燃料表里面包含了类型编号、燃料名字等这些字段内容,同时这个表格和排放源的信息表还有盘查方案的表格它们之间都是有关联的
这个ER图表设计了一个比较复杂碳排放管理系统的数据库结构,里面包括用户、企业这些,还有减排措施、盘查方案、排放源和燃料等很多信息,以及它们之间的关系都被包含进去。
数据库物理结构设计
以下是基于PHP开发的碳排放减少排放管理信息系统的数据库物理结构的设计方案,里面有包含个数据表和它们之间怎么关联的说明8。
表4-7 用户表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 用户唯一标识,自增长 | 是 |
| username | varchar(255) | 用户名 | 否 |
| password | varchar(255) | 用户密码 | 否 |
| User_type | enum('admin', 'user') | 判断用户是管理员还是企业 | 否 |
用户表的作用是保存系统用户的关键数据。"Id"这个字段是用户的唯一识别,用了自动增长的数字类型,这样系统可以正确区分不同用户。"username"字段是记录用户的名字,"password"字段保存的是密码,都是字符类型,而且密码会经过加密处理,这样账户更安全。"User_type"字段用了枚举类型来分管理员和企业用户,这样就能设定他们在系统里能操作的权限范围,让系统管理起来有区别。
表4-8 企业信息表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 企业的唯一标识 | 是 |
| enterprise_name | varchar(200) | 企业名称 | 否 |
| organization_id | varchar(50) | 企业的组织编号 | 否 |
| address | text | 企业地址 | 否 |
| contact_person | varchar(100) | 企业联系人姓名 | 否 |
| contact_phone | varchar(20) | 企业联系人电话 | 否 |
企业信息表:主要记录企业的基本属性内容。比如"Id"是企业主键唯一标识,是系统识别和管理企业数据时候的关键字段。"enterprise_name"是填企业全称,"organization_id"写的组织机构代码,"address"保存企业所在地址,然后"contact_person"和"contact_phone"分别保存联系人名字和联系电话,这些区域为系统提供了基本企业数据,方便系统把碳排放数据和企业之间进行联系和管理
表4-9 碳排放清单表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 排放表唯一标识 | 是 |
| organization_id | varchar(50) | 组织编号 | 否 |
| organization_name | varchar(100) | 组织名称 | 否 |
| plan_name | varchar(100) | 盘查方案 | 否 |
| inventory_name | varchar(100) | 碳排放清单 | 否 |
| emission_scope | varchar(50) | 排放范围 | 否 |
| energy_category | varchar(50) | 能源分类 | 否 |
| fuel_type | varchar(50) | 能源类型 | 否 |
| emission_activity | varchar(100) | 排放活动 | 否 |
| emission_device | varchar(50) | 排放设备 | 否 |
| consumption_amount | Double | 能源消耗量 | 否 |
| consumption_unit | varchar(20) | 能源单位 | 否 |
| total_cost | Double | 能源总价 | 否 |
| report_date | Date | 填报日期 | 否 |
碳排放清单表格:用来对企业碳排放有关的数据进行详细记录。Id代表排放清单表格的唯一编号,方便后续管理数据和需要查的时候能找到。organization_id和organization_name这两个字段关联到对应的机构资料,标明数据归属哪家单位。plan_name用来填写核查计划的名称,inventory_name用来写排放清单的叫法,emission_scope说的是排放涉及哪些方面,energy_category和fuel_type这两个字段是关于能源的类别和燃料的具体种类,emission_activity和emission_device这两个部分要填写产生排放的生产环节和具体设备情况,consumption_amount、consumption_unit和total_cost这三个项是记录用了多少能源、用什么单位计量以及总共花了多少钱,report_date用来写这份报告是什么时候填写的。这些信息完整地反映了企业在碳排放方面的各种数据情况,为后续分析工作提供了基础数据材料。
表4-10 排放源信息表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| EmissionSourceID | int(11) | 排放源种类型编号 | 是 |
| EmissionSourceName | varchar(255) | 排放源种类型名称 | 否 |
| IPCCCategoryID | varchar(10) | 对应的IPCC种类编号 | 否 |
| IPCCCategoryName | varchar(255) | 对应的IPCC种类名称 | 否 |
| IPCCEmissionFactor | Int(11) | IPCC排放因子 | 否 |
| IPCCVersion | Int(11) | IPCC版本 | 否 |
排放源信息表主要用来存排放源的一些相关数据。EmissionSourceID 是排放源类型的编号,作为这个排放源唯一的标识。EmissionSourceName 是记录了排放源种类的类型名称,IPCCCategoryID 和IPCCCategoryName 对应IPCC种类的编号和名字,IPCCEmissionFactor 里面记着IPCC的排放因子,IPCCVersion 是记录的IPCC版本,这些资料对于正确核算碳排放量,还有分析排放源特征具有重要的意义。
表4-11 盘查方案表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 盘查方案的唯一标识 | 是 |
| plan_name | varchar(200) | 盘查方案名称 | 否 |
| enterprise_id | int(11) | 关联的企业 ID | 否 |
| start_date | date | 盘查方案开始日期 | 否 |
| end_date | date | 盘查方案结束日期 | 否 |
| status | enum('draft', 'in_progress', 'completed') | 盘查方案的状态 | 否 |
| created_at | timestamp | 盘查方案创建时间 | 否 |
盘查方案表主要就是用来管企业碳排放盘查方案的。里头那个Id是每个方案的唯一编号,plan_name就是方案的具体名字,enterprise_id对应到具体企业的ID号,这样就知道是哪个公司的方案了。start_date和end_date标出来方案啥时候开始啥时候结束,status这个字段用枚举值来记录状态,比方说草稿、正在做、已经完成这些状态。created_at就是方案创建的时间,然后还有这些字段组合在一起,方便系统能更好管理和追踪方案情况。
表4-12 减排措施表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 减排措施的唯一标识 | 是 |
| goal_description | varchar(200) | 减排措施的详细描述 | 否 |
| target_date | int(11) | 减排目标的预期完成日期 | 否 |
减排措施表:这个表主要用这个表来记企业制定那些减排措施的信息。"Id"是给每个减排措施做的唯一编号。"goal_description"这个栏位是写减排措施的具体详细说明,"target_date"是填减排计划完成的时间,企业就可以根据这些信息,就能推动减排措施执行,并且还能追踪完成情况的作用。
表4-13 燃料表
| 字段名 | 类型 | 字段说明 | 主键 |
|---|---|---|---|
| Id | int(11) | 燃料表唯一标识 | 是 |
| fuel_name | varchar(200) | 燃料名称 | 否 |
| component1_concentration | int(11) | 组分1 体积浓度 | 否 |
| component2_concentration | decimal(5,2) | 组分2 体积浓度 | 否 |
| component1_carbon_atoms | decimal(5,2) | 组分1 碳原子数目 | 否 |
| component2_carbon_atoms | Int(11) | 组分2 碳原子数目 | 否 |
| EmissionSourceID | Int(11) | 排放源种类型编号 | 外键 |
燃料表:用来记录燃料的具体细节数据。Id是燃料表里的唯一标识号。fuel_name则是燃料名称,component1_concentration和component2_concentration分别记录组分一和组分二的体积浓度,component1_carbon_atoms和component2_carbon_atoms这两个字段保存了对应组分中的碳原子数量。通过EmissionSourceID这个外键来关联排放源类型编号,这样可以把燃料数据和排放源数据联系起来,给计算碳排放还有分析工作提供了燃料维度的基础数据。
功能模块设计
用户管理模块设计

图4-14 用户管理模块图

4-15 用户登录流程图
管理员:是具备系统最高权限的管理者身份,能够管理所有用户的个人信息处理,而且对于整个系统的设置和数据都能够进行操作和维护的工作。
系统设置方面,用来对整体参数、碳排放应该怎么计算的规则,还有排放相关因素这些东西进行设置和改动。
数据管理:可以用来查看、改动和删掉系统里面的所有碳排放相关数据,还有企业和它下面公司的那些检查方案、碳排放的清单之类的东西。
审计监督主要是针对各企业和下级公司针对碳排放数据的收集开展审计和检查,这可以使得数据真实可靠,符合标准要求。
企业用户主要进行碳排放数据和盘查工作的管理,并且能够对这些信息和数据操作处理。
信息管理:可以改自己公司的基本信息,比如名字、联系号码,还有公司地址在哪里这些。
盘查方案的管理工作比如新建、查找、改动、去掉公司里面的碳排放方面盘查方案,还要确定盘查的计划和目标。
管理碳排放清单就是说企业可以输入、查找和修改自己公司的碳排放数据,比如像能源用了多少,排放方面的活动,设备这些信息都需要管。

图4-16 用户管理模块流程图
碳排放数据采集与核算模块设计

图4-17 数据采集模块图
用户先登陆系统后,可以选择对应检查方案还有核算周期什么的。按数据的不同来源分门别类,需要人工手动输入或者系统自己抓取的方法来拿到碳排放的数据。系统会把收集好的数据先做简单格式看看,就能确定这些数据的格式都是没有问题。

图4-18 数据采集模块流程图

图4-19 数据核算模块图
用户需要去选合适的计算方式和排放因子。然后系统按照配置好的计算公式以及收集的数据,自动进行碳排放量的计算。等核算结束之后,系统就会把计算结果保存进数据库里。
减排目标与减排措施设置模块设计

图4-20 减排目标模块图
管理员可以查企业的季度或者年度排放量数据,检查排是否达标。如果没有达到标准的话就能设置目标排放量,需要说明这种排放的能源有哪些,然后可以设定目标的排放量,还要设置能源用了多少,中和碳方面,运输过程中产生的碳排放量,温室气体排了多少,以及估计什么时候能减排完成的时间。
能源记录管理设计

图4-21 能源记录管理图
主要功能有这些包括查看燃料信息、录入燃料数据、估算燃料数据和导出excel报表。其中查看信息功能可以查燃料数据,包括有燃料的名字、浓度体积、碳原子的数量这些;录入时候需要输入燃料名称、浓度体积、碳原子数目还有排放源这些内容;估算数据时要用到浓度体积和碳原子数目这些参数来进行估算;然后还能把结果导出成Excel表格报告。

图4-22 能源记录管理流程图
数据分析与报表设计

图4-23 数据分析与报表模块图
数据分析与报表功能是碳排放管理系统的重要组成,主要对系统里收集核算的碳排数据做分析处理,生成各种清楚详细的报告表。这个模块可以帮助企业和相关管理人员更好的了解碳排放的情况,对减排效果进行评价,制定合理减排方案,为企业的持续发展提供有力支撑。
数据查询和筛选功能:有很多查询条件可以选,可以让用户通过时间范围比如年月季度、公司名字、排放源种类、排查方案等不同方面来查数据。比如说用户比如说可以查某个公司在某个季度里各种排放源的碳排放的数据。
在分析方法上,用画折线图、曲线图这些方式,来显示碳排放的数据随着时间变化的情况。比如说分析企业的最近五年的排碳总量变化情况,这样就能让企业知道他们的排碳是变多了还是变少了。
比较分析的方面有:可以进行不同企业之间、不同排放源之间、不同时间段之间的碳排放数据比较。比如比较同一行业不同企业同一时间碳排放的强度情况,发现企业各自优点和不足的地方。
相关性分析方面:对碳排放的数据和其它因素(比如生产产量、能源价格、气温这些)做相关性分析,找到影响碳排放的关键因素。比如说分析企业碳排放和产量之间的相关关系,然后看生产规模对碳排放的影响有多大。
生成和导出报表方面:系统里有很多提前设定好的报表模板,比如有碳排放综合报表、减排效果评估报表、排放源分析报表这些。另外用户还能自己调整想要的模板,像格式啊内容啊排版这些都可以改。
自动生成报表:通过用户选的查询条件和模版,系统能自动生成出详细报表。报表里有数据的结果分析、展示的图表和详细数据这些,比较完整的体现出碳排放情况和减少排放的效果。
多格式导出:可以导出生成好的报表到很多格式,比方PDF、Excel、Word这些,方便用户保存、打印或者分享。
TCPDF就是用这个库来生成pdf报告。TCPDF是一个功能挺多的php库,它能支持很多字体、图片、表格这些元素的加入,所以可以生成质量高的pdf文件。
PHPExcel这个库呢,要是做Excel报表的话可以用它。用它就能简单新建、修改和存Excel文件,还能调整数据格式或者加图表什么的。
数据查询和分析的步骤:用户先要登陆系统里面,然后找到数据分析还有报表的那个部分。然后选择你想查的时间段、公司名字这些条件,点一下查询按钮。系统就根据这些条件在数据库里找到需要的数据,然后做一些分析的处理。
报表生成和导出的过程:用户先选合适的报表模版,然后确认一下报表需要查哪些条件和里面的内容。系统会根据用户选的自动生成报表,把数据结果和分析图表都放进报表里。生成之后用户可以先看一下报表,如果觉得哪里不对或者需要改的话还能再调整修改。最后选要导出的格式比如PDF或者Excel什么的,系统就会把这个报表导出成对应的文件了。
系统实现
前台页面实现

图5-1 前台页面图

图5-2 前台页面图
系统前台页面是用户和系统打交道的重要界面,负责信息展示和功能引导的主要任务。整个页面排版比较简洁,用到了HTML、CSS还有JavaScript这些技术,让页面看起来漂亮同时也能正常使用。
在页面最上面放了个导航栏,里面有"首页""服务""新闻""联系我们""我的账户"这几个栏目。首页主要是放系统重要信息和欢迎的话,让用户很快搞懂系统有啥用;服务这个栏目重点写了碳排放计算和数据分析的具体服务内容,让用户能去用这些功能;新闻栏目会经常更新碳排放的新闻,这样用户就能知道现在行业里发生了什么新事;联系我们这里让用户可以通过各种方式和我们团队说话,有问题或者想法都可以说;然后我的账户就是每个人自己看信息和查历史记录的地方。
登录和注册功能都做的比较显眼的位置,方便用户进行身份确认和开账户。登录的界面做的很简单,上面有用户名和密码要输入的地方,还有登录按钮以及显示'还没账号,注册'的提示链接。注册页面需要填用户名、密码和用户类型这些,注册页面还要检查格式对不对,同时把数据加密了,这样用户的信息安全就能保证了。
页面中间主要位置放的是碳排放信息管理平台的主要内容,像碳排放数据的统计图、重要指标显示这些,让用户能一目了然地看到碳排放情况。另外还加了个搜索框,方便用户能快速找到想要的信息。还用了图片和文字结合的方式展示系统的优点和特色功能,这样能增强用户对系统的信任感,也让他们更愿意使用。
用户登录模块实现

图5-3 用户登录图
用户登录模块是系统安全访问的重要步骤,它使用了很多技术方法来保证用户验证身份的准确和安全。
在界面设计这块,登录页面使用简洁响应布局,能适配各种设备屏幕的大小,让用户看起来舒服。输入框里面有显眼的提示文字,用来告诉用户怎么正确填用户名和密码。登录按钮做的很醒目,用户用起来方便。再就是下面放了忘记密码和注册新账号这些功能链接,可以满足大家的不同需要。
在身份验证的时候,系统是用PHP代码和数据库做沟通。用户填完登录资料之后,系统会先检查用户填写的内容格式对不对,保证输入的东西符合要求。接着用处理过的语句从数据库users表里找有没有对应的用户数据。为了防止SQL注入攻击,对用户输入的内容做了过滤和特殊符号处理。要是找到了符合的用户资料,系统还会再核对密码对不对。密码是用哈希算法加密过后存起来的,通过password_verify这个方法来检查密码对不对,这样用户的密码会比较安全。
当用户登录成功通过了验证,系统就会开启一个session,然后在里面存入变量,变量名叫做username和user_type对应的是用户的名字和类型,方便后面页面知道是谁登录了以及有什么权限。根据这类用户的不同权限,系统自己会跳到对应的操作界面,比如是管理员就进入admin_dashboard.php页面,企业用户就进入user_dashboard.php那边。要是验证没通过的话,系统就会自动返回到首页,地址后面加上error=1参数,这时候首页就会弹窗提醒,告诉用户登录失败的具体原因,让用户重新填写正确的用户名密码再试一次

图5-4 用户登录核心代码图
登录功能的代码主要用的是PHP,首先用session_start()函数处理会话管理,再用require语句调取数据库连接的代码文件。从POST请求里用户填的信息拿到,然后通过预处理过的SQL语句检查数据库核对身份对不对。如果核对通过了就会在会话变量里存入用户信息然后自动跳转到对应界面,如果核对没通过就返回首页并且把错误参数传过去。

图5-5 用户注册图
系统需要给新用户提供注册的入口,收集需要的信息来创建他们的账户,然后接下来完成身份的登记流程,这样之后他们就可以正常使用系统的服务了。
当输入不正确或注册没成功时候,应该要清楚说明哪里不对,比如如显示"用户名已经被占用了"这样的情况,这样用户就能了解问题具体出在什么地方。
当用户注册成功的时候,应该弹出友好的提示框,然后就能转到比如像登录页或者系统首页这些地方。
数据加密:对于用户输入的一些敏感数据,比如像密码这样的,在传输和保存的时候都需要进行加密。

图5-6 用户注册核心代码
注册功能的代码实现逻辑说明:首先代码会检查是不是POST方法提交的表单数据,然后拿到用户填的信息并处理一下。用real_escape_string这个函数来防止SQL注入攻击,密码的话用password_hash函数进行加密处理。接着连上数据库,用预处理语句把用户数据插到表里,根据有没有成功插入显示对应的提示信息,最后把数据库连接关掉。
碳排放数据采集与核算模块实现

图5-7 数据采集图
碳排放的数据收集模块是系统得到信息的主要办法,它可以手动输入还有自动收集两种方法,这样就能满足各种公司企业的不同需求。
那个手动输入页面设计得很简单,而且操作起来方便,用户登进系统之后,然后就能打开数据采集页面。页面上有好多输入框和下拉选项,用来让企业填碳排放的各种数据。比如像"组织编号""组织名字""盘查方案" 这些是用来区分不同企业和盘查方案的;"排放范围""能源分类""能源种类""排放活动""排放设备" 这些内容大概说了下碳排放是哪儿来的;"能源消耗多少""能源单位""总价多少钱""填的日期" 那些数据就是记录企业用了多少能源和什么时候填的数据。
在填数据的时候,系统会对用户输入内容即时检验格式。比如"能源消耗量"和"能源总价"的输入框只能输数字,并且可以输入到小数点后面两位;"填报日期"输入框用日期选择器,用户不能乱输日期格式。然后当用户点插入数据按钮时,系统会用PHP的PDO(PHP Data Objects)功能连上MySQL数据库。为了预防SQL注入攻击,会先处理语句再传值,把数据存到"energy_consumption"这个表里。如果存好了,页面就显示绿色的"数据插入成功"提示;要是没存成功,系统就会抓住PDOException错误,用红字显示哪里出问题了告诉用户。
对于自动采集方法,系统是提供了和企业现在有的能源管理、生产管理系统这些连接的接口。通过数据接口,系统可以实时拿到企业生产运营里的碳排放数据,能够自动抓取和更新数据,这样的话人工输入的工作量和错误都减少很多,数据采集效率和准确性都会被提高。

图5-8 数据采集核心代码图

图5-9 数据采集核心代码图
数据采集的代码功能说明:用PDO的方法去连MySQL数据库,把错误设置成异常模式处理。然后拿到用户输入过来的数据,用预处理的语句方式,把数据插入到energy_consumption这张表里面。不管插入是成功或者不成功都会写提示的文字,用抓异常的方法处理数据库的问题,最后按照提示信息的样式来展示结果。

图5-10 核算模块图
碳排放核算模块这是对采集数据来进行计算和科学分析的关键模块,同时对于碳排放数据准确可靠有了保证。
在计算页面用户能够选择适合的计算方式还有排放系数。系统会根据用户选好的计算方法以及设置的公式,再加上收集到的能源消耗数据等等,自己完成碳排放的计算。比如各种能源消耗的不同,系统就会用相应的排放系数和计算公式来算出对应的碳排放数量。
在核算的时候,系统会先检查数据的逻辑有没有错误,这样能保证算的结果是对的。算完之后系统会把结果存进数据库里,这样后面用户要找或者分析时候就能用了。另外这个系统还能看碳排放的计算结果,用户可以看具体的数字,像各种能源用了多少排碳,总共排了多少这些,这样就能清楚公司排碳的情况。

图5-11 核算模块核心代码图
代码说明:
查询全部碳排放数据记录:当用户点那个显示全部按钮(对应到表单提交时候$_POST'showAll'参数传过来)的时候(虽然页面上没看到这个按钮的HTML代码怎么写,不过看PHP代码运行过程大概能知道),会从数据库里的emissionsources这个表里面把所有数据都查出来显示。
通过表单输入编号来查特定碳排放记录:使用者可以在表格里填编号(对应$_POST'id'),然后点了提交按钮之后,系统会根据输入的这个编号从emissionsources这个表里找到对应的那一条数据并显示出来。要是使用者没填编号的情况下,就会默认把所有记录全都展示出来。
用表格来显示的话:当查询到相关记录的情况下,就会用表格的形式展示碳排放的详细信息内容,包括有排放源的种类编号、排放源具体是什么种类名称、对应IPCC的那个编号种类、对应的IPCC种类叫啥名字、IPCC的排放因子数值、还有IPCC用的是哪个版本之类的这些信息。
提示信息的功能是如果系统没有找到对应记录的话,页面中间会显示出'未找到相关记录。'的提示语。
减排目标与减排措施设置模块实现

图5-12 减排目标与减排措施图
减排目标和减排措施设定的系统,这个模块是协助公司规划和管控碳减排计划的关键手段,对公司完成节能减碳的目标具有很大的帮助。
当管理员登进系统里面的时候,就可以进入到减排目标与减排措施设置的页面。页面最前面会显示出像是企业过去的碳排放数据的统计图,比如五年内排放总量的趋势图,还有不同排放源在碳排放比例的饼状图这些,这样管理员就能比较直接的知道企业现在的碳排放情况怎么样了。
在减排目标的区域里,管理人员能根据企业的实际情况还有减排工作的要求,按照比如时间(年度或者中长期计划)、排放的类型这些方面来设定具体的减排目标数值。比如说可以设置像"到2025年时候把企业碳排放减少10%",或者"在2027年之前让办公区域达到碳中和"这种目标。管理人员还需要填写关于目标的具体描述,设定目标的具体日期这些详细信息内容,这样方便系统进行记录和对进度进行跟踪。
在减排措施的区域设置里,系统会结合碳排放的数据还有减排的目标,给管理员推荐一些减排方法,比如调整能源的结构、改良生产的技术、做好设备的维护这些。管理员能根据现实情况选合适的减排办法,然后制定时间、负责的人、预估效果这些内容。另外管理员也能自己调整或增加内容,让措施更符合实际需要和更容易操作。
设置完成之后,系统会把减排目标和措施有关的内容保存进系统数据库里。之后企业进行日常运作的时候,系统根据他们实际排碳的数字还有减排的办法有没有落实,去跟踪检查减排目标的进度完成得怎么样,并给出数据上的帮助让企业能修改减排方案。

图5-13 减排目标与减排措施代码图
代码说明:
这里用到了mysqli去连接数据库,如果连不上就会报错然后脚本停止运行。前台页面用html和css组合搭建,还用了bootstrap框架让排版变得更好看。从reduction_goals这个表去查减排目标的数据,要是能查到数据就给它循环展示出来,查不到的话就显示个'暂无数据'的提示语。最后千万别忘了把数据库链接关掉啊。
能源记录管理模块实现

图5-14 能源及记录管理页面图

图5-15 能源及记录管理页面图
字符集配置:使用$conn->set_charset方法把编码设成utf8mb4,这样可以保证可以正确去处理和保存那些带有特殊符号的数据内容,避免了出现像中文这样的文字显示为乱码的问题。
表单设计部分,页面上有个'输入燃料数据'的表单,需要填燃料名称,两种成分的体积浓度数值,各个成分的碳原子数量也需要填,还要在下拉菜单选好对应的排放源。
当用户点击'提交'按钮以后时候,系统会用预处理句子把填的数据放进fuels表里面,先用预处理句子防止SQL攻击,这样系统就更安全。如果数据加进去成功的话,页面就会变绿字提示,要是加不进去的话,就会红颜色的报错信息显示出来。
估算表格:上面有计算燃料里碳含量的表格,用户需要填写两种成分体积的浓度跟碳原子数量之后,再点击估算的按钮。
计算逻辑:系统会按照公式 "含碳量=组分1体积浓度×组分1碳原子数目加组分2体积浓度乘以组分2的碳原子数目" 算出来燃料含碳量的估算值,然后会用蓝色字在页面上把计算结果给展示出来。
数据查找:首先是用sql的查询命令,从fuels数据表和emissionsources这个表里面关联拿到燃料的数据记录,然后还要查出来所有排放源的那些信息,用在下来列表框里供用户选择。
表格显示部分:把查询出来的结果用表格展示在页面上,然后表格里要有燃料的名字、两种组成成分的浓度体积、碳原子的数量、碳含量多少、然后还有IPCC提供的排放因子参数,以及按照IPCC标准算出来的排放量数据这些信息。要是没找到符合的记录的话,这个时候表格里面就会显示"没有发现相关记录"的字样。
导出表单功能中,在页面上设置有导出数据按钮,用户点击该按钮后就会开始进行数据的导出处理。
CSV导出功能:系统能够把fuels表和emissionsources表里有联系的数据导出为CSV格式,文件起名叫做energy_records.csv。这个导出的CSV文件最前面是标题行,然后后面跟着具体的燃料数据内容,这样用户在之后做数据处理和分析时候能更省事一点。

图5-16 能源记录核心代码图

图5-17 能源记录核心代码图

图5-18 能源记录核心代码图
代码说明:首先设置字符集的时候用了utf8mb4,然后处理燃料数据表单提交的时候,用了预处理语句来插入数据进去,并且显示提示信息。接下来在估算表单提交处理上,会根据给的公式去算出碳含量。当处理导数据请求时候,就查询关联的数据,设置响应头把数据导出成csv文件,另外还定义了一些计算函数用来帮忙处理数据。
数据分析与报表模块实现

图5-19 数据分析与报表图
针对碳排放的各种数据做分析,然后生成不同形式的报告表格,这样给企业和单位在管理碳排决策时候提供支持,帮助他们能够更好完成减少排放要求,也能符合相关的规定需要。
通过多个方面进行分析:按照时间周期(比如每天、每月、每季度和全年),排放类型(像范围一、二、三这种),还有不同业务部门和生产流程这些不同的角度,把碳排放数据进行分解研究,并且把数据背后的变化规律和未来走势找出来。
对比分析的话,需要先做同期比较还有环比比较这些分析,然后对比一下不同时间、各个项目或者不同部门之间的碳排放数据,这样就可以发现它们之间的差异和能改进的地方了。
关联性分析:研究碳排放和其他业务指标(比如产量、能源消耗、销售额等)之间的关联性,然后找出影响碳排放的主要因素。
预测分析:用统计模型和机器学习方法,根据过去的数据预测以后碳排放会怎么变化,这样可以帮助提前想好应对的办法。
定制报表:能够根据用户自己需要的和他们想要的格式,来制定各种碳排放报告,比如日报、周报这些,还有月度报告、年度报告等等。同时还有专门给不同对象用的专题报告,比如说管理层、监管部门,还有合作伙伴这些人群。

图5-20 数据分析与报表图核心代码图
代码是用来从排放源信息那张表里查所有数据的。要是查出来有数据的话,就会显示一个表格里面排放源的列表,这个表格有排放源类型编号、排放源类型名称、对应的IPCC类型编号、IPCC的类型名字、IPCC的排放因子和IPCC版本这些列。如果没查到数据的时候,则会提示'暂时没有排放源数据信息'的字样。
数据分析部分:在有数据时候,会做一些简单的数据上面的分析,计算出emissionsources表里面的IPCCEmissionFactor栏位的平均的数值,然后把结果展示到"数据分析结果"那个区域里面,结果数值都会保留到小数点后两位的。
系统测试
测试说明
这个碳排放管理系统主要是用PHP开发的,还有用XAMPP里的Apache服务器、MySQL数据库还有PHP解析器来跑。测试系统是为了保证这个系统质量稳定重要步骤,下面从测试环境、测试方法等这些方面来说说。
测试环境
硬件环境方面,使用的是普通办公用的电脑,比如说Intel Core i5或者更高的处理器,还有8GB以上内存,这样可以模拟出普通用户使用的场景情况。
软件环境需要:系统要Windows10或者更高的版本,然后装一个XAMPP的环境,里面比如说Apache当服务器,MySQL用来做数据库,然后PHP的话要7.4以上版本才行。
测试内容
用户管理模块部分:比如说用户能注册、登录或者把账户删了这些功能是不是好用的,然后还要确认用户权限管理这一块有没有按照设计文档来弄。
表6-1 用户管理模块测试用例表
| 输入内容 | 过程 | 结果 | 结果分析 |
|---|---|---|---|
| 注册:输入用户名,密码,用户类型 | 单击注册后数据库表中插入了一条数据 | 提示注册成功 | 数据库成功插入用户数据 |
| 登录:管理员登录,输入用户名和密码 | 单击登录后跳转至管理员工作台 | 成功跳转 | 数据库检测用户类型成功跳转至不同类型的用户界面 |
| 登录:企业登录,输入用户名和密码 | 单击登录后跳转至企业工作台 | 成功跳转 | 数据库检测用户类型成功跳转至不同类型的用户界面 |
碳排放数据管理模块:这个模块需要测试看看数据录入、查询、修改和删除功能是不是正确的,有没有错误的地方。然后还要看数据的格式对不对,还有数值范围是不是符合规定的要求。
表6-2 能源消耗数据测试用例表
| 输入内容 | 过程 | 结果 | 结果分析 |
|---|---|---|---|
| 管理员登录 | 能都清楚的看到所有的数据,根据数据条目查询数据单条数据 | 正常显示所有数据,单条数据也能查询 | 管理员能看到所有企业的碳排放数据,也可按数据条目查询单条数据 |
| 企业登录后根据能源消耗数据输入信息 | 企业登陆后录入数据,根据数据组织编号,组织名称,盘查方案,碳排放清单,排放范围,能源分类,能源类型,排放活动,排放设备,能源消耗量,能源单位,能源总价和填报日期 | 企业输入完整数据后数据库中新增了企业录入的数据 | 数据库录入后,在管理员工作台能看到录入的数据 |
能源记录管理版块:需要检测能源记录的制定、查看、添加和预估这些功能是不是正常运作,还有减排效果的运算结果和分析有没有准确。
表6-3 能源记录管理模块测试用例表
| 输入内容 | 过程 | 结果 | 结果分析 |
|---|---|---|---|
| 企业登录后,根据录入燃料数据输入信息 | 企业登录后录入数据,根据燃料名称,组分1体积浓度,组分2体积浓度,组分1碳原子数目,组分2碳原子数目,选择排放源后单击提交 | 企业录入完整数据单击提交后数据库表中成功插入一条数据,根据计算公式:含碳量 = Σ(各组分体积浓度 × 该组分碳原子数目)计算出含碳量 | 企业提交后进行数据库录入,数据库中成功插入数据,再根据计算公式得出含碳量 |
| 企业登录后,根据估算燃料含碳量输入信息 | 企业登录后能录入组分1体积浓度,组分2体积浓度,组分1碳原子数目,组分2碳原子数目进行数据估算 | 企业录入完整数据单击提交后,根据计算公式 含碳量 = Σ(各组分体积浓度 × 该组分碳原子数目)估算出数据 | 企业单击估算后进行数据估算,估算结构在下方显示 |
| 导出数据 | 单击导出数据按钮后检测此数据表,在浏览器上下载此数据报表 | 根据export导出数据表单 | 导出数据报表后能在报表中清晰的看到所有数据 |
盘查方案数据检测模组:需要检测盘查方案记录的创建、预览、计算这些功能有没有问题,还要核对方案的统计数量和分析结果对不对。
表6-4 盘查方案模块测试用例表
| 输入内容 | 过程 | 结果 | 结果分析 |
|---|---|---|---|
| 管理员登录 | 能都清楚的看到所有盘查数据,根据数据状态(草稿,已完成,未完成)查询单条数据 | 管理员按照状态进行数据筛选,能够查询全部数据和所有状态数据 | 管理员按照数据状态查询数据 |
| 数据统计 | 根据数据库方案状态进行数据分类查询(echo isset)后呈现在管理员面板 | 数据正常显示,分类统计数据正确。盘查方案列表数据正确 | 正确 |
排放源数据分析部分:需要测试下排放源数据的查看、统计还有分析结果这些功能能不能用,然后就是检查下他们用的计算公式对不对,最后看看计算出来的结果数字准不准。
表6-5 排放源数据分析模块测试用例表
| 输入内容 | 过程 | 结果 | 结果分析 |
|---|---|---|---|
| 排放源数据分析 | 根据排放源信息列表(排放源种类型编号,排放源种类型名称,对应的IPCC种类编号,对应的IPCC种类名称,IPCC排放因子,IPCC版本)显示数据 | 连接到数据库中显示信息,IPCC排放因子连接到能源记录管理表中,根据能源记录表中的数据进行数据分析 | 数据库数据完整呈现 |
| 排放源数据统计 | 根据排放源信息列表(排放源种类型编号,排放源种类型名称,对应的IPCC种类编号,对应的IPCC种类名称,IPCC排放因子,IPCC版本)显示数据分析结果 | 连接到数据库中显示信息,IPCC排放因子连接到能源记录管理表中,根据能源记录表中的IPCC排放因子进行平均(AVG)数据计算(平均IPCC排放因子) | 数据分析结果正确,计算平均IPCC排放因子数据正确 |
测试结论
通过做了好多次测试,对这套碳排放减排管理系统有了比较清楚和客观的评价。整体来说的话,系统基本上实现了之前定下来的很多功能目标,像碳排放的数据管理啊、减排方案制定还有生成报表这些主要功能,总体上算是能跑得起来,给碳排放减排管理带来了初步的信息化支撑。
另外在功能模块的细节方面,还有一些地方做得不太好。比如说碳排放管理模块的数据格式检查得不够仔细,报表生成模块的排版也不太好看,格式也不太统一。虽然这些问题不影响系统主要功能,但会让用户觉得不太好用,满意度也会下降。
结论
根据企业和相关管理源开发的碳减排管理系统在平台定位、服务对象和数据优化这几个方面都有很大进步。通过明确平台定位,系统把企业的碳排放数据整合在一起,给企业提供了从管理数据到做出决策的整个流程服务,满足了管理人员、环保部门的人和碳排放专员这些不同用户的各种需要。在优化数据这块,系统通过对数据质量、结构、存储和分析这些方面进行优化,让数据的准确性和可用性都提高了,处理效率也更好,给系统稳定运行和数据分析打下了很好的基础。
促进企业合规管理:随着现在国家对环保监督越来越严,使用这个系统能让企业更方便达到政府部门对碳排放的管理规定。通过随时监控和及时报备碳排放的数据,所以企业就可以减少因为不按规定导致被处罚的风险,保持企业的形象和公众对它的好评价。
提升工作效率:对于碳排放的管理员来说,系统的数据录入管理这种便利功能让工作量减轻很多,从而让工作效率变高。还有自动化处理和分析数据的功能不但减少了人工操作的错误可能,所以让数据的准确及时得到保证。
扩展性好:因为系统是根据企业和管理的源头来设计的,这让它的扩展性很好。当企业业务发展起来后,碳排放管理需求也在变,这时候系统能很方便地加入新数据来源,还能添加分析功能,来满足不同企业的各自需要。
数据价值的挖掘工作:随着系统运行越来越久,积累下来的大量碳排放数据就会有着很大的价值。通过分析和数据挖掘之后,系统就能够找到更多节能减排的潜力方向,给企业更精细化的管理建议,推动企业在碳排放管理空间方面得到提升。
虽然这个系统现在效果还不错,不过还有很多可以改进的地方。之后需要让数据分析和预测变得更准;还要和公司其他管理系统连起来,数据可以互通,这样公司管理起来更方便些。同时得盯着国家和地方碳减排政策有没有变化,及时改系统,让企业一直符合规定。总之这个碳减排管理系统以后应该能对公司可持续发展帮上更大的忙。
参考文献
1、范清亮,刘甲明,黄平. 双碳目标条件下新型电力系统发展路径及电网建设分析. 电器工业. 2025(02): 80-86.
2、李陈一凡, 干宏程. 我国碳中和的研究现状及发展趋势------基于CiteSpace的文献计量分析J. 运筹与模糊学, 2024, 14(4): 201-208. https://doi.org/10.12677/orf.2024.144388
3、刘泓汛,杨竞男,高金凤. 碳达峰碳中和与经济发展协同的最优碳减排路径. 厦门大学学报(哲学社会科学版). 2025(01): 123-136.
4、金之钧,张川. 面向碳中和的中国能源转型路径思考. 北京大学学报(自然科学版). 2024(04): 767-774.
5、李宁海,陈硕,梁肖,田佩宁. 我国交通运输业碳达峰时间预测. 交通运输系统工程与信息. 2024(01): 2-13+54.
6、陆耀飞. 火电设备管理与碳排放控制的最佳实践研究. 能源与节能. 2024(05): 43-46.
7、胡子坤,张浩. 新媒体环境下政府与企业在碳减排中的演化博弈分析. 黑河学院学报. 2024(06): 50-54.
8、"双碳"战略下中国区域碳排放的空间效应研究J.李军军;张梦江经济研究参考.2023,第3期
9、王硕. 中国能源碳排放时空特征分析. 河南科技. 2024(10): 89-95.
10、魏一鸣,陈炜明. 碳减排"时-空-效-益"统筹理论:总体框架. 北京理工大学学报(社会科学版). 2024(05): 1-11.
11、Sinopec targets carbon emissions peak by 2030 J. Chemweeks business daily group Chemweek's business daily. 2020,第Nova25期
12、TANG B, WU Y, YU B, et al. Co-current analysis among electricity-water-carbon for the power sector in ChinaJ. Science of The Total Environment, 2020, 745: 141005. doi: 10.1016/j.scitotenv.2020.141005
13、TANG B, LI X, YU B, et al. Sustainable development pathway for intercity passenger transport: a case study of ChinaJ. Applied Energy, 2019, 254: 113632. doi: 10.1016/j.apenergy.2019.113632
14、TANG B, LI R, YU B, et al. Spatial and temporal uncertainty in the technological pathway towards a low-carbon power industry: a case study of ChinaJ. Journal of Cleaner Production, 2019, 230:720-733. doi: 10.1016/j.jclepro.2019.05.151
致谢
当我的毕业论文终于要写完这时候,心中有很多人想要感谢的,回头看我做研究的时候,很多老师同学还有家里人给了我很多的帮助和支持,就像星星一样的光,让我在学习研究的路上一直坚持走下去。
要感谢学校里的各位老师,是你们上课讲得很好而且教得认真,让我学好了专业的基础知识。老师对专业知识讲得很深入还有对学术前沿的东西很了解,这让我看到了更多学术上的东西,让我对做研究更感兴趣了。正是因为老师们的辛苦培养,我才能有现在做这个研究需要的专业能力和研究水平。
我还要感谢我的同学们,在写论文的时候,我们互相交流启发和鼓励。我们经常一起讨论怎么研究、分享找到的资料、讨论各种问题,每次交流都让我收获很多。尤其当我碰到瓶颈和困惑的时候,你们的建议支持让我有了新思路,帮助我解决困难。这种同学间的情谊和互相帮助,会是我人生中特别珍贵的回忆。
感谢各位企业管理人员、环保部门人员和碳管理专员参与我的问卷和访谈调查。大家的热心帮助与信息分享让我获得了许多真实有用的材料,这使我的研究更接近实际情况,更有实用价值。特别是你们在碳管理方面的工作经验和看法让我对这个领域的认识变得更深入了。
最后,我要感谢所有评审论文的专家老师和教授们,抽出时间宝贵来对我的论文评审和指导。你们的意见对我之后的学习和研究都有重要的指导意义,我会虚心接受,并会继续改进提高自己。
我要特别感谢所有关心我、帮助我和支持我的人,我会记住这些感谢的心情,在以后的学习和工作中会继续努力,用更好的成绩去回报大家对我的爱护和支持。
附录
关键代码:
数据库连接代码:
<?php
$host = 'localhost'; // 数据库主机
$dbname = 'tansql'; // 数据库名
$user = 'root'; // 数据库用户名
$pass = ''; // 数据库密码
try {
pdo = new PDO("mysql:host=host;dbname=dbname", user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("数据库连接失败: ". $e->getMessage());
}
?>
用户登录核心代码(判断登录):
<?php
session_start();
require 'db.php';
username = _POST'username';
password = _POST'password';
// 查询用户信息
stmt = pdo->prepare("SELECT * FROM users WHERE username =:username AND password =:password");
stmt-\>execute(\['username' =\> username, 'password' => $password]);
user = stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
_SESSION\['username'\] = user'username';
_SESSION\['user_type'\] = user'user_type';
// 根据用户类型跳转
if ($user'user_type' === 'admin') {
header("Location: admin_dashboard.php");
} else {
header("Location: user_dashboard.php");
}
exit();
} else {
header("Location: index.php?error=1");
exit();
}
?>
<?php
session_start();
if (isset($_SESSION'username')) {
header("Location: ". ($_SESSION'user_type' === 'admin'? 'admin_dashboard.php': 'user_dashboard.php'));
exit();
}
?>
退出登录核心代码:
<?php
session_start();
session_destroy();
header("Location: index.php");
exit();
?>
用户注册核心代码:
<?php
if ($_SERVER"REQUEST_METHOD" == "POST") {
// 获取用户输入
inputUsername = _POST'username';
inputPassword = _POST'password';
useType = isset(_POST'use_type') && $_POST'use_type' === 'admin'? 'admin': 'user';
// 防止 SQL 注入
inputUsername = conn->real_escape_string($inputUsername);
hashedPassword = password_hash(inputPassword, PASSWORD_DEFAULT);
// 使用预处理语句插入用户数据
$sql = "INSERT INTO users (username, password, user_type) VALUES (?,?,?)";
stmt = conn->prepare($sql);
if (!$stmt) {
die("预处理语句准备失败: ". $conn->error);
}
stmt-\>bind_param("sss", inputUsername, hashedPassword, useType);
if ($stmt->execute()) {
echo '<div class="message">注册成功!</div>';
} else {
echo '<div class="message">注册失败: '. $stmt->error. '</div>';
}
// 关闭预处理语句和数据库连接
$stmt->close();
$conn->close();
}
?>
导航栏固定页面跳转代码:
<script>
function toggleNav() {
const nav = document.querySelector('nav');
const main = document.querySelector('main');
nav.classList.toggle('collapsed');
main.classList.toggle('expanded');
}
function loadPage(page) {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
document.getElementById('content').innerHTML = this.responseText;
}
};
xhr.open('GET', page + '.php', true);
xhr.send();
}
window.onload = function () {
loadPage('admin_page1');
};
</script>
查询核心代码:
<?php
if (isset($_POST'showAll')) {
// 查询全部数据
stmt = conn->prepare("SELECT * FROM energy_consumption");
$stmt->execute();
records = stmt->fetchAll(PDO::FETCH_ASSOC);
} elseif (isset(_POST\['id'\]) \&\&!empty(_POST'id')) {
// 查询单条数据
id = _POST'id';
stmt = conn->prepare("SELECT * FROM energy_consumption WHERE id =:id");
stmt-\>bindParam(':id', id, PDO::PARAM_INT);
$stmt->execute();
records = stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
// 默认显示全部数据
stmt = conn->prepare("SELECT * FROM energy_consumption");
$stmt->execute();
records = stmt->fetchAll(PDO::FETCH_ASSOC);
}
if (!empty($records)) {
echo "<table>";
echo "<tr>
</tr>";
foreach (records as record) {
echo "<tr>";
echo "<td>". $record'id'. "</td>";
echo "<td>". $record'organization_id'. "</td>";
echo "<td>". $record'organization_name'. "</td>";
echo "<td>". $record'plan_name'. "</td>";
echo "<td>". $record'inventory_name'. "</td>";
echo "<td>". $record'emission_scope'. "</td>";
echo "<td>". $record'energy_category'. "</td>";
echo "<td>". $record'fuel_type'. "</td>";
echo "<td>". $record'emission_activity'. "</td>";
echo "<td>". $record'emission_device'. "</td>";
echo "<td>". $record'consumption_amount'. "</td>";
echo "<td>". $record'consumption_unit'. "</td>";
echo "<td>". $record'total_cost'. "</td>";
echo "<td>". $record'report_date'. "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<p>未找到相关记录。</p>";
}
$conn = null;
?>
筛选查询核心代码:
// 筛选条件处理
statusFilter = isset(_GET'status')? $_GET'status': '';
$whereClause = '';
if (!empty($statusFilter)) {
whereClause = "WHERE status = 'statusFilter'";
}
// 查询盘查方案数据
sql = "SELECT \* FROM audit_plans whereClause";
result = conn->query($sql);
// 统计不同状态的方案数量
$sqlStatusCount = "SELECT status, COUNT(*) as count FROM audit_plans GROUP BY status";
resultStatusCount = conn->query($sqlStatusCount);
$statusCount = \[\];
while (row = resultStatusCount->fetch_assoc()) {
statusCount\[row'status'] = $row'count';
}
?>
数据导出核心代码:
<?php
if ($result->num_rows > 0) {
while (row = result->fetch_assoc()) {
carbonContent = calculateCarbonContent(row);
ipccEmissionFactor = row'IPCCEmissionFactor';
ipccEmissions = calculateIPCCEmissions(carbonContent, $ipccEmissionFactor);
echo "<tr>";
echo "<td>{$row'fuel_name'}</td>";
echo "<td>{$row'component1_concentration'}</td>";
echo "<td>{$row'component2_concentration'}</td>";
echo "<td>{$row'component1_carbon_atoms'}</td>";
echo "<td>{$row'component2_carbon_atoms'}</td>";
echo "<td>{$carbonContent}</td>";
echo "<td>{$ipccEmissionFactor}</td>";
echo "<td>{$ipccEmissions}</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='8'>没有找到记录</td></tr>";
}
?>
</tbody>
</table>
<!-- 数据导出表单 -->
<form method="post" action="<?php echo htmlspecialchars($_SERVER"PHP_SELF");?>">
<input type="submit" name="export" value="导出数据">
</form>