@yjzf/mcp-server-yjzf 0.2.5 → 0.2.6

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.
Files changed (54) hide show
  1. package/dist/index.js +20 -9
  2. package/dist/index.js.map +1 -1
  3. package/dist/tools/contract/investment_contract.d.ts +8 -0
  4. package/dist/tools/contract/investment_contract.d.ts.map +1 -0
  5. package/dist/tools/contract/investment_contract.js +100 -0
  6. package/dist/tools/contract/investment_contract.js.map +1 -0
  7. package/dist/tools/contract/lease_sale_contract_export.d.ts +30 -0
  8. package/dist/tools/contract/lease_sale_contract_export.d.ts.map +1 -0
  9. package/dist/tools/contract/lease_sale_contract_export.js +171 -0
  10. package/dist/tools/contract/lease_sale_contract_export.js.map +1 -0
  11. package/dist/tools/contract/new_house_contract_export.d.ts +14 -0
  12. package/dist/tools/contract/new_house_contract_export.d.ts.map +1 -0
  13. package/dist/tools/contract/new_house_contract_export.js +205 -0
  14. package/dist/tools/contract/new_house_contract_export.js.map +1 -0
  15. package/dist/tools/data/count_all_statement.d.ts +46 -0
  16. package/dist/tools/data/count_all_statement.d.ts.map +1 -0
  17. package/dist/tools/data/count_all_statement.js +322 -0
  18. package/dist/tools/data/count_all_statement.js.map +1 -0
  19. package/dist/tools/data/overview_by_c.d.ts +26 -0
  20. package/dist/tools/data/overview_by_c.d.ts.map +1 -0
  21. package/dist/tools/data/overview_by_c.js +190 -0
  22. package/dist/tools/data/overview_by_c.js.map +1 -0
  23. package/dist/tools/data/statement_query.d.ts +43 -0
  24. package/dist/tools/data/statement_query.d.ts.map +1 -0
  25. package/dist/tools/data/statement_query.js +430 -0
  26. package/dist/tools/data/statement_query.js.map +1 -0
  27. package/dist/tools/util/branch_select.d.ts +26 -0
  28. package/dist/tools/util/branch_select.d.ts.map +1 -0
  29. package/dist/tools/util/branch_select.js +50 -0
  30. package/dist/tools/util/branch_select.js.map +1 -0
  31. package/dist/tools/util/date_to_timestamp.d.ts +19 -0
  32. package/dist/tools/util/date_to_timestamp.d.ts.map +1 -0
  33. package/dist/tools/util/date_to_timestamp.js +45 -0
  34. package/dist/tools/util/date_to_timestamp.js.map +1 -0
  35. package/dist/tools/util/get_current_time.d.ts +13 -0
  36. package/dist/tools/util/get_current_time.d.ts.map +1 -0
  37. package/dist/tools/util/get_current_time.js +23 -0
  38. package/dist/tools/util/get_current_time.js.map +1 -0
  39. package/dist/tools/util/hello_world.d.ts +20 -0
  40. package/dist/tools/util/hello_world.d.ts.map +1 -0
  41. package/dist/tools/util/hello_world.js +47 -0
  42. package/dist/tools/util/hello_world.js.map +1 -0
  43. package/dist/utils/async-export.d.ts +37 -0
  44. package/dist/utils/async-export.d.ts.map +1 -0
  45. package/dist/utils/async-export.js +73 -0
  46. package/dist/utils/async-export.js.map +1 -0
  47. package/dist/utils/cities.d.ts +11 -0
  48. package/dist/utils/cities.d.ts.map +1 -0
  49. package/dist/utils/cities.js +22 -0
  50. package/dist/utils/cities.js.map +1 -0
  51. package/dist/utils/http.d.ts.map +1 -1
  52. package/dist/utils/http.js +4 -0
  53. package/dist/utils/http.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new_house_contract_export.js","sourceRoot":"","sources":["../../../src/tools/contract/new_house_contract_export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import * as z from "zod/v4";
2
+ export declare const name = "count_all_statement";
3
+ export declare const schema: {
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ statisticsScope: z.ZodOptional<z.ZodNumber>;
7
+ branchIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
+ bizlineIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ storeManagerIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ districtCodes: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ tradingAreaIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
+ subBranchIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
+ agentCodeQueries: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ startTime: z.ZodOptional<z.ZodNumber>;
15
+ endTime: z.ZodOptional<z.ZodNumber>;
16
+ status: z.ZodOptional<z.ZodString>;
17
+ isEnabled: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip>;
19
+ };
20
+ export declare function handler(args: {
21
+ statisticsScope?: number;
22
+ branchIds?: string[];
23
+ bizlineIds?: string[];
24
+ storeManagerIds?: string[];
25
+ districtCodes?: string[];
26
+ tradingAreaIds?: string[];
27
+ subBranchIds?: string[];
28
+ agentCodeQueries?: string[];
29
+ startTime?: number;
30
+ endTime?: number;
31
+ status?: string;
32
+ isEnabled?: string;
33
+ }): Promise<{
34
+ content: {
35
+ type: "text";
36
+ text: string;
37
+ }[];
38
+ isError?: undefined;
39
+ } | {
40
+ content: {
41
+ type: "text";
42
+ text: string;
43
+ }[];
44
+ isError: boolean;
45
+ }>;
46
+ //# sourceMappingURL=count_all_statement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count_all_statement.d.ts","sourceRoot":"","sources":["../../../src/tools/data/count_all_statement.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAiL5B,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CA4ClB,CAAC;AAsEF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;GA8BA"}
@@ -0,0 +1,322 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import * as xlsx from "xlsx";
4
+ import * as z from "zod/v4";
5
+ import { getDataDir, getGatewayBaseUrl, generateDatedFileName } from "../../utils/env.js";
6
+ import { buildGatewayHeaders } from "../../utils/http.js";
7
+ import { debug } from "../../utils/debug.js";
8
+ import { fetchZyCities } from "../../utils/cities.js";
9
+ // Phase 1 原有: 城市公司/营销线层级维度的固定展示列
10
+ const CITY_FIXED_COLUMNS = [
11
+ ["城市公司", "orgLevelSimpleName"],
12
+ ["创建日期", "createTmStr"],
13
+ ["类型", "businessTypeName"],
14
+ ["城市总经理", "managerName"],
15
+ ];
16
+ const MKT_FIXED_COLUMNS = [
17
+ ["姓名", "userName"],
18
+ ["员工id", "employeesId"],
19
+ ["工号", "employeesNo"],
20
+ ["手机号", "phone"],
21
+ ["管理层级名称", "bizlineName"],
22
+ ["城市公司", "branchSimpleName"],
23
+ ];
24
+ // Phase 2: 行政区/商圈/小区维度的固定展示列
25
+ const DISTRICT_FIXED_COLUMNS = [
26
+ ["行政区", "districtName"],
27
+ ["城市公司", "orgLevelSimpleName"],
28
+ ];
29
+ const TRADING_AREA_FIXED_COLUMNS = [
30
+ ["商圈", "tradingAreaName"],
31
+ ["行政区", "districtName"],
32
+ ["城市公司", "orgLevelSimpleName"],
33
+ ];
34
+ const ESTATE_FIXED_COLUMNS = [
35
+ ["小区", "estateName"],
36
+ ["商圈", "tradingAreaName"],
37
+ ["行政区", "districtName"],
38
+ ["城市公司", "orgLevelSimpleName"],
39
+ ];
40
+ // 经纪人维度(scope=1)的固定展示列:经纪人身份信息及归属组织
41
+ const AGENT_FIXED_COLUMNS = [
42
+ ["经纪人姓名", "agentName"],
43
+ ["员工ID", "agentId"],
44
+ ["工号", "employeesNo"],
45
+ ["手机号", "agentPhone"],
46
+ ["支队", "teamName"],
47
+ ["门店", "storeName"],
48
+ ["经纪公司", "franchName"],
49
+ ["城市公司", "branchSimpleName"],
50
+ ];
51
+ // 子公司维度(scope=17)的固定展示列:子公司基础信息及负责人
52
+ const SUB_BRANCH_FIXED_COLUMNS = [
53
+ ["子公司名称", "subBranchName"],
54
+ ["子公司ID", "subBranchId"],
55
+ ["负责人姓名", "managerName"],
56
+ ["负责人账号", "managerPhone"],
57
+ ["城市公司", "branchSimpleName"],
58
+ ];
59
+ function buildStatsHeaders(statisticsItems) {
60
+ const headers = [];
61
+ for (const item of statisticsItems) {
62
+ if (item.hasChild === 1 && item.childNode) {
63
+ for (const child of item.childNode) {
64
+ headers.push(`${item.topCodeName}_${item.codeName}_${child.name}`);
65
+ }
66
+ }
67
+ else {
68
+ headers.push(`${item.topCodeName}_${item.codeName}`);
69
+ }
70
+ }
71
+ return headers;
72
+ }
73
+ function buildStatsValues(statisticsItems) {
74
+ const values = [];
75
+ for (const item of statisticsItems) {
76
+ if (item.hasChild === 1 && item.childNode) {
77
+ for (const child of item.childNode) {
78
+ values.push(child.count);
79
+ }
80
+ }
81
+ else {
82
+ values.push(item.count ?? "");
83
+ }
84
+ }
85
+ return values;
86
+ }
87
+ function buildSheetData(list, fixedColumns) {
88
+ if (list.length === 0)
89
+ return [];
90
+ const fixedHeaders = fixedColumns.map(([label]) => label);
91
+ const statsHeaders = buildStatsHeaders(list[0].statisticsItems);
92
+ const headers = [...fixedHeaders, ...statsHeaders];
93
+ const rows = list.map((item) => {
94
+ const fixedValues = fixedColumns.map(([, field]) => String(item[field] ?? ""));
95
+ const statsValues = buildStatsValues(item.statisticsItems);
96
+ return [...fixedValues, ...statsValues];
97
+ });
98
+ return [headers, ...rows];
99
+ }
100
+ export const name = "count_all_statement";
101
+ export const schema = {
102
+ description: `获取总部数据指标报表,生成 Excel 文件。支持两种模式:
103
+ 1. 旧模式(不传 statisticsScope):固定查询城市公司+营销线层级两个维度,使用默认20项指标
104
+ 2. 动态模式(传入 statisticsScope):按指定维度和条件进行单轮查询,支持自定义指标
105
+
106
+ ⚠️ 动态模式的所有参数值(branchIds、bizlineIds、storeManagerIds、agentCodeQueries 等)必须先通过 statement_query 工具查询获取真实值,严禁自行编造或猜测 ID/code。
107
+ 调用顺序:statement_query(get_query_guide) → statement_query(get_branches) → [维度专属查询] → statement_query(get_statistics_targets) → 本工具。
108
+ 用户说某个指标大类名称(如"房源库存指标")时,必须传入该大类下返回的所有父级 code,不可只传一个。
109
+ 不传时间参数时默认查询当月第一天到昨天,最大时间间隔 12 个月。不需要自行计算时间戳,不传即可使用默认值。
110
+
111
+ 🔁 后续/重复导出规则:当用户要求"把其他城市也导一份"或"换个城市再导一次"时:
112
+ - agentCodeQueries 必须与上一次成功导出使用的完全相同(同样的 code 列表、同样的数量)
113
+ - statisticsScope 必须与上一次相同
114
+ - 仅 branchIds、bizlineIds、storeManagerIds 需要根据新城市重新通过 statement_query 查询
115
+ - 禁止从上下文中随意挑选 code,必须原样复用上次的完整 agentCodeQueries 数组`,
116
+ inputSchema: z.object({
117
+ // 动态模式参数
118
+ statisticsScope: z.number().optional()
119
+ .describe("统计维度: 5=城市公司, 7=营销线层级, 51=行政区, 52=商圈, 53=小区, 1=经纪人, 17=子公司。不传则走旧的固定查询逻辑"),
120
+ branchIds: z.array(z.string()).optional()
121
+ .describe("城市公司 ID 列表。必须通过 statement_query({ action: 'get_branches', preset: '直营' }) 获取,从结果中匹配目标城市的 branchId。禁止用 keyword 搜索直营城市,禁止编造"),
122
+ bizlineIds: z.array(z.string()).optional()
123
+ .describe("营销线层级 ID 列表,仅维度=7 时必传。必须通过 statement_query({ action: 'get_hierarchies' }) 获取真实 key 值,禁止编造"),
124
+ storeManagerIds: z.array(z.string()).optional()
125
+ .describe("管理人员 ID 列表,仅维度=7 时使用。必须通过 statement_query({ action: 'get_store_managers' }) 获取。不传或空数组=全选"),
126
+ districtCodes: z.array(z.string()).optional()
127
+ .describe("行政区编码列表,仅维度 51/52/53 时使用。必须通过 statement_query({ action: 'get_districts', branchIds }) 获取真实 districtCode,禁止编造"),
128
+ tradingAreaIds: z.array(z.string()).optional()
129
+ .describe("商圈 ID 列表,仅维度 52/53 时使用。必须通过 statement_query({ action: 'get_trading_areas', branchIds, districtCodes }) 获取真实 tradingAreaId,禁止编造"),
130
+ subBranchIds: z.array(z.string()).optional()
131
+ .describe("子公司 ID 列表,仅维度 17 时使用。必须通过 statement_query({ action: 'get_sub_branches', branchIds }) 获取真实 subBranchId,禁止编造"),
132
+ agentCodeQueries: z.array(z.string()).optional()
133
+ .describe(`统计指标 code 列表。必须通过 statement_query({ action: 'get_statistics_targets', statisticsScope, topName }) 获取真实 code,禁止编造。
134
+ - 用户说某个指标大类名称(如"房源库存指标")时,传入该大类下所有父级 code。
135
+ - 用户说某个父级指标(如"上架房源数")且未指定子项时,传父级 code(如 "55"),会导出该父级下所有子项。
136
+ - 用户明确指定子项/口径(如"上架房源数-二手房"、"签单量-买卖")时,必须传对应 childNodes 里的子项 code(如 "301"),不要传父级 code。`),
137
+ // 时间参数
138
+ startTime: z.number().optional().describe("开始时间(毫秒时间戳)。不传则默认当月第一天,无需自行计算"),
139
+ endTime: z.number().optional().describe("结束时间(毫秒时间戳)。不传则默认昨天23:59:59,无需自行计算"),
140
+ // 其他
141
+ status: z.string().optional().describe("状态筛选,仅经纪人维度(1)使用。1=在职,2=离职"),
142
+ isEnabled: z.string().optional().describe("启用状态筛选,仅经纪人维度(1)使用。1=启用,0=禁用"),
143
+ }),
144
+ };
145
+ const MAX_INTERVAL_MS = 366 * 24 * 3600 * 1000; // 12 个月(约 366 天)
146
+ function getDefaultTimeRange() {
147
+ const now = new Date();
148
+ const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
149
+ const yesterday = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1, 23, 59, 59, 999);
150
+ return {
151
+ startTime: monthStart.getTime(),
152
+ endTime: yesterday.getTime(),
153
+ };
154
+ }
155
+ const SCOPE_FIXED_COLUMNS = {
156
+ // Phase 1 原有
157
+ 5: CITY_FIXED_COLUMNS,
158
+ 7: MKT_FIXED_COLUMNS,
159
+ // Phase 2 新增: 行政区/商圈/小区维度
160
+ 51: DISTRICT_FIXED_COLUMNS,
161
+ 52: TRADING_AREA_FIXED_COLUMNS,
162
+ 53: ESTATE_FIXED_COLUMNS,
163
+ // Phase 3 新增: 经纪人/子公司维度
164
+ 1: AGENT_FIXED_COLUMNS,
165
+ 17: SUB_BRANCH_FIXED_COLUMNS,
166
+ };
167
+ const DEFAULT_FIXED_COLUMNS = [
168
+ ["名称", "orgLevelSimpleName"],
169
+ ];
170
+ function getDimensionLabel(scope) {
171
+ const labels = {
172
+ 5: "城市公司", 7: "营销线层级", 51: "行政区",
173
+ 52: "商圈", 53: "小区", 1: "经纪人", 17: "子公司",
174
+ };
175
+ return labels[scope] ?? `维度${scope}`;
176
+ }
177
+ // ---------------------------------------------------------------------------
178
+ // Handler
179
+ // ---------------------------------------------------------------------------
180
+ export async function handler(args) {
181
+ const defaults = getDefaultTimeRange();
182
+ const startTime = args.startTime ?? defaults.startTime;
183
+ const endTime = args.endTime ?? defaults.endTime;
184
+ // Phase 2: 小区(53)维度不使用时间参数,跳过时间间隔校验
185
+ if (args.statisticsScope !== 53 && endTime - startTime > MAX_INTERVAL_MS) {
186
+ return {
187
+ content: [{ type: "text", text: `时间间隔超过 12 个月限制,请缩小查询范围` }],
188
+ isError: true,
189
+ };
190
+ }
191
+ debug("date range", { startTime, endTime });
192
+ const headers = buildGatewayHeaders();
193
+ try {
194
+ if (args.statisticsScope != null) {
195
+ return await handleDynamicQuery(args, startTime, endTime, headers);
196
+ }
197
+ else {
198
+ return await handleLegacyQuery(startTime, endTime, headers);
199
+ }
200
+ }
201
+ catch (error) {
202
+ const errorMessage = error instanceof Error ? error.message : String(error);
203
+ return {
204
+ content: [{ type: "text", text: `执行过程中发生错误: ${errorMessage}` }],
205
+ isError: true,
206
+ };
207
+ }
208
+ }
209
+ // ---------------------------------------------------------------------------
210
+ // 动态模式
211
+ // ---------------------------------------------------------------------------
212
+ async function handleDynamicQuery(args, startTime, endTime, headers) {
213
+ const payload = {
214
+ statisticsScope: args.statisticsScope,
215
+ branchIds: args.branchIds,
216
+ bizlineIds: args.bizlineIds,
217
+ storeManagerIds: args.storeManagerIds,
218
+ districtCodes: args.districtCodes,
219
+ tradingAreaIds: args.tradingAreaIds,
220
+ subBranchIds: args.subBranchIds,
221
+ agentCodeQueries: args.agentCodeQueries,
222
+ status: args.status,
223
+ isEnabled: args.isEnabled,
224
+ };
225
+ // Phase 2: 小区(53)维度不传时间参数(ERP 只查截止当前的存量数据)
226
+ if (args.statisticsScope !== 53) {
227
+ payload.startTime = startTime;
228
+ payload.endTime = endTime;
229
+ }
230
+ debug("dynamic query payload", payload);
231
+ const resp = await fetch(`${getGatewayBaseUrl()}/count_all_statement`, {
232
+ method: "POST",
233
+ headers,
234
+ body: JSON.stringify(payload),
235
+ });
236
+ if (!resp.ok) {
237
+ return {
238
+ content: [{ type: "text", text: `请求 count_all_statement 失败: ${resp.status} ${resp.statusText}` }],
239
+ isError: true,
240
+ };
241
+ }
242
+ const apiResponse = await resp.json();
243
+ debug("dynamic query response", { succeed: apiResponse.succeed, msg: apiResponse.msg });
244
+ if (!apiResponse.succeed) {
245
+ return {
246
+ content: [{ type: "text", text: `网关返回错误: ${apiResponse.msg}` }],
247
+ isError: true,
248
+ };
249
+ }
250
+ // 生成 Excel
251
+ const workbook = xlsx.utils.book_new();
252
+ const fixedColumns = SCOPE_FIXED_COLUMNS[args.statisticsScope] ?? DEFAULT_FIXED_COLUMNS;
253
+ const sheetData = buildSheetData(apiResponse.data.queryData.data.list, fixedColumns);
254
+ const sheet = xlsx.utils.aoa_to_sheet(sheetData);
255
+ const dimensionLabel = getDimensionLabel(args.statisticsScope);
256
+ xlsx.utils.book_append_sheet(workbook, sheet, dimensionLabel);
257
+ const fileName = generateDatedFileName(`数据指标报表_${dimensionLabel}`, "xlsx");
258
+ const dataDir = getDataDir();
259
+ fs.mkdirSync(dataDir, { recursive: true });
260
+ const filePath = path.join(dataDir, fileName);
261
+ xlsx.writeFile(workbook, filePath);
262
+ const listCount = apiResponse.data.queryData.data.list.length;
263
+ return {
264
+ content: [{
265
+ type: "text",
266
+ text: `成功生成${dimensionLabel}维度指标报表!共 ${listCount} 条数据。\n文件路径: ${filePath}`,
267
+ }],
268
+ };
269
+ }
270
+ // ---------------------------------------------------------------------------
271
+ // 旧模式
272
+ // ---------------------------------------------------------------------------
273
+ async function handleLegacyQuery(startTime, endTime, headers) {
274
+ // Step 1: 获取直营城市列表
275
+ const cities1 = await fetchZyCities();
276
+ debug("zy_cities (cities1)", cities1);
277
+ // 市场拓展城市(固定数据)
278
+ const cities2 = [
279
+ { branchId: "608133917234483328", cityCode: "500100", branchName: "优居重庆" },
280
+ { branchId: "593372592860440704", cityCode: "440100", branchName: "优居广州" },
281
+ ];
282
+ // Step 2: POST to count_all_statement
283
+ const payload = { cities1, cities2, startTime, endTime };
284
+ const statementResponse = await fetch(`${getGatewayBaseUrl()}/count_all_statement`, {
285
+ method: "POST",
286
+ headers,
287
+ body: JSON.stringify(payload),
288
+ });
289
+ if (!statementResponse.ok) {
290
+ return {
291
+ content: [{ type: "text", text: `请求 count_all_statement 失败: ${statementResponse.status} ${statementResponse.statusText}` }],
292
+ isError: true,
293
+ };
294
+ }
295
+ // Step 3: Parse JSON response and generate Excel
296
+ const apiResponse = await statementResponse.json();
297
+ debug("count_all_statement response", apiResponse);
298
+ if (!apiResponse.succeed) {
299
+ return {
300
+ content: [{ type: "text", text: `网关返回错误: ${apiResponse.msg}` }],
301
+ isError: true,
302
+ };
303
+ }
304
+ // Step 4: Build Excel workbook with two sheets
305
+ const workbook = xlsx.utils.book_new();
306
+ const citySheetData = buildSheetData(apiResponse.data.cityData.data.list, CITY_FIXED_COLUMNS);
307
+ const citySheet = xlsx.utils.aoa_to_sheet(citySheetData);
308
+ xlsx.utils.book_append_sheet(workbook, citySheet, "城市公司维度");
309
+ const mktSheetData = buildSheetData(apiResponse.data.marketingData.data.list, MKT_FIXED_COLUMNS);
310
+ const mktSheet = xlsx.utils.aoa_to_sheet(mktSheetData);
311
+ xlsx.utils.book_append_sheet(workbook, mktSheet, "营销线层级维度");
312
+ // Step 5: Save xlsx file
313
+ const fileName = generateDatedFileName("城市指标统计", "xlsx");
314
+ const dataDir = getDataDir();
315
+ fs.mkdirSync(dataDir, { recursive: true });
316
+ const filePath = path.join(dataDir, fileName);
317
+ xlsx.writeFile(workbook, filePath);
318
+ return {
319
+ content: [{ type: "text", text: `成功生成城市指标统计报表!\n文件路径: ${filePath}` }],
320
+ };
321
+ }
322
+ //# sourceMappingURL=count_all_statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count_all_statement.js","sourceRoot":"","sources":["../../../src/tools/data/count_all_statement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as z from "zod/v4";
2
+ export declare const name = "overview_by_c";
3
+ export declare const schema: {
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ startInclusive: z.ZodOptional<z.ZodNumber>;
7
+ endExclusive: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
9
+ };
10
+ export declare function handler(args: {
11
+ startInclusive?: number;
12
+ endExclusive?: number;
13
+ }): Promise<{
14
+ content: {
15
+ type: "text";
16
+ text: string;
17
+ }[];
18
+ isError: boolean;
19
+ } | {
20
+ content: {
21
+ type: "text";
22
+ text: string;
23
+ }[];
24
+ isError?: undefined;
25
+ }>;
26
+ //# sourceMappingURL=overview_by_c.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview_by_c.d.ts","sourceRoot":"","sources":["../../../src/tools/data/overview_by_c.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA8C5B,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GAqKrF"}
@@ -0,0 +1,190 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import * as xlsx from "xlsx";
4
+ import * as z from "zod/v4";
5
+ import { getDataDir, getGatewayBaseUrl } from "../../utils/env.js";
6
+ import { buildGatewayHeaders } from "../../utils/http.js";
7
+ import { fetchZyCities } from "../../utils/cities.js";
8
+ /**
9
+ * 获取当月第一天 00:00:00 的时间戳和当天 00:00:00 的时间戳
10
+ * @returns {{ startInclusive: number; endExclusive: number }}
11
+ */
12
+ function getStartAndEnd() {
13
+ const now = new Date();
14
+ // 当天 00:00:00 (本地时间)
15
+ const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate());
16
+ // 当月第一天 00:00:00
17
+ const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
18
+ return {
19
+ startInclusive: monthStart.getTime(),
20
+ endExclusive: todayStart.getTime(),
21
+ };
22
+ }
23
+ /**
24
+ * 将时间戳格式化为 yyyymmdd 字符串
25
+ * @param timestamp 毫秒时间戳
26
+ * @returns 格式化后的日期字符串
27
+ */
28
+ function formatDateToYyyymmdd(timestamp) {
29
+ const date = new Date(timestamp);
30
+ const year = date.getFullYear();
31
+ const month = String(date.getMonth() + 1).padStart(2, "0");
32
+ const day = String(date.getDate()).padStart(2, "0");
33
+ return `${year}${month}${day}`;
34
+ }
35
+ export const name = "overview_by_c";
36
+ export const schema = {
37
+ description: "获取直营城市C端行为数据数据指标报表 生成Excel文件",
38
+ inputSchema: z.object({
39
+ startInclusive: z.number().optional().describe("数据开始时间,毫秒时间戳,可选"),
40
+ endExclusive: z.number().optional().describe("数据结束时间,毫秒时间戳,可选"),
41
+ }),
42
+ };
43
+ export async function handler(args) {
44
+ // 根据参数规则计算时间范围
45
+ let startInclusive;
46
+ let endExclusive;
47
+ const defaults = getStartAndEnd();
48
+ if (args.startInclusive === undefined && args.endExclusive === undefined) {
49
+ // 都不出现,使用默认值
50
+ startInclusive = defaults.startInclusive;
51
+ endExclusive = defaults.endExclusive;
52
+ }
53
+ else if (args.startInclusive !== undefined && args.endExclusive === undefined) {
54
+ // 只出现 startInclusive,使用当天00:00作为 endExclusive
55
+ startInclusive = args.startInclusive;
56
+ endExclusive = defaults.endExclusive;
57
+ }
58
+ else if (args.startInclusive === undefined && args.endExclusive !== undefined) {
59
+ // 只出现 endExclusive,使用当月第一天00:00作为 startInclusive
60
+ startInclusive = defaults.startInclusive;
61
+ endExclusive = args.endExclusive;
62
+ }
63
+ else {
64
+ // 都出现,使用传入的值
65
+ startInclusive = args.startInclusive;
66
+ endExclusive = args.endExclusive;
67
+ }
68
+ // 检查时间跨度是否超过 370 天
69
+ const oneDayMs = 24 * 60 * 60 * 1000;
70
+ const maxDays = 370;
71
+ const timeSpanDays = (endExclusive - startInclusive) / oneDayMs;
72
+ if (timeSpanDays > maxDays) {
73
+ const startStr = formatDateToYyyymmdd(startInclusive);
74
+ const endStr = formatDateToYyyymmdd(endExclusive);
75
+ return {
76
+ content: [
77
+ {
78
+ type: "text",
79
+ text: `${startStr}~${endStr} 之间的时间跨度过大,请缩小查询范围后重试。`,
80
+ },
81
+ ],
82
+ isError: true,
83
+ };
84
+ }
85
+ // Build request headers
86
+ const headers = buildGatewayHeaders();
87
+ try {
88
+ // Step 1: Fetch cities data
89
+ const citiesData = await fetchZyCities();
90
+ // Step 2: Fetch overview data for each city
91
+ const overviewResults = [];
92
+ for (const city of citiesData) {
93
+ const overviewResponse = await fetch(`${getGatewayBaseUrl()}/overview_by_c`, {
94
+ method: "POST",
95
+ headers,
96
+ body: JSON.stringify({
97
+ branchId: city.branchId,
98
+ branchName: city.branchName,
99
+ cityCode: city.cityCode,
100
+ start_inclusive: startInclusive,
101
+ end_exclusive: endExclusive,
102
+ }),
103
+ });
104
+ if (!overviewResponse.ok) {
105
+ console.error(`获取 ${city.branchName} 数据失败: ${overviewResponse.status}`);
106
+ continue;
107
+ }
108
+ const apiResponse = await overviewResponse.json();
109
+ if (!apiResponse.succeed) {
110
+ console.error(`获取 ${city.branchName} 数据失败: ${apiResponse.msg}`);
111
+ continue;
112
+ }
113
+ overviewResults.push(apiResponse.data);
114
+ }
115
+ if (overviewResults.length === 0) {
116
+ return {
117
+ content: [
118
+ {
119
+ type: "text",
120
+ text: "没有获取到任何城市数据",
121
+ },
122
+ ],
123
+ isError: true,
124
+ };
125
+ }
126
+ // Step 3: Prepare Excel data
127
+ const excelHeaders = [
128
+ "城市",
129
+ "二手房_活跃用户数",
130
+ "二手房_新增平台商机数",
131
+ "二手房_新增经纪人客户数",
132
+ "二手房_新增带看客户数",
133
+ "二手房_新增成交数",
134
+ "租房_活跃用户数",
135
+ "租房_新增平台商机数",
136
+ "租房_新增经纪人客户数",
137
+ "租房_新增带看客户数",
138
+ "租房_新增成交数",
139
+ "新房_活跃用户数",
140
+ "新房_新增平台商机数",
141
+ "新房_新增经纪人客户数",
142
+ "新房_新增带看客户数",
143
+ "新房_新增成交数",
144
+ ];
145
+ const excelData = [excelHeaders];
146
+ for (const result of overviewResults) {
147
+ const row = [result.branchName];
148
+ // values 数组应该有15个元素,依次填入B-P列
149
+ for (const value of result.values) {
150
+ row.push(value);
151
+ }
152
+ excelData.push(row);
153
+ }
154
+ // Step 4: Create Excel workbook
155
+ const worksheet = xlsx.utils.aoa_to_sheet(excelData);
156
+ const workbook = xlsx.utils.book_new();
157
+ xlsx.utils.book_append_sheet(workbook, worksheet, "城市流量数据");
158
+ // Step 5: Generate filename with date range
159
+ const startStr = formatDateToYyyymmdd(startInclusive);
160
+ const endStr = formatDateToYyyymmdd(endExclusive);
161
+ const fileName = `${startStr}-${endStr}_城市流量数据报告.xlsx`;
162
+ // Ensure data directory exists
163
+ const dataDir = getDataDir();
164
+ fs.mkdirSync(dataDir, { recursive: true });
165
+ const filePath = path.join(dataDir, fileName);
166
+ // Write Excel file
167
+ xlsx.writeFile(workbook, filePath);
168
+ return {
169
+ content: [
170
+ {
171
+ type: "text",
172
+ text: `成功生成Excel报告!\n文件路径: ${filePath}\n共处理 ${overviewResults.length} 个城市数据`,
173
+ },
174
+ ],
175
+ };
176
+ }
177
+ catch (error) {
178
+ const errorMessage = error instanceof Error ? error.message : String(error);
179
+ return {
180
+ content: [
181
+ {
182
+ type: "text",
183
+ text: `执行过程中发生错误: ${errorMessage}`,
184
+ },
185
+ ],
186
+ isError: true,
187
+ };
188
+ }
189
+ }
190
+ //# sourceMappingURL=overview_by_c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview_by_c.js","sourceRoot":"","sources":["../../../src/tools/data/overview_by_c.ts"],"names":[],"mappings":"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"}