@yjzf/mcp-server-yjzf 0.2.8 → 0.3.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 (47) hide show
  1. package/dist/index.js +9 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/tools/contract/new_house_commission_export.d.ts +49 -0
  4. package/dist/tools/contract/new_house_commission_export.d.ts.map +1 -0
  5. package/dist/tools/contract/new_house_commission_export.js +249 -0
  6. package/dist/tools/contract/new_house_commission_export.js.map +1 -0
  7. package/dist/tools/contract/new_house_developer_repayment_export.d.ts +40 -0
  8. package/dist/tools/contract/new_house_developer_repayment_export.d.ts.map +1 -0
  9. package/dist/tools/contract/new_house_developer_repayment_export.js +200 -0
  10. package/dist/tools/contract/new_house_developer_repayment_export.js.map +1 -0
  11. package/dist/tools/house/umai_good_house_export.d.ts +22 -0
  12. package/dist/tools/house/umai_good_house_export.d.ts.map +1 -0
  13. package/dist/tools/house/umai_good_house_export.js +143 -0
  14. package/dist/tools/house/umai_good_house_export.js.map +1 -0
  15. package/package.json +1 -1
  16. package/dist/tools/count_all_statement.d.ts +0 -46
  17. package/dist/tools/count_all_statement.d.ts.map +0 -1
  18. package/dist/tools/count_all_statement.js +0 -334
  19. package/dist/tools/count_all_statement.js.map +0 -1
  20. package/dist/tools/date_to_timestamp.d.ts +0 -19
  21. package/dist/tools/date_to_timestamp.d.ts.map +0 -1
  22. package/dist/tools/date_to_timestamp.js +0 -45
  23. package/dist/tools/date_to_timestamp.js.map +0 -1
  24. package/dist/tools/get_current_time.d.ts +0 -13
  25. package/dist/tools/get_current_time.d.ts.map +0 -1
  26. package/dist/tools/get_current_time.js +0 -23
  27. package/dist/tools/get_current_time.js.map +0 -1
  28. package/dist/tools/hello_world.d.ts +0 -20
  29. package/dist/tools/hello_world.d.ts.map +0 -1
  30. package/dist/tools/hello_world.js +0 -47
  31. package/dist/tools/hello_world.js.map +0 -1
  32. package/dist/tools/investment_contract.d.ts +0 -8
  33. package/dist/tools/investment_contract.d.ts.map +0 -1
  34. package/dist/tools/investment_contract.js +0 -106
  35. package/dist/tools/investment_contract.js.map +0 -1
  36. package/dist/tools/new_house_contract_export.d.ts +0 -14
  37. package/dist/tools/new_house_contract_export.d.ts.map +0 -1
  38. package/dist/tools/new_house_contract_export.js +0 -242
  39. package/dist/tools/new_house_contract_export.js.map +0 -1
  40. package/dist/tools/overview_by_c.d.ts +0 -26
  41. package/dist/tools/overview_by_c.d.ts.map +0 -1
  42. package/dist/tools/overview_by_c.js +0 -204
  43. package/dist/tools/overview_by_c.js.map +0 -1
  44. package/dist/tools/statement_query.d.ts +0 -43
  45. package/dist/tools/statement_query.d.ts.map +0 -1
  46. package/dist/tools/statement_query.js +0 -430
  47. package/dist/tools/statement_query.js.map +0 -1
@@ -1,13 +0,0 @@
1
- import * as z from "zod/v4";
2
- export declare const name = "get_current_time";
3
- export declare const schema: {
4
- description: string;
5
- inputSchema: z.ZodObject<{}, z.core.$strip>;
6
- };
7
- export declare function handler(): Promise<{
8
- content: {
9
- type: "text";
10
- text: string;
11
- }[];
12
- }>;
13
- //# sourceMappingURL=get_current_time.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_current_time.d.ts","sourceRoot":"","sources":["../../src/tools/get_current_time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,IAAI,qBAAqB,CAAC;AAEvC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;GAgB5B"}
@@ -1,23 +0,0 @@
1
- import * as z from "zod/v4";
2
- export const name = "get_current_time";
3
- export const schema = {
4
- description: "获取当前时间的毫秒时间戳和格式化时间 当需要知晓当前日期时间时必须先调用此工具",
5
- inputSchema: z.object({}),
6
- };
7
- export async function handler() {
8
- const now = new Date();
9
- const timestamp = now.getTime();
10
- const formattedTime = now.toISOString();
11
- return {
12
- content: [
13
- {
14
- type: "text",
15
- text: JSON.stringify({
16
- timestamp: timestamp,
17
- formattedTime: formattedTime,
18
- }, null, 2),
19
- },
20
- ],
21
- };
22
- }
23
- //# sourceMappingURL=get_current_time.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_current_time.js","sourceRoot":"","sources":["../../src/tools/get_current_time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAExC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EAAE,SAAS;oBACpB,aAAa,EAAE,aAAa;iBAC7B,EAAE,IAAI,EAAE,CAAC,CAAC;aACZ;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,20 +0,0 @@
1
- import * as z from "zod/v4";
2
- export declare const name = "hello_world";
3
- export declare const schema: {
4
- description: string;
5
- inputSchema: z.ZodObject<{}, z.core.$strip>;
6
- };
7
- export declare function handler(): Promise<{
8
- content: {
9
- type: "text";
10
- text: string;
11
- }[];
12
- isError: boolean;
13
- } | {
14
- content: {
15
- type: "text";
16
- text: string;
17
- }[];
18
- isError?: undefined;
19
- }>;
20
- //# sourceMappingURL=hello_world.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello_world.d.ts","sourceRoot":"","sources":["../../src/tools/hello_world.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,eAAO,MAAM,IAAI,gBAAgB,CAAC;AAElC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;;;;;;;;GAyC5B"}
@@ -1,47 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import * as z from "zod/v4";
4
- import { getDataDir, getGatewayBaseUrl } from "../utils/env.js";
5
- import { buildGatewayHeaders } from "../utils/http.js";
6
- export const name = "hello_world";
7
- export const schema = {
8
- description: "Say hello world to YJZF",
9
- inputSchema: z.object({}),
10
- };
11
- export async function handler() {
12
- const headers = buildGatewayHeaders();
13
- // HTTP GET request
14
- const response = await fetch(`${getGatewayBaseUrl()}/hello_world`, {
15
- method: "GET",
16
- headers,
17
- });
18
- if (!response.ok) {
19
- return {
20
- content: [
21
- {
22
- type: "text",
23
- text: `Request failed with status ${response.status}: ${response.statusText}`,
24
- },
25
- ],
26
- isError: true,
27
- };
28
- }
29
- const body = await response.text();
30
- // Ensure data directory exists
31
- const dataDir = getDataDir();
32
- fs.mkdirSync(dataDir, { recursive: true });
33
- // Write response to file with datetime prefix
34
- const now = new Date();
35
- const datetimePrefix = now.toISOString().replace(/[:.]/g, "-").slice(0, 19);
36
- const filePath = path.join(dataDir, `${datetimePrefix}-hello_world-response.txt`);
37
- fs.writeFileSync(filePath, body, "utf-8");
38
- return {
39
- content: [
40
- {
41
- type: "text",
42
- text: `Response saved to ${filePath}\n\n${body}`,
43
- },
44
- ],
45
- };
46
- }
47
- //# sourceMappingURL=hello_world.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello_world.js","sourceRoot":"","sources":["../../src/tools/hello_world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC;AAElC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEtC,mBAAmB;IACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,iBAAiB,EAAE,cAAc,EAAE;QACjE,MAAM,EAAE,KAAK;QACb,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,8BAA8B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;iBAC9E;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,8CAA8C;IAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,2BAA2B,CAAC,CAAC;IAClF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,qBAAqB,QAAQ,OAAO,IAAI,EAAE;aACjD;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- import * as z from "zod/v4";
2
- export declare const name = "investment_contract";
3
- export declare const schema: {
4
- description: string;
5
- inputSchema: z.ZodObject<{}, z.core.$strip>;
6
- };
7
- export declare function handler(): Promise<import("../utils/http.js").ToolResult>;
8
- //# sourceMappingURL=investment_contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"investment_contract.d.ts","sourceRoot":"","sources":["../../src/tools/investment_contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAqF5B,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAE1C,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO,mDAuE5B"}
@@ -1,106 +0,0 @@
1
- import * as z from "zod/v4";
2
- import { buildGatewayHeaders, createErrorResult, createSuccessResult } from "../utils/http.js";
3
- import { saveWorkbook, formatTimestamp } from "../utils/excel.js";
4
- import { generateDatedFileName, getGatewayBaseUrl } from "../utils/env.js";
5
- import { debug } from "../utils/debug.js";
6
- // ---------------------------------------------------------------------------
7
- // 枚举映射
8
- // ---------------------------------------------------------------------------
9
- const LOCKING_STATE_MAP = {
10
- 1: "是",
11
- 0: "否",
12
- };
13
- const CONTRACT_STATE_MAP = {
14
- 1: "审核通过",
15
- 2: "审核否决",
16
- 3: "待审核",
17
- 4: "草稿",
18
- 5: "已撤回",
19
- 6: "已回收",
20
- 8: "已签署",
21
- };
22
- const SIGN_METHOD_MAP = {
23
- 1: "线上",
24
- 2: "线下",
25
- };
26
- const ORDER_STATUS_MAP = {
27
- 0: "已关闭",
28
- 1: "跟进中",
29
- 2: "已完成",
30
- };
31
- const COLUMNS = [
32
- ["城市", "cityName"],
33
- ["锁定状态", "lockingState", (v) => LOCKING_STATE_MAP[Number(v)] ?? ""],
34
- ["合同名称", "title"],
35
- ["合同编号", "econtractNo"],
36
- ["合同状态", "state", (v) => CONTRACT_STATE_MAP[Number(v)] ?? String(v)],
37
- ["甲方", "companyA"],
38
- ["乙方", "companyB"],
39
- ["签署方式", "isOutside", (v) => SIGN_METHOD_MAP[Number(v)] ?? String(v)],
40
- ["剩余打印次数", "plusPrintNumber"],
41
- ["关联订单编号", "linkOrderNo"],
42
- ["对应订单状态", "orderStatus", (v) => ORDER_STATUS_MAP[Number(v)] ?? String(v)],
43
- ["添加人", "createdBy"],
44
- ["添加时间", "createTm", (v) => formatTimestamp(Number(v))],
45
- ];
46
- // ---------------------------------------------------------------------------
47
- // 工具导出
48
- // ---------------------------------------------------------------------------
49
- export const name = "investment_contract";
50
- export const schema = {
51
- description: "从 ERP 系统查询直营城市招商加盟合同列表数据,生成 Excel 文件",
52
- inputSchema: z.object({}),
53
- };
54
- export async function handler() {
55
- const headers = buildGatewayHeaders();
56
- try {
57
- // Step 1: 获取城市列表
58
- const citiesResponse = await fetch("https://mcp.yjzf.com/zy_cities.json", {
59
- method: "GET",
60
- headers,
61
- });
62
- if (!citiesResponse.ok) {
63
- return createErrorResult(`获取 zy_cities 数据失败: ${citiesResponse.status} ${citiesResponse.statusText}`);
64
- }
65
- const cities = await citiesResponse.json();
66
- debug("zy_cities.json", cities);
67
- // Step 2: 调用 Gateway 获取合同数据
68
- const response = await fetch(`${getGatewayBaseUrl()}/investment_contract`, {
69
- method: "POST",
70
- headers,
71
- body: JSON.stringify({ cities }),
72
- });
73
- if (!response.ok) {
74
- return createErrorResult(`请求 investment_contract 失败: ${response.status} ${response.statusText}`);
75
- }
76
- const apiResponse = await response.json();
77
- debug("investment_contract response", apiResponse);
78
- if (!apiResponse.succeed) {
79
- return createErrorResult(`网关返回错误: ${apiResponse.msg}`);
80
- }
81
- const { list } = apiResponse.data;
82
- if (list.length === 0) {
83
- return createSuccessResult("未查询到任何合同数据");
84
- }
85
- // Step 3: 构建 Excel 数据
86
- const headerRow = COLUMNS.map(([label]) => label);
87
- const dataRows = list.map((item) => COLUMNS.map(([, field, transform]) => {
88
- const val = item[field];
89
- if (transform) {
90
- return transform(val);
91
- }
92
- return val != null ? String(val) : "";
93
- }));
94
- const sheetData = [headerRow, ...dataRows];
95
- // Step 4: 保存 Excel 文件
96
- const fileName = generateDatedFileName("招商加盟合同列表导出", "xlsx", false);
97
- const sheets = [{ name: "合同数据", data: sheetData }];
98
- const filePath = saveWorkbook(sheets, fileName);
99
- return createSuccessResult(`成功导出招商加盟合同数据!\n共 ${list.length} 条记录\n文件路径: ${filePath}`);
100
- }
101
- catch (error) {
102
- const errorMessage = error instanceof Error ? error.message : String(error);
103
- return createErrorResult(`执行过程中发生错误: ${errorMessage}`);
104
- }
105
- }
106
- //# sourceMappingURL=investment_contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"investment_contract.js","sourceRoot":"","sources":["../../src/tools/investment_contract.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import * as z from "zod/v4";
2
- export declare const name = "new_house_contract_export";
3
- export declare const schema: {
4
- description: string;
5
- inputSchema: z.ZodObject<{
6
- startTime: z.ZodOptional<z.ZodNumber>;
7
- endTime: z.ZodOptional<z.ZodNumber>;
8
- }, z.core.$strip>;
9
- };
10
- export declare function handler(args: {
11
- startTime?: number;
12
- endTime?: number;
13
- }): Promise<import("../utils/http.js").ToolResult>;
14
- //# sourceMappingURL=new_house_contract_export.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new_house_contract_export.d.ts","sourceRoot":"","sources":["../../src/tools/new_house_contract_export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA2K5B,eAAO,MAAM,IAAI,8BAA8B,CAAC;AAEhD,eAAO,MAAM,MAAM;;;;;;CAalB,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,kDA8HA"}
@@ -1,242 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import * as z from "zod/v4";
4
- import { buildGatewayHeaders, createErrorResult, createSuccessResult } from "../utils/http.js";
5
- import { getDataDir, getGatewayBaseUrl } from "../utils/env.js";
6
- import { debug } from "../utils/debug.js";
7
- // ---------------------------------------------------------------------------
8
- // 常量
9
- // ---------------------------------------------------------------------------
10
- const BRAND_ID = "593347894961426496";
11
- const CITY_CODE = "450100";
12
- const ORGAN_ID = "625864877560328320";
13
- // const BRAND_ID = "565998180494215232";
14
- // const CITY_CODE = "450100";
15
- // const ORGAN_ID = "552692373611008128";
16
- // ---------------------------------------------------------------------------
17
- // 工具函数
18
- // ---------------------------------------------------------------------------
19
- /**
20
- * 生成文件名:认购合同_20260423_1000.xlsx
21
- */
22
- function buildFileName(label) {
23
- const now = new Date();
24
- const Y = now.getFullYear();
25
- const M = String(now.getMonth() + 1).padStart(2, "0");
26
- const D = String(now.getDate()).padStart(2, "0");
27
- const h = String(now.getHours()).padStart(2, "0");
28
- const m = String(now.getMinutes()).padStart(2, "0");
29
- return `${label}_${Y}${M}${D}_${h}${m}.xlsx`;
30
- }
31
- /**
32
- * 获取默认时间范围:当月第一天 00:00:00 ~ 今天 23:59:59.999(本地时间)。
33
- */
34
- function getDefaultTimeRange() {
35
- const now = new Date();
36
- const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
37
- const todayEnd = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
38
- return {
39
- startTime: monthStart.getTime(),
40
- endTime: todayEnd.getTime(),
41
- };
42
- }
43
- /**
44
- * 将 base64 编码的 Excel 数据保存为文件,返回文件绝对路径。
45
- */
46
- function saveBase64ToFile(base64Data, fileName) {
47
- const dataDir = getDataDir();
48
- fs.mkdirSync(dataDir, { recursive: true });
49
- const filePath = path.join(dataDir, fileName);
50
- const buffer = Buffer.from(base64Data, "base64");
51
- fs.writeFileSync(filePath, buffer);
52
- return filePath;
53
- }
54
- /**
55
- * 判断时间范围是否超过3个月(基于日历月)。
56
- */
57
- function isRangeExceedsThreeMonths(startTime, endTime) {
58
- const start = new Date(startTime);
59
- const threeMonthsLater = new Date(start);
60
- threeMonthsLater.setMonth(threeMonthsLater.getMonth() + 3);
61
- return endTime > threeMonthsLater.getTime();
62
- }
63
- /**
64
- * 生成唯一的 bookName,用于在异步导出列表中精确匹配。
65
- */
66
- function generateUniqueBookName(label) {
67
- const ts = Date.now();
68
- const rand = Math.random().toString(36).slice(2, 6);
69
- return `MCP_${label}_${ts}_${rand}`;
70
- }
71
- function sleep(ms) {
72
- return new Promise(resolve => setTimeout(resolve, ms));
73
- }
74
- /**
75
- * 轮询异步导出状态,返回完成后的 fileUrl。
76
- * 递增间隔轮询,最多等待10分钟。
77
- */
78
- async function pollAsyncExportStatus(bookName, headers, gatewayBaseUrl) {
79
- const intervals = [5000, 5000, 10000, 10000, 15000, 15000, 20000, 20000, 30000];
80
- const maxWait = 600_000; // 10分钟
81
- let totalWaited = 0;
82
- let consecutiveErrors = 0;
83
- for (let i = 0; totalWaited < maxWait; i++) {
84
- const interval = intervals[Math.min(i, intervals.length - 1)];
85
- await sleep(interval);
86
- totalWaited += interval;
87
- try {
88
- const resp = await fetch(`${gatewayBaseUrl}/new_house_contract_async_export_status`, {
89
- method: "POST",
90
- headers,
91
- body: JSON.stringify({ city_code: CITY_CODE, organ_id: ORGAN_ID, brand_id: BRAND_ID }),
92
- });
93
- const json = await resp.json();
94
- consecutiveErrors = 0;
95
- const match = json.data?.list?.find((item) => item.fileName === bookName);
96
- if (match?.status === 1)
97
- return match.fileUrl;
98
- if (match?.status === 0)
99
- throw new Error(`ERP 异步导出失败: ${bookName}`);
100
- console.error(`[轮询] ${bookName} 尚未完成,已等待 ${totalWaited / 1000}s`);
101
- }
102
- catch (e) {
103
- if (e.message?.includes("异步导出失败"))
104
- throw e;
105
- consecutiveErrors++;
106
- if (consecutiveErrors >= 3)
107
- throw new Error(`轮询连续失败3次: ${e.message}`);
108
- console.error(`[轮询] 请求异常(${consecutiveErrors}/3): ${e.message}`);
109
- }
110
- }
111
- throw new Error(`异步导出超时(${maxWait / 1000}s): ${bookName}`);
112
- }
113
- /**
114
- * 从 CDN fileUrl 下载文件保存到 DATA_DIR,返回文件绝对路径。
115
- */
116
- async function downloadFileFromUrl(fileUrl, fileName) {
117
- const resp = await fetch(fileUrl);
118
- if (!resp.ok)
119
- throw new Error(`下载文件失败: ${resp.status} ${resp.statusText}`);
120
- const buffer = Buffer.from(await resp.arrayBuffer());
121
- const dataDir = getDataDir();
122
- fs.mkdirSync(dataDir, { recursive: true });
123
- const filePath = path.join(dataDir, fileName);
124
- fs.writeFileSync(filePath, buffer);
125
- return filePath;
126
- }
127
- // ---------------------------------------------------------------------------
128
- // 工具导出
129
- // ---------------------------------------------------------------------------
130
- export const name = "new_house_contract_export";
131
- export const schema = {
132
- description: "从 ERP 系统导出新房合同数据(认购合同、签约合同、解约合同),生成三个独立的 Excel 文件。不传时间时默认查询当月第一天到今天。时间范围超过3个月时自动使用异步导出。",
133
- inputSchema: z.object({
134
- startTime: z
135
- .number()
136
- .optional()
137
- .describe("开始时间,毫秒时间戳,可选,不传则默认当月第一天"),
138
- endTime: z
139
- .number()
140
- .optional()
141
- .describe("结束时间,毫秒时间戳,可选,不传则默认今天"),
142
- }),
143
- };
144
- export async function handler(args) {
145
- const headers = buildGatewayHeaders();
146
- const defaults = getDefaultTimeRange();
147
- const startTime = args.startTime ?? defaults.startTime;
148
- const endTime = args.endTime ?? defaults.endTime;
149
- debug("date range", { startTime, endTime });
150
- // 校验时间范围
151
- if (startTime > endTime) {
152
- return createErrorResult("开始时间不能晚于结束时间");
153
- }
154
- const useAsync = isRangeExceedsThreeMonths(startTime, endTime);
155
- if (useAsync) {
156
- console.error(`[new_house_contract_export] 时间范围>3个月,使用异步导出模式`);
157
- }
158
- try {
159
- // 分别导出认购合同、签约合同和解约合同
160
- const contractTypes = [
161
- { type: "subscription", label: "认购合同" },
162
- { type: "signed", label: "签约合同" },
163
- { type: "cancelled", label: "解约合同" },
164
- ];
165
- const results = [];
166
- for (const ct of contractTypes) {
167
- console.error(`[new_house_contract_export] 正在导出${ct.label}...`);
168
- if (useAsync) {
169
- // 异步导出路径
170
- const bookName = generateUniqueBookName(ct.label);
171
- console.error(`[async] bookName=${bookName}`);
172
- // 1. 提交异步导出任务
173
- const submitResp = await fetch(`${getGatewayBaseUrl()}/new_house_contract_async_export`, {
174
- method: "POST",
175
- headers,
176
- body: JSON.stringify({
177
- city_code: CITY_CODE,
178
- organ_id: ORGAN_ID,
179
- brand_id: BRAND_ID,
180
- startTime,
181
- endTime,
182
- contractType: ct.type,
183
- bookName,
184
- }),
185
- });
186
- if (!submitResp.ok) {
187
- return createErrorResult(`提交${ct.label}异步导出失败: ${submitResp.status} ${submitResp.statusText}`);
188
- }
189
- const submitResult = await submitResp.json();
190
- if (!submitResult.succeed) {
191
- return createErrorResult(`提交${ct.label}异步导出失败: ${submitResult.msg}`);
192
- }
193
- console.error(`[async] ${ct.label} 任务已提交,开始轮询...`);
194
- // 2. 轮询等待完成
195
- const fileUrl = await pollAsyncExportStatus(bookName, headers, getGatewayBaseUrl());
196
- // 3. 下载文件到本地
197
- const fileName = buildFileName(ct.label);
198
- const filePath = await downloadFileFromUrl(fileUrl, fileName);
199
- results.push(`${ct.label}\n文件路径: ${filePath}`);
200
- }
201
- else {
202
- // 同步导出路径
203
- const response = await fetch(`${getGatewayBaseUrl()}/new_house_contract_export`, {
204
- method: "POST",
205
- headers,
206
- body: JSON.stringify({
207
- city_code: CITY_CODE,
208
- organ_id: ORGAN_ID,
209
- brand_id: BRAND_ID,
210
- startTime,
211
- endTime,
212
- contractType: ct.type,
213
- }),
214
- });
215
- if (!response.ok) {
216
- return createErrorResult(`请求 ${ct.label} 导出失败: ${response.status} ${response.statusText}`);
217
- }
218
- const apiResponse = await response.json();
219
- debug(`${ct.label} response`, {
220
- succeed: apiResponse.succeed,
221
- msg: apiResponse.msg,
222
- });
223
- if (!apiResponse.succeed) {
224
- return createErrorResult(`${ct.label} 网关返回错误: ${apiResponse.msg}`);
225
- }
226
- if (!apiResponse.data?.base64) {
227
- return createErrorResult(`${ct.label} 返回数据中缺少 base64 字段`);
228
- }
229
- // 直接保存原始 Excel 文件
230
- const fileName = buildFileName(ct.label);
231
- const filePath = saveBase64ToFile(apiResponse.data.base64, fileName);
232
- results.push(`${ct.label}\n文件路径: ${filePath}`);
233
- }
234
- }
235
- return createSuccessResult(`成功导出新房合同数据!\n\n${results.join("\n\n")}`);
236
- }
237
- catch (error) {
238
- const errorMessage = error instanceof Error ? error.message : String(error);
239
- return createErrorResult(`执行过程中发生错误: ${errorMessage}`);
240
- }
241
- }
242
- //# sourceMappingURL=new_house_contract_export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new_house_contract_export.js","sourceRoot":"","sources":["../../src/tools/new_house_contract_export.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"overview_by_c.d.ts","sourceRoot":"","sources":["../../src/tools/overview_by_c.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAoD5B,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;;;;;;;;;;;;GAsLrF"}