sale-client 4.3.13 → 4.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,158 @@
1
+ SELECT
2
+ f_insert_date,-- 上报日期
3
+ SUM(c) + SUM(c0) AS anzhuang,-- 安装户数
4
+ SUM(c) AS c,-- 在用户数
5
+ SUM(c0) AS c0,-- 停用户数
6
+ CASE
7
+ WHEN SUM(c1) = 0 THEN 0
8
+ ELSE CAST(( ( SUM(c1) - SUM(t2) ) ) / SUM(c1) * 100.00 AS DECIMAL(18, 2))
9
+ END AS user_bv,-- 用户使用率
10
+ SUM(c1) AS c1,-- 抄表成功户数
11
+ SUM(t2) AS t2,-- 不用气用户
12
+ SUM(t3) AS t3,-- 用气小于3的户数
13
+ CASE
14
+ WHEN SUM(c) > 0 THEN
15
+ CASE
16
+ WHEN SUM(c1) > SUM(c) THEN 100
17
+ ELSE ROUND(SUM(c1) / SUM(c) * 100.00, 2)
18
+ END
19
+ ELSE 0
20
+ END AS f_bv1,-- 抄表成功率
21
+ SUM(f_gas) AS f_gas_all,-- 总用气量
22
+ CASE
23
+ WHEN SUM(c1) = 0 THEN 0
24
+ ELSE SUM(f_gas) / SUM(c1)
25
+ END AS f_gas,-- 日均户均用气量(成功)
26
+ CASE
27
+ WHEN SUM(c) = 0 THEN 0
28
+ ELSE SUM(f_gas) / SUM(c)
29
+ END AS f_gas1,-- -- 日均户均用气量(在用)
30
+ CASE
31
+ WHEN ( SUM(c1) - SUM(t2) ) = 0 THEN 0
32
+ ELSE SUM(f_gas) / ( SUM(c1) - SUM(t2) )
33
+ END AS f_gas2 -- 日均户均用气量(实际在用)
34
+ FROM
35
+ (
36
+ SELECT
37
+ 0 AS indexdnum,
38
+ f_insert_date,
39
+ 0 AS c,
40
+ 0 AS c0,
41
+ SUM(t2) AS t2,
42
+ SUM(c1) AS c1,
43
+ SUM(t3) AS t3,
44
+ SUM(f_gas) AS f_gas
45
+ FROM
46
+ (
47
+ SELECT
48
+ c1,
49
+ f_insert_date,
50
+ f_meternumber,
51
+ f_gas,
52
+ CASE
53
+ WHEN f_gas = 0 THEN 1
54
+ ELSE 0
55
+ END AS t2,
56
+ CASE
57
+ WHEN f_gas > 0
58
+ AND f_gas <= 3 THEN 1
59
+ ELSE 0
60
+ END AS t3
61
+ FROM
62
+ (
63
+ SELECT
64
+ 1 AS c1,
65
+ DATE_FORMAT(m.f_hand_date, '%Y-%m-%d') AS f_insert_date,
66
+ m.f_meternumber,
67
+ SUM(CASE WHEN m.f_oughtamount >= 9999999 THEN 0 ELSE m.f_oughtamount END) AS f_gas
68
+ FROM
69
+ t_meteread_data m
70
+ WHERE
71
+ m.f_hand_date >= DATE_FORMAT('2025-10-23 00:00:00', 'yyyy-MM-dd HH:mm:ss')
72
+ AND m.f_hand_date <= DATE_FORMAT('2025-11-08 23:59:59', 'yyyy-MM-dd HH:mm:ss')
73
+ and 1=1 and m.f_user_type ='民用' and m.f_filialeids like '000118%'
74
+ GROUP BY
75
+ DATE_FORMAT(m.f_hand_date, '%Y-%m-%d'),
76
+ m.f_meternumber
77
+ ) s
78
+ WHERE
79
+ f_gas >= 0
80
+ ) s
81
+ GROUP BY
82
+ f_insert_date
83
+ UNION ALL
84
+ SELECT
85
+ ROW_NUMBER() OVER (ORDER BY s.every_time) AS indexdnum,
86
+ DATE_FORMAT(s.every_time, '%Y-%m-%d') AS f_insert_date,
87
+ COALESCE(c.c, 0) AS c,
88
+ COALESCE(c.c0, 0) AS c0,
89
+ 0 AS t2,
90
+ 0 AS t3,
91
+ 0 AS c1,
92
+ 0 AS f_gas
93
+ FROM
94
+ (SELECT CONCAT(every_time, ' 23:59:59') AS every_time
95
+ FROM t_date_sequence
96
+ WHERE every_time >= DATE_FORMAT('2025-10-23 00:00:00', '%Y-%m-%d') AND every_time <= DATE_FORMAT('2025-11-08 23:59:59', '%Y-%m-%d')
97
+ ) s
98
+ LEFT JOIN (
99
+ select
100
+ s_inner.every_time,
101
+ -- 停用户数
102
+ sum(case when m.f_table_state IN ('停用') then 1 else 0 end) as c0,
103
+ -- 在用户数:状态为"正常",或者状态为"拆除"但该日期在换表日期之前(当时是"正常"的)
104
+ -- 注意:如果状态为"拆除"但没有换表记录,不计入在用户数(无法确定何时变为拆除)
105
+ sum(case
106
+ when m.f_table_state IN ('正常') then 1
107
+ when m.f_table_state IN ('拆除') and m.change_date IS NOT NULL AND DATE_FORMAT(s_inner.every_time, '%Y-%m-%d') < DATE_FORMAT(m.change_date, '%Y-%m-%d') then 1
108
+ else 0
109
+ end) as c,
110
+ -- 拆除户数:状态为"拆除"且该日期在换表日期之后
111
+ sum(case
112
+ when m.f_table_state IN ('拆除') and m.change_date IS NOT NULL AND DATE_FORMAT(s_inner.every_time, '%Y-%m-%d') >= DATE_FORMAT(m.change_date, '%Y-%m-%d') then 1
113
+ else 0
114
+ end) as c2
115
+ from (
116
+ SELECT CONCAT(every_time, ' 23:59:59') AS every_time
117
+ FROM t_date_sequence
118
+ WHERE every_time >= DATE_FORMAT('2025-10-23 00:00:00', '%Y-%m-%d')
119
+ AND every_time <= DATE_FORMAT('2025-11-08 23:59:59', '%Y-%m-%d')
120
+ ) s_inner
121
+ CROSS JOIN (
122
+ select
123
+ m.f_user_id,
124
+ m.f_user_type,
125
+ m.f_meternumber,
126
+ m.f_gasproperties,
127
+ m.f_filialeids,
128
+ m.f_gasproperties2,
129
+ m.f_meter_brand,
130
+ m.f_meter_style,
131
+ m.f_user_name,
132
+ m.f_address,
133
+ m.f_gas_date,
134
+ m.f_table_state,
135
+ m.f_userinfo_code,
136
+ m.f_type,
137
+ cm.f_operate_date as change_date
138
+ from t_userfiles_data m
139
+ LEFT JOIN (
140
+ -- 获取每个用户最近的换表日期(通过旧表号关联)
141
+ SELECT
142
+ f_user_id,
143
+ f_meternumber_old as f_meternumber,
144
+ MAX(f_operate_date) as f_operate_date
145
+ FROM t_changetables
146
+ WHERE f_state = '有效'
147
+ GROUP BY f_user_id, f_meternumber_old
148
+ ) cm ON cm.f_user_id = m.f_user_id AND cm.f_meternumber = m.f_meternumber
149
+ where 1=1 and m.f_user_type ='民用' and m.f_filialeids like '000118%'
150
+ ) m
151
+ where m.f_gas_date <= s_inner.every_time
152
+ group by s_inner.every_time
153
+ )c ON DATE_FORMAT(c.every_time, '%Y-%m-%d') = DATE_FORMAT(s.every_time, '%Y-%m-%d')
154
+ )s
155
+ GROUP BY
156
+ f_insert_date
157
+ order by f_insert_date
158
+
package/package.json CHANGED
@@ -1,122 +1,122 @@
1
- {
2
- "name": "sale-client",
3
- "version": "4.3.13",
4
- "description": "收费模块前台组件",
5
- "main": "src/index.js",
6
- "scripts": {
7
- "example": "node build/example-server.js",
8
- "dev": "webpack-dev-server --config ./build/dev-server.js",
9
- "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
10
- "unit": "karma start test/unit/karma.conf.js",
11
- "build": "rimraf lib && mkdirp lib && cross-env webpack --progress --hide-modules --config build/webpack.prod.conf.js",
12
- "e2e": "node test/e2e/runner.js",
13
- "release": "bash build/release.sh"
14
- },
15
- "repository": {
16
- "type": "git",
17
- "url": "https://gitee.com/aote/product.git"
18
- },
19
- "dependencies": {
20
- "crypto-js": "^4.1.1",
21
- "examples": "^0.1.0",
22
- "js-file-download": "0.4.12",
23
- "less-loader": "^2.2.3",
24
- "qrcodejs2": "^0.0.2",
25
- "vue": "^1.0.17",
26
- "webpack-dev-server": "^2.11.5",
27
- "yarn": "^1.22.10"
28
- },
29
- "devDependencies": {
30
- "vue-client": "1.26.7",
31
- "less-loader": "^2.2.3",
32
- "system-clients": "4.0.12",
33
- "ldap-clients": "3.0.96",
34
- "address-client": "3.2.79",
35
- "manage-client": "3.1.8-88",
36
- "axios": "0.15.3",
37
- "babel-core": "^6.0.0",
38
- "babel-loader": "^6.0.0",
39
- "babel-plugin-transform-runtime": "^6.0.0",
40
- "babel-preset-es2015": "^6.0.0",
41
- "babel-preset-stage-2": "^6.0.0",
42
- "chai": "^3.5.0",
43
- "co": "^4.6.0",
44
- "compression-webpack-plugin": "1.1.2",
45
- "connect-history-api-fallback": "^1.1.0",
46
- "cross-env": "^1.0.7",
47
- "cross-spawn": "^2.1.5",
48
- "css-loader": "^0.23.0",
49
- "echarts": "^4.1.0",
50
- "eslint": "^3.19.0",
51
- "eslint-config-standard": "^10.2.1",
52
- "eslint-friendly-formatter": "^3.0.0",
53
- "eslint-loader": "^1.7.1",
54
- "eslint-plugin-html": "^3.0.0",
55
- "eslint-plugin-import": "^2.7.0",
56
- "eslint-plugin-node": "^5.2.0",
57
- "eslint-plugin-promise": "^3.4.0",
58
- "eslint-plugin-standard": "^3.0.1",
59
- "eventsource-polyfill": "^0.9.6",
60
- "express": "^4.13.3",
61
- "extract-text-webpack-plugin": "^3.0.2",
62
- "terser-webpack-plugin-legacy": "^1.2.5",
63
- "file-loader": "^0.8.4",
64
- "filemanager-webpack-plugin": "^2.0.5",
65
- "function-bind": "^1.0.2",
66
- "html-webpack-plugin": "^2.8.1",
67
- "http-proxy-middleware": "^0.11.0",
68
- "inject-loader": "^2.0.1",
69
- "isparta-loader": "^2.0.0",
70
- "jasmine-core": "^2.4.1",
71
- "jquery": "^3.3.1",
72
- "jsencrypt": "3.0.0-rc.1",
73
- "json-loader": "^0.5.4",
74
- "karma": "^1.4.1",
75
- "karma-chrome-launcher": "^2.2.0",
76
- "karma-coverage": "^1.1.1",
77
- "karma-mocha": "^1.3.0",
78
- "karma-sinon-chai": "^1.3.1",
79
- "karma-sourcemap-loader": "^0.3.7",
80
- "karma-spec-reporter": "0.0.31",
81
- "karma-webpack": "^2.0.2",
82
- "less": "^2.7.3",
83
- "mkdirp": "^0.5.1",
84
- "mocha": "^3.2.0",
85
- "moment": "2.24.0",
86
- "ncp": "^2.0.0",
87
- "nightwatch": "^0.8.18",
88
- "qrcodejs2": "0.0.2",
89
- "rimraf": "^2.5.0",
90
- "selenium-server": "2.52.0",
91
- "sinon": "^2.1.0",
92
- "sinon-chai": "^2.8.0",
93
- "style": "0.0.3",
94
- "style-loader": "^0.20.3",
95
- "url-loader": "^0.5.7",
96
- "vue-clipboard2": "0.3.1",
97
- "vue-hot-reload-api": "^1.2.0",
98
- "vue-html-loader": "^1.0.0",
99
- "vue-loader": "^8.2.1",
100
- "vue-amap": "^0.5.8",
101
- "vue-resource": "^1.5.0",
102
- "vue-router": "^0.7.13",
103
- "vue-strap": "^1.0.9",
104
- "vue-style-loader": "^1.0.0",
105
- "vue-validator": "2.1.7",
106
- "webpack": "^3.12.0",
107
- "webpack-dev-middleware": "^1.4.0",
108
- "webpack-hot-middleware": "^2.6.0",
109
- "webpack-merge": "^0.8.3",
110
- "webpack-parallel-uglify-plugin": "^1.0.0",
111
- "weixin-js-sdk": "^1.2.0"
112
- },
113
- "keywords": [
114
- "selling-clients"
115
- ],
116
- "author": "张桥",
117
- "license": "ISC",
118
- "directories": {
119
- "example": "examples",
120
- "test": "test"
121
- }
122
- }
1
+ {
2
+ "name": "sale-client",
3
+ "version": "4.3.15",
4
+ "description": "收费模块前台组件",
5
+ "main": "src/index.js",
6
+ "scripts": {
7
+ "example": "node build/example-server.js",
8
+ "dev": "webpack-dev-server --config ./build/dev-server.js",
9
+ "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
10
+ "unit": "karma start test/unit/karma.conf.js",
11
+ "build": "rimraf lib && mkdirp lib && cross-env webpack --progress --hide-modules --config build/webpack.prod.conf.js",
12
+ "e2e": "node test/e2e/runner.js",
13
+ "release": "bash build/release.sh"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://gitee.com/aote/product.git"
18
+ },
19
+ "dependencies": {
20
+ "crypto-js": "^4.1.1",
21
+ "examples": "^0.1.0",
22
+ "js-file-download": "0.4.12",
23
+ "less-loader": "^2.2.3",
24
+ "qrcodejs2": "^0.0.2",
25
+ "vue": "^1.0.17",
26
+ "webpack-dev-server": "^2.11.5",
27
+ "yarn": "^1.22.10"
28
+ },
29
+ "devDependencies": {
30
+ "vue-client": "1.26.7",
31
+ "less-loader": "^2.2.3",
32
+ "system-clients": "4.0.12",
33
+ "ldap-clients": "3.0.96",
34
+ "address-client": "3.2.79",
35
+ "manage-client": "3.1.8-88",
36
+ "axios": "0.15.3",
37
+ "babel-core": "^6.0.0",
38
+ "babel-loader": "^6.0.0",
39
+ "babel-plugin-transform-runtime": "^6.0.0",
40
+ "babel-preset-es2015": "^6.0.0",
41
+ "babel-preset-stage-2": "^6.0.0",
42
+ "chai": "^3.5.0",
43
+ "co": "^4.6.0",
44
+ "compression-webpack-plugin": "1.1.2",
45
+ "connect-history-api-fallback": "^1.1.0",
46
+ "cross-env": "^1.0.7",
47
+ "cross-spawn": "^2.1.5",
48
+ "css-loader": "^0.23.0",
49
+ "echarts": "^4.1.0",
50
+ "eslint": "^3.19.0",
51
+ "eslint-config-standard": "^10.2.1",
52
+ "eslint-friendly-formatter": "^3.0.0",
53
+ "eslint-loader": "^1.7.1",
54
+ "eslint-plugin-html": "^3.0.0",
55
+ "eslint-plugin-import": "^2.7.0",
56
+ "eslint-plugin-node": "^5.2.0",
57
+ "eslint-plugin-promise": "^3.4.0",
58
+ "eslint-plugin-standard": "^3.0.1",
59
+ "eventsource-polyfill": "^0.9.6",
60
+ "express": "^4.13.3",
61
+ "extract-text-webpack-plugin": "^3.0.2",
62
+ "terser-webpack-plugin-legacy": "^1.2.5",
63
+ "file-loader": "^0.8.4",
64
+ "filemanager-webpack-plugin": "^2.0.5",
65
+ "function-bind": "^1.0.2",
66
+ "html-webpack-plugin": "^2.8.1",
67
+ "http-proxy-middleware": "^0.11.0",
68
+ "inject-loader": "^2.0.1",
69
+ "isparta-loader": "^2.0.0",
70
+ "jasmine-core": "^2.4.1",
71
+ "jquery": "^3.3.1",
72
+ "jsencrypt": "3.0.0-rc.1",
73
+ "json-loader": "^0.5.4",
74
+ "karma": "^1.4.1",
75
+ "karma-chrome-launcher": "^2.2.0",
76
+ "karma-coverage": "^1.1.1",
77
+ "karma-mocha": "^1.3.0",
78
+ "karma-sinon-chai": "^1.3.1",
79
+ "karma-sourcemap-loader": "^0.3.7",
80
+ "karma-spec-reporter": "0.0.31",
81
+ "karma-webpack": "^2.0.2",
82
+ "less": "^2.7.3",
83
+ "mkdirp": "^0.5.1",
84
+ "mocha": "^3.2.0",
85
+ "moment": "2.24.0",
86
+ "ncp": "^2.0.0",
87
+ "nightwatch": "^0.8.18",
88
+ "qrcodejs2": "0.0.2",
89
+ "rimraf": "^2.5.0",
90
+ "selenium-server": "2.52.0",
91
+ "sinon": "^2.1.0",
92
+ "sinon-chai": "^2.8.0",
93
+ "style": "0.0.3",
94
+ "style-loader": "^0.20.3",
95
+ "url-loader": "^0.5.7",
96
+ "vue-clipboard2": "0.3.1",
97
+ "vue-hot-reload-api": "^1.2.0",
98
+ "vue-html-loader": "^1.0.0",
99
+ "vue-loader": "^8.2.1",
100
+ "vue-amap": "^0.5.8",
101
+ "vue-resource": "^1.5.0",
102
+ "vue-router": "^0.7.13",
103
+ "vue-strap": "^1.0.9",
104
+ "vue-style-loader": "^1.0.0",
105
+ "vue-validator": "2.1.7",
106
+ "webpack": "^3.12.0",
107
+ "webpack-dev-middleware": "^1.4.0",
108
+ "webpack-hot-middleware": "^2.6.0",
109
+ "webpack-merge": "^0.8.3",
110
+ "webpack-parallel-uglify-plugin": "^1.0.0",
111
+ "weixin-js-sdk": "^1.2.0"
112
+ },
113
+ "keywords": [
114
+ "selling-clients"
115
+ ],
116
+ "author": "张桥",
117
+ "license": "ISC",
118
+ "directories": {
119
+ "example": "examples",
120
+ "test": "test"
121
+ }
122
+ }