@yjzf/mcp-server-yjzf 0.3.0 → 0.4.0

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 (62) hide show
  1. package/dist/index.js +14 -2
  2. package/dist/index.js.map +1 -1
  3. package/dist/tools/contract/investment_contract.d.ts +10 -2
  4. package/dist/tools/contract/investment_contract.d.ts.map +1 -1
  5. package/dist/tools/contract/investment_contract.js +32 -86
  6. package/dist/tools/contract/investment_contract.js.map +1 -1
  7. package/dist/tools/contract/lease_sale_contract_export.js +2 -2
  8. package/dist/tools/contract/lease_sale_contract_export.js.map +1 -1
  9. package/dist/tools/contract/new_house_contract_export.js +2 -2
  10. package/dist/tools/contract/new_house_contract_export.js.map +1 -1
  11. package/dist/tools/data/count_all_statement.d.ts +18 -15
  12. package/dist/tools/data/count_all_statement.d.ts.map +1 -1
  13. package/dist/tools/data/count_all_statement.js +170 -271
  14. package/dist/tools/data/count_all_statement.js.map +1 -1
  15. package/dist/tools/data/investment_follow_up_export.d.ts +30 -0
  16. package/dist/tools/data/investment_follow_up_export.d.ts.map +1 -0
  17. package/dist/tools/data/investment_follow_up_export.js +131 -0
  18. package/dist/tools/data/investment_follow_up_export.js.map +1 -0
  19. package/dist/tools/data/investment_opportunities_export.d.ts +22 -0
  20. package/dist/tools/data/investment_opportunities_export.d.ts.map +1 -0
  21. package/dist/tools/data/investment_opportunities_export.js +105 -0
  22. package/dist/tools/data/investment_opportunities_export.js.map +1 -0
  23. package/dist/tools/data/new_house_competitor_data_export.d.ts +36 -0
  24. package/dist/tools/data/new_house_competitor_data_export.d.ts.map +1 -0
  25. package/dist/tools/data/new_house_competitor_data_export.js +177 -0
  26. package/dist/tools/data/new_house_competitor_data_export.js.map +1 -0
  27. package/dist/tools/data/new_house_project_data_export.d.ts +35 -0
  28. package/dist/tools/data/new_house_project_data_export.d.ts.map +1 -0
  29. package/dist/tools/data/new_house_project_data_export.js +166 -0
  30. package/dist/tools/data/new_house_project_data_export.js.map +1 -0
  31. package/dist/tools/data/platform_prospects_export.d.ts +34 -0
  32. package/dist/tools/data/platform_prospects_export.d.ts.map +1 -0
  33. package/dist/tools/data/platform_prospects_export.js +157 -0
  34. package/dist/tools/data/platform_prospects_export.js.map +1 -0
  35. package/dist/tools/data/public_business_opportunities_export.d.ts +24 -0
  36. package/dist/tools/data/public_business_opportunities_export.d.ts.map +1 -0
  37. package/dist/tools/data/public_business_opportunities_export.js +107 -0
  38. package/dist/tools/data/public_business_opportunities_export.js.map +1 -0
  39. package/dist/tools/data/statement_query.d.ts +5 -1
  40. package/dist/tools/data/statement_query.d.ts.map +1 -1
  41. package/dist/tools/data/statement_query.js +207 -27
  42. package/dist/tools/data/statement_query.js.map +1 -1
  43. package/dist/tools/data/switch_store_management_export.d.ts +24 -0
  44. package/dist/tools/data/switch_store_management_export.d.ts.map +1 -0
  45. package/dist/tools/data/switch_store_management_export.js +102 -0
  46. package/dist/tools/data/switch_store_management_export.js.map +1 -0
  47. package/dist/tools/house/umai_good_house_export.d.ts.map +1 -1
  48. package/dist/tools/house/umai_good_house_export.js +4 -0
  49. package/dist/tools/house/umai_good_house_export.js.map +1 -1
  50. package/dist/tools/util/date_to_timestamp.d.ts.map +1 -1
  51. package/dist/tools/util/date_to_timestamp.js +10 -1
  52. package/dist/tools/util/date_to_timestamp.js.map +1 -1
  53. package/dist/tools/util/get_current_time.d.ts.map +1 -1
  54. package/dist/tools/util/get_current_time.js +8 -2
  55. package/dist/tools/util/get_current_time.js.map +1 -1
  56. package/dist/utils/env.js +1 -1
  57. package/dist/utils/env.js.map +1 -1
  58. package/dist/utils/excel.d.ts +14 -0
  59. package/dist/utils/excel.d.ts.map +1 -1
  60. package/dist/utils/excel.js +35 -0
  61. package/dist/utils/excel.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,122 +1,70 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import * as xlsx from "xlsx";
4
1
  import * as z from "zod/v4";
5
- import { getDataDir, getGatewayBaseUrl, generateDatedFileName } from "../../utils/env.js";
6
- import { buildGatewayHeaders } from "../../utils/http.js";
2
+ import { getGatewayBaseUrl, generateDatedFileName } from "../../utils/env.js";
3
+ import { buildGatewayHeaders, createErrorResult, createSuccessResult } from "../../utils/http.js";
7
4
  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;
5
+ import { pollAsyncExport, downloadToDataDir } from "../../utils/async-export.js";
6
+ // ---------------------------------------------------------------------------
7
+ // 常量
8
+ // ---------------------------------------------------------------------------
9
+ const MAX_INTERVAL_MS = 366 * 24 * 3600 * 1000; // 12 个月(约 366 天)
10
+ // ---------------------------------------------------------------------------
11
+ // 工具函数
12
+ // ---------------------------------------------------------------------------
13
+ function getDefaultTimeRange() {
14
+ const now = new Date();
15
+ const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
16
+ const yesterday = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1, 23, 59, 59, 999);
17
+ return {
18
+ startTime: monthStart.getTime(),
19
+ endTime: yesterday.getTime(),
20
+ };
72
21
  }
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;
22
+ function getDimensionLabel(scope) {
23
+ const labels = {
24
+ 5: "城市公司", 7: "营销线层级", 51: "行政区",
25
+ 52: "商圈", 53: "小区", 1: "经纪人", 17: "子公司",
26
+ };
27
+ return labels[scope] ?? `维度${scope}`;
86
28
  }
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];
29
+ /**
30
+ * 生成唯一 fileName,用于在异步导出列表中精确匹配。
31
+ * 使用纯 ASCII 字符,避免 ERP 编码/截断导致匹配失败。
32
+ */
33
+ function generateUniqueFileName(indicatorType, scope) {
34
+ const ts = Date.now();
35
+ const rand = Math.random().toString(36).slice(2, 8);
36
+ return `MCP_${indicatorType}_scope${scope}_${ts}_${rand}`;
99
37
  }
38
+ // ---------------------------------------------------------------------------
39
+ // 工具导出
40
+ // ---------------------------------------------------------------------------
100
41
  export const name = "count_all_statement";
101
42
  export const schema = {
102
- description: `获取总部数据指标报表,生成 Excel 文件。支持两种模式:
103
- 1. 旧模式(不传 statisticsScope):固定查询城市公司+营销线层级两个维度,使用默认20项指标
104
- 2. 动态模式(传入 statisticsScope):按指定维度和条件进行单轮查询,支持自定义指标
43
+ description: `获取总部数据指标报表,通过 ERP 异步导出生成 Excel 文件。
44
+
45
+ 支持 4 种指标类型(indicatorType):
46
+ - "realtime"(实时指标,默认)→ 支持全部 7 种维度,调用 /export
47
+ - "offline"(离线计算指标)→ 仅支持城市公司(5)和营销线层级(7),调用 /offLineExport
48
+ - "customize"(自定义计算指标)→ 仅支持城市公司(5)和营销线层级(7),调用 /export
49
+ - "usell_offline"(优卖离线计算指标)→ 仅支持城市公司(5)和营销线层级(7),调用 /contractBetterOffLineExport
105
50
 
106
- ⚠️ 动态模式的所有参数值(branchIds、bizlineIds、storeManagerIds、agentCodeQueries 等)必须先通过 statement_query 工具查询获取真实值,严禁自行编造或猜测 ID/code。
107
- 调用顺序:statement_query(get_query_guide) → statement_query(get_branches) → [维度专属查询] → statement_query(get_statistics_targets) → 本工具。
51
+ 所有导出均为异步模式:提交导出任务 轮询查询状态 下载文件。
52
+
53
+ ⚠️ 时间参数规范:需要传 startTime/endTime 时,必须先调用 get_current_time 确认当前时间,再通过 date_to_timestamp 转换日期,严禁自行估算时间戳。不需要传时间时保持不传即可。
54
+ ⚠️ 所有参数值(branchIds、bizlineIds、storeManagerIds、agentCodeQueries、marketerIds 等)必须先通过 statement_query 工具查询获取真实值,严禁自行编造或猜测 ID/code。
55
+ 调用顺序:statement_query(get_query_guide) → statement_query(get_branches) → [维度专属查询] → statement_query(get_*_statistics_targets) → 本工具。
108
56
  用户说某个指标大类名称(如"房源库存指标")时,必须传入该大类下返回的所有父级 code,不可只传一个。
109
57
  不传时间参数时默认查询当月第一天到昨天,最大时间间隔 12 个月。不需要自行计算时间戳,不传即可使用默认值。
110
58
 
111
59
  🔁 后续/重复导出规则:当用户要求"把其他城市也导一份"或"换个城市再导一次"时:
112
60
  - agentCodeQueries 必须与上一次成功导出使用的完全相同(同样的 code 列表、同样的数量)
113
- - statisticsScope 必须与上一次相同
114
- - 仅 branchIds、bizlineIds、storeManagerIds 需要根据新城市重新通过 statement_query 查询
61
+ - statisticsScope、indicatorType 必须与上一次相同
62
+ - 仅 branchIds、bizlineIds、storeManagerIds、marketerIds 需要根据新城市重新通过 statement_query 查询
115
63
  - 禁止从上下文中随意挑选 code,必须原样复用上次的完整 agentCodeQueries 数组`,
116
64
  inputSchema: z.object({
117
- // 动态模式参数
118
- statisticsScope: z.number().optional()
119
- .describe("统计维度: 5=城市公司, 7=营销线层级, 51=行政区, 52=商圈, 53=小区, 1=经纪人, 17=子公司。不传则走旧的固定查询逻辑"),
65
+ statisticsScope: z.number().describe("统计维度: 5=城市公司, 7=营销线层级, 51=行政区, 52=商圈, 53=小区, 1=经纪人, 17=子公司"),
66
+ indicatorType: z.enum(["realtime", "offline", "customize", "usell_offline"]).optional()
67
+ .describe("指标类型。realtime=实时指标(默认,全部维度);offline=离线计算指标(仅scope=5/7);customize=自定义计算指标(仅scope=5/7);usell_offline=优卖离线计算指标(仅scope=5/7)。不传默认为realtime"),
120
68
  branchIds: z.array(z.string()).optional()
121
69
  .describe("城市公司 ID 列表。必须通过 statement_query({ action: 'get_branches', preset: '直营' }) 获取,从结果中匹配目标城市的 branchId。禁止用 keyword 搜索直营城市,禁止编造"),
122
70
  bizlineIds: z.array(z.string()).optional()
@@ -130,193 +78,144 @@ export const schema = {
130
78
  subBranchIds: z.array(z.string()).optional()
131
79
  .describe("子公司 ID 列表,仅维度 17 时使用。必须通过 statement_query({ action: 'get_sub_branches', branchIds }) 获取真实 subBranchId,禁止编造"),
132
80
  agentCodeQueries: z.array(z.string()).optional()
133
- .describe(`统计指标 code 列表。必须通过 statement_query({ action: 'get_statistics_targets', statisticsScope, topName }) 获取真实 code,禁止编造。
81
+ .describe(`统计指标 code 列表。必须通过 statement_query 对应指标类型的 get_*_statistics_targets 获取真实 code,禁止编造。
134
82
  - 用户说某个指标大类名称(如"房源库存指标")时,传入该大类下所有父级 code。
135
83
  - 用户说某个父级指标(如"上架房源数")且未指定子项时,传父级 code(如 "55"),会导出该父级下所有子项。
136
84
  - 用户明确指定子项/口径(如"上架房源数-二手房"、"签单量-买卖")时,必须传对应 childNodes 里的子项 code(如 "301"),不要传父级 code。`),
137
- // 时间参数
138
- startTime: z.number().optional().describe("开始时间(毫秒时间戳)。不传则默认当月第一天,无需自行计算"),
139
- endTime: z.number().optional().describe("结束时间(毫秒时间戳)。不传则默认昨天23:59:59,无需自行计算"),
140
- // 其他
85
+ startTime: z.number().optional().describe("开始时间(毫秒时间戳)。用户有指定日期时,必须先调用 get_current_time 获取当前时间作为参考,再用 date_to_timestamp 转换,严禁自行估算。不传则服务端自动默认当月第一天"),
86
+ endTime: z.number().optional().describe("结束时间(毫秒时间戳)。用户有指定日期时,必须先调用 get_current_time 获取当前时间作为参考,再用 date_to_timestamp(endOfDay=true) 转换,严禁自行估算。不传则服务端自动默认昨天23:59:59"),
141
87
  status: z.string().optional().describe("状态筛选,仅经纪人维度(1)使用。1=在职,2=离职"),
142
88
  isEnabled: z.string().optional().describe("启用状态筛选,仅经纪人维度(1)使用。1=启用,0=禁用"),
89
+ operatingStatuses: z.array(z.string()).optional().default(['1'])
90
+ .describe("门店营业状态筛选,仅经纪人维度(1)使用。值为 val 字符串(如 '1'、'2'),必须通过 statement_query({ action: 'get_operating_statuses' }) 获取,禁止编造。默认为 ['1']"),
91
+ entryStartTime: z.number().optional()
92
+ .describe("入职开始时间(毫秒时间戳),仅经纪人维度(1)使用。用户有指定日期时,必须先调用 get_current_time 获取当前时间作为参考,再用 date_to_timestamp 转换,严禁自行估算"),
93
+ entryEndTime: z.number().optional()
94
+ .describe("入职结束时间(毫秒时间戳),仅经纪人维度(1)使用。用户有指定日期时,必须先调用 get_current_time 获取当前时间作为参考,再用 date_to_timestamp(endOfDay=true) 转换,严禁自行估算"),
95
+ marketerIds: z.array(z.string()).optional()
96
+ .describe("营销人员 ID 列表,仅 offline/usell_offline 指标类型且维度=7 时必填。必须传 statement_query({ action: 'get_store_managers' }) 返回的 bizlineId 字段值。不传时 Gateway 会尝试自动获取"),
143
97
  }),
144
98
  };
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
99
  export async function handler(args) {
181
100
  const defaults = getDefaultTimeRange();
182
101
  const startTime = args.startTime ?? defaults.startTime;
183
102
  const endTime = args.endTime ?? defaults.endTime;
184
- // Phase 2: 小区(53)维度不使用时间参数,跳过时间间隔校验
185
103
  if (args.statisticsScope !== 53 && endTime - startTime > MAX_INTERVAL_MS) {
186
- return {
187
- content: [{ type: "text", text: `时间间隔超过 12 个月限制,请缩小查询范围` }],
188
- isError: true,
189
- };
104
+ return createErrorResult("时间间隔超过 12 个月限制,请缩小查询范围");
190
105
  }
191
- debug("date range", { startTime, endTime });
106
+ const indicatorType = args.indicatorType ?? "realtime";
107
+ debug("date range", { startTime, endTime, indicatorType });
192
108
  const headers = buildGatewayHeaders();
109
+ const dimensionLabel = getDimensionLabel(args.statisticsScope);
110
+ // 指标类型 → Gateway 路由
111
+ const exportUrlMap = {
112
+ realtime: `${getGatewayBaseUrl()}/count_all_export`,
113
+ offline: `${getGatewayBaseUrl()}/count_all_offline_export`,
114
+ customize: `${getGatewayBaseUrl()}/count_all_customize_export`,
115
+ usell_offline: `${getGatewayBaseUrl()}/count_all_usell_offline_export`,
116
+ };
117
+ const exportUrl = exportUrlMap[indicatorType];
118
+ // 指标类型 → 文件名标签
119
+ const typeLabelMap = {
120
+ realtime: "数据指标",
121
+ offline: "离线计算指标",
122
+ customize: "自定义计算指标",
123
+ usell_offline: "优卖离线指标",
124
+ };
125
+ const typeLabel = typeLabelMap[indicatorType] ?? "数据指标";
193
126
  try {
194
- if (args.statisticsScope != null) {
195
- return await handleDynamicQuery(args, startTime, endTime, headers);
127
+ // 1. 生成唯一 fileName
128
+ const uniqueFileName = generateUniqueFileName(indicatorType, args.statisticsScope);
129
+ console.error(`[count_all_statement] 提交异步导出任务: indicatorType=${indicatorType}, scope=${args.statisticsScope}, fileName=${uniqueFileName}`);
130
+ // 2. 构建提交体
131
+ const submitBody = {
132
+ statisticsScope: args.statisticsScope,
133
+ indicatorType,
134
+ branchIds: args.branchIds,
135
+ bizlineIds: args.bizlineIds,
136
+ storeManagerIds: args.storeManagerIds,
137
+ districtCodes: args.districtCodes,
138
+ tradingAreaIds: args.tradingAreaIds,
139
+ subBranchIds: args.subBranchIds,
140
+ agentCodeQueries: args.agentCodeQueries,
141
+ status: args.status,
142
+ isEnabled: args.isEnabled,
143
+ fileName: uniqueFileName,
144
+ ...(args.statisticsScope !== 53 && {
145
+ startTime,
146
+ endTime,
147
+ }),
148
+ };
149
+ // offline/usell_offline + scope=7 需要 marketerIds
150
+ if ((indicatorType === "offline" || indicatorType === "usell_offline") && args.marketerIds) {
151
+ submitBody.marketerIds = args.marketerIds;
152
+ }
153
+ // 经纪人维度(scope=1)专属字段
154
+ if (args.statisticsScope === 1) {
155
+ if (args.operatingStatuses && args.operatingStatuses.length > 0) {
156
+ submitBody.operatingStatuses = args.operatingStatuses;
157
+ }
158
+ if (args.entryStartTime != null) {
159
+ submitBody.entryStartTime = args.entryStartTime;
160
+ }
161
+ if (args.entryEndTime != null) {
162
+ submitBody.entryEndTime = args.entryEndTime;
163
+ }
164
+ }
165
+ // 3. 提交导出任务
166
+ const submitResp = await fetch(exportUrl, {
167
+ method: "POST",
168
+ headers,
169
+ body: JSON.stringify(submitBody),
170
+ });
171
+ if (!submitResp.ok) {
172
+ return createErrorResult(`提交导出任务失败: ${submitResp.status} ${submitResp.statusText}`);
196
173
  }
197
- else {
198
- return await handleLegacyQuery(startTime, endTime, headers);
174
+ const submitResult = await submitResp.json();
175
+ if (!submitResult.succeed) {
176
+ return createErrorResult(`提交导出任务失败: ${submitResult.msg}`);
199
177
  }
178
+ console.error(`[count_all_statement] 任务已提交,开始轮询状态...`);
179
+ // 4. 轮询状态
180
+ const submittedAt = Date.now();
181
+ const downloadUrl = await pollAsyncExport({
182
+ logTag: "count_all_statement",
183
+ checkStatus: async () => {
184
+ const statusResp = await fetch(`${getGatewayBaseUrl()}/count_all_export_status`, {
185
+ method: "POST",
186
+ headers,
187
+ body: JSON.stringify({
188
+ startInc: submittedAt - 10 * 60 * 1000,
189
+ endExc: Date.now(),
190
+ }),
191
+ });
192
+ if (!statusResp.ok) {
193
+ throw new Error(`查询导出状态失败: ${statusResp.status} ${statusResp.statusText}`);
194
+ }
195
+ const json = await statusResp.json();
196
+ if (!json.succeed) {
197
+ throw new Error(`查询导出状态接口返回失败: ${json.msg}`);
198
+ }
199
+ const match = json.data?.find((item) => item.fileName === uniqueFileName);
200
+ if (!match || !match.finishTm) {
201
+ const allNames = json.data?.map((item) => item.fileName).join(", ") ?? "empty";
202
+ console.error(`[count_all_statement] 尚未完成,已查到 fileNames: [${allNames}],等待匹配: ${uniqueFileName}`);
203
+ return { state: "pending" };
204
+ }
205
+ if (match.source) {
206
+ return { state: "success", downloadUrl: match.source };
207
+ }
208
+ return { state: "failed", reason: "ERP导出任务执行失败" };
209
+ },
210
+ });
211
+ // 5. 下载文件
212
+ const localFileName = generateDatedFileName(`${typeLabel}_${dimensionLabel}`, "xlsx", false);
213
+ const filePath = await downloadToDataDir(downloadUrl, localFileName);
214
+ return createSuccessResult(`成功生成${typeLabel}(${dimensionLabel}维度)报表!\n文件路径: ${filePath}`);
200
215
  }
201
216
  catch (error) {
202
217
  const errorMessage = error instanceof Error ? error.message : String(error);
203
- return {
204
- content: [{ type: "text", text: `执行过程中发生错误: ${errorMessage}` }],
205
- isError: true,
206
- };
218
+ return createErrorResult(`执行过程中发生错误: ${errorMessage}`);
207
219
  }
208
220
  }
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
221
  //# sourceMappingURL=count_all_statement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"count_all_statement.js","sourceRoot":"","sources":["../../../src/tools/data/count_all_statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"count_all_statement.js","sourceRoot":"","sources":["../../../src/tools/data/count_all_statement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAkBjF,8EAA8E;AAC9E,KAAK;AACL,8EAA8E;AAE9E,MAAM,eAAe,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,iBAAiB;AAEjE,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAClG,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE;QAC/B,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,MAAM,GAA2B;QACrC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK;QAChC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;KACxC,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,aAAqB,EAAE,KAAa;IAClE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,OAAO,aAAa,SAAS,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;mDAoBoC;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QAClG,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;aACpF,QAAQ,CAAC,uIAAuI,CAAC;QACpJ,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACtC,QAAQ,CAAC,2HAA2H,CAAC;QACxI,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACvC,QAAQ,CAAC,2FAA2F,CAAC;QACxG,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC5C,QAAQ,CAAC,+GAA+G,CAAC;QAC5H,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC1C,QAAQ,CAAC,sGAAsG,CAAC;QACnH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC3C,QAAQ,CAAC,wGAAwG,CAAC;QACrH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,4GAA4G,CAAC;QACzH,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC7C,QAAQ,CAAC;;;sFAGsE,CAAC;QACnF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uGAAuG,CAAC;QAClJ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2HAA2H,CAAC;QACpK,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACzE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;aAC7D,QAAQ,CAAC,yHAAyH,CAAC;QACtI,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAClC,QAAQ,CAAC,qGAAqG,CAAC;QAClH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAChC,QAAQ,CAAC,oHAAoH,CAAC;QACjI,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACxC,QAAQ,CAAC,8IAA8I,CAAC;KAC5J,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAkB7B;IACC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;IAEjD,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,IAAI,OAAO,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QACzE,OAAO,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC;IACvD,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE/D,oBAAoB;IACpB,MAAM,YAAY,GAA2B;QAC3C,QAAQ,EAAO,GAAG,iBAAiB,EAAE,mBAAmB;QACxD,OAAO,EAAQ,GAAG,iBAAiB,EAAE,2BAA2B;QAChE,SAAS,EAAM,GAAG,iBAAiB,EAAE,6BAA6B;QAClE,aAAa,EAAE,GAAG,iBAAiB,EAAE,iCAAiC;KACvE,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE9C,eAAe;IACf,MAAM,YAAY,GAA2B;QAC3C,QAAQ,EAAO,MAAM;QACrB,OAAO,EAAQ,QAAQ;QACvB,SAAS,EAAM,SAAS;QACxB,aAAa,EAAE,QAAQ;KACxB,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC;IAExD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,iDAAiD,aAAa,WAAW,IAAI,CAAC,eAAe,cAAc,cAAc,EAAE,CAAC,CAAC;QAE3I,WAAW;QACX,MAAM,UAAU,GAA4B;YAC1C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,cAAc;YACxB,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,EAAE,IAAI;gBACjC,SAAS;gBACT,OAAO;aACR,CAAC;SACH,CAAC;QAEF,iDAAiD;QACjD,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3F,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;gBAChC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAClD,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBAC9B,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,YAAY;QACZ,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,iBAAiB,CAAC,aAAa,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,EAAuC,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC,aAAa,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,UAAU;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC;YACxC,MAAM,EAAE,qBAAqB;YAC7B,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtB,MAAM,UAAU,GAAG,MAAM,KAAK,CAC5B,GAAG,iBAAiB,EAAE,0BAA0B,EAChD;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,QAAQ,EAAE,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;wBACtC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;qBACnB,CAAC;iBACH,CACF,CAAC;gBAEF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAA0B,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;oBAC/E,OAAO,CAAC,KAAK,CAAC,8CAA8C,QAAQ,WAAW,cAAc,EAAE,CAAC,CAAC;oBACjG,OAAO,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC;gBACvC,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,OAAO,EAAE,KAAK,EAAE,SAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,QAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YAC7D,CAAC;SACF,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,aAAa,GAAG,qBAAqB,CACzC,GAAG,SAAS,IAAI,cAAc,EAAE,EAChC,MAAM,EACN,KAAK,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAErE,OAAO,mBAAmB,CACxB,OAAO,SAAS,IAAI,cAAc,iBAAiB,QAAQ,EAAE,CAC9D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,iBAAiB,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import * as z from "zod/v4";
2
+ type Action = "get_followup_methods" | "export";
3
+ interface InvestmentFollowUpExportArgs {
4
+ action: Action;
5
+ branchId: string;
6
+ cityCode: string;
7
+ branchName: string;
8
+ startFollowupTm?: number;
9
+ endFollowupTm?: number;
10
+ followupMethod?: string[];
11
+ }
12
+ export declare const name = "investment_follow_up_export";
13
+ export declare const schema: {
14
+ description: string;
15
+ inputSchema: z.ZodObject<{
16
+ action: z.ZodEnum<{
17
+ export: "export";
18
+ get_followup_methods: "get_followup_methods";
19
+ }>;
20
+ branchId: z.ZodString;
21
+ cityCode: z.ZodString;
22
+ branchName: z.ZodString;
23
+ startFollowupTm: z.ZodOptional<z.ZodNumber>;
24
+ endFollowupTm: z.ZodOptional<z.ZodNumber>;
25
+ followupMethod: z.ZodOptional<z.ZodArray<z.ZodString>>;
26
+ }, z.core.$strip>;
27
+ };
28
+ export declare function handler(args: InvestmentFollowUpExportArgs): Promise<import("../../utils/http.js").ToolResult>;
29
+ export {};
30
+ //# sourceMappingURL=investment_follow_up_export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investment_follow_up_export.d.ts","sourceRoot":"","sources":["../../../src/tools/data/investment_follow_up_export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA+B5B,KAAK,MAAM,GAAG,sBAAsB,GAAG,QAAQ,CAAC;AAIhD,UAAU,4BAA4B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAMD,eAAO,MAAM,IAAI,gCAAgC,CAAC;AAElD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAuBlB,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE,4BAA4B,qDAS/D"}