CN117114921A - 一种基于用户历史年用水量动态计费管理系统及方法 - Google Patents
一种基于用户历史年用水量动态计费管理系统及方法 Download PDFInfo
- Publication number
- CN117114921A CN117114921A CN202311381352.1A CN202311381352A CN117114921A CN 117114921 A CN117114921 A CN 117114921A CN 202311381352 A CN202311381352 A CN 202311381352A CN 117114921 A CN117114921 A CN 117114921A
- Authority
- CN
- China
- Prior art keywords
- user
- water consumption
- current
- period
- charging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 327
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000007726 management method Methods 0.000 claims description 18
- 238000012937 correction Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 239000006185 dispersion Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 239000008399 tap water Substances 0.000 description 1
- 235000020679 tap water Nutrition 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0206—Price or cost determination based on market factors
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Water Supply & Treatment (AREA)
- Data Mining & Analysis (AREA)
- Public Health (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于用户历史年用水量动态计费管理系统及方法,涉及水务计费领域。本发明包括,根据用户的每日用水量历史记录获取当前缴费周期的总用水量;根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量;根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量;根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价;根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费。本发明有效避免了不同缴费周期内水费畸高畸低的问题。
Description
技术领域
本发明属于水务计费技术领域,特别是涉及一种基于用户历史年用水量动态计费管理系统及方法。
背景技术
随着社会经济的发展和人民生活水平的提高,用水量逐渐增加。传统的固定计费管理系统可能不能公平地为用户提供计费服务。固定费率可能使那些节约用水的用户付出更高的代价,而那些高耗水的用户则可能受益。因此,针对不同的用户用水量制定不同的计费策略是一种更加公平和有效的管理手段。
目前,大多数地区采用的是固定计费制或分段计费制。这些方法虽然在一定程度上能够满足计费需求,但固定计费制可能导致资源浪费,因为它没有考虑到用户的用水习惯和需求。分段计费制虽然可以一定程度上鼓励用户节约用水,但它是基于短期的用水数据,而不是长期的历史数据。这可能导致一些用户采取规避手段,如在计费周期内大量用水,然后在下一个计费周期内减少用水,以此来避免高费率。
不仅如此,分段计费会导致用水量较大的用户在低价计费周期内水费畸低,而在高价计费周期内水费畸高,导致单一财务支出畸高畸低,影响用户的财务平衡。
发明内容
本发明的目的在于提供一种基于用户历史年用水量动态计费管理系统及方法,通过对计算更新当前阶梯计费周期内均摊单价,将高阶梯单价和低阶梯单价的水费进行均摊,有效避免了不同缴费周期内水费畸高畸低的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种基于用户历史年用水量动态计费管理方法,包括,
获取阶梯计费水量阈值、每个阶梯单价以及阶梯计费周期;
获取用户的每日用水量历史记录;
根据用户的每日用水量历史记录获取当前缴费周期的总用水量;
根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量;
根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量;
根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价;
根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费。
本发明还公开了一种基于用户历史年用水量动态计费管理方法,所述的步骤,包括,
检测得到用户的每日用水量;
发送用户的每日用水量;
获取用户当前可用余额;
接收当前缴费周期的水费;
判断用户当前可用余额能否扣除当前缴费周期的水费;
若是,则扣除当前缴费周期的水费,并更新用户当前可用余额;
若否,则不扣除当前缴费周期的水费,并提醒用户欠费。
本发明还公开了一种基于用户历史年用水量动态计费管理方法,所述的步骤,包括,
获取水费结算日期;
获取当前日期;
判断当前日期是否是水费结算日期;
若是,则获取并显示当前缴费周期的水费;
若否,则不进行处理。
本发明还公开了一种基于用户历史年用水量动态计费管理系统,包括,
- 表端,用于检测得到用户的每日用水量;
发送用户的每日用水量;
- 计费端,用于获取阶梯计费水量阈值、每个阶梯单价以及阶梯计费周期;
获取用户的每日用水量历史记录;
根据用户的每日用水量历史记录获取当前缴费周期的总用水量;
根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量;
根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量;
根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价;
根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费;
- 所述表端,还用于获取用户当前可用余额;
接收当前缴费周期的水费;
判断用户当前可用余额能否扣除当前缴费周期的水费;
若是,则扣除当前缴费周期的水费,并更新用户当前可用余额;
若否,则不扣除当前缴费周期的水费,并提醒用户欠费;
- 用户端,用于获取水费结算日期;
获取当前日期;
判断当前日期是否是水费结算日期;
若是,则获取并显示当前缴费周期的水费;
若否,则不进行处理。
本发明通过对用户的用水历史记录进行分析,准确预估出用户在当前阶梯计费收起内的预估总用水量,之后结合阶梯计费水量阈值和阶梯单价计算出价格一致的当前阶梯计费周期内均摊单价,从而实现在整个阶梯计费周期内的用水单价均衡,避免由于阶梯水费导致阶梯计费周期前期水费过低后期水费过高,从而避免影响用户的财务平衡。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述一种基于用户历史年用水量动态计费管理系统于一实施例的功能单元信息交互示意图;
图2为本发明所述计费端于一实施例的功能步骤示意图;
图3为本发明所述表端于一实施例的功能步骤示意图;
图4为本发明所述用户端于一实施例的功能步骤示意图;
图5为本发明所述步骤S25于一实施例的功能步骤示意图;
图6为本发明所述步骤S251于一实施例的功能步骤示意图;
图7为本发明所述步骤S256于一实施例的功能步骤示意图;
图8为本发明所述步骤S2561于一实施例的功能步骤示意图;
图9为本发明所述步骤S26于一实施例的功能步骤示意图;
图10为本发明所述步骤S28及相关步骤于一实施例的功能步骤示意图;
附图中,各标号所代表的部件列表如下:
1-表端,2-计费端,3-用户端。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
水表用水是指使用水表来测量和记录用水量的实际消耗情况。水表是一种设备,通常安装在供水管道上,用于监测和计量家庭、工业、商业和公共建筑等地点的自来水用量。在阶梯水费计价规则下,用户会倾向于在阶梯计价周期的早期少用水,在阶梯计价周期的末期倾向于少用水,这不利于用户合理规划用水。
不仅如此,在用水量相近的情况下,用户在阶梯计价周期的早期水费会较少,在阶梯计价的末期水费会激增,这样会导致用户在水费开支一项财务失衡。因此需要对用户在阶梯计价周期内的水价进行均摊处理。为了实现此技术目的,本发明提供以下方案。
请参阅图1所示,一种基于用户历史年用水量动态计费管理系统,包括表端1、计费端2以及用户端3。表端将每日用水量等原始水务数据上传至计费端2。计费端2经过分析计算后得到当前缴费周期的水费,当用户端3判断达到计费扣款日期后请求计费端2回传当前缴费周期的水费,也可以同步将当前缴费周期的水费回传至表端1执行扣款操作。
请参阅图1至4所示,首先由表端1执行步骤S11检测得到用户的每日用水量,接下来可以执行步骤S12发送用户的每日用水量。紧接着由计费端2执行步骤S21获取阶梯计费水量阈值、每个阶梯单价以及阶梯计费周期。阶梯计费周期可以是一年、半年或一月。缴费周期可以是两月、一月或半月。接下来可以执行步骤S22获取用户的每日用水量历史记录。用户的每日用水量历史记录的数据样例格式可以是:
{
"orderNum": "12",
"totalVol": "1869",
"orderDetail": [
{
"date": "2022-01",
"vol": "189"
},
{
"date": "2022-02",
"vol": "100"
},
{
"date": "2022-03",
"vol": "89"
},
{
"date": "2022-04",
"vol": "174"
},
{
"date": "2022-05",
"vol": "139"
},
{
"date": "2022-06",
"vol": "209"
},
{
"date": "2022-07",
"vol": "169"
},
{
"date": "2022-08",
"vol": "147"
},
{
"date": "2022-09",
"vol": "174"
},
{
"date": "2022-10",
"vol": "130"
},
{
"date": "2022-11",
"vol": "185"
},
{
"date": "2022-12",
"vol": "164"
}
]
}
也就是该用户22年总用水量totalVol=1869吨。
接下来可以执行步骤S23根据用户的每日用水量历史记录获取当前缴费周期的总用水量。接下来可以执行步骤S24根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量。接下来可以执行步骤S25根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量。接下来可以执行步骤S26根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价。接下来可以执行步骤S27根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费。
在执行水费缴费扣款的过程中,表端1在本方案中接下来还可以执行步骤S13获取用户当前可用余额,接下来可以执行步骤S14接收当前缴费周期的水费。接下来可以执行步骤S15判断用户当前可用余额能否扣除当前缴费周期的水费。若是则接下来可以执行步骤S16扣除当前缴费周期的水费,并更新用户当前可用余额,若否则接下来可以执行步骤S17不扣除当前缴费周期的水费,并提醒用户欠费。当然缴费扣款这一步骤也可以由计费端2或用户端3执行。
用户端3用于和用户信息交互,在具体工作的过程中首先可以执行步骤S31获取水费结算日期,水费结算日期通常是月初或月末。接下来可以执行步骤S32获取当前日期,接下来可以执行步骤S33判断当前日期是否是水费结算日期。若是则接下来可以执行步骤S34获取并显示当前缴费周期的水费,若否则接下来可以执行步骤S35不进行处理,当然依旧可以提醒用户进行充值,但这并不是必须的。
请参阅图5所示,由于用户的用水习惯具有延续性,但是也会符合一定的规律。例如规模逐渐增加的企业用户,其年度用水量也会逐渐增加。基于此规律,上述的步骤S25在具体实施的过程中首先可以执行步骤S251根据用户在过去若干个阶梯计费周期内每天的用水量筛选可用阶梯计费周期,这是因为某些波动较大的可用阶梯计费周期内的水务数据波动较大不适合作为参考。接下来可以执行步骤S252根据用户在过去若干个可用阶梯计费周期内每天的用水量得到用户在过去若干个可用阶梯计费周期内的总用水量。接下来可以执行步骤S253根据用户在过去若干个可用阶梯计费周期内的总用水量得到用户在过去若干个阶梯计费周期内总用水量变化趋势。接下来可以执行步骤S254根据过去若干个阶梯计费周期内总用水量变化趋势计算得到当前阶梯计费周期内初步预估总用水量。接下来可以执行步骤S255根据用户的每日用水量历史记录获取当前阶梯计费周期内的实际用水时长和实际总用水量。最后可以执行步骤S256根据当前阶梯计费周期内的实际用水时长和实际总用水量对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量。
请参阅图6所示,由上可知,在某些年份用户的用水特征可能会出现异常的波动,不适合作为本年的参考标准。具体而言,上述的步骤S251在具体实施的过程中首先可以执行步骤S2511根据用户在过去若干个阶梯计费周期内每天的用水量计算获取过去若干个阶梯计费周期内的用水量离散程度。接下来可以执行步骤S2512计算获取过去若干个阶梯计费周期内的用水量离散程度的均值和标准差。接下来可以执行步骤S2513将过去若干个阶梯计费周期内的用水量离散程度的均值分别加减对应的标准差得到用户在过去若干个可用阶梯计费周期的用水量离散程度的上限和下限。最后可以执行步骤S2514在过去若干个阶梯计费周期内的用水量离散程度中挑选出处于上限和下限之间的阶梯计费周期作为可用阶梯计费周期。通过计算离散度的方式将波动状态较大的阶梯计费周期进行剔除,避免对后续的计算造成不良干扰。
为了对上述的步骤S2511至步骤S2514的实施过程进行补充说明,提供部分功能模块的源代码,并在注释部分进行对照解释说明。为了符合相关法律法规对水务的数据安全要求,对不影响方案实施的部分数据进行脱敏处理,下同。
#include<iostream>
#include<vector>
#include<cmath>
double calculateDiscreteness(const std::vector<double>&dailyUsage,int start, int billingPeriodDays) {
double mean = 0;
for (int i = start; i<start + billingPeriodDays; ++i) {
mean += dailyUsage[i];
}
mean /= billingPeriodDays;
double variance = 0;
for (int i = start; i<start + billingPeriodDays; ++i) {
variance += std::pow(dailyUsage[i] - mean, 2);
}
variance /= billingPeriodDays;
return std::sqrt(variance); // 返回标准差作为离散程度
}
std::vector<int>selectAvailableBillingPeriods(const std::vector<double>&dailyUsageHistory, int billingPeriodDays) {
int periods = dailyUsageHistory.size() / billingPeriodDays;
std::vector<double>discretenessForPeriods;
// 根据用户在过去若干个阶梯计费周期内每天的用水量计算获取过去若干个阶梯计费周期内的用水量离散程度;
for (int i = 0; i<periods; ++i) {
discretenessForPeriods.push_back(calculateDiscreteness(dailyUsageHistory, i * billingPeriodDays, billingPeriodDays));
}
//计算获取过去若干个阶梯计费周期内的用水量离散程度的均值和标准差;
double meanDiscreteness = 0, variance = 0;
for (const double&d : discretenessForPeriods) {
meanDiscreteness += d;
}
meanDiscreteness /= periods;
for (const double&d : discretenessForPeriods) {
variance += std::pow(d - meanDiscreteness, 2);
}
variance /= periods;
double stdDev = std::sqrt(variance);
// 将过去若干个阶梯计费周期内的用水量离散程度的均值分别加减对应的标准差得到上限和下限;
double upperLimit = meanDiscreteness + stdDev;
double lowerLimit = meanDiscreteness - stdDev;
// 挑选出处于上限和下限之间的阶梯计费周期作为可用阶梯计费周期
std::vector<int>availablePeriods;
for (int i = 0; i<periods; ++i) {
if (discretenessForPeriods[i]>= lowerLimit&&discretenessForPeriods[i]<= upperLimit) {
availablePeriods.push_back(i);
}
}
return availablePeriods;
}
int main() {
//输入用水量历史记录和阶梯计费周期天数,然后得到可用的阶梯计费周期。
std::vector<double>dailyUsageHistory;
int days;
std::cout<<"请输入历史记录天数: ";
std::cin>>days;
for (int i = 0; i<days; ++i) {
double dailyUsage;
std::cout<<"请输入第 "<<i + 1<<" 天的用水量: ";
std::cin>>dailyUsage;
dailyUsageHistory.push_back(dailyUsage);
}
int billingPeriodDays;
std::cout<<"请输入阶梯计费周期(天): ";
std::cin>>billingPeriodDays;
std::vector<int>availablePeriods = selectAvailableBillingPeriods(dailyUsageHistory, billingPeriodDays);
std::cout<<"可用的阶梯计费周期有: ";
for (const int&period : availablePeriods) {
std::cout<<period<<" ";
}
std::cout<<std::endl;
return 0;
}
这段代码主要根据用户过去的用水记录来挑选可用的阶梯计费周期。通过计算每个周期内的用水量的离散程度(这里使用标准差表示),可以得到过去所有周期的离散程度的均值和标准差。然后使用这两个值来确定一个上限和一个下限,之后挑选出离散程度在这个范围内的周期作为可用的阶梯计费周期。这种方法可以排除异常的用水记录,从而使预估更加准确。
请参阅图7所示,由于年度历史数据考虑的是过往多个年度的总用水量,并以此进行预估。在此过程中并没有考虑到本月用水的具体状况,因此需要根据本月的用水量对本年度的预估总用水量进行修正。具体而言,上述的步骤S256在具体实施的过程中首先可以执行步骤S2561根据当前阶梯计费周期内的实际用水时长以及用户在过去若干个阶梯计费周期内每天的用水量得到过去若干个可用阶梯计费周期内的同期总用水量。接下来可以执行步骤S2562根据当前阶梯计费周期内的实际总用水量和过去若干个阶梯计费周期内每天的用水量得到过去若干个可用阶梯计费周期内的同期总用水量得到用户在当前阶梯计费周期内的实际总用水量及历史同期的变化趋势。最后可以执行步骤S2563根据用户在过去若干个阶梯计费周期内总用水量变化趋势以及用户在当前阶梯计费周期内的实际总用水量及历史同期的变化趋势得到修正系数对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量。
在修正的具体过程中,需要将本月的用水量和往年同期的用水量数据进行比对,并借此作为修正的依据,请参阅图8所示,首先可以执行步骤S25631根据用户在过去若干个阶梯计费周期内总用水量变化趋势得到用户在每个阶梯计费周期内总用水量关于时间的拟合关系。接下来可以执行步骤S25632用户在每个阶梯计费周期内总用水量关于时间的拟合关系得到用户在当前阶梯计费周期内的实际总用水量与上一个阶梯计费周期内的实际总用水量的比值作为总比值。接下来可以执行步骤S25633根据用户的每日用水量历史记录得到用户在当前阶梯计费周期内的实际总用水量与上一个阶梯计费周期内的同期总用水量的比值作为局部比值。接下来可以执行步骤S25634计算获取局部比值与总比值的比例作为修正系数。最后可以执行步骤S25635将当前阶梯计费周期内初步预估总用水量乘以修正系数得到用户在当前阶梯计费周期内的预估总用水量。
为了对上述的步骤S25631至步骤S25635的实施过程进行补充说明,提供部分功能模块的源代码,并在注释部分进行对照解释说明。
#include<iostream>
#include<vector>
#include<cmath>
// 拟合过去总用水量的线性关系
// 使用简单的线性回归方法:y = ax + b
// 这里时间和总用水量之间的关系是线性的
struct LinearFit {
double a;
double b;
};
LinearFit fitTotalUsageTrend(const std::vector<double>&totalUsageHistory) {
double sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0;
int n = totalUsageHistory.size();
for (int i = 0; i<n; ++i) {
sumX += i;
sumY += totalUsageHistory[i];
sumXY += i * totalUsageHistory[i];
sumX2 += i * i;
}
LinearFit result;
result.a = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
result.b = (sumY - result.a * sumX) / n;
return result;
}
double getAdjustmentFactor(const std::vector<double>&totalUsageHistory, const std::vector<double>&dailyUsageHistory, intbillingPeriodDays, double initialEstimate) {
LinearFit fit = fitTotalUsageTrend(totalUsageHistory);
double lastPeriodTotal = totalUsageHistory[totalUsageHistory.size() - 1];
double expectedTotal = fit.a * totalUsageHistory.size() + fit.b;
double globalRatio = expectedTotal / lastPeriodTotal;
// 计算局部比值
double currentPeriodUsage = 0;
for (int i = 0; i<billingPeriodDays; ++i) {
currentPeriodUsage += dailyUsageHistory[dailyUsageHistory.size() - 1 - i];
}
double lastPeriodSameDurationUsage = 0;
for (int i = 0; i<billingPeriodDays; ++i) {
lastPeriodSameDurationUsage += dailyUsageHistory[dailyUsageHistory.size() - 1 - billingPeriodDays - i];
}
double localRatio = currentPeriodUsage / lastPeriodSameDurationUsage;
double adjustmentFactor = localRatio / globalRatio;
return adjustmentFactor;
}
int main() {
std::vector<double>totalUsageHistory; // 过去每个阶梯计费周期的总用水量
std::vector<double>dailyUsageHistory; // 每日用水历史记录
// ... 填充totalUsageHistory和dailyUsageHistory的数据 ...
int billingPeriodDays = 30; // 阶梯计费周期为30天
double initialEstimate; // 初步预估总用水量
std::cout<<"请输入当前阶梯计费周期内的初步预估总用水量: ";
std::cin>>initialEstimate;
double adjustmentFactor = getAdjustmentFactor(totalUsageHistory,dailyUsageHistory, billingPeriodDays, initialEstimate);
double adjustedEstimate = initialEstimate * adjustmentFactor;
std::cout<<"修正后的预估总用水量为:"<<adjustedEstimate<<std::endl;
return 0;
}
该代码首先利用线性拟合的方法对过去若干个阶梯计费周期内的总用水量进行拟合,从而得到一个预测模型。然后利用这个模型来预测当前阶梯计费周期的总用水量。同时,代码还会计算实际用水量与上一个阶梯计费周期内的同期用水量的比值,这被称为局部比值。局部比值和从拟合模型得到的比值(全局比值)之间的比率被用作修正系数。最后这个修正系数被用来修正初始的预估总用水量,从而得到一个更准确的预估值。
请参阅图9所示,计算当前阶梯计费周期内均摊单价首先可以执行步骤S261根据用户在当前阶梯计费周期内的预估总用水量以及阶梯计费水量阈值得到每个阶梯的预估用水量。接下来可以执行步骤S262根据每个阶梯的预估用水量以及每个阶梯单价计算得到用户在当前阶梯计费周期内的预估总价。最后可以执行步骤S263根据用户在当前阶梯计费周期内的预估总价和预估总用水量的比值得到当前阶梯计费周期内均摊单价。
请参阅图10所示,由于用户的用水是动态变化的,因此用户的每日用水量也是动态变化的,为了让每次缴费的水费更加均衡需要保持当前阶梯计费周期内均摊单价紧贴用户的用水状态,这就需要对当前阶梯计费周期内的预估总用水量进行实时更新。具体而言,在执行上述的步骤S27之后,接下来可以执行步骤S28判断用户的每日用水量历史记录是否更新。若否则不进行处理,若是则接下来可以执行步骤S25实时更新计算得到用户在当前阶梯计费周期内的预估总用水量。接下来可以执行步骤S26根据更细后的用户在当前阶梯计费周期内的预估总用水量更新计算当前阶梯计费周期内均摊单价。可以执行步骤S27根据更新后的当前阶梯计费周期内均摊单价计算获取更新后的当前缴费周期的水费。由此避免用户缴费的依靠的均摊单价严重偏离实际状态。
需要说明的是,在每个当前阶梯计费周期结束之后,还可以对水费进行汇总复盘,避免出现水费缴纳过剩或者不足。
本方案还提供另一实施例,目的在于降低系统运行的计算压力。水费计费管理系统并不需要每分每秒进行更新运算,只需要在水费结算日之前完成计算获取更新后的当前缴费周期的水费即可。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件,例如电路或ASIC(专用集成电路,Application Specific Integrated Circuit)来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种基于用户历史年用水量动态计费管理方法,其特征在于,包括,
获取阶梯计费水量阈值、每个阶梯单价以及阶梯计费周期;
获取用户的每日用水量历史记录;
根据用户的每日用水量历史记录获取当前缴费周期的总用水量;
根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量;
根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量;
根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价;
根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费。
2.根据权利要求1所述的方法,其特征在于,所述根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量的步骤,包括,
根据用户在过去若干个阶梯计费周期内每天的用水量筛选可用阶梯计费周期;
根据用户在过去若干个可用阶梯计费周期内每天的用水量得到用户在过去若干个可用阶梯计费周期内的总用水量;
根据用户在过去若干个可用阶梯计费周期内的总用水量得到用户在过去若干个阶梯计费周期内总用水量变化趋势;
根据过去若干个阶梯计费周期内总用水量变化趋势计算得到当前阶梯计费周期内初步预估总用水量;
根据用户的每日用水量历史记录获取当前阶梯计费周期内的实际用水时长和实际总用水量;
根据当前阶梯计费周期内的实际用水时长和实际总用水量对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量。
3.根据权利要求2所述的方法,其特征在于,所述根据用户在过去若干个阶梯计费周期内每天的用水量筛选可用阶梯计费周期的步骤,包括,
根据用户在过去若干个阶梯计费周期内每天的用水量计算获取过去若干个阶梯计费周期内的用水量离散程度;
计算获取过去若干个阶梯计费周期内的用水量离散程度的均值和标准差;
将过去若干个阶梯计费周期内的用水量离散程度的均值分别加减对应的标准差得到用户在过去若干个可用阶梯计费周期的用水量离散程度的上限和下限;
在过去若干个阶梯计费周期内的用水量离散程度中挑选出处于上限和下限之间的阶梯计费周期作为可用阶梯计费周期。
4.根据权利要求2所述的方法,其特征在于,所述根据当前阶梯计费周期内的实际用水时长和实际总用水量对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量的步骤,包括,
根据当前阶梯计费周期内的实际用水时长以及用户在过去若干个阶梯计费周期内每天的用水量得到过去若干个可用阶梯计费周期内的同期总用水量;
根据当前阶梯计费周期内的实际总用水量和过去若干个阶梯计费周期内每天的用水量得到过去若干个可用阶梯计费周期内的同期总用水量得到用户在当前阶梯计费周期内的实际总用水量及历史同期的变化趋势;
根据用户在过去若干个阶梯计费周期内总用水量变化趋势以及用户在当前阶梯计费周期内的实际总用水量及历史同期的变化趋势得到修正系数对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量。
5.根据权利要求4所述的方法,其特征在于,所述根据用户在过去若干个阶梯计费周期内总用水量变化趋势以及用户在当前阶梯计费周期内的实际总用水量及历史同期的变化趋势得到修正系数对当前阶梯计费周期内初步预估总用水量进行修正得到用户在当前阶梯计费周期内的预估总用水量的步骤,包括,
根据用户在过去若干个阶梯计费周期内总用水量变化趋势得到用户在每个阶梯计费周期内总用水量关于时间的拟合关系;
用户在每个阶梯计费周期内总用水量关于时间的拟合关系得到用户在当前阶梯计费周期内的实际总用水量与上一个阶梯计费周期内的实际总用水量的比值作为总比值;
根据用户的每日用水量历史记录得到用户在当前阶梯计费周期内的实际总用水量与上一个阶梯计费周期内的同期总用水量的比值作为局部比值;
计算获取局部比值与总比值的比例作为修正系数;
将当前阶梯计费周期内初步预估总用水量乘以所述修正系数得到用户在当前阶梯计费周期内的预估总用水量。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价的步骤,包括,
根据用户在当前阶梯计费周期内的预估总用水量以及阶梯计费水量阈值得到每个阶梯的预估用水量;
根据每个阶梯的预估用水量以及每个阶梯单价计算得到用户在当前阶梯计费周期内的预估总价;
根据用户在当前阶梯计费周期内的预估总价和预估总用水量的比值得到当前阶梯计费周期内均摊单价。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括,
判断用户的每日用水量历史记录是否更新;
若否,则不进行处理;
若是,则实时更新计算得到用户在当前阶梯计费周期内的预估总用水量;
根据更细后的用户在当前阶梯计费周期内的预估总用水量更新计算当前阶梯计费周期内均摊单价;
根据更新后的当前阶梯计费周期内均摊单价计算获取更新后的当前缴费周期的水费。
8.一种基于用户历史年用水量动态计费管理方法,其特征在于,所述的步骤,包括,
检测得到用户的每日用水量;
发送用户的每日用水量;
获取用户当前可用余额;
接收权利要求1至7任一项所述一种基于用户历史年用水量动态计费管理方法中的当前缴费周期的水费;
判断用户当前可用余额能否扣除当前缴费周期的水费;
若是,则扣除当前缴费周期的水费,并更新用户当前可用余额;
若否,则不扣除当前缴费周期的水费,并提醒用户欠费。
9.一种基于用户历史年用水量动态计费管理方法,其特征在于,所述的步骤,包括,
获取水费结算日期;
获取当前日期;
判断当前日期是否是水费结算日期;
若是,则根据权利要求1至7任一项所述一种基于用户历史年用水量动态计费管理方法获取并显示当前缴费周期的水费;
若否,则不进行处理。
10.一种基于用户历史年用水量动态计费管理系统,其特征在于,包括,
- 表端,用于检测得到用户的每日用水量;
发送用户的每日用水量;
- 计费端,用于获取阶梯计费水量阈值、每个阶梯单价以及阶梯计费周期;
获取用户的每日用水量历史记录;
根据用户的每日用水量历史记录获取当前缴费周期的总用水量;
根据用户的每日用户量历史记录得到用户在过去若干个阶梯计费周期内每天的用水量;
根据用户在过去若干个阶梯计费周期内每天的用水量得到用户在当前阶梯计费周期内的预估总用水量;
根据用户在当前阶梯计费周期内的预估总用水量、阶梯计费水量阈值以及每个阶梯单价得到当前阶梯计费周期内均摊单价;
根据当前阶梯计费周期内均摊单价和当前缴费周期的总用水量得到当前缴费周期的水费;
- 所述表端,还用于获取用户当前可用余额;
接收当前缴费周期的水费;
判断用户当前可用余额能否扣除当前缴费周期的水费;
若是,则扣除当前缴费周期的水费,并更新用户当前可用余额;
若否,则不扣除当前缴费周期的水费,并提醒用户欠费;
- 用户端,用于获取水费结算日期;
获取当前日期;
判断当前日期是否是水费结算日期;
若是,则获取并显示当前缴费周期的水费;
若否,则不进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311381352.1A CN117114921A (zh) | 2023-10-24 | 2023-10-24 | 一种基于用户历史年用水量动态计费管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311381352.1A CN117114921A (zh) | 2023-10-24 | 2023-10-24 | 一种基于用户历史年用水量动态计费管理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117114921A true CN117114921A (zh) | 2023-11-24 |
Family
ID=88809614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311381352.1A Pending CN117114921A (zh) | 2023-10-24 | 2023-10-24 | 一种基于用户历史年用水量动态计费管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117114921A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096930A (zh) * | 2016-06-01 | 2016-11-09 | 成都易信达科技股份有限公司 | 一种智能水表 |
CN108711044A (zh) * | 2018-05-18 | 2018-10-26 | 深圳市源啓智能科技有限公司 | 一种水表的远程抄表结算方法及系统 |
CN112270793A (zh) * | 2020-09-25 | 2021-01-26 | 青岛海尔施特劳斯水设备有限公司 | 一种水费自动缴纳方法及系统 |
CN114186713A (zh) * | 2021-11-17 | 2022-03-15 | 广西电网有限责任公司 | 一种考虑远景发展情景约束的中长期用电量预测方法 |
CN115859036A (zh) * | 2022-12-28 | 2023-03-28 | 金卡智能集团股份有限公司 | 用水量的确定方法、装置、电子设备及存储介质 |
CN116758674A (zh) * | 2023-07-21 | 2023-09-15 | 武汉沃特曼计量科技有限公司 | 一种大口径阀控一体式物联网智能远传水表及其工作方法 |
-
2023
- 2023-10-24 CN CN202311381352.1A patent/CN117114921A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096930A (zh) * | 2016-06-01 | 2016-11-09 | 成都易信达科技股份有限公司 | 一种智能水表 |
CN108711044A (zh) * | 2018-05-18 | 2018-10-26 | 深圳市源啓智能科技有限公司 | 一种水表的远程抄表结算方法及系统 |
CN112270793A (zh) * | 2020-09-25 | 2021-01-26 | 青岛海尔施特劳斯水设备有限公司 | 一种水费自动缴纳方法及系统 |
CN114186713A (zh) * | 2021-11-17 | 2022-03-15 | 广西电网有限责任公司 | 一种考虑远景发展情景约束的中长期用电量预测方法 |
CN115859036A (zh) * | 2022-12-28 | 2023-03-28 | 金卡智能集团股份有限公司 | 用水量的确定方法、装置、电子设备及存储介质 |
CN116758674A (zh) * | 2023-07-21 | 2023-09-15 | 武汉沃特曼计量科技有限公司 | 一种大口径阀控一体式物联网智能远传水表及其工作方法 |
Non-Patent Citations (1)
Title |
---|
毛永明: "城市输配水系统负荷预测与模拟", 《中国优秀博硕士学位论文全文数据库 (硕士) 工程科技Ⅱ辑(月刊)》, no. 2006, 15 June 2006 (2006-06-15), pages 21 - 30 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177510B (zh) | 基于流程自动化的电费类客服工单抓取与诊断方法及装置 | |
CN107730398A (zh) | 用电计费方式的推荐方法、装置及存储介质 | |
US20100274695A1 (en) | Utility tariff engine | |
CN114360222B (zh) | 一种租赁设备的状态预警方法、装置、设备和介质 | |
CA3077403C (en) | Systems for real-time analysis and reporting of utility usage and spend | |
CN110070250A (zh) | 指数型增长的业务指标监控方法及装置、电子设备、介质 | |
CN115641085A (zh) | 一种电费智能核算系统以及方法 | |
CN110826859A (zh) | 一种基于日电量远程识别用户用电性质的方法及系统 | |
CN117114921A (zh) | 一种基于用户历史年用水量动态计费管理系统及方法 | |
CN116613894B (zh) | 一种用电数据的处理方法及装置 | |
CN116433277B (zh) | 基于新型电力系统的电价传导处理方法及系统 | |
CN111651345A (zh) | 一种系统测试方法、装置及电子设备 | |
AU2012346010B2 (en) | Configurable billing with subscriptions having conditional components | |
CN113052417A (zh) | 一种资源配置方法以及装置 | |
CN112884277B (zh) | 一种应用于转供电的智能用电系统及其使用方法 | |
CN114298847A (zh) | 职工医保基金结余的预测方法、装置、设备及存储介质 | |
Jarrett | An approach to cost—volume—profit analysis under uncertainty | |
CN112633663A (zh) | 一种基于大数据平台的电费抄表核算分析系统 | |
CN110896219B (zh) | 一种基于大数据和数据库的电力网络处理系统及方法 | |
JP7385190B1 (ja) | 廃棄物処理装置、請求金額算出方法、プログラム、及び、廃棄物処理システム | |
CN111192038B (zh) | 基于电子账单的责任险信息处理方法、装置及终端设备 | |
TWM564215U (zh) | 建立流動性風險評估表的系統 | |
KR102390471B1 (ko) | 최대 전력 부하 관리를 위한 정보 시스템 | |
TWI662503B (zh) | 建立流動性風險評估表的系統及方法 | |
CN117033385A (zh) | 一种变损电量数据核查方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |