Browse Source

develop ServiceProxy.ext

main
hulei 3 weeks ago
parent
commit
26f2314df2
94 changed files with 12273 additions and 0 deletions
  1. 119
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/CommonFunction.ts
  2. 124
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/JsonHelper.ts
  3. 52
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterRecordInfo.ts
  4. 57
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterRecords.ts
  5. 43
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterShip.ts
  6. 55
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterStat.ts
  7. 40
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterTask.ts
  8. 114
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AppRecordInfo.ts
  9. 71
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AskAuthInfo.ts
  10. 62
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AskSuperInfo.ts
  11. 43
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthCondInf.ts
  12. 31
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthResult.ts
  13. 82
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthTransRecords.ts
  14. 149
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatInfo.ts
  15. 32
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatSysConfig.ts
  16. 129
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatSysInfo.ts
  17. 49
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/CheckInfo.ts
  18. 52
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/CheckResult.ts
  19. 93
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/IdCheckRecords.ts
  20. 58
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/IsAuthResult.ts
  21. 45
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PageData.ts
  22. 45
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PayBusinessKeyInfo.ts
  23. 125
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PicpCheckRecords.ts
  24. 171
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PicpCheckResInfo.ts
  25. 229
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PreAuthInfo.ts
  26. 69
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/ProcessInfo.ts
  27. 83
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TatmDbpnr.ts
  28. 77
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/Tcashvarb.ts
  29. 50
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TcheckAccount.ts
  30. 97
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TcheckMachine.ts
  31. 73
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TdoutbfulPay.ts
  32. 87
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TellerInfo.ts
  33. 45
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TradeInfo.ts
  34. 121
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TwftTradeRecords.ts
  35. 41
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/VacationInfo.ts
  36. 182
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/WorkItemDesc.ts
  37. 946
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/AfterSuperviseHandle.ts
  38. 256
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/EncrypteHandle.ts
  39. 37
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/FingerConfigHandle.ts
  40. 188
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PicpHandle.ts
  41. 948
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PlatformManagerHandle.ts
  42. 126
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PluginHandle.ts
  43. 771
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PrintManagerHandle.ts
  44. 562
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/ResgistryHandle.ts
  45. 12
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/ServiceEntitys.ts
  46. 602
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/SysBatchHandle.ts
  47. 283
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/TradeHandle.ts
  48. 509
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/UserManagerHandle.ts
  49. 562
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/WorkFlowHandle.ts
  50. 20
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/types.ts
  51. 178
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceSettings.ts
  52. 38
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/AUTH_LVL.ts
  53. 187
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/LoginData.ts
  54. 105
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintDataLimit.ts
  55. 71
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintExtData.ts
  56. 35
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintExtListData.ts
  57. 85
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_NotifyMessage.ts
  58. 58
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_ReceiveName.ts
  59. 63
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_SendGroupRole.ts
  60. 85
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_TerminalNumber.ts
  61. 149
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_ExtSys.ts
  62. 107
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_Extsys_ExtuserFromByGroup.ts
  63. 82
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_Form.ts
  64. 70
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_FormKind.ts
  65. 46
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_GroupRule.ts
  66. 120
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrInfo.ts
  67. 6
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrRelation.ts
  68. 6
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrRule.ts
  69. 157
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_LoginSign.ts
  70. 274
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_LoginUser.ts
  71. 208
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_MenuInfo.ts
  72. 129
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintData.ts
  73. 108
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintDataDetail.ts
  74. 92
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintDataDetail2.ts
  75. 75
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_RoleGroup.ts
  76. 89
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_RuleInfo.ts
  77. 58
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_SysConfig.ts
  78. 132
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_TradeForm.ts
  79. 6
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserInterface.ts
  80. 5
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserPswverify.ts
  81. 6
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserRole.ts
  82. 113
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/AuthHandle.ts
  83. 40
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/ApplyInfoReq.ts
  84. 91
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/AuthHistoryInfoResult.ts
  85. 11
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/CustomImageInfo.ts
  86. 10
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/ElementInfoResult.ts
  87. 21
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/FlawInfoReq.ts
  88. 85
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/FlawTradeListResult.ts
  89. 18
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/GetTokenReq.ts
  90. 19
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/Result.ts
  91. 47
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/RmAuthResult.ts
  92. 15
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/TokenResult.ts
  93. 29
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/RSAUtil.ts
  94. 127
    0
      ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/RestClient.ts

+ 119
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/CommonFunction.ts View File

@@ -0,0 +1,119 @@
1
+import { existsSync, readFileSync, writeFileSync } from 'fs';
2
+import { spawn } from 'child_process';
3
+import { join } from 'path';
4
+
5
+// 模拟 PlatformLogger,实际使用时需要实现具体逻辑
6
+class PlatformLogger {
7
+    static SystemErrorInfo(message: string, error?: Error) {
8
+        console.error(message, error);
9
+    }
10
+}
11
+
12
+/**
13
+ * 进程驱动 exe
14
+ * @param path 执行文件路径
15
+ * @param args 参数列表
16
+ * @param timeout 超时时间,单位秒,默认 120 秒
17
+ * @param action 进程启动后的回调函数
18
+ * @returns 是否执行成功以及输出信息
19
+ */
20
+async function ProcessExe(path: string, args: string[], timeout: number = 120, action?: (process: any) => void): Promise<{ success: boolean; output: string }> {
21
+    try {
22
+        // 检查执行文件是否存在
23
+        let exe = join(process.cwd(), path);
24
+        if (!existsSync(exe)) {
25
+            const output = `ERR:执行文件不存在!${exe}`;
26
+            if (!existsSync(path)) {
27
+                return { success: false, output };
28
+            }
29
+            exe = path;
30
+        }
31
+
32
+        // 处理参数列表
33
+        const argumentsStr = args.map(arg => `"${arg}"`).join(' ');
34
+
35
+        // 启动进程
36
+        const childProcess = spawn(exe, args, {
37
+            shell: false,
38
+            windowsHide: true,
39
+            stdio: ['pipe', 'pipe', 'pipe']
40
+        });
41
+
42
+        // 交互动作
43
+        if (action) {
44
+            action(childProcess);
45
+        }
46
+
47
+        let output = '';
48
+        let errorOutput = '';
49
+
50
+        childProcess.stdout.on('data', (data) => {
51
+            output += data.toString();
52
+        });
53
+
54
+        childProcess.stderr.on('data', (data) => {
55
+            errorOutput += data.toString();
56
+        });
57
+
58
+        let isTimeout = false;
59
+        const timeoutPromise = new Promise((_, reject) => {
60
+            if (timeout > 0) {
61
+                setTimeout(() => {
62
+                    isTimeout = true;
63
+                    try {
64
+                        childProcess.kill();
65
+                    } catch (err) {
66
+                        // 忽略错误
67
+                    }
68
+                    reject(new Error('调用超时!'));
69
+                }, timeout * 1000);
70
+            }
71
+        });
72
+
73
+        const exitPromise = new Promise((resolve) => {
74
+            childProcess.on('close', () => {
75
+                resolve(true);
76
+            });
77
+        });
78
+
79
+        try {
80
+            await Promise.race([exitPromise, timeoutPromise]);
81
+            if (isTimeout) {
82
+                output = `调用超时!Cmd:\n${output}`;
83
+                return { success: false, output };
84
+            }
85
+            if (errorOutput) {
86
+                output = errorOutput;
87
+                return { success: false, output };
88
+            }
89
+            return { success: true, output };
90
+        } catch (ex) {
91
+            const errorMessage = `发生异常!${(ex as Error).message}`;
92
+            PlatformLogger.SystemErrorInfo(`ProcessExe发生异常!${path}`, ex as Error);
93
+            return { success: false, output: errorMessage };
94
+        }
95
+    } catch (ex) {
96
+        const errorMessage = `发生异常!${(ex as Error).message}`;
97
+        PlatformLogger.SystemErrorInfo(`ProcessExe发生异常!${path}`, ex as Error);
98
+        return { success: false, output: errorMessage };
99
+    }
100
+}
101
+
102
+/**
103
+ * 日期转换,按格式约定处理
104
+ * @param src 日期字符串
105
+ * @param format 日期格式
106
+ * @param def 默认日期
107
+ * @returns 转换后的日期对象或 null
108
+ */
109
+function ToDateTime(src: string, format: string, def: Date | null = null): Date | null {
110
+    // 简单实现,JavaScript 原生不支持指定格式解析,这里使用第三方库会更准确,如 date-fns
111
+    const date = new Date(src);
112
+    if (!isNaN(date.getTime())) {
113
+        return date;
114
+    }
115
+    PlatformLogger.SystemErrorInfo(`无法将[${src}]转换成有效的[${format}]对象`, null);
116
+    return def;
117
+}
118
+
119
+export { ProcessExe, ToDateTime };

+ 124
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/JsonHelper.ts View File

@@ -0,0 +1,124 @@
1
+// 模拟 PlatformLogger.SystemInfo 方法,实际使用时需要替换为真实实现
2
+const PlatformLogger = {
3
+    SystemInfo: (message: string) => {
4
+        console.log(message);
5
+    }
6
+};
7
+
8
+/**
9
+ * 将json串转换成Dictionary对象
10
+ * @param jsonString 
11
+ * @returns 
12
+ */
13
+export function ParseJson2Dictionary(jsonString: string): { [key: string]: any } {
14
+    const json = JSON.parse(jsonString);
15
+    return ParseJObject2Dictionary(json);
16
+}
17
+
18
+/**
19
+ * 将json串转换成Dictionary对象,深度为1
20
+ * @param jsonString 
21
+ * @returns 
22
+ */
23
+export function ParseJson2StringDictionary(jsonString: string): { [key: string]: string } {
24
+    const json = JSON.parse(jsonString);
25
+    const dict = ParseJObject2Dictionary(json, true);
26
+    const result: { [key: string]: string } = {};
27
+    for (const key in dict) {
28
+        if (dict.hasOwnProperty(key)) {
29
+            result[key] = String(dict[key]);
30
+        }
31
+    }
32
+    return result;
33
+}
34
+
35
+/**
36
+ * 将json串转换成List对象
37
+ * @param jsonString 
38
+ * @returns 
39
+ */
40
+export function ParseJson2List(jsonString: string): any[] {
41
+    const json = JSON.parse(jsonString);
42
+    if (!Array.isArray(json)) {
43
+        throw new Error('输入的 JSON 不是数组');
44
+    }
45
+    return ParseJArray2List(json);
46
+}
47
+
48
+/**
49
+ * 将json串转换成List对象,深度为1
50
+ * @param jsonString 
51
+ * @returns 
52
+ */
53
+export function ParseJson2StringList(jsonString: string): string[] {
54
+    const json = JSON.parse(jsonString);
55
+    if (!Array.isArray(json)) {
56
+        throw new Error('输入的 JSON 不是数组');
57
+    }
58
+    return ParseJArray2List(json, true).map(x => x.toString());
59
+}
60
+
61
+/**
62
+ * 将Dictionary对象转换成json串
63
+ * @param dict 
64
+ * @returns 
65
+ */
66
+export function ParseDictionary2Json<T>(dict: { [key: string]: T }): string {
67
+    return JSON.stringify(dict);
68
+}
69
+
70
+/**
71
+ * 将IList对象转换成json串
72
+ * @param list 
73
+ * @returns 
74
+ */
75
+export function ParseList2Json(list: any[]): string {
76
+    return JSON.stringify(list);
77
+}
78
+
79
+/**
80
+ * 将JObject对象转换成Dictionary对象
81
+ * @param json 
82
+ * @param depth1 
83
+ * @returns 
84
+ */
85
+function ParseJObject2Dictionary(json: any, depth1 = false): { [key: string]: any } {
86
+    const result: { [key: string]: any } = {};
87
+    for (const key in json) {
88
+        if (json.hasOwnProperty(key)) {
89
+            let value: any = null;
90
+            const item = json[key];
91
+            if (typeof item !== 'object' || item === null) {
92
+                value = item;
93
+            } else if (Array.isArray(item)) {
94
+                value = depth1 ? item.toString() : ParseJArray2List(item);
95
+            } else {
96
+                value = depth1 ? JSON.stringify(item) : ParseJObject2Dictionary(item);
97
+            }
98
+            result[key] = value;
99
+        }
100
+    }
101
+    return result;
102
+}
103
+
104
+/**
105
+ * 将JArray对象转换成List对象
106
+ * @param json 
107
+ * @param depth1 
108
+ * @returns 
109
+ */
110
+function ParseJArray2List(json: any[], depth1 = false): any[] {
111
+    const result: any[] = [];
112
+    for (const item of json) {
113
+        let value: any = null;
114
+        if (typeof item !== 'object' || item === null) {
115
+            value = item;
116
+        } else if (Array.isArray(item)) {
117
+            value = depth1 ? item.toString() : ParseJArray2List(item);
118
+        } else {
119
+            value = depth1 ? JSON.stringify(item) : ParseJObject2Dictionary(item);
120
+        }
121
+        result.push(value);
122
+    }
123
+    return result;
124
+}

+ 52
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterRecordInfo.ts View File

@@ -0,0 +1,52 @@
1
+// 定义 IEntity 接口,对应 C# 中的 IEntity 接口,这里只是占位,可根据实际情况补充
2
+interface IEntity {}
3
+
4
+// 定义 AfterRecordInfo 类,对应 C# 中的 AfterRecordInfo 类
5
+class AfterRecordInfo implements IEntity {
6
+    // 交易日期
7
+    public date: string;
8
+    // 机构号
9
+    public kinbrno: string;
10
+    // 机构名
11
+    public kinbrname: string;
12
+    // 交易类型
13
+    public worktype: string;
14
+    // 金额
15
+    public money: number;
16
+    // 柜员号
17
+    public tellerno: string;
18
+    // 票号
19
+    public printno: string;
20
+    // 监督状态
21
+    public stat: string;
22
+
23
+    constructor() {
24
+        this.date = "";
25
+        this.kinbrno = "";
26
+        this.kinbrname = "";
27
+        this.worktype = "";
28
+        this.money = 0;
29
+        this.tellerno = "";
30
+        this.printno = "";
31
+        this.stat = "";
32
+    }
33
+
34
+    // 将对象属性转换为字符串数组
35
+    public ChangeToTable(): string[] {
36
+        return [this.date, this.kinbrno, this.kinbrname, this.worktype, this.money.toString(), this.tellerno, this.printno, this.stat];
37
+    }
38
+
39
+    // 从对象数组中读取数据并赋值给当前对象的属性
40
+    public ChangeFromTable(parms: any[]): void {
41
+        this.date = parms[0].toString();
42
+        this.kinbrno = parms[1].toString();
43
+        this.kinbrname = parms[2].toString();
44
+        this.worktype = parms[3].toString();
45
+        this.money = parseFloat(parms[4]);
46
+        this.tellerno = parms[5].toString();
47
+        this.printno = parms[6].toString();
48
+        this.stat = parms[7].toString();
49
+    }
50
+}
51
+
52
+export { AfterRecordInfo };

+ 57
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterRecords.ts View File

@@ -0,0 +1,57 @@
1
+// 定义 IEntity 接口,对应 C# 中的接口
2
+interface IEntity {}
3
+
4
+/**
5
+ * 事后监督记录表
6
+ */
7
+class AfterRecords implements IEntity {
8
+    // 定义类的属性,对应 C# 中的属性
9
+    public id: string;
10
+    public serialno: string;
11
+    public businessdate: string;
12
+    public supertel: string;
13
+    public superdate: string;
14
+    public superstat: string;
15
+    public brno: string;
16
+    public ext1: string;
17
+    public ext2: string;
18
+
19
+    constructor() {
20
+        // 初始化属性
21
+        this.id = "";
22
+        this.serialno = "";
23
+        this.businessdate = "";
24
+        this.supertel = "";
25
+        this.superdate = "";
26
+        this.superstat = "";
27
+        this.brno = "";
28
+        this.ext1 = "";
29
+        this.ext2 = "";
30
+    }
31
+
32
+    /**
33
+     * 将对象属性转换为字符串数组
34
+     * @returns 包含对象属性值的字符串数组
35
+     */
36
+    public ChangeToTable(): string[] {
37
+        return [this.id, this.serialno, this.businessdate, this.supertel, this.superdate, this.superstat, this.brno, this.ext1, this.ext2];
38
+    }
39
+
40
+    /**
41
+     * 从对象数组中读取数据并赋值给当前对象的属性
42
+     * @param parms 包含数据的对象数组
43
+     */
44
+    public ChangeFromTable(parms: any[]): void {
45
+        this.id = parms[0].toString();
46
+        this.serialno = parms[1].toString();
47
+        this.businessdate = parms[2].toString();
48
+        this.supertel = parms[3].toString();
49
+        this.superdate = parms[4].toString();
50
+        this.superstat = parms[5].toString();
51
+        this.brno = parms[6].toString();
52
+        this.ext1 = parms[7].toString();
53
+        this.ext2 = parms[8].toString();
54
+    }
55
+}
56
+
57
+export { AfterRecords };

+ 43
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterShip.ts View File

@@ -0,0 +1,43 @@
1
+// 假设 IEntity 接口的定义如下,如果实际有不同定义,需要根据实际情况修改
2
+interface IEntity {
3
+    // 这里可以根据实际 IEntity 接口的定义添加方法或属性
4
+}
5
+
6
+class AfterShip implements IEntity {
7
+    // 机构号
8
+    kinbrno: string;
9
+    // 机构名称
10
+    kinbrname: string;
11
+    // 柜员号
12
+    tellerno: string;
13
+    // 柜员名
14
+    tellername: string;
15
+
16
+    constructor() {
17
+        this.kinbrno = '';
18
+        this.kinbrname = '';
19
+        this.tellerno = '';
20
+        this.tellername = '';
21
+    }
22
+
23
+    /**
24
+     * 将实体属性转换为字符串数组
25
+     * @returns 包含实体属性值的字符串数组
26
+     */
27
+    ChangeToTable(): string[] {
28
+        return [this.kinbrno, this.kinbrname, this.tellerno, this.tellername];
29
+    }
30
+
31
+    /**
32
+     * 从对象数组中读取数据并赋值给实体属性
33
+     * @param parms 包含数据的对象数组
34
+     */
35
+    ChangeFromTable(parms: any[]): void {
36
+        this.kinbrno = parms[0].toString();
37
+        this.kinbrname = parms[1].toString();
38
+        this.tellerno = parms[2].toString();
39
+        this.tellername = parms[3].toString();
40
+    }
41
+}
42
+
43
+export { AfterShip };

+ 55
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterStat.ts View File

@@ -0,0 +1,55 @@
1
+// 导入必要的类型定义,在 TypeScript 中一般不需要像 C# 那样导入基础库
2
+// 这里假设 IEntity 是一个接口,需要在其他文件中定义
3
+
4
+// 定义 IEntity 接口,如果已经在其他文件定义,可忽略此定义
5
+export interface IEntity {
6
+    // 这里可以根据实际情况添加 IEntity 接口的属性或方法
7
+}
8
+
9
+/**
10
+ * 事后监督状态实体类
11
+ */
12
+export class AfterStat implements IEntity {
13
+    // 交易日期
14
+    public datetime: string;
15
+    // 机构号
16
+    public kinbrno: string;
17
+    // 机构名称
18
+    public kinbrname: string;
19
+    // 开始时间
20
+    public starttime: string;
21
+    // 结束时间
22
+    public endtime: string;
23
+    // 状态
24
+    public stat: string;
25
+
26
+    constructor() {
27
+        this.datetime = '';
28
+        this.kinbrno = '';
29
+        this.kinbrname = '';
30
+        this.starttime = '';
31
+        this.endtime = '';
32
+        this.stat = '';
33
+    }
34
+
35
+    /**
36
+     * 将实体属性转换为字符串数组
37
+     * @returns 包含实体属性的字符串数组
38
+     */
39
+    public ChangeToTable(): string[] {
40
+        return [this.datetime, this.kinbrno, this.kinbrname, this.stat, this.starttime, this.endtime];
41
+    }
42
+
43
+    /**
44
+     * 从对象数组中获取值并赋值给实体属性
45
+     * @param parms 对象数组,包含要赋值给实体属性的值
46
+     */
47
+    public ChangeFromTable(parms: any[]): void {
48
+        this.datetime = parms[0].toString();
49
+        this.kinbrno = parms[1].toString();
50
+        this.kinbrname = parms[2].toString();
51
+        this.stat = parms[3].toString();
52
+        this.starttime = parms[4].toString();
53
+        this.endtime = parms[5].toString();
54
+    }
55
+}

+ 40
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AfterTask.ts View File

@@ -0,0 +1,40 @@
1
+// 定义接口 IEntity,这里因为 C# 代码中未明确其内容,暂时为空
2
+interface IEntity {}
3
+
4
+/**
5
+ * 事后监督==按任务监督
6
+ */
7
+class AfterTask implements IEntity {
8
+    // 交易类型
9
+    worktype: string;
10
+    // 监督金额
11
+    supersum: string;
12
+    // 监督百分比
13
+    proportion: string;
14
+
15
+    constructor(worktype: string = '', supersum: string = '', proportion: string = '') {
16
+        this.worktype = worktype;
17
+        this.supersum = supersum;
18
+        this.proportion = proportion;
19
+    }
20
+
21
+    /**
22
+     * 将属性转换为字符串数组
23
+     * @returns 包含 worktype、supersum、proportion 的字符串数组
24
+     */
25
+    ChangeToTable(): string[] {
26
+        return [this.worktype, this.supersum, this.proportion];
27
+    }
28
+
29
+    /**
30
+     * 从对象数组中获取数据并赋值给当前实例的属性
31
+     * @param parms 包含数据的对象数组
32
+     */
33
+    ChangeFromTable(parms: any[]): void {
34
+        this.worktype = parms[0].toString();
35
+        this.supersum = parms[1].toString();
36
+        this.proportion = parms[2].toString();
37
+    }
38
+}
39
+
40
+export { AfterTask };

+ 114
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AppRecordInfo.ts View File

@@ -0,0 +1,114 @@
1
+// 假设 IEntity 接口定义在某个地方,这里先简单定义一个空接口作为示例
2
+interface IEntity {}
3
+
4
+/**
5
+ * 用来审批操作
6
+ */
7
+class AppRecordInfo implements IEntity {
8
+    /**
9
+     * 总流水
10
+     */
11
+    serialid: string;
12
+    /**
13
+     * 柜员流水
14
+     */
15
+    serialno: string;
16
+    /**
17
+     * 所属名称
18
+     */
19
+    belongname: string;
20
+    /**
21
+     * 用户编号
22
+     */
23
+    teller: string;
24
+    /**
25
+     * 机构编号
26
+     */
27
+    branch: string;
28
+    /**
29
+     * 申请时间
30
+     */
31
+    apptime: string;
32
+    /**
33
+     * 申请状态 1.待审核 2.已通过。3。拒绝
34
+     */
35
+    status: string;
36
+    /**
37
+     * 维护类型 1.增加 2.修改
38
+     */
39
+    maintaintype: string;
40
+    /**
41
+     * 申请描述
42
+     */
43
+    passremark: string;
44
+    /**
45
+     * 拒绝描述
46
+     */
47
+    refuseremark: string;
48
+    /**
49
+     * 审核人员
50
+     */
51
+    examineteller: string;
52
+    /**
53
+     * 审核时间
54
+     */
55
+    examinedate: string;
56
+
57
+    constructor() {
58
+        // 初始化属性
59
+        this.serialid = '';
60
+        this.serialno = '';
61
+        this.belongname = '';
62
+        this.teller = '';
63
+        this.branch = '';
64
+        this.apptime = '';
65
+        this.status = '';
66
+        this.maintaintype = '';
67
+        this.passremark = '';
68
+        this.refuseremark = '';
69
+        this.examineteller = '';
70
+        this.examinedate = '';
71
+    }
72
+
73
+    /**
74
+     * 从数组参数中更改实体属性值
75
+     * @param parms 参数数组
76
+     */
77
+    ChangeFromTable(parms: any[]): void {
78
+        this.serialid = parms[0].toString();
79
+        this.serialno = parms[1].toString();
80
+        this.belongname = parms[2].toString();
81
+        this.teller = parms[3].toString();
82
+        this.branch = parms[4].toString();
83
+        this.apptime = parms[5].toString();
84
+        this.status = parms[6].toString();
85
+        this.maintaintype = parms[7].toString();
86
+        this.passremark = parms[8].toString();
87
+        this.refuseremark = parms[9].toString();
88
+        this.examineteller = parms[10].toString();
89
+        this.examinedate = parms[11].toString();
90
+    }
91
+
92
+    /**
93
+     * 将实体属性值转换为字符串数组
94
+     * @returns 包含实体属性值的字符串数组
95
+     */
96
+    ChangeToTable(): string[] {
97
+        return [
98
+            this.serialid,
99
+            this.serialno,
100
+            this.belongname,
101
+            this.teller,
102
+            this.branch,
103
+            this.apptime,
104
+            this.status,
105
+            this.maintaintype,
106
+            this.passremark,
107
+            this.refuseremark,
108
+            this.examineteller,
109
+            this.examinedate
110
+        ];
111
+    }
112
+}
113
+
114
+export default AppRecordInfo;

+ 71
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AskAuthInfo.ts View File

@@ -0,0 +1,71 @@
1
+// 定义 IEntity 接口,这里假设其为空,可根据实际情况补充
2
+interface IEntity {}
3
+
4
+/**
5
+ * 询问授权信息的类
6
+ * @author Administrator
7
+ * @date 2013-5-27 9:05:21
8
+ */
9
+class AskAuthInfo implements IEntity {
10
+    // 序列号
11
+    public serialID: string;
12
+    // 工作流 ID
13
+    public WorkFlowID: string;
14
+    // 模式
15
+    public model: number;
16
+    // 描述
17
+    public des: string;
18
+    // 账号
19
+    public accountno: string;
20
+    // 客户姓名
21
+    public custname: string;
22
+    // 金额
23
+    public amount: string;
24
+    // 柜员号
25
+    public TellerNo: string;
26
+
27
+    constructor() {
28
+        this.serialID = "";
29
+        this.WorkFlowID = "";
30
+        this.model = 0;
31
+        this.des = "";
32
+        this.accountno = "";
33
+        this.custname = "";
34
+        this.amount = "";
35
+        this.TellerNo = "";
36
+    }
37
+
38
+    /**
39
+     * 将对象属性转换为字符串数组
40
+     * @returns 包含对象属性值的字符串数组
41
+     */
42
+    public ChangeToTable(): string[] {
43
+        return [
44
+            this.serialID,
45
+            this.WorkFlowID,
46
+            this.model.toString(),
47
+            this.des,
48
+            this.accountno,
49
+            this.custname,
50
+            this.amount,
51
+            this.TellerNo
52
+        ];
53
+    }
54
+
55
+    /**
56
+     * 从对象数组中读取数据填充当前对象的属性
57
+     * @param parms 包含数据的对象数组
58
+     */
59
+    public ChangeFromTable(parms: any[]): void {
60
+        this.serialID = parms[0].toString();
61
+        this.WorkFlowID = parms[1].toString();
62
+        this.model = parseInt(parms[2].toString(), 10);
63
+        this.des = parms[3].toString();
64
+        this.accountno = parms[4].toString();
65
+        this.custname = parms[5].toString();
66
+        this.amount = parms[6].toString();
67
+        this.TellerNo = parms[7].toString();
68
+    }
69
+}
70
+
71
+export { AskAuthInfo };

+ 62
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AskSuperInfo.ts View File

@@ -0,0 +1,62 @@
1
+// 定义 IEntity 接口,对应 C# 中的接口
2
+interface IEntity {
3
+    // 这里可以根据实际需求添加接口方法,原 C# 中未体现接口方法,暂时为空
4
+}
5
+
6
+// 定义 AskSuperInfo 类,实现 IEntity 接口
7
+class AskSuperInfo implements IEntity {
8
+    // 定义类的属性,和 C# 中属性保持一致
9
+    serialID: string;
10
+    WorkFlowID: string;
11
+    des: string;
12
+    accountno: string;
13
+    custname: string;
14
+    amount: number;
15
+    TellerNo: string;
16
+
17
+    // 构造函数,用于初始化类的属性
18
+    constructor(
19
+        serialID: string = '',
20
+        WorkFlowID: string = '',
21
+        des: string = '',
22
+        accountno: string = '',
23
+        custname: string = '',
24
+        amount: number = 0,
25
+        TellerNo: string = ''
26
+    ) {
27
+        this.serialID = serialID;
28
+        this.WorkFlowID = WorkFlowID;
29
+        this.des = des;
30
+        this.accountno = accountno;
31
+        this.custname = custname;
32
+        this.amount = amount;
33
+        this.TellerNo = TellerNo;
34
+    }
35
+
36
+    // 实现 ChangeToTable 方法,将对象属性转换为字符串数组
37
+    ChangeToTable(): string[] {
38
+        return [
39
+            this.serialID,
40
+            this.WorkFlowID,
41
+            this.des,
42
+            this.accountno,
43
+            this.custname,
44
+            this.amount.toString(),
45
+            this.TellerNo
46
+        ];
47
+    }
48
+
49
+    // 实现 ChangeFromTable 方法,从对象数组中读取数据并赋值给类的属性
50
+    ChangeFromTable(parms: any[]): void {
51
+        this.serialID = parms[0].toString();
52
+        this.WorkFlowID = parms[1].toString();
53
+        this.des = parms[2].toString();
54
+        this.accountno = parms[3].toString();
55
+        this.custname = parms[4].toString();
56
+        this.amount = parseFloat(parms[5].toString());
57
+        this.TellerNo = parms[6].toString();
58
+    }
59
+}
60
+
61
+// 导出 AskSuperInfo 类,方便其他文件使用
62
+export { AskSuperInfo };

+ 43
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthCondInf.ts View File

@@ -0,0 +1,43 @@
1
+// 假设 IEntity 是一个空接口,因为原代码中未给出其定义
2
+interface IEntity {}
3
+
4
+class AuthCondInf implements IEntity {
5
+    public Tx_code: string;
6
+    public Seqn: number;
7
+    public Mod: string;
8
+    public Cond: string;
9
+    public Des: string;
10
+    public Uncondflag: number;
11
+    public Funcnum: string;
12
+    public Ext: string;
13
+
14
+    constructor() {
15
+        this.Tx_code = "";
16
+        this.Seqn = 0;
17
+        this.Mod = "";
18
+        this.Cond = "";
19
+        this.Des = "";
20
+        this.Uncondflag = 0;
21
+        this.Funcnum = "";
22
+        this.Ext = "";
23
+    }
24
+
25
+    public ChangeToTable(): string[] {
26
+        return [this.Tx_code, this.Seqn.toString(), this.Mod, this.Cond, this.Des, this.Uncondflag.toString(), this.Funcnum, this.Ext];
27
+    }
28
+
29
+    public ChangeFromTable(parms: any[]): void {
30
+        if (parms.length === 8) {
31
+            this.Tx_code = parms[0].toString();
32
+            this.Seqn = parseInt(parms[1].toString(), 10);
33
+            this.Mod = parms[2].toString();
34
+            this.Cond = parms[3].toString();
35
+            this.Des = parms[4].toString();
36
+            this.Uncondflag = parseInt(parms[5].toString(), 10);
37
+            this.Funcnum = parms[6].toString();
38
+            this.Ext = parms[7].toString();
39
+        }
40
+    }
41
+}
42
+
43
+export { AuthCondInf };

+ 31
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthResult.ts View File

@@ -0,0 +1,31 @@
1
+// 引入必要的类型声明,在 TypeScript 中没有与 C# 这些命名空间严格对应的直接导入,这里只是形式上保留
2
+// 实际使用时需要根据具体的类型定义和依赖情况进行调整
3
+// 这里假设后续使用到的类型在全局作用域或者其他合适的地方有定义
4
+
5
+// 定义 AuthResult 类,对应 C# 中的 AuthResult 类
6
+class AuthResult {
7
+    // 授权结果,对应 C# 中的 IsSuccess 属性
8
+    public IsSuccess: boolean;
9
+    // 授权结果提示信息,对应 C# 中的 Msg 属性
10
+    public Msg: string;
11
+
12
+    // 构造函数,用于初始化对象
13
+    constructor(isSuccess: boolean = false, msg: string = "") {
14
+        this.IsSuccess = isSuccess;
15
+        this.Msg = msg;
16
+    }
17
+
18
+    // 将对象属性转换为字符串数组的方法,对应 C# 中的 ChangeToTable 方法
19
+    public ChangeToTable(): string[] {
20
+        return [this.IsSuccess.toString(), this.Msg];
21
+    }
22
+
23
+    // 从对象数组中读取数据并赋值给当前对象属性的方法,对应 C# 中的 ChangeFromTable 方法
24
+    public ChangeFromTable(parms: any[]): void {
25
+        this.IsSuccess = Boolean(parms[0]);
26
+        this.Msg = String(parms[1]);
27
+    }
28
+}
29
+
30
+// 导出 AuthResult 类,方便在其他地方使用
31
+export { AuthResult };

+ 82
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/AuthTransRecords.ts View File

@@ -0,0 +1,82 @@
1
+// 假设存在 IEntity 接口的定义,如果没有,需要额外补充
2
+interface IEntity {
3
+    // 这里可以根据实际情况补充 IEntity 接口的属性和方法
4
+}
5
+
6
+/**
7
+ * 
8
+ * 
9
+ * @author Administrator
10
+ * @date 2013-5-30 11:06:05
11
+ */
12
+class AuthTransRecords implements IEntity {
13
+    public Records: string;
14
+    public TranTellerLvl: string;
15
+    public Tellerno: string;
16
+    public TranTellerno: string;
17
+    public ToTellerLvl: string;
18
+    public ToTellerNo: string;
19
+    public ToTellerName: string;
20
+    public TransType: number;
21
+    public BackType: number;
22
+    public BeginTime: string;
23
+    public EndTime: string;
24
+    public TakeTime: string;
25
+    public BackTime: string;
26
+    public AuthState: string;
27
+    public AuthLevel: string;
28
+    public RecvType: string;
29
+    public TellerName: string;
30
+
31
+    /**
32
+     * 从数组参数中初始化对象属性
33
+     * @param parms 包含属性值的数组
34
+     */
35
+    public ChangeFromTable(parms: any[]): void {
36
+        this.Records = parms[0].toString();
37
+        this.TranTellerLvl = parms[1].toString();
38
+        this.Tellerno = parms[2].toString();
39
+        this.TranTellerno = parms[3].toString();
40
+        this.ToTellerLvl = parms[4].toString();
41
+        this.ToTellerNo = parms[5].toString();
42
+        this.ToTellerName = parms[6].toString();
43
+        this.TransType = parseInt(parms[7].toString(), 10);
44
+        this.BackType = parseInt(parms[8].toString(), 10);
45
+        this.BeginTime = parms[9].toString();
46
+        this.EndTime = parms[10].toString();
47
+        this.TakeTime = parms[11].toString();
48
+        this.BackTime = parms[12].toString();
49
+        this.AuthLevel = parms[13].toString();
50
+        this.AuthState = parms[14].toString();
51
+        this.RecvType = parms[15].toString();
52
+        this.TellerName = parms[16].toString();
53
+    }
54
+
55
+    /**
56
+     * 将对象属性转换为字符串数组
57
+     * @returns 包含属性值的字符串数组
58
+     */
59
+    public ChangeToTable(): string[] {
60
+        return [
61
+            this.Records,
62
+            this.TranTellerLvl,
63
+            this.Tellerno,
64
+            this.TranTellerno,
65
+            this.ToTellerLvl,
66
+            this.ToTellerNo,
67
+            this.ToTellerName,
68
+            this.TransType.toString(),
69
+            this.BackType.toString(),
70
+            this.BeginTime,
71
+            this.EndTime,
72
+            this.TakeTime,
73
+            this.BackTime,
74
+            this.AuthLevel,
75
+            this.AuthState,
76
+            this.RecvType,
77
+            this.TellerName
78
+        ];
79
+    }
80
+}
81
+
82
+export { AuthTransRecords };

+ 149
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatInfo.ts View File

@@ -0,0 +1,149 @@
1
+// 导入必要的类型
2
+// 这里假设存在类似 IEntity 的接口定义,若没有则需要根据实际情况补充
3
+interface IEntity {
4
+    // 可以根据实际情况补充 IEntity 接口的具体属性和方法
5
+}
6
+
7
+/**
8
+ * BatInfo 类,对应批量详情查询表 bat_info 的实体类
9
+ */
10
+export class BatInfo implements IEntity {
11
+    /**
12
+     * 系统编号
13
+     */
14
+    public syscode: string;
15
+
16
+    /**
17
+     * 批量编码
18
+     */
19
+    public batcode: string;
20
+
21
+    /**
22
+     * 子系统编号
23
+     */
24
+    public batsubcode: string;
25
+
26
+    /**
27
+     * 批量名称
28
+     */
29
+    public batname: string;
30
+
31
+    /**
32
+     * 批量说明
33
+     */
34
+    public batdesp: string;
35
+
36
+    /**
37
+     * 批量处理状态
38
+     * 0: 未处理
39
+     * 1: 正在处理
40
+     * 2: 已成功
41
+     * 3: 批量失败
42
+     */
43
+    public stat: string;
44
+
45
+    /**
46
+     * 是否需要重做
47
+     */
48
+    public isredo: string;
49
+
50
+    /**
51
+     * 本批次子批次数量
52
+     */
53
+    public batnum: string;
54
+
55
+    /**
56
+     * 已执行子批次数量
57
+     */
58
+    public batovernum: string;
59
+
60
+    /**
61
+     * 剩余子批次数
62
+     */
63
+    public remainingnum: string;
64
+
65
+    /**
66
+     * 已执行时间
67
+     */
68
+    public batovertime: string;
69
+
70
+    /**
71
+     * 预计执行时间
72
+     */
73
+    public expecttime: string;
74
+
75
+    /**
76
+     * 营业日期,格式为 "yyyyMMdd"
77
+     */
78
+    public tx_date: string;
79
+
80
+    /**
81
+     * 最后更新日期,格式为 "yyyy-MM-dd HH:mm:ss"
82
+     */
83
+    public end_date: string;
84
+
85
+    /**
86
+     * 操作员
87
+     */
88
+    public opteller: string;
89
+
90
+    /**
91
+     * 复核员
92
+     */
93
+    public chkteller: string;
94
+
95
+    /**
96
+     * 预留字段1
97
+     */
98
+    public filler1: string;
99
+
100
+    /**
101
+     * 从对象数组中初始化 BatInfo 实例的属性
102
+     * @param parms - 对象数组,包含各属性的值
103
+     */
104
+    public ChangeFromTable(parms: any[]): void {
105
+        this.syscode = parms[0].toString();
106
+        this.batcode = parms[1].toString();
107
+        this.batsubcode = parms[2].toString();
108
+        this.batname = parms[3].toString();
109
+        this.batdesp = parms[4].toString();
110
+        this.stat = parms[5].toString();
111
+        this.isredo = parms[6].toString();
112
+        this.batnum = parms[7].toString();
113
+        this.batovernum = parms[8].toString();
114
+        this.remainingnum = parms[9].toString();
115
+        this.batovertime = parms[10].toString();
116
+        this.expecttime = parms[11].toString();
117
+        this.end_date = parms[12].toString();
118
+        this.opteller = parms[13].toString();
119
+        this.chkteller = parms[14].toString();
120
+        this.filler1 = parms[15].toString();
121
+        this.tx_date = parms[16].toString();
122
+    }
123
+
124
+    /**
125
+     * 将 BatInfo 实例的属性转换为字符串数组
126
+     * @returns 包含各属性值的字符串数组
127
+     */
128
+    public ChangeToTable(): string[] {
129
+        return [
130
+            this.syscode,
131
+            this.batcode,
132
+            this.batsubcode,
133
+            this.batname,
134
+            this.batdesp,
135
+            this.stat,
136
+            this.isredo,
137
+            this.batnum,
138
+            this.batovernum,
139
+            this.remainingnum,
140
+            this.batovertime,
141
+            this.expecttime,
142
+            this.end_date,
143
+            this.opteller,
144
+            this.chkteller,
145
+            this.filler1,
146
+            this.tx_date
147
+        ];
148
+    }
149
+}

+ 32
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatSysConfig.ts View File

@@ -0,0 +1,32 @@
1
+// 定义接口 IEntity,这里因为原 C# 中 IEntity 为空,TypeScript 中用空接口表示
2
+interface IEntity {}
3
+
4
+// 定义 BatSysConfig 类,实现 IEntity 接口
5
+class BatSysConfig implements IEntity {
6
+    // 外围系统编码
7
+    public code: string;
8
+    // 外围系统名称
9
+    public sys_name: string;
10
+    // 外围系统关系
11
+    public relation: string;
12
+
13
+    constructor() {
14
+        this.code = '';
15
+        this.sys_name = '';
16
+        this.relation = '';
17
+    }
18
+
19
+    // 从数组参数中更新类的属性
20
+    public ChangeFromTable(parms: any[]): void {
21
+        this.code = parms[0].toString();
22
+        this.sys_name = parms[1].toString();
23
+        this.relation = parms[2].toString();
24
+    }
25
+
26
+    // 将类的属性转换为字符串数组
27
+    public ChangeToTable(): string[] {
28
+        return [this.code, this.sys_name, this.relation];
29
+    }
30
+}
31
+
32
+export { BatSysConfig };

+ 129
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/BatSysInfo.ts View File

@@ -0,0 +1,129 @@
1
+// 定义接口 IEntity,类似于 C# 中的接口定义
2
+interface IEntity {
3
+    ChangeFromTable(parms: any[]): void;
4
+    ChangeToTable(): string[];
5
+}
6
+
7
+// 定义 BatSysInfo 类,实现 IEntity 接口
8
+class BatSysInfo implements IEntity {
9
+    // 批量编码
10
+    batcode: string;
11
+    // 批量名称
12
+    batname: string;
13
+    // 批量说明
14
+    batdesp: string;
15
+    // 系统编号
16
+    syscode: string;
17
+    // 主顺序号
18
+    mainseqn: string;
19
+    // 批量处理状态  0:未处理  1:正在处理  2:已成功  3:批量失败
20
+    stat: string;
21
+    // 营业日期   "yyyyMMdd"
22
+    tx_date: string;
23
+    // 开始时间 "yyyy-MM-dd HH:mm:ss"
24
+    beg_date: string;
25
+    // 结束日期 "yyyy-MM-dd HH:mm:ss"
26
+    end_date: string;
27
+    // 用时     "hh:mm:ss"
28
+    elapsetime: TimeSpan;
29
+    // 操作员
30
+    opteller: string;
31
+    // 复核员
32
+    chkteller: string;
33
+    // 批量子批量数
34
+    subcnt: string;
35
+    // 是否自动批量  0:不参与自动跑批  1:参与自动跑批
36
+    bat_ind: string;
37
+    // 预留字段1
38
+    filler1: string;
39
+    // 预留字段2
40
+    filler2: string;
41
+    // 查看详情时定位自动刷新的时间
42
+    refreshtime: string;
43
+    // 批量启动前置校验, 0:不校验 1: 校验
44
+    batcheck: string;
45
+
46
+    constructor() {
47
+        // 初始化 elapsetime 为 TimeSpan 的最小值
48
+        this.elapsetime = TimeSpan.MinValue;
49
+    }
50
+
51
+    // 从数组参数中更新对象属性
52
+    ChangeFromTable(parms: any[]): void {
53
+        this.batcode = parms[0].toString();
54
+        this.batname = parms[1].toString();
55
+        this.batdesp = parms[2].toString();
56
+        this.syscode = parms[3].toString();
57
+        this.mainseqn = parms[4].toString();
58
+        this.stat = parms[5].toString();
59
+        this.tx_date = parms[6].toString();
60
+        this.beg_date = parms[7].toString();
61
+        this.end_date = parms[8].toString();
62
+        try {
63
+            this.elapsetime = TimeSpan.parse(parms[9].toString());
64
+        } catch (error) {
65
+            this.elapsetime = TimeSpan.MinValue;
66
+        }
67
+        this.opteller = parms[10].toString();
68
+        this.chkteller = parms[11].toString();
69
+        this.subcnt = parms[12].toString();
70
+        this.bat_ind = parms[13].toString();
71
+        this.filler1 = parms[14].toString();
72
+        this.filler2 = parms[15].toString();
73
+        this.refreshtime = parms[16].toString();
74
+        this.batcheck = parms[17].toString();
75
+    }
76
+
77
+    // 将对象属性转换为字符串数组
78
+    ChangeToTable(): string[] {
79
+        return [
80
+            this.batcode,
81
+            this.batname,
82
+            this.batdesp,
83
+            this.syscode,
84
+            this.mainseqn,
85
+            this.stat,
86
+            this.tx_date,
87
+            this.beg_date,
88
+            this.end_date,
89
+            this.elapsetime.toString('hh:mm:ss'),
90
+            this.opteller,
91
+            this.chkteller,
92
+            this.subcnt,
93
+            this.bat_ind,
94
+            this.filler1,
95
+            this.filler2,
96
+            this.refreshtime,
97
+            this.batcheck
98
+        ];
99
+    }
100
+}
101
+
102
+// 自定义 TimeSpan 类,用于处理时间间隔
103
+class TimeSpan {
104
+    static MinValue: TimeSpan = new TimeSpan(0, 0, 0);
105
+
106
+    private hours: number;
107
+    private minutes: number;
108
+    private seconds: number;
109
+
110
+    constructor(hours: number, minutes: number, seconds: number) {
111
+        this.hours = hours;
112
+        this.minutes = minutes;
113
+        this.seconds = seconds;
114
+    }
115
+
116
+    static parse(str: string): TimeSpan {
117
+        const parts = str.split(':');
118
+        const hours = parseInt(parts[0], 10);
119
+        const minutes = parseInt(parts[1], 10);
120
+        const seconds = parseInt(parts[2], 10);
121
+        return new TimeSpan(hours, minutes, seconds);
122
+    }
123
+
124
+    toString(format: string): string {
125
+        return `${this.hours.toString().padStart(2, '0')}:${this.minutes.toString().padStart(2, '0')}:${this.seconds.toString().padStart(2, '0')}`;
126
+    }
127
+}
128
+
129
+export { BatSysInfo };

+ 49
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/CheckInfo.ts View File

@@ -0,0 +1,49 @@
1
+// 引入必要的命名空间(在 TypeScript 中通常不需要引入像 C# 那样的命名空间,这里是概念对应)
2
+// 这里没有实际对应的 TypeScript 命名空间引入,因为 TS 没有完全一样的机制
3
+
4
+// 定义接口 IEntity(由于原 C# 中 IEntity 为空,这里也先空着)
5
+interface IEntity {}
6
+
7
+/**
8
+ * 检查信息类
9
+ * 
10
+ * @author Administrator
11
+ * @date 2013-5-17 15:12:22
12
+ */
13
+class CheckInfo implements IEntity {
14
+    // 定义类的属性
15
+    public tx_code: string;
16
+    public element: string;
17
+    public funcnum: string;
18
+    public flag: number;
19
+
20
+    // 构造函数,用于初始化对象
21
+    constructor(tx_code: string = '', element: string = '', funcnum: string = '', flag: number = 0) {
22
+        this.tx_code = tx_code;
23
+        this.element = element;
24
+        this.funcnum = funcnum;
25
+        this.flag = flag;
26
+    }
27
+
28
+    /**
29
+     * 将对象属性转换为字符串数组
30
+     * @returns 包含对象属性值的字符串数组
31
+     */
32
+    public ChangeToTable(): string[] {
33
+        return [this.tx_code, this.element, this.funcnum, this.flag.toString()];
34
+    }
35
+
36
+    /**
37
+     * 从对象数组中提取数据并赋值给当前对象的属性
38
+     * @param parms 包含数据的对象数组
39
+     */
40
+    public ChangeFromTable(parms: any[]): void {
41
+        this.tx_code = parms[0].toString();
42
+        this.element = parms[1].toString();
43
+        this.funcnum = parms[2].toString();
44
+        this.flag = parseInt(parms[3].toString(), 10);
45
+    }
46
+}
47
+
48
+// 导出类,方便其他文件使用
49
+export { CheckInfo };

+ 52
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/CheckResult.ts View File

@@ -0,0 +1,52 @@
1
+// 导入必要的类型定义(虽然这里没有实际用到其他模块,但为了保持结构一致列出)
2
+import { IEntity } from '../../../platfrom/serviceproxy/ServiceFunction/Interfaces/IEntity'; // 请根据实际情况替换路径
3
+
4
+/**
5
+ * 检查结果实体类
6
+ * 
7
+ * @author Administrator
8
+ * @date 2013-5-17 15:29:46
9
+ */
10
+class CheckResult implements IEntity {
11
+    // 定义类的属性
12
+    mode: string;
13
+    lvl: string;
14
+    brno: string;
15
+    checkresult: boolean;
16
+    des: string;
17
+    personnum: string;
18
+
19
+    // 构造函数,用于初始化对象属性
20
+    constructor() {
21
+        this.mode = '';
22
+        this.lvl = '';
23
+        this.brno = '';
24
+        this.checkresult = false;
25
+        this.des = '';
26
+        this.personnum = '';
27
+    }
28
+
29
+    /**
30
+     * 将对象属性转换为字符串数组
31
+     * @returns 包含对象属性值的字符串数组
32
+     */
33
+    ChangeToTable(): string[] {
34
+        return [this.mode, this.lvl, this.brno, this.checkresult.toString(), this.des, this.personnum];
35
+    }
36
+
37
+    /**
38
+     * 从对象数组中读取数据并赋值给当前对象的属性
39
+     * @param parms 包含属性值的对象数组
40
+     */
41
+    ChangeFromTable(parms: any[]): void {
42
+        this.mode = parms[0].toString();
43
+        this.lvl = parms[1].toString();
44
+        this.brno = parms[2].toString();
45
+        this.checkresult = Boolean(parms[3].toString());
46
+        this.des = parms[4].toString();
47
+        this.personnum = parms[5].toString();
48
+    }
49
+}
50
+
51
+// 导出类,以便其他模块可以使用
52
+export { CheckResult };

+ 93
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/IdCheckRecords.ts View File

@@ -0,0 +1,93 @@
1
+import { IEntity } from '../../../platfrom/serviceproxy/ServiceFunction/Interfaces/IEntity'; // 请根据实际情况替换路径
2
+
3
+
4
+// 定义 IdCheckRecords 类,实现 IEntity 接口
5
+class IdCheckRecords implements IEntity {
6
+    // 主键
7
+    public ID: string;
8
+    // 流水号
9
+    public Serialid: string;
10
+    // 姓名
11
+    public Name: string;
12
+    // 身份证号
13
+    public Idno: string;
14
+    // 标识
15
+    // 0 未核实
16
+    // 1 已核实
17
+    public Marking: string;
18
+    // 核查原因
19
+    public Checkcasuse: string;
20
+    // 核查结果
21
+    // 0 公民身份号码与姓名一致,且存在照片
22
+    // 1 公民身份号码与姓名一致,但不存在照片
23
+    // 2 公民身份号码存在,但与姓名不匹配
24
+    // 3 公民身份号码不存在
25
+    // 4 其他错误
26
+    // 5 输入的参数错误,或其他错误
27
+    public Checkresult: string;
28
+    // 业务种类
29
+    // 0 银行账户业务
30
+    // 1 信贷和征信业务
31
+    // 2 支付结算业务
32
+    // 3 反洗钱业务
33
+    // 4 其他业务
34
+    public Type: string;
35
+    // 佐证证件
36
+    // 00:
37
+    // 01:户口薄
38
+    // 02:驾驶证
39
+    // 03:公安回执证明
40
+    // 04其他
41
+    public Proof: string;
42
+    // 备注
43
+    public Filler: string;
44
+    // 营业日期
45
+    public Businessdate: string;
46
+    // 机构号
47
+    public Branch: string;
48
+    // 柜员号
49
+    public Teller: string;
50
+    // 确认状态
51
+    public Stat: string;
52
+
53
+    // 从数组参数中获取数据并赋值给类的属性
54
+    public ChangeFromTable(parms: any[]): void {
55
+        this.Name = parms[0].toString();
56
+        this.Idno = parms[1].toString();
57
+        this.Marking = parms[2].toString();
58
+        this.Checkcasuse = parms[3].toString();
59
+        this.Checkresult = parms[4].toString();
60
+        this.Proof = parms[5].toString();
61
+        this.Teller = parms[6].toString();
62
+        this.Businessdate = parms[7].toString();
63
+        this.Branch = parms[8].toString();
64
+        this.Filler = parms[9].toString();
65
+        this.Type = parms[10].toString();
66
+        this.Serialid = parms[11].toString();
67
+        this.ID = parms[12].toString();
68
+        this.Stat = parms[13].toString();
69
+    }
70
+
71
+    // 将类的属性值按特定顺序收集到数组中并返回
72
+    public ChangeToTable(): string[] {
73
+        return [
74
+            this.ID,
75
+            this.Serialid,
76
+            this.Name,
77
+            this.Idno,
78
+            this.Marking,
79
+            this.Checkcasuse,
80
+            this.Checkresult,
81
+            this.Type,
82
+            this.Proof,
83
+            this.Filler,
84
+            this.Businessdate,
85
+            this.Branch,
86
+            this.Teller,
87
+            this.Stat
88
+        ];
89
+    }
90
+}
91
+
92
+// 导出 IdCheckRecords 类,方便其他模块使用
93
+export { IdCheckRecords };

+ 58
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/IsAuthResult.ts View File

@@ -0,0 +1,58 @@
1
+// 定义 IEntity 接口,由于原 C# 中未给出定义,这里先简单占位
2
+import { IEntity } from '../../../platfrom/serviceproxy/ServiceFunction/Interfaces/IEntity'; // 请根据实际情况替换路径
3
+
4
+/**
5
+ * 授权结果类,实现 IEntity 接口
6
+ */
7
+class IsAuthResult implements IEntity {
8
+    /**
9
+     * 授权模式: 
10
+     * 1、本地授权
11
+     * 2、远程授权
12
+     * 3、即可本地又可远程授权
13
+     */
14
+    Mode: number;
15
+
16
+    /**
17
+     * 授权级别
18
+     */
19
+    Lvl: string;
20
+
21
+    /**
22
+     * 是否需要授权
23
+     */
24
+    Isauth: boolean;
25
+
26
+    /**
27
+     * 授权流水
28
+     */
29
+    Records: string;
30
+
31
+    constructor() {
32
+        this.Mode = 0;
33
+        this.Lvl = "";
34
+        this.Isauth = false;
35
+        this.Records = "";
36
+    }
37
+
38
+    /**
39
+     * 将授权结果转换为字符串数组
40
+     * @returns 包含授权模式、授权级别、是否授权、授权流水的字符串数组
41
+     */
42
+    ChangeToTable(): string[] {
43
+        return [this.Mode.toString(), this.Lvl, this.Isauth.toString(), this.Records];
44
+    }
45
+
46
+    /**
47
+     * 从对象数组中解析数据并填充到当前实例
48
+     * @param parms 包含授权信息的对象数组
49
+     */
50
+    ChangeFromTable(parms: any[]): void {
51
+        this.Mode = parseInt(parms[0].toString(), 10);
52
+        this.Lvl = parms[1].toString();
53
+        this.Isauth = Boolean(parms[2]);
54
+        this.Records = parms[3].toString();
55
+    }
56
+}
57
+
58
+export { IsAuthResult };

+ 45
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PageData.ts View File

@@ -0,0 +1,45 @@
1
+// 假设 IEntity 接口定义如下,若有实际定义请替换
2
+import { IEntity } from '../../../platfrom/serviceproxy/ServiceFunction/Interfaces/IEntity'; // 请根据实际情况替换路径
3
+
4
+/**
5
+ * 
6
+ * @author Administrator
7
+ * @date 2013-5-26 15:37:34
8
+ */
9
+class PageData implements IEntity {
10
+    /**
11
+     * 交易页面数据索引(多个交易页面展现顺序)
12
+     */
13
+    index: number;
14
+
15
+    /**
16
+     * 1序列化后的交易页面
17
+     */
18
+    datas: Uint8Array;
19
+
20
+    dataslength: number;
21
+
22
+    constructor(index: number = 0, datas: Uint8Array = new Uint8Array(), dataslength: number = 0) {
23
+        this.index = index;
24
+        this.datas = datas;
25
+        this.dataslength = dataslength;
26
+    }
27
+
28
+    /**
29
+     * 将数据转换为字符串数组
30
+     */
31
+    ChangeToTable(): string[] {
32
+        return [this.index.toString(), this.datas.length.toString()];
33
+    }
34
+
35
+    /**
36
+     * 从对象数组转换数据
37
+     * @param parms - 包含数据的对象数组
38
+     */
39
+    ChangeFromTable(parms: any[]): void {
40
+        this.index = parseInt(parms[0].toString(), 10);
41
+        this.dataslength = parseInt(parms[1].toString(), 10);
42
+    }
43
+}
44
+
45
+export { PageData };

+ 45
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PayBusinessKeyInfo.ts View File

@@ -0,0 +1,45 @@
1
+// 假设 IEntity 是一个空接口,若有实际定义需补充完整
2
+import { IEntity } from '../../../platfrom/serviceproxy/ServiceFunction/Interfaces/IEntity'; // 请根据实际情况替换路径
3
+
4
+
5
+class PayBusinessKeyInfo implements IEntity {
6
+    id: string;
7
+    // 单位编号(10)
8
+    compayNo: string;
9
+    // 签约日期(8)
10
+    signDate: string;
11
+    // 申请类型(1)
12
+    applyType: number;
13
+    // 手机号(11)
14
+    phoneNumber: string;
15
+    // 秘钥(16)
16
+    secretKey: string;
17
+    // 备用
18
+    ext: string;
19
+
20
+    constructor() {
21
+        this.id = "";
22
+        this.compayNo = "";
23
+        this.signDate = "";
24
+        this.applyType = 0;
25
+        this.phoneNumber = "";
26
+        this.secretKey = "";
27
+        this.ext = "";
28
+    }
29
+
30
+    ChangeToTable(): string[] {
31
+        return [this.id, this.compayNo, this.signDate, this.applyType.toString(), this.phoneNumber, this.secretKey, this.ext];
32
+    }
33
+
34
+    ChangeFromTable(parms: any[]): void {
35
+        this.id = parms[0].toString();
36
+        this.compayNo = parms[1].toString();
37
+        this.signDate = parms[2].toString();
38
+        this.applyType = parseInt(parms[3].toString(), 10);
39
+        this.phoneNumber = parms[4].toString();
40
+        this.secretKey = parms[5].toString();
41
+        this.ext = parms[6].toString();
42
+    }
43
+}
44
+
45
+export { PayBusinessKeyInfo };

+ 125
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PicpCheckRecords.ts View File

@@ -0,0 +1,125 @@
1
+// 假设 Platform.ServiceProxy.CommonFunction 对应的工具函数在下面的模块中实现
2
+import { ChangeDicToStr, ChangeStrToDic } from './CommonFunction';
3
+
4
+// 定义 IEntity 接口,由于原 C# 中未给出,这里简单定义
5
+interface IEntity {}
6
+
7
+/**
8
+ * 核查记录类,包含核查相关的各种信息,以及表格数据转换方法
9
+ */
10
+export class PicpCheckRecords implements IEntity {
11
+    /**
12
+     * 核查流水号
13
+     */
14
+    seqNo: string;
15
+
16
+    /**
17
+     * 流水号
18
+     */
19
+    serialNo: string;
20
+
21
+    /**
22
+     * 报文类型
23
+     */
24
+    msgNo: string;
25
+
26
+    /**
27
+     * 交易号
28
+     */
29
+    tradeNo: string;
30
+
31
+    /**
32
+     * 核查柜员
33
+     */
34
+    checkTel: string;
35
+
36
+    /**
37
+     * 核查机构
38
+     */
39
+    checkBrNo: string;
40
+
41
+    /**
42
+     * 核查方式
43
+     */
44
+    checkType: string;
45
+
46
+    /**
47
+     * 核查日期
48
+     */
49
+    checkDate: string;
50
+
51
+    /**
52
+     * 核查时间
53
+     */
54
+    checkTime: string;
55
+
56
+    /**
57
+     * 核查信息:身份证号,姓名
58
+     */
59
+    checkInfoKVs: { [key: string]: string };
60
+
61
+    /**
62
+     * 核查是否成功
63
+     */
64
+    success: string;
65
+
66
+    /**
67
+     * 备注
68
+     */
69
+    comments: string;
70
+
71
+    constructor() {
72
+        this.seqNo = '';
73
+        this.serialNo = '';
74
+        this.msgNo = '';
75
+        this.tradeNo = '';
76
+        this.checkTel = '';
77
+        this.checkBrNo = '';
78
+        this.checkType = '';
79
+        this.checkDate = '';
80
+        this.checkTime = '';
81
+        this.checkInfoKVs = {};
82
+        this.success = '';
83
+        this.comments = '';
84
+    }
85
+
86
+    /**
87
+     * 将当前对象的属性转换为字符串数组,用于表格展示或存储
88
+     * @returns 包含所有属性值的字符串数组
89
+     */
90
+    ChangeToTable(): string[] {
91
+        return [
92
+            this.seqNo,
93
+            this.serialNo,
94
+            this.msgNo,
95
+            this.tradeNo,
96
+            this.checkTel,
97
+            this.checkBrNo,
98
+            this.checkType,
99
+            this.checkDate,
100
+            this.checkTime,
101
+            ChangeDicToStr(this.checkInfoKVs),
102
+            this.success,
103
+            this.comments
104
+        ];
105
+    }
106
+
107
+    /**
108
+     * 从对象数组中读取数据并赋值给当前对象的属性
109
+     * @param parms 包含数据的对象数组
110
+     */
111
+    ChangeFromTable(parms: any[]): void {
112
+        this.seqNo = parms[0].toString();
113
+        this.serialNo = parms[1].toString();
114
+        this.msgNo = parms[2].toString();
115
+        this.tradeNo = parms[3].toString();
116
+        this.checkTel = parms[4].toString();
117
+        this.checkBrNo = parms[5].toString();
118
+        this.checkType = parms[6].toString();
119
+        this.checkDate = parms[7].toString();
120
+        this.checkTime = parms[8].toString();
121
+        this.checkInfoKVs = ChangeStrToDic(parms[9].toString());
122
+        this.success = parms[10].toString();
123
+        this.comments = parms[11].toString();
124
+    }
125
+}

+ 171
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PicpCheckResInfo.ts View File

@@ -0,0 +1,171 @@
1
+// 假设 IEntity 是一个接口,这里先简单定义,你可按需修改
2
+interface IEntity {}
3
+
4
+/**
5
+ * 该类表示 PICP 核查结果信息,包含返回报文类型、身份证号、姓名等核查相关信息,
6
+ * 并提供了将信息转换为数组和从数组加载信息的方法。
7
+ */
8
+class PicpCheckResInfo implements IEntity {
9
+    /**
10
+     * 返回报文类型
11
+     */
12
+    resMsgNo: string;
13
+
14
+    /**
15
+     * 身份证号
16
+     */
17
+    idNo: string;
18
+
19
+    /**
20
+     * 姓名
21
+     */
22
+    name: string;
23
+
24
+    /**
25
+     * 核查结果
26
+     */
27
+    checkResult: string;
28
+
29
+    /**
30
+     * 签发机构
31
+     */
32
+    issue: string;
33
+
34
+    /**
35
+     * 曾用名
36
+     */
37
+    formerName: string;
38
+
39
+    /**
40
+     * 性别
41
+     */
42
+    sex: string;
43
+
44
+    /**
45
+     * 生日
46
+     */
47
+    birthday: string;
48
+
49
+    /**
50
+     * 出生地
51
+     */
52
+    birthPlace: string;
53
+
54
+    /**
55
+     * 籍贯
56
+     */
57
+    nativePlace: string;
58
+
59
+    /**
60
+     * 文化程度
61
+     */
62
+    eduLevel: string;
63
+
64
+    /**
65
+     * 婚姻状况
66
+     */
67
+    marriage: string;
68
+
69
+    /**
70
+     * 职业
71
+     */
72
+    job: string;
73
+
74
+    /**
75
+     * 服务处所
76
+     */
77
+    engageAddr: string;
78
+
79
+    /**
80
+     * 住址
81
+     */
82
+    address: string;
83
+
84
+    /**
85
+     * 照片 64bit 压缩编码
86
+     */
87
+    photoData: number[];
88
+
89
+    /**
90
+     * 备注
91
+     */
92
+    comments: string;
93
+
94
+    /**
95
+     * 照片数据长度
96
+     */
97
+    photoDataLength: number;
98
+
99
+    constructor() {
100
+        this.resMsgNo = "";
101
+        this.idNo = "";
102
+        this.name = "";
103
+        this.checkResult = "";
104
+        this.issue = "";
105
+        this.formerName = "";
106
+        this.sex = "";
107
+        this.birthday = "";
108
+        this.birthPlace = "";
109
+        this.nativePlace = "";
110
+        this.eduLevel = "";
111
+        this.marriage = "";
112
+        this.job = "";
113
+        this.engageAddr = "";
114
+        this.address = "";
115
+        this.photoData = [];
116
+        this.comments = "";
117
+        this.photoDataLength = 0;
118
+    }
119
+
120
+    /**
121
+     * 将对象的属性转换为字符串数组
122
+     * @returns 包含对象属性值的字符串数组
123
+     */
124
+    ChangeToTable(): string[] {
125
+        return [
126
+            this.resMsgNo,
127
+            this.idNo,
128
+            this.name,
129
+            this.checkResult,
130
+            this.issue,
131
+            this.formerName,
132
+            this.sex,
133
+            this.birthday,
134
+            this.birthPlace,
135
+            this.nativePlace,
136
+            this.eduLevel,
137
+            this.marriage,
138
+            this.job,
139
+            this.engageAddr,
140
+            this.address,
141
+            this.comments,
142
+            this.photoData.length.toString()
143
+        ];
144
+    }
145
+
146
+    /**
147
+     * 从对象数组中加载数据到当前对象的属性中
148
+     * @param parms 包含数据的对象数组
149
+     */
150
+    ChangeFromTable(parms: any[]): void {
151
+        this.resMsgNo = parms[0].toString();
152
+        this.idNo = parms[1].toString();
153
+        this.name = parms[2].toString();
154
+        this.checkResult = parms[3].toString();
155
+        this.issue = parms[4].toString();
156
+        this.formerName = parms[5].toString();
157
+        this.sex = parms[6].toString();
158
+        this.birthday = parms[7].toString();
159
+        this.birthPlace = parms[8].toString();
160
+        this.nativePlace = parms[9].toString();
161
+        this.eduLevel = parms[10].toString();
162
+        this.marriage = parms[11].toString();
163
+        this.job = parms[12].toString();
164
+        this.engageAddr = parms[13].toString();
165
+        this.address = parms[14].toString();
166
+        this.comments = parms[15].toString();
167
+        this.photoDataLength = parseInt(parms[16].toString(), 10);
168
+    }
169
+}
170
+
171
+export { PicpCheckResInfo };

+ 229
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/PreAuthInfo.ts View File

@@ -0,0 +1,229 @@
1
+// 定义 IEntity 接口,对应 C# 里的接口
2
+interface IEntity {
3
+    ChangeFromTable(parms: any[]): void;
4
+    ChangeToTable(): string[];
5
+}
6
+
7
+// 预授权实体类
8
+export class PreAuthInfo implements IEntity {
9
+    // 交易号(预授权的交易)
10
+    private tradeNo: string;
11
+    // 交易流水号
12
+    private serialId: string;
13
+    // 账号
14
+    private accountNum: string;
15
+    // 金额
16
+    private amount: string;
17
+    // 户名
18
+    private custname: string;
19
+    // 积数
20
+    private count: string;
21
+    // 描述
22
+    private des: string;
23
+    // 有效天数
24
+    private askDays: number;
25
+    // 申请柜员
26
+    private askTeller: string;
27
+    // 申请机构号
28
+    private askKinbrno: string;
29
+    // 审批时间
30
+    private inspTime: string;
31
+    // 审批后有效天数
32
+    private inspDays: number;
33
+    // 上浮金额
34
+    private upAmount: number;
35
+    // 下浮金额
36
+    private downAmount: number;
37
+    // 交易页面
38
+    private pageData: Uint8Array;
39
+    // 标志位
40
+    private downIssued: boolean;
41
+    // 法人类型
42
+    private legalPerson: string;
43
+    // 当日借方累计金额
44
+    private sumAddAmt: string;
45
+
46
+    // 交易号属性
47
+    get TradeNo(): string {
48
+        return this.tradeNo;
49
+    }
50
+    set TradeNo(value: string) {
51
+        this.tradeNo = value;
52
+    }
53
+
54
+    // 交易流水号属性
55
+    get SerialId(): string {
56
+        return this.serialId;
57
+    }
58
+    set SerialId(value: string) {
59
+        this.serialId = value;
60
+    }
61
+
62
+    // 账号属性
63
+    get AccountNum(): string {
64
+        return this.accountNum;
65
+    }
66
+    set AccountNum(value: string) {
67
+        this.accountNum = value;
68
+    }
69
+
70
+    // 金额属性
71
+    get Amount(): string {
72
+        return this.amount;
73
+    }
74
+    set Amount(value: string) {
75
+        this.amount = value;
76
+    }
77
+
78
+    // 户名属性
79
+    get Custname(): string {
80
+        return this.custname;
81
+    }
82
+    set Custname(value: string) {
83
+        this.custname = value;
84
+    }
85
+
86
+    // 积数属性
87
+    get Count(): string {
88
+        return this.count;
89
+    }
90
+    set Count(value: string) {
91
+        this.count = value;
92
+    }
93
+
94
+    // 描述属性
95
+    get Des(): string {
96
+        return this.des;
97
+    }
98
+    set Des(value: string) {
99
+        this.des = value;
100
+    }
101
+
102
+    // 有效天数属性
103
+    get AskDays(): number {
104
+        return this.askDays;
105
+    }
106
+    set AskDays(value: number) {
107
+        this.askDays = value;
108
+    }
109
+
110
+    // 申请柜员属性
111
+    get AskTeller(): string {
112
+        return this.askTeller;
113
+    }
114
+    set AskTeller(value: string) {
115
+        this.askTeller = value;
116
+    }
117
+
118
+    // 申请机构号属性
119
+    get AskKinbrno(): string {
120
+        return this.askKinbrno;
121
+    }
122
+    set AskKinbrno(value: string) {
123
+        this.askKinbrno = value;
124
+    }
125
+
126
+    // 审批时间属性
127
+    get InspTime(): string {
128
+        return this.inspTime;
129
+    }
130
+    set InspTime(value: string) {
131
+        this.inspTime = value;
132
+    }
133
+
134
+    // 审批后有效天数属性
135
+    get InspDays(): number {
136
+        return this.inspDays;
137
+    }
138
+    set InspDays(value: number) {
139
+        this.inspDays = value;
140
+    }
141
+
142
+    // 上浮金额属性
143
+    get UpAmount(): number {
144
+        return this.upAmount;
145
+    }
146
+    set UpAmount(value: number) {
147
+        this.upAmount = value;
148
+    }
149
+
150
+    // 下浮金额属性
151
+    get DownAmount(): number {
152
+        return this.downAmount;
153
+    }
154
+    set DownAmount(value: number) {
155
+        this.downAmount = value;
156
+    }
157
+
158
+    // 交易页面属性
159
+    get PageData(): Uint8Array {
160
+        return this.pageData;
161
+    }
162
+    set PageData(value: Uint8Array) {
163
+        this.pageData = value;
164
+    }
165
+
166
+    // 标志位属性
167
+    get DownIssued(): boolean {
168
+        return this.downIssued;
169
+    }
170
+    set DownIssued(value: boolean) {
171
+        this.downIssued = value;
172
+    }
173
+
174
+    // 法人类型属性
175
+    get LegalPerson(): string {
176
+        return this.legalPerson;
177
+    }
178
+    set LegalPerson(value: string) {
179
+        this.legalPerson = value;
180
+    }
181
+
182
+    // 当日借方累计金额属性
183
+    get SumAddAmt(): string {
184
+        return this.sumAddAmt;
185
+    }
186
+    set SumAddAmt(value: string) {
187
+        this.sumAddAmt = value;
188
+    }
189
+
190
+    // 从数组中转换数据
191
+    ChangeFromTable(parms: any[]): void {
192
+        if (parms && parms.length === 14) {
193
+            this.tradeNo = parms[0].toString();
194
+            this.accountNum = parms[1].toString();
195
+            this.amount = parms[2].toString();
196
+            this.custname = parms[3].toString();
197
+            this.count = parms[4].toString();
198
+            this.des = parms[5].toString();
199
+            this.askDays = parseInt(parms[6].toString(), 10);
200
+            this.askTeller = parms[7].toString();
201
+            this.askKinbrno = parms[8].toString();
202
+            this.upAmount = parseFloat(parms[9].toString());
203
+            this.downAmount = parseFloat(parms[10].toString());
204
+            this.inspDays = parseInt(parms[11].toString(), 10);
205
+            this.serialId = parms[12].toString();
206
+            this.downIssued = Boolean(parms[13].toString());
207
+        }
208
+    }
209
+
210
+    // 转换为字符串数组
211
+    ChangeToTable(): string[] {
212
+        return [
213
+            this.tradeNo,
214
+            this.accountNum,
215
+            this.amount,
216
+            this.custname,
217
+            this.count,
218
+            this.des,
219
+            this.askDays.toString(),
220
+            this.askTeller,
221
+            this.askKinbrno,
222
+            this.upAmount.toString(),
223
+            this.downAmount.toString(),
224
+            this.inspDays.toString(),
225
+            this.serialId,
226
+            this.downIssued.toString()
227
+        ];
228
+    }
229
+}

+ 69
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/ProcessInfo.ts View File

@@ -0,0 +1,69 @@
1
+// 定义 IEntity 接口,这里假设它是一个空接口,若有实际定义请按需修改
2
+interface IEntity {}
3
+
4
+// 定义 ProcessInfo 类
5
+export class ProcessInfo implements IEntity {
6
+    ProcessInstanceId: string;
7
+    // 流水号
8
+    SerialNo: string;
9
+    // 流程创建时间
10
+    StartTime: string;
11
+    // 流程结束时间
12
+    EndTime: string;
13
+    // 当前节点信息
14
+    ActivitiInfo: string;
15
+    // 状态 0: 未结束; 1: 结束
16
+    IsActive: string;
17
+    // 办理柜员 
18
+    Assignee: string;
19
+    // 流程结束原因
20
+    EndReason: string;
21
+    // 发起流程交易号
22
+    TradeNo: string;
23
+
24
+    constructor() {
25
+        this.ProcessInstanceId = '';
26
+        this.SerialNo = '';
27
+        this.StartTime = '';
28
+        this.EndTime = '';
29
+        this.ActivitiInfo = '';
30
+        this.IsActive = '';
31
+        this.Assignee = '';
32
+        this.EndReason = '';
33
+        this.TradeNo = '';
34
+    }
35
+
36
+    /**
37
+     * 将对象属性转换为字符串数组
38
+     * @returns 包含对象属性值的字符串数组
39
+     */
40
+    ChangeToTable(): string[] {
41
+        return [
42
+            this.ProcessInstanceId,
43
+            this.SerialNo,
44
+            this.StartTime,
45
+            this.EndTime,
46
+            this.ActivitiInfo,
47
+            this.IsActive,
48
+            this.Assignee,
49
+            this.EndReason,
50
+            this.TradeNo
51
+        ];
52
+    }
53
+
54
+    /**
55
+     * 从对象数组中获取值并赋值给当前对象的属性
56
+     * @param parms 包含属性值的对象数组
57
+     */
58
+    ChangeFromTable(parms: any[]): void {
59
+        this.ProcessInstanceId = parms[0].toString();
60
+        this.SerialNo = parms[1].toString();
61
+        this.StartTime = parms[2].toString();
62
+        this.EndTime = parms[3].toString();
63
+        this.ActivitiInfo = parms[4].toString();
64
+        this.IsActive = parms[5].toString();
65
+        this.Assignee = parms[6].toString();
66
+        this.EndReason = parms[7].toString();
67
+        this.TradeNo = parms[8].toString();
68
+    }
69
+}

+ 83
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TatmDbpnr.ts View File

@@ -0,0 +1,83 @@
1
+// 由于 TypeScript 没有像 C# 那样的命名空间概念,这里使用接口模拟命名空间的结构
2
+namespace TellerSystem.ServiceProxy.Ext.ServiceEntitys {
3
+    // 模拟 IEntity 接口,由于没有具体定义,这里先留空
4
+    interface IEntity {}
5
+
6
+    export class TatmDbpnr implements IEntity {
7
+        f_id: string;               // ID
8
+        f_date: string;           // 日期
9
+        f_atm_money1: string;       // ATM机结账余额
10
+        f_atm_money2: string;      // ATM机清机金额
11
+        f_cashbox_money: string;    // 钞箱实有库存
12
+        f_atm_increment: string;   // ATM机加钞金额
13
+        f_test50: string;           // 测试取款50元张数
14
+        f_test100: string;            // 测试取款100元张数
15
+        f_last_money: string;       // 测试后终端余额
16
+        f_teller: string;           // 经办人
17
+        f_confim_teller: string;
18
+        f_atm_no: string;             // ATM编号
19
+        f_long_cur: string;          // 长款金额
20
+        f_short_cur: string;         // 短款金额
21
+        f_test_in100: string;        // 测试存款100
22
+        f_test_in50: string;         // 测试存款50
23
+        f_comment: string;           // 备注
24
+        f_Mechanism_No: string;           // 备注
25
+
26
+        constructor() {
27
+            // 初始化属性,可根据实际情况修改
28
+            this.f_id = '';
29
+            this.f_date = '';
30
+            this.f_atm_money1 = '';
31
+            this.f_atm_money2 = '';
32
+            this.f_cashbox_money = '';
33
+            this.f_atm_increment = '';
34
+            this.f_test50 = '';
35
+            this.f_test100 = '';
36
+            this.f_last_money = '';
37
+            this.f_teller = '';
38
+            this.f_confim_teller = '';
39
+            this.f_atm_no = '';
40
+            this.f_long_cur = '';
41
+            this.f_short_cur = '';
42
+            this.f_test_in100 = '';
43
+            this.f_test_in50 = '';
44
+            this.f_comment = '';
45
+            this.f_Mechanism_No = '';
46
+        }
47
+
48
+        ChangeToTable(): string[] {
49
+            return [
50
+                this.f_id, 
51
+                this.f_date, 
52
+                this.f_atm_money1, 
53
+                this.f_atm_money2, 
54
+                this.f_cashbox_money, 
55
+                this.f_atm_increment,
56
+                this.f_test50, 
57
+                this.f_test100, 
58
+                this.f_last_money,
59
+                this.f_teller, 
60
+                this.f_confim_teller,
61
+                this.f_Mechanism_No
62
+            ];
63
+        }
64
+
65
+        ChangeFromTable(parms: any[]): void {
66
+            this.f_id = parms[0].toString();
67
+            this.f_date = parms[1].toString();
68
+            this.f_atm_money1 = parms[2].toString();
69
+            this.f_atm_money2 = parms[3].toString();
70
+            this.f_cashbox_money = parms[4].toString();
71
+            this.f_atm_increment = parms[5].toString();
72
+            this.f_test50 = parms[6].toString();
73
+            this.f_test100 = parms[7].toString();
74
+            this.f_last_money = parms[8].toString();
75
+            this.f_teller = parms[9].toString();
76
+            this.f_confim_teller = parms[10].toString();
77
+            this.f_Mechanism_No = parms[11].toString();
78
+        }
79
+    }
80
+}
81
+
82
+// 导出类方便使用
83
+export default TellerSystem.ServiceProxy.Ext.ServiceEntitys.TatmDbpnr;

+ 77
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/Tcashvarb.ts View File

@@ -0,0 +1,77 @@
1
+// 定义 IEntity 接口,这里假设它是一个空接口,若有实际定义需补充
2
+interface IEntity {}
3
+
4
+// 定义 Tcashvarb 类
5
+class Tcashvarb implements IEntity {
6
+    // ID
7
+    f_id: string;
8
+    // 日期
9
+    f_date: string;
10
+    // 存款人名称
11
+    f_client_Name: string;
12
+    // 账户类型
13
+    f_acctount_Type: string;
14
+    // 预约金额
15
+    f_money: string;
16
+    // 预约支付日期
17
+    f_pms_Date: string;
18
+    // 预约方式
19
+    f_pms_Type: string;
20
+    // 经办人
21
+    f_teller: string;
22
+    // 备注
23
+    f_description: string;
24
+    // 行号
25
+    f_Mechanism_No: string;
26
+
27
+    constructor() {
28
+        this.f_id = "";
29
+        this.f_date = "";
30
+        this.f_client_Name = "";
31
+        this.f_acctount_Type = "";
32
+        this.f_money = "";
33
+        this.f_pms_Date = "";
34
+        this.f_pms_Type = "";
35
+        this.f_teller = "";
36
+        this.f_description = "";
37
+        this.f_Mechanism_No = "";
38
+    }
39
+
40
+    /**
41
+     * 将对象属性转换为字符串数组
42
+     * @returns 包含对象属性值的字符串数组
43
+     */
44
+    ChangeToTable(): string[] {
45
+        return [
46
+            this.f_id, 
47
+            this.f_date, 
48
+            this.f_client_Name, 
49
+            this.f_acctount_Type, 
50
+            this.f_money,
51
+            this.f_pms_Date, 
52
+            this.f_pms_Type,
53
+            this.f_teller, 
54
+            this.f_description,
55
+            this.f_Mechanism_No 
56
+        ];
57
+    }
58
+
59
+    /**
60
+     * 从对象数组中提取值并赋值给当前对象的属性
61
+     * @param parms 包含属性值的对象数组
62
+     */
63
+    ChangeFromTable(parms: any[]): void {
64
+        this.f_id = parms[0].toString();
65
+        this.f_date = parms[1].toString();
66
+        this.f_client_Name = parms[2].toString();
67
+        this.f_acctount_Type = parms[3].toString();
68
+        this.f_money = parms[4].toString();
69
+        this.f_pms_Date = parms[5].toString();
70
+        this.f_pms_Type = parms[6].toString();
71
+        this.f_teller = parms[7].toString();
72
+        this.f_description = parms[8].toString();
73
+        this.f_Mechanism_No = parms[9].toString();
74
+    }
75
+}
76
+
77
+export { Tcashvarb };

+ 50
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TcheckAccount.ts View File

@@ -0,0 +1,50 @@
1
+// 假设 IEntity 接口在其他地方定义,这里简单模拟
2
+interface IEntity {}
3
+
4
+class TcheckAccount implements IEntity {
5
+    f_id: string;
6
+    f_date: string;
7
+    f_check_content: string;
8
+    f_check_result: string;
9
+    f_check_teller: string;
10
+    f_confim_teller: string;
11
+    f_description: string;
12
+    f_Mechanism_No: string;
13
+
14
+    constructor() {
15
+        this.f_id = "";
16
+        this.f_date = "";
17
+        this.f_check_content = "";
18
+        this.f_check_result = "";
19
+        this.f_check_teller = "";
20
+        this.f_confim_teller = "";
21
+        this.f_description = "";
22
+        this.f_Mechanism_No = "";
23
+    }
24
+
25
+    ChangeToTable(): string[] {
26
+        return [
27
+            this.f_id,
28
+            this.f_date,
29
+            this.f_check_content,
30
+            this.f_check_result,
31
+            this.f_check_teller,
32
+            this.f_confim_teller,
33
+            this.f_description,
34
+            this.f_Mechanism_No
35
+        ];
36
+    }
37
+
38
+    ChangeFromTable(parms: any[]): void {
39
+        this.f_id = parms[0].toString();
40
+        this.f_date = parms[1].toString();
41
+        this.f_check_content = parms[2].toString();
42
+        this.f_check_result = parms[3].toString();
43
+        this.f_check_teller = parms[4].toString();
44
+        this.f_confim_teller = parms[5].toString();
45
+        this.f_description = parms[6].toString();
46
+        this.f_Mechanism_No = parms[7].toString();
47
+    }
48
+}
49
+
50
+export { TcheckAccount };

+ 97
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TcheckMachine.ts View File

@@ -0,0 +1,97 @@
1
+// 定义 IEntity 接口,由于原 C# 未给出定义,这里先空着,可按需补充
2
+interface IEntity {}
3
+
4
+// 定义 TcheckMachine 类
5
+class TcheckMachine implements IEntity {
6
+    // ID
7
+    f_id: string;
8
+    // 日期
9
+    f_date: string;
10
+    // 清分机
11
+    f_machine1: string;
12
+    // 点钞机
13
+    f_machine2: string;
14
+    // 假币检定仪
15
+    f_machine3: string;
16
+    // 防伪机具发现问题
17
+    f_problem1: string;
18
+    // ATM 机运行记录
19
+    f_log1: string;
20
+    // ATM 机运行发现问题
21
+    f_problem2: string;
22
+    // 监控检查运行记录
23
+    f_log2: string;
24
+    // 监控检查发现问题
25
+    f_problem3: string;
26
+    // 故障维修记录
27
+    f_svr_action_Log: string;
28
+    // 责任人
29
+    f_confim_teller: string;
30
+    // 备注
31
+    f_description: string;
32
+    // 机构号
33
+    f_Mechanism_No: string;
34
+
35
+    constructor() {
36
+        this.f_id = '';
37
+        this.f_date = '';
38
+        this.f_machine1 = '';
39
+        this.f_machine2 = '';
40
+        this.f_machine3 = '';
41
+        this.f_problem1 = '';
42
+        this.f_log1 = '';
43
+        this.f_problem2 = '';
44
+        this.f_log2 = '';
45
+        this.f_problem3 = '';
46
+        this.f_svr_action_Log = '';
47
+        this.f_confim_teller = '';
48
+        this.f_description = '';
49
+        this.f_Mechanism_No = '';
50
+    }
51
+
52
+    /**
53
+     * 将对象属性转换为字符串数组
54
+     * @returns 包含对象属性值的字符串数组
55
+     */
56
+    ChangeToTable(): string[] {
57
+        return [
58
+            this.f_id,
59
+            this.f_date,
60
+            this.f_machine1,
61
+            this.f_machine2,
62
+            this.f_machine3,
63
+            this.f_problem1,
64
+            this.f_log1,
65
+            this.f_problem2,
66
+            this.f_log2,
67
+            this.f_problem3,
68
+            this.f_svr_action_Log,
69
+            this.f_confim_teller,
70
+            this.f_description,
71
+            this.f_Mechanism_No
72
+        ];
73
+    }
74
+
75
+    /**
76
+     * 从对象数组中更新当前对象的属性值
77
+     * @param parms 包含属性值的对象数组
78
+     */
79
+    ChangeFromTable(parms: any[]): void {
80
+        this.f_id = parms[0].toString();
81
+        this.f_date = parms[1].toString();
82
+        this.f_machine1 = parms[2].toString();
83
+        this.f_machine2 = parms[3].toString();
84
+        this.f_machine3 = parms[4].toString();
85
+        this.f_problem1 = parms[5].toString();
86
+        this.f_log1 = parms[6].toString();
87
+        this.f_problem2 = parms[7].toString();
88
+        this.f_log2 = parms[8].toString();
89
+        this.f_problem3 = parms[9].toString();
90
+        this.f_svr_action_Log = parms[10].toString();
91
+        this.f_confim_teller = parms[11].toString();
92
+        this.f_description = parms[12].toString();
93
+        this.f_Mechanism_No = parms[13].toString();
94
+    }
95
+}
96
+
97
+export { TcheckMachine };

+ 73
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TdoutbfulPay.ts View File

@@ -0,0 +1,73 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未给出具体定义
2
+interface IEntity {}
3
+
4
+class TdoutbfulPay implements IEntity {
5
+    f_id: string;
6
+    f_date: string;
7
+    f_title: string;
8
+    f_acctount: string; 
9
+    f_money: string;
10
+    f_purpose: string;
11
+    f_pay_type: string;
12
+    f_acctount_type: string;
13
+    f_serial_no: string;
14
+    f_teller: string;
15
+    f_anti_lander_money: string;
16
+    f_Mechanism_No: string;
17
+
18
+    constructor() {
19
+        this.f_id = '';
20
+        this.f_date = '';
21
+        this.f_title = '';
22
+        this.f_acctount = '';
23
+        this.f_money = '';
24
+        this.f_purpose = '';
25
+        this.f_pay_type = '';
26
+        this.f_acctount_type = '';
27
+        this.f_serial_no = '';
28
+        this.f_teller = '';
29
+        this.f_anti_lander_money = '';
30
+        this.f_Mechanism_No = '';
31
+    }
32
+
33
+    /**
34
+     * 将对象的属性值转换为字符串数组
35
+     */
36
+    ChangeToTable(): string[] {
37
+        return [
38
+            this.f_id,
39
+            this.f_date,
40
+            this.f_title,
41
+            this.f_acctount,
42
+            this.f_money,
43
+            this.f_purpose,
44
+            this.f_pay_type,
45
+            this.f_acctount_type,
46
+            this.f_serial_no,
47
+            this.f_teller,
48
+            this.f_anti_lander_money,
49
+            this.f_Mechanism_No
50
+        ];
51
+    }
52
+
53
+    /**
54
+     * 从对象数组中读取值并赋值给类的属性
55
+     * @param parms - 包含属性值的对象数组
56
+     */
57
+    ChangeFromTable(parms: any[]): void {
58
+        this.f_id = parms[0].toString();
59
+        this.f_date = parms[1].toString();
60
+        this.f_title = parms[2].toString();
61
+        this.f_acctount = parms[3].toString();
62
+        this.f_money = parms[4].toString();
63
+        this.f_purpose = parms[5].toString();
64
+        this.f_pay_type = parms[6].toString();
65
+        this.f_acctount_type = parms[7].toString();
66
+        this.f_serial_no = parms[8].toString();
67
+        this.f_teller = parms[9].toString();
68
+        this.f_anti_lander_money = parms[10].toString();
69
+        this.f_Mechanism_No = parms[11].toString();
70
+    }
71
+}
72
+
73
+export { TdoutbfulPay };

+ 87
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TellerInfo.ts View File

@@ -0,0 +1,87 @@
1
+// 定义 IEntity 接口,这里先简单定义,实际可按需补充
2
+interface IEntity {}
3
+
4
+/**
5
+ * 交易号
6
+ */
7
+export class TellerInfo implements IEntity {
8
+    public TradeNo: string;
9
+    /**
10
+     * 柜员号
11
+     */
12
+    public TellerNo: string;
13
+    /**
14
+     * 柜员权限
15
+     */
16
+    public Tlrlvl: string;
17
+    /**
18
+     * 机构号
19
+     */
20
+    public BrNo: string;
21
+
22
+    public TradeFileName: string;
23
+    /**
24
+     * 流程状态:0:未完成 ;1:正常完成;2:非正常完成
25
+     */
26
+    public Status: number;
27
+    /**
28
+     * 后台流水号
29
+     */
30
+    public BlackSerialNo: string;
31
+    /**
32
+     * 后台流水号2
33
+     */
34
+    public BlackSerialNo2: string;
35
+    /**
36
+     * 营业日期
37
+     */
38
+    public BusinessDate: string;
39
+
40
+    constructor() {
41
+        this.TradeNo = '';
42
+        this.TellerNo = '';
43
+        this.Tlrlvl = '';
44
+        this.BrNo = '';
45
+        this.TradeFileName = '';
46
+        this.Status = 0;
47
+        this.BlackSerialNo = '';
48
+        this.BlackSerialNo2 = '';
49
+        this.BusinessDate = '';
50
+    }
51
+
52
+    /**
53
+     * 将对象属性转换为字符串数组
54
+     * @returns 包含对象属性值的字符串数组
55
+     */
56
+    public ChangeToTable(): string[] {
57
+        return [
58
+            this.TradeNo,
59
+            this.TellerNo,
60
+            this.Tlrlvl,
61
+            this.BrNo,
62
+            this.TradeFileName,
63
+            this.Status.toString(),
64
+            this.BlackSerialNo,
65
+            this.BlackSerialNo2,
66
+            this.BusinessDate
67
+        ];
68
+    }
69
+
70
+    /**
71
+     * 从对象数组中获取值并赋值给当前对象的属性
72
+     * @param parms 包含属性值的对象数组
73
+     */
74
+    public ChangeFromTable(parms: any[]): void {
75
+        if (parms !== null && parms.length === 9) {
76
+            this.TradeNo = parms[0].toString();
77
+            this.TellerNo = parms[1].toString();
78
+            this.Tlrlvl = parms[2].toString();
79
+            this.BrNo = parms[3].toString();
80
+            this.TradeFileName = parms[4].toString();
81
+            this.Status = parseInt(parms[5].toString(), 10);
82
+            this.BlackSerialNo = parms[6].toString();
83
+            this.BlackSerialNo2 = parms[7].toString();
84
+            this.BusinessDate = parms[8].toString();
85
+        }
86
+    }
87
+}

+ 45
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TradeInfo.ts View File

@@ -0,0 +1,45 @@
1
+// 由于 IEntity 接口在 C# 中未给出具体内容,这里先留空,可按需补充
2
+interface IEntity {}
3
+
4
+class TradeInfo implements IEntity {
5
+    // 交易号
6
+    public TxCode: string;
7
+    // 操作员
8
+    public Tel: string;
9
+    // 交易机构
10
+    public TxBrNo: string;
11
+    // 授权要素信息
12
+    public AuthElement: string;
13
+    // 方法序号
14
+    public FuncNum: string;
15
+
16
+    constructor() {
17
+        this.TxCode = "";
18
+        this.Tel = "";
19
+        this.TxBrNo = "";
20
+        this.AuthElement = "";
21
+        this.FuncNum = "";
22
+    }
23
+
24
+    /**
25
+     * 将 TradeInfo 实例的属性转换为字符串数组
26
+     * @returns 包含属性值的字符串数组
27
+     */
28
+    public ChangeToTable(): string[] {
29
+        return [this.TxCode, this.Tel, this.TxBrNo, this.AuthElement, this.FuncNum];
30
+    }
31
+
32
+    /**
33
+     * 从对象数组中读取值并赋值给 TradeInfo 实例的属性
34
+     * @param parms 包含属性值的对象数组
35
+     */
36
+    public ChangeFromTable(parms: any[]): void {
37
+        this.TxCode = parms[0].toString();
38
+        this.Tel = parms[1].toString();
39
+        this.TxBrNo = parms[2].toString();
40
+        this.AuthElement = parms[3].toString();
41
+        this.FuncNum = parms[4].toString();
42
+    }
43
+}
44
+
45
+export { TradeInfo };

+ 121
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/TwftTradeRecords.ts View File

@@ -0,0 +1,121 @@
1
+// 由于 TypeScript 没有直接对应的 IEntity 接口,这里假设它是一个空接口
2
+interface IEntity {}
3
+
4
+/**
5
+ * 交易流水记录类
6
+ */
7
+class TwftTradeRecords implements IEntity {
8
+    /**
9
+     * 流水ID
10
+     */
11
+    private SERIALID: string | null = null;
12
+    /**
13
+     * 前台流水号
14
+     */
15
+    public SERIALNO: string | null = null;
16
+    /**
17
+     * 交易号
18
+     */
19
+    public TRADENO: string | null = null;
20
+    /**
21
+     * 发起柜员
22
+     */
23
+    private TELLER: string | null = null;
24
+    /**
25
+     * 发起机构号
26
+     */
27
+    private BRANCH: string | null = null;
28
+    /**
29
+     * 营业日期
30
+     */
31
+    private BUSINESSDATE: string | null = null;
32
+    /**
33
+     * 开始时间
34
+     */
35
+    private STARTTIME: string | null = null;
36
+    /**
37
+     * 结束时间
38
+     */
39
+    public ENDTIME: string | null = null;
40
+    /**
41
+     * 业务状态 0:正在执行;1:正常结束;2:非正常结束(中途被拒绝或撤销)
42
+     */
43
+    private STATUS: number = 0;
44
+    /**
45
+     * 打印票号
46
+     */
47
+    private PRINTNUM: number = 0;
48
+    /**
49
+     * 第三方流水
50
+     */
51
+    public THIRDSERIALNO: string | null = null;
52
+    /**
53
+     * 第三方服务类型
54
+     */
55
+    private SERVICETYPE: number = 0;
56
+    /**
57
+     * 发送报文
58
+     */
59
+    private SENDMSG: Uint8Array | null = null;
60
+    /**
61
+     * 接收报文
62
+     */
63
+    private RECMSG: Uint8Array | null = null;
64
+    /**
65
+     * 交易返回码
66
+     */
67
+    private RETCODE: string | null = null;
68
+    /**
69
+     * 扩展字段一
70
+     */
71
+    private ext1: string | null = null;
72
+    /**
73
+     * 扩展字段二
74
+     */
75
+    private ext2: string | null = null;
76
+    /**
77
+     * 扩展字段三
78
+     */
79
+    public exts3: string | null = null;
80
+    private comments: string | null = null;
81
+
82
+    /**
83
+     * 从数组参数中更新对象属性
84
+     * @param parms - 包含数据的对象数组
85
+     */
86
+    public ChangeFromTable(parms: any[]): void {
87
+        this.SERIALID = parms[0]?.toString() || null;
88
+        this.SERIALNO = parms[1]?.toString() || null;
89
+        this.TRADENO = parms[2]?.toString() || null;
90
+        this.TELLER = parms[3]?.toString() || null;
91
+        this.BRANCH = parms[4]?.toString() || null;
92
+        this.BUSINESSDATE = parms[5]?.toString() || null;
93
+        this.STARTTIME = parms[6]?.toString() || null;
94
+        this.ENDTIME = parms[7]?.toString() || null;
95
+        this.THIRDSERIALNO = parms[8]?.toString() || null;
96
+        this.RETCODE = parms[9]?.toString() || null;
97
+        this.exts3 = parms[10]?.toString() || null; 
98
+    }
99
+
100
+    /**
101
+     * 将对象属性转换为字符串数组
102
+     * @returns 包含对象属性值的字符串数组
103
+     */
104
+    public ChangeToTable(): string[] {
105
+        return [
106
+            this.SERIALID || '',
107
+            this.SERIALNO || '',
108
+            this.TRADENO || '',
109
+            this.TELLER || '',
110
+            this.BRANCH || '',
111
+            this.BUSINESSDATE || '',
112
+            this.STARTTIME || '',
113
+            this.ENDTIME || '',
114
+            this.THIRDSERIALNO || '',
115
+            this.RETCODE || '',
116
+            this.exts3 || ''
117
+        ];
118
+    }
119
+}
120
+
121
+export { TwftTradeRecords };

+ 41
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/VacationInfo.ts View File

@@ -0,0 +1,41 @@
1
+// 由于 IEntity 接口在 C# 里未给出具体内容,这里先留空
2
+// 如果后续有具体定义,可补充完整
3
+interface IEntity {}
4
+
5
+class VacationInfo implements IEntity {
6
+    // 假期日期
7
+    vacatDay: string;
8
+    // 柜员号
9
+    tellerNo: string;
10
+    // 状态 暂时默认 1
11
+    state: string;
12
+    // 备注
13
+    remark: string;
14
+    // 备用字段
15
+    ext: string;
16
+    ext1: string;
17
+
18
+    constructor(vacatDay: string = '', tellerNo: string = '', state: string = '', remark: string = '', ext: string = '', ext1: string = '') {
19
+        this.vacatDay = vacatDay;
20
+        this.tellerNo = tellerNo;
21
+        this.state = state;
22
+        this.remark = remark;
23
+        this.ext = ext;
24
+        this.ext1 = ext1;
25
+    }
26
+
27
+    ChangeToTable(): string[] {
28
+        return [this.vacatDay, this.tellerNo, this.state, this.remark, this.ext, this.ext1];
29
+    }
30
+
31
+    ChangeFromTable(parms: any[]): void {
32
+        this.vacatDay = parms[0].toString();
33
+        this.tellerNo = parms[1].toString();
34
+        this.state = parms[2].toString();
35
+        this.remark = parms[3].toString();
36
+        this.ext = parms[4].toString();
37
+        this.ext1 = parms[5].toString();
38
+    }
39
+}
40
+
41
+export { VacationInfo };

+ 182
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceEntitys/WorkItemDesc.ts View File

@@ -0,0 +1,182 @@
1
+// 假设 Platform.ServiceProxy.CommonFunction 相关方法会在别处实现
2
+// 这里先声明函数类型
3
+declare namespace Platform {
4
+  namespace ServiceProxy {
5
+    namespace CommonFunction {
6
+      function ChangeDicToStr(dic: { [key: string]: string }): string;
7
+      function ChangeStrToDic(str: string): { [key: string]: string };
8
+    }
9
+  }
10
+}
11
+
12
+// 定义 IEntity 接口,由于原文件未给出,这里先空着
13
+interface IEntity {}
14
+
15
+/**
16
+ * 工作项描述类,实现了 IEntity 接口,用于存储工作项的相关信息。
17
+ */
18
+class WorkItemDesc implements IEntity {
19
+  /**
20
+   * 流水号
21
+   */
22
+  SerialNo: string;
23
+  /**
24
+   * 交易号
25
+   */
26
+  TradeNo: string;
27
+  /**
28
+   * 发起柜员
29
+   */
30
+  BegTeller: string;
31
+  /**
32
+   * 流程创建时间
33
+   */
34
+  BegTime: string;
35
+  /**
36
+   * 完成时间
37
+   */
38
+  EndTime: string;
39
+  /**
40
+   * 任务描述
41
+   */
42
+  TaskDes: string;
43
+  /**
44
+   * 工作项 Id
45
+   */
46
+  WorkItemId: string;
47
+  /**
48
+   * 流程 Id
49
+   */
50
+  ProcessId: string;
51
+  /**
52
+   * 数据总线数据
53
+   */
54
+  ProcessVariables: { [key: string]: string };
55
+  /**
56
+   * 任务变量数据
57
+   */
58
+  ItemVariables: { [key: string]: string };
59
+  /**
60
+   * 节点名称
61
+   */
62
+  NodeName: string;
63
+  /**
64
+   * 任务所有人
65
+   */
66
+  Holder: boolean;
67
+  /**
68
+   * 任务发起柜员机构号
69
+   * @author YuanXiaoLong
70
+   */
71
+  begTelKinbrNo: string;
72
+  /**
73
+   * 任务发起柜员机构名称
74
+   * @author YuanXiaoLong
75
+   */
76
+  begTelKinbrName: string;
77
+  /**
78
+   * 任务发起柜员名称
79
+   * @author YuanXiaoLong
80
+   */
81
+  begTelName: string;
82
+
83
+  /**
84
+   * 构造函数,初始化工作项描述对象的属性。
85
+   * @param SerialNo - 流水号
86
+   * @param TradeNo - 交易号
87
+   * @param BegTeller - 发起柜员
88
+   * @param BegTime - 流程创建时间
89
+   * @param EndTime - 完成时间
90
+   * @param TaskDes - 任务描述
91
+   * @param WorkItemId - 工作项 Id
92
+   * @param ProcessId - 流程 Id
93
+   * @param ProcessVariables - 数据总线数据
94
+   * @param ItemVariables - 任务变量数据
95
+   * @param NodeName - 节点名称
96
+   * @param Holder - 任务所有人
97
+   * @param begTelKinbrNo - 任务发起柜员机构号
98
+   * @param begTelKinbrName - 任务发起柜员机构名称
99
+   * @param begTelName - 任务发起柜员名称
100
+   */
101
+  constructor(
102
+    SerialNo: string = '',
103
+    TradeNo: string = '',
104
+    BegTeller: string = '',
105
+    BegTime: string = '',
106
+    EndTime: string = '',
107
+    TaskDes: string = '',
108
+    WorkItemId: string = '',
109
+    ProcessId: string = '',
110
+    ProcessVariables: { [key: string]: string } = {},
111
+    ItemVariables: { [key: string]: string } = {},
112
+    NodeName: string = '',
113
+    Holder: boolean = false,
114
+    begTelKinbrNo: string = '',
115
+    begTelKinbrName: string = '',
116
+    begTelName: string = ''
117
+  ) {
118
+    this.SerialNo = SerialNo;
119
+    this.TradeNo = TradeNo;
120
+    this.BegTeller = BegTeller;
121
+    this.BegTime = BegTime;
122
+    this.EndTime = EndTime;
123
+    this.TaskDes = TaskDes;
124
+    this.WorkItemId = WorkItemId;
125
+    this.ProcessId = ProcessId;
126
+    this.ProcessVariables = ProcessVariables;
127
+    this.ItemVariables = ItemVariables;
128
+    this.NodeName = NodeName;
129
+    this.Holder = Holder;
130
+    this.begTelKinbrNo = begTelKinbrNo;
131
+    this.begTelKinbrName = begTelKinbrName;
132
+    this.begTelName = begTelName;
133
+  }
134
+
135
+  /**
136
+   * 将工作项描述对象的属性转换为字符串数组。
137
+   * @returns 包含工作项描述信息的字符串数组。
138
+   */
139
+  ChangeToTable(): string[] {
140
+    return [
141
+      this.SerialNo,
142
+      this.TradeNo,
143
+      this.BegTeller,
144
+      this.BegTime,
145
+      this.EndTime,
146
+      this.TaskDes,
147
+      this.WorkItemId,
148
+      this.ProcessId,
149
+      Platform.ServiceProxy.CommonFunction.ChangeDicToStr(this.ProcessVariables),
150
+      Platform.ServiceProxy.CommonFunction.ChangeDicToStr(this.ItemVariables),
151
+      this.NodeName,
152
+      this.Holder.toString(),
153
+      this.begTelKinbrNo,
154
+      this.begTelKinbrName,
155
+      this.begTelName
156
+    ];
157
+  }
158
+
159
+  /**
160
+   * 从对象数组中读取数据并更新工作项描述对象的属性。
161
+   * @param parms - 包含工作项描述信息的对象数组。
162
+   */
163
+  ChangeFromTable(parms: any[]): void {
164
+    this.SerialNo = parms[0].toString();
165
+    this.TradeNo = parms[1].toString();
166
+    this.BegTeller = parms[2].toString();
167
+    this.BegTime = parms[3].toString();
168
+    this.EndTime = parms[4].toString();
169
+    this.TaskDes = parms[5].toString();
170
+    this.WorkItemId = parms[6].toString();
171
+    this.ProcessId = parms[7].toString();
172
+    this.ProcessVariables = Platform.ServiceProxy.CommonFunction.ChangeStrToDic(parms[8].toString());
173
+    this.ItemVariables = Platform.ServiceProxy.CommonFunction.ChangeStrToDic(parms[9].toString());
174
+    this.NodeName = parms[10].toString();
175
+    this.Holder = Boolean.parse(parms[11].toString());
176
+    this.begTelKinbrNo = parms[12].toString();
177
+    this.begTelKinbrName = parms[13].toString();
178
+    this.begTelName = parms[14].toString();
179
+  }
180
+}
181
+
182
+export default WorkItemDesc;

+ 946
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/AfterSuperviseHandle.ts View File

@@ -0,0 +1,946 @@
1
+// 模拟一些类型,实际使用时需要根据具体情况定义
2
+type TransitEntity = {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters?: { [key: string]: string };
6
+    AttachFiles?: AttachFile[];
7
+};
8
+
9
+type AttachFile = {
10
+    AttachIndex: string;
11
+    AttachType: any; // 这里不清楚 Types.TableType 的具体类型,先用 any 代替
12
+    AttachValue: any;
13
+};
14
+
15
+type AfterShip = any;
16
+type AfterTask = any;
17
+type AfterRecords = any;
18
+type IdCheckRecords = any;
19
+type AfterRecordInfo = any;
20
+
21
+// 模拟 ServiceManager 类
22
+class ServiceManager {
23
+    private static instance: ServiceManager;
24
+
25
+    static GetInstance() {
26
+        if (!this.instance) {
27
+            this.instance = new ServiceManager();
28
+        }
29
+        return this.instance;
30
+    }
31
+
32
+    Commit(entity: TransitEntity): AttachFile[] {
33
+        // 这里只是模拟,实际需要实现具体的提交逻辑
34
+        return [];
35
+    }
36
+}
37
+
38
+// 模拟 CommonFunction 类
39
+class CommonFunction {
40
+    static ChangeEntityToTable(tr: any[]) {
41
+        // 这里只是模拟,实际需要实现具体的转换逻辑
42
+        return {};
43
+    }
44
+
45
+    static ChangStrToArray(str: string): string[] {
46
+        // 这里只是模拟,实际需要实现具体的转换逻辑
47
+        return [];
48
+    }
49
+}
50
+
51
+/**
52
+ * 事后监督发送服务端方法
53
+ */
54
+class AfterSuperviseHandle {
55
+    /**
56
+     * 查询按人员分配监督信息 
57
+     */
58
+    static AfterShipSelect(): any {
59
+        const entity: TransitEntity = {
60
+            ServiceName: "aftersupervise",
61
+            FuncName: "SuperVisorDistributeSelect"
62
+            // Parameters: new Dictionary<string, string> {}
63
+        };
64
+        // 文件byte[]数据组织 begin
65
+        // 特殊结构转换
66
+        // 文件byte[]数据组织 end
67
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
68
+        const dt = tmpresult[0]?.AttachValue;
69
+        return dt;
70
+    }
71
+
72
+    /**
73
+     * 通过机构号和柜员号查询相关录入信息
74
+     */
75
+    static GetAfterShipInfoBynoAndCode(): any {
76
+        const entity: TransitEntity = {
77
+            ServiceName: "aftersupervise",
78
+            FuncName: "SuperVisorDistributeSelect",
79
+        };
80
+        // 文件byte[]数据组织 begin
81
+        // 特殊结构转换
82
+        // 文件byte[]数据组织 end
83
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
84
+        const dt = tmpresult[0]?.AttachValue;
85
+        if (dt && dt.Columns) {
86
+            dt.Columns[0].ColumnName = "机构号";
87
+            dt.Columns[1].ColumnName = "机构名称";
88
+            dt.Columns[2].ColumnName = "柜员号";
89
+            dt.Columns[3].ColumnName = "柜员名称";
90
+        }
91
+        return dt;
92
+    }
93
+
94
+    /**
95
+     * 通过机构号获取机构名称
96
+     * @param brno 机构号
97
+     */
98
+    static GetBrnameByNo(brno: string): string | null {
99
+        let tradeReturn: string | null = null;
100
+        try {
101
+            const entity: TransitEntity = {
102
+                ServiceName: "aftersupervise",
103
+                FuncName: "getBrnameByno",
104
+                Parameters: { "1": brno }
105
+                // Parameters: new Dictionary<string, string> {}
106
+            };
107
+            // 文件byte[]数据组织 begin
108
+            // 特殊结构转换
109
+            // 文件byte[]数据组织 end
110
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
111
+            if (tmpresult && tmpresult.length === 1) {
112
+                tradeReturn = tmpresult[0].AttachValue.toString();
113
+            }
114
+        } catch (e) {
115
+            throw e;
116
+        }
117
+        return tradeReturn;
118
+    }
119
+
120
+    /**
121
+     * 通过用户代码获取用户名
122
+     * @param userCode 用户代码
123
+     */
124
+    static GetUserNameByCode(userCode: string): string | null {
125
+        let tradeReturn: string | null = null;
126
+        try {
127
+            const entity: TransitEntity = {
128
+                ServiceName: "aftersupervise",
129
+                FuncName: "getUserName",
130
+                Parameters: { "1": userCode }
131
+            };
132
+            // 文件byte[]数据组织 begin
133
+            // 特殊结构转换
134
+            // 文件byte[]数据组织 end
135
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
136
+            if (tmpresult && tmpresult.length === 1) {
137
+                tradeReturn = tmpresult[0].AttachValue.toString();
138
+            }
139
+        } catch (e) {
140
+            throw e;
141
+        }
142
+        return tradeReturn;
143
+    }
144
+
145
+    /**
146
+     * 更新按人员分配监督信息
147
+     * @param tr 事后监督信息数组
148
+     */
149
+    static AfterShipUpdate(tr: AfterShip[]): boolean {
150
+        let tradeReturn = false;
151
+        try {
152
+            const entity: TransitEntity = {
153
+                ServiceName: "aftersupervise",
154
+                FuncName: "SuperVisorDistributeUpdate"
155
+            };
156
+            const attcheds: AttachFile = {
157
+                AttachIndex: "1",
158
+                AttachType: null, // 这里不清楚 Types.TableType 的具体类型,先用 null 代替
159
+                AttachValue: CommonFunction.ChangeEntityToTable(tr)
160
+            };
161
+            if (!entity.AttachFiles) {
162
+                entity.AttachFiles = [];
163
+            }
164
+            entity.AttachFiles.push(attcheds);
165
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
166
+            if (tmpresult && tmpresult.length === 1) {
167
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
168
+            }
169
+        } catch (e) {
170
+            throw e;
171
+        }
172
+        return tradeReturn;
173
+    }
174
+
175
+    /**
176
+     * 查询按任务分配监督信息 
177
+     */
178
+    static AfterTaskSelect(): any {
179
+        const entity: TransitEntity = {
180
+            ServiceName: "aftersupervise",
181
+            FuncName: "TaskDistributeSelect",
182
+            // Parameters: new Dictionary<string, string> {}
183
+        };
184
+        // 文件byte[]数据组织 begin
185
+        // 特殊结构转换
186
+        // 文件byte[]数据组织 end
187
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
188
+        const dt = tmpresult[0]?.AttachValue;
189
+        return dt;
190
+    }
191
+
192
+    /**
193
+     * 更新按任务分配监督信息
194
+     * @param tr 事后任务信息数组
195
+     */
196
+    static AfterTaskUpdate(tr: AfterTask[]): boolean {
197
+        let tradeReturn = false;
198
+        try {
199
+            const entity: TransitEntity = {
200
+                ServiceName: "aftersupervise",
201
+                FuncName: "TaskDistributeUpdate"
202
+            };
203
+            const attcheds: AttachFile = {
204
+                AttachIndex: "1",
205
+                AttachType: null, // 这里不清楚 Types.TableType 的具体类型,先用 null 代替
206
+                AttachValue: CommonFunction.ChangeEntityToTable(tr)
207
+            };
208
+            if (!entity.AttachFiles) {
209
+                entity.AttachFiles = [];
210
+            }
211
+            entity.AttachFiles.push(attcheds);
212
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
213
+            if (tmpresult && tmpresult.length === 1) {
214
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
215
+            }
216
+        } catch (e) {
217
+            throw e;
218
+        }
219
+        return tradeReturn;
220
+    }
221
+
222
+    /**
223
+     * 判断是否可以开启日前交易
224
+     */
225
+    static JudgeIfStart(): boolean {
226
+        let tradeReturn = false;
227
+        try {
228
+            const entity: TransitEntity = {
229
+                ServiceName: "aftersupervise",
230
+                FuncName: "JudgeIfDayStart"
231
+            };
232
+            // 文件byte[]数据组织 begin
233
+            // 特殊结构转换
234
+            // 文件byte[]数据组织 end
235
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
236
+            if (tmpresult && tmpresult.length === 1) {
237
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
238
+            }
239
+        } catch (e) {
240
+            throw e;
241
+        }
242
+        return tradeReturn;
243
+    }
244
+
245
+    /**
246
+     * 初始化日前判断
247
+     */
248
+    static DayStartInit(): boolean {
249
+        let tradeReturn = false;
250
+        try {
251
+            const entity: TransitEntity = {
252
+                ServiceName: "aftersupervise",
253
+                FuncName: "DayStartInit"
254
+            };
255
+            // 文件byte[]数据组织 begin
256
+            // 特殊结构转换
257
+            // 文件byte[]数据组织 end
258
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
259
+            if (tmpresult && tmpresult.length === 1) {
260
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
261
+            }
262
+        } catch (e) {
263
+            throw e;
264
+        }
265
+        return tradeReturn;
266
+    }
267
+
268
+    /**
269
+     * 判断服务器上是否有对应的开启日前的txt数据文件,返回bool
270
+     * @param time 时间
271
+     */
272
+    static ExistTxt(time: string): boolean {
273
+        let tradeReturn = false;
274
+        try {
275
+            const entity: TransitEntity = {
276
+                ServiceName: "aftersupervise",
277
+                FuncName: "IfExistTxt",
278
+                Parameters: { "1": time }
279
+            };
280
+            // 文件byte[]数据组织 begin
281
+            // 特殊结构转换
282
+            // 文件byte[]数据组织 end
283
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
284
+            if (tmpresult && tmpresult.length === 1) {
285
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
286
+            }
287
+        } catch (e) {
288
+            throw e;
289
+        }
290
+        return tradeReturn;
291
+    }
292
+
293
+    /**
294
+     * 判断日终表中是否有记录以判断可以开启日前的日期
295
+     */
296
+    static HasRecord(): boolean {
297
+        let tradeReturn = false;
298
+        try {
299
+            const entity: TransitEntity = {
300
+                ServiceName: "aftersupervise",
301
+                FuncName: "JudgeIfDayStart"
302
+            };
303
+            // 文件byte[]数据组织 begin
304
+            // 特殊结构转换
305
+            // 文件byte[]数据组织 end
306
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
307
+            if (tmpresult && tmpresult.length === 1) {
308
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
309
+            }
310
+        } catch (e) {
311
+            throw e;
312
+        }
313
+        return tradeReturn;
314
+    }
315
+
316
+    /**
317
+     * 查询可开启日前的日期
318
+     */
319
+    static GetDayStartDate(): string | null {
320
+        let tradeReturn: string | null = null;
321
+        try {
322
+            const entity: TransitEntity = {
323
+                ServiceName: "aftersupervise",
324
+                FuncName: "SelectDayStartDay"
325
+            };
326
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
327
+            if (tmpresult && tmpresult.length === 1) {
328
+                tradeReturn = tmpresult[0].AttachValue.toString();
329
+            }
330
+        } catch (e) {
331
+            throw e;
332
+        }
333
+        return tradeReturn;
334
+    }
335
+
336
+    /**
337
+     * 开启日前
338
+     * @param startdate 开始日期
339
+     */
340
+    static insertDayStartInfo(startdate: string): boolean {
341
+        let tradeReturn = false;
342
+        try {
343
+            const entity: TransitEntity = {
344
+                ServiceName: "aftersupervise",
345
+                FuncName: "DayStart",
346
+                Parameters: { "1": startdate }
347
+            };
348
+            // 文件byte[]数据组织 begin
349
+            // 特殊结构转换
350
+            // 文件byte[]数据组织 end
351
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
352
+            if (tmpresult && tmpresult.length === 1) {
353
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
354
+            }
355
+        } catch (e) {
356
+            throw e;
357
+        }
358
+        return tradeReturn;
359
+    }
360
+
361
+    /**
362
+     * 查询日终状态表,返回机构号,机构名称,监督状态等相关信息
363
+     * @param datetime 日期时间
364
+     */
365
+    static getDayEndInfo(datetime: string): any {
366
+        const entity: TransitEntity = {
367
+            ServiceName: "aftersupervise",
368
+            FuncName: "GetAfterSuperviseInfo",
369
+            Parameters: { "1": datetime }
370
+        };
371
+        // 文件byte[]数据组织 begin
372
+        // 特殊结构转换
373
+        // 文件byte[]数据组织 end
374
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
375
+        const dt = tmpresult[0]?.AttachValue;
376
+        return dt;
377
+    }
378
+
379
+    /**
380
+     * 查询是否都完成监督
381
+     * @param datetime 日期时间
382
+     */
383
+    static JudgeIfDayEnd(datetime: string): boolean {
384
+        let tradeReturn = false;
385
+        try {
386
+            const entity: TransitEntity = {
387
+                ServiceName: "aftersupervise",
388
+                FuncName: "JudgeIfDayEnd",
389
+                Parameters: { "1": datetime }
390
+            };
391
+            // 文件byte[]数据组织 begin
392
+            // 特殊结构转换
393
+            // 文件byte[]数据组织 end
394
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
395
+            if (tmpresult && tmpresult.length === 1) {
396
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
397
+            }
398
+        } catch (e) {
399
+            throw e;
400
+        }
401
+        return tradeReturn;
402
+    }
403
+
404
+    /**
405
+     * 提交日终记录
406
+     * @param datetime 日期时间
407
+     */
408
+    static SubmitDayEndInfo(datetime: string): boolean {
409
+        let tradeReturn = false;
410
+        try {
411
+            const entity: TransitEntity = {
412
+                ServiceName: "aftersupervise",
413
+                FuncName: "UpdateDayEndInfo",
414
+                Parameters: { "1": datetime }
415
+            };
416
+            // 文件byte[]数据组织 begin
417
+            // 特殊结构转换
418
+            // 文件byte[]数据组织 end
419
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
420
+            if (tmpresult && tmpresult.length === 1) {
421
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
422
+            }
423
+        } catch (e) {
424
+            throw e;
425
+        }
426
+        return tradeReturn;
427
+    }
428
+
429
+    /**
430
+     * 获取工作日期
431
+     */
432
+    static GetWorkDate(): string | null {
433
+        let tradeReturn: string | null = null;
434
+        try {
435
+            const entity: TransitEntity = {
436
+                ServiceName: "aftersupervise",
437
+                FuncName: "GetDayEndWorkDate"
438
+            };
439
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
440
+            if (tmpresult && tmpresult.length === 1) {
441
+                tradeReturn = tmpresult[0].AttachValue.toString();
442
+            }
443
+        } catch (e) {
444
+            throw e;
445
+        }
446
+        return tradeReturn;
447
+    }
448
+
449
+    /**
450
+     * 柜员提交日终信息
451
+     * @param userno 柜员号
452
+     */
453
+    static SubmitDayEndInfoByUser(userno: string): boolean {
454
+        let tradeReturn = false;
455
+        try {
456
+            const entity: TransitEntity = {
457
+                ServiceName: "aftersupervise",
458
+                FuncName: "UpdateDayEndByUser",
459
+                Parameters: { "1": userno }
460
+            };
461
+            // 文件byte[]数据组织 begin
462
+            // 特殊结构转换
463
+            // 文件byte[]数据组织 end
464
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
465
+            if (tmpresult && tmpresult.length === 1) {
466
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
467
+            }
468
+        } catch (e) {
469
+            throw e;
470
+        }
471
+        return tradeReturn;
472
+    }
473
+
474
+    /**
475
+     * 通过柜员号查询当前可以监督的机构
476
+     * @param teller 柜员号
477
+     */
478
+    static getBrnoByTeller(teller: string): string[] | null {
479
+        let result: string[] | null = null;
480
+        try {
481
+            const entity: TransitEntity = {
482
+                ServiceName: "aftersupervise",
483
+                FuncName: "SelectBrnoByTeller",
484
+                Parameters: { "1": teller }
485
+            };
486
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
487
+            if (tmpresult && tmpresult.length === 1) {
488
+                result = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
489
+            }
490
+        } catch (e) {
491
+            throw e;
492
+        }
493
+        return result;
494
+    }
495
+
496
+    /**
497
+     * 事后监督查询回显
498
+     * @param date 日期
499
+     * @param tellerno 柜员号
500
+     * @param printno 票号
501
+     */
502
+    static getAfterCoreRecord(date: string, tellerno: string, printno: string): string[] | null {
503
+        let result: string[] | null = null;
504
+        try {
505
+            const entity: TransitEntity = {
506
+                ServiceName: "aftersupervise",
507
+                FuncName: "SelectAfterCoreRecords",
508
+                Parameters: { "1": date, "2": tellerno, "3": printno }
509
+            };
510
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
511
+            if (tmpresult && tmpresult.length === 1) {
512
+                result = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
513
+            }
514
+        } catch (e) {
515
+            throw e;
516
+        }
517
+        return result;
518
+    }
519
+
520
+    /**
521
+     * 判断是否有此票号,且无重复
522
+     * @param printno 票号
523
+     * @param date 日期
524
+     * @param teller 柜员号
525
+     */
526
+    static GetIsExistPirntNo(printno: string, date: string, teller: string): string {
527
+        let tradeReturn = "";
528
+        try {
529
+            const entity: TransitEntity = {
530
+                ServiceName: "aftersupervise",
531
+                FuncName: "JudgeIsExistPirntno",
532
+                Parameters: { "1": printno, "2": date, "3": teller }
533
+            };
534
+            // 文件byte[]数据组织 begin
535
+            // 特殊结构转换
536
+            // 文件byte[]数据组织 end
537
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
538
+            if (tmpresult && tmpresult.length === 1) {
539
+                tradeReturn = tmpresult[0].AttachValue.toString();
540
+            }
541
+        } catch (e) {
542
+            throw e;
543
+        }
544
+        return tradeReturn;
545
+    }
546
+
547
+    /**
548
+     * 提交操作,将事后监督信息插入表中
549
+     * @param ar 事后记录信息
550
+     */
551
+    static InsertAfterRecords(ar: AfterRecords): boolean {
552
+        let tradeReturn = false;
553
+        try {
554
+            const entity: TransitEntity = {
555
+                ServiceName: "aftersupervise",
556
+                FuncName: "InsertAfterRecords"
557
+            };
558
+            const attcheds: AttachFile = {
559
+                AttachIndex: "1",
560
+                AttachType: null, // 这里不清楚 Types.TableType 的具体类型,先用 null 代替
561
+                AttachValue: CommonFunction.ChangeEntityToTable([ar])
562
+            };
563
+            if (!entity.AttachFiles) {
564
+                entity.AttachFiles = [];
565
+            }
566
+            entity.AttachFiles.push(attcheds);
567
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
568
+            if (tmpresult && tmpresult.length === 1) {
569
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
570
+            }
571
+        } catch (e) {
572
+            throw e;
573
+        }
574
+        return tradeReturn;
575
+    }
576
+
577
+    /**
578
+     * 根据营业日期,柜员号,票号查询第三方流水号
579
+     * @param date 营业日期
580
+     * @param tellerno 柜员号
581
+     * @param printno 票号
582
+     */
583
+    static GetThirdSerialNo(date: string, tellerno: string, printno: string): string | null {
584
+        let tradeReturn: string | null = null;
585
+        try {
586
+            const entity: TransitEntity = {
587
+                ServiceName: "aftersupervise",
588
+                FuncName: "GetThirdSerial",
589
+                Parameters: { "1": date, "2": tellerno, "3": printno }
590
+            };
591
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
592
+            if (tmpresult && tmpresult.length === 1) {
593
+                tradeReturn = tmpresult[0].AttachValue.toString();
594
+            }
595
+        } catch (e) {
596
+            throw e;
597
+        }
598
+        return tradeReturn;
599
+    }
600
+
601
+    /**
602
+     * 查询
603
+     * @param idno 身份证号
604
+     * @param type 类型
605
+     * @param checkresult 检查结果
606
+     * @param marking 标记
607
+     * @param branch 机构
608
+     * @param teller 柜员
609
+     * @param startdate 开始日期
610
+     * @param enddate 结束日期
611
+     */
612
+    static GetIdCheckInfoFromService(
613
+        idno: string,
614
+        type: string = "",
615
+        checkresult: string = "",
616
+        marking: string = "",
617
+        branch: string = "",
618
+        teller: string = "",
619
+        startdate: string = "20120202",
620
+        enddate: string = ""
621
+    ): any {
622
+        let tradeReturn = {};
623
+        try {
624
+            const entity: TransitEntity = {
625
+                ServiceName: "aftersupervise",
626
+                FuncName: "GetIdCheckInfo ",
627
+                Parameters: {
628
+                    "1": idno,
629
+                    "2": type,
630
+                    "3": checkresult,
631
+                    "4": marking,
632
+                    "5": branch,
633
+                    "6": teller,
634
+                    "7": startdate,
635
+                    "8": enddate
636
+                }
637
+            };
638
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
639
+            if (tmpresult && tmpresult.length === 1) {
640
+                tradeReturn = tmpresult[0].AttachValue;
641
+            }
642
+        } catch (e) {
643
+            throw e;
644
+        }
645
+        return tradeReturn;
646
+    }
647
+
648
+    /**
649
+     * 插入
650
+     * @param idr 身份检查记录信息
651
+     */
652
+    static InsertIntoIdCheckInfo(idr: IdCheckRecords): boolean {
653
+        let tradeReturn = false;
654
+        try {
655
+            const entity: TransitEntity = {
656
+                ServiceName: "aftersupervise",
657
+                FuncName: "InserIdCheckInfo "
658
+            };
659
+            const attcheds: AttachFile = {
660
+                AttachIndex: "1",
661
+                AttachType: null, // 这里不清楚 Types.TableType 的具体类型,先用 null 代替
662
+                AttachValue: CommonFunction.ChangeEntityToTable([idr])
663
+            };
664
+            if (!entity.AttachFiles) {
665
+                entity.AttachFiles = [];
666
+            }
667
+            entity.AttachFiles.push(attcheds);
668
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
669
+            if (tmpresult && tmpresult.length === 1) {
670
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
671
+            }
672
+        } catch (e) {
673
+            throw e;
674
+        }
675
+        return tradeReturn;
676
+    }
677
+
678
+    /**
679
+     * 获取工作类型
680
+     */
681
+    static GetWorkType(): string[] | null {
682
+        let result: string[] | null = null;
683
+        try {
684
+            const entity: TransitEntity = {
685
+                ServiceName: "aftersupervise",
686
+                FuncName: "GetWorkType"
687
+            };
688
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
689
+            if (tmpresult && tmpresult.length === 1) {
690
+                result = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
691
+            }
692
+        } catch (e) {
693
+            throw e;
694
+        }
695
+        return result;
696
+    }
697
+
698
+    /**
699
+     * 判断是否已监督
700
+     * @param printno 票号
701
+     * @param date 日期
702
+     * @param teller 柜员号
703
+     */
704
+    static IfSupervise(printno: string, date: string, teller: string): boolean {
705
+        let tradeReturn = false;
706
+        try {
707
+            const entity: TransitEntity = {
708
+                ServiceName: "aftersupervise",
709
+                FuncName: "IfSupervise",
710
+                Parameters: { "1": printno, "2": date, "3": teller }
711
+            };
712
+            // 文件byte[]数据组织 begin
713
+            // 特殊结构转换
714
+            // 文件byte[]数据组织 end
715
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
716
+            if (tmpresult && tmpresult.length === 1) {
717
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
718
+            }
719
+        } catch (e) {
720
+            throw e;
721
+        }
722
+        return tradeReturn;
723
+    }
724
+
725
+    /**
726
+     * 获取事后记录信息
727
+     * @param ar 事后记录信息对象
728
+     * @param longinuser 登录用户
729
+     */
730
+    static GetAfterRecordInfo(ar: AfterRecordInfo, longinuser: string): any {
731
+        let dt = null;
732
+        const entity: TransitEntity = {
733
+            ServiceName: "aftersupervise",
734
+            FuncName: "GetAfterRecordBySolution",
735
+            Parameters: { "2": longinuser }
736
+        };
737
+        const attcheds: AttachFile = {
738
+            AttachIndex: "1",
739
+            AttachType: null, // 这里不清楚 Types.TableType 的具体类型,先用 null 代替
740
+            AttachValue: CommonFunction.ChangeEntityToTable([ar])
741
+        };
742
+        if (!entity.AttachFiles) {
743
+            entity.AttachFiles = [];
744
+        }
745
+        entity.AttachFiles.push(attcheds);
746
+        // 文件byte[]数据组织 begin
747
+        // 特殊结构转换
748
+        // 文件byte[]数据组织 end
749
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
750
+        if (tmpresult && tmpresult.length === 1) {
751
+            dt = tmpresult[0].AttachValue;
752
+        }
753
+        return dt;
754
+    }
755
+
756
+    /**
757
+     * 通过柜员号和日期查询监督信息
758
+     * @param teller 柜员号
759
+     * @param datetime 日期时间
760
+     */
761
+    static GetSuperviseInfoByTeller(teller: string, datetime: string): any {
762
+        let dt = null;
763
+        const entity: TransitEntity = {
764
+            ServiceName: "aftersupervise",
765
+            FuncName: "GetSuperViseInfoByCurrentTeller",
766
+            Parameters: { "1": teller, "2": datetime }
767
+        };
768
+        // 文件byte[]数据组织 begin
769
+        // 特殊结构转换
770
+        // 文件byte[]数据组织 end
771
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
772
+        if (tmpresult && tmpresult.length === 1) {
773
+            dt = tmpresult[0].AttachValue;
774
+        }
775
+        return dt;
776
+    }
777
+
778
+    /**
779
+     * 获取监督信息
780
+     * @param money 金额
781
+     * @param tradeno 交易号
782
+     */
783
+    static GetSuperInfo(money: string, tradeno: string): string | null {
784
+        let result: string | null = null;
785
+        try {
786
+            const entity: TransitEntity = {
787
+                ServiceName: "aftersupervise",
788
+                FuncName: "GetSuperInfo",
789
+                Parameters: { "1": money, "2": tradeno }
790
+            };
791
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
792
+            if (tmpresult && tmpresult.length === 1) {
793
+                result = tmpresult[0].AttachValue.toString();
794
+            }
795
+        } catch (e) {
796
+            throw e;
797
+        }
798
+        return result;
799
+    }
800
+
801
+    /**
802
+     * 获取监督比例
803
+     * @param date 日期
804
+     * @param tradeno 交易号
805
+     * @param kinbrno 机构号
806
+     */
807
+    static GetSuperRatio(date: string, tradeno: string, kinbrno: string): string[] | null {
808
+        let tradeReturn: string[] | null = null;
809
+        try {
810
+            const entity: TransitEntity = {
811
+                ServiceName: "aftersupervise",
812
+                FuncName: "GetSuperRatio",
813
+                Parameters: { "1": date, "2": tradeno, "3": kinbrno }
814
+            };
815
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
816
+            if (tmpresult && tmpresult.length === 1) {
817
+                tradeReturn = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
818
+            }
819
+        } catch (e) {
820
+            throw e;
821
+        }
822
+        return tradeReturn;
823
+    }
824
+
825
+    /**
826
+     * 柜员查询可监督机构以及相关业务比例
827
+     * @param teller 柜员号
828
+     */
829
+    static TellerGetSuperviseInfo(teller: string): any {
830
+        let dt = null;
831
+        const entity: TransitEntity = {
832
+            ServiceName: "aftersupervise",
833
+            FuncName: "GetSuperInfoByTeller",
834
+            Parameters: { "1": teller }
835
+        };
836
+        // 文件byte[]数据组织 begin
837
+        // 特殊结构转换
838
+        // 文件byte[]数据组织 end
839
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
840
+        if (tmpresult && tmpresult.length === 1) {
841
+            dt = tmpresult[0].AttachValue;
842
+        }
843
+        return dt;
844
+    }
845
+
846
+    /**
847
+     * 查询监督机构下对应业务的监督情况
848
+     */
849
+    static GetSuperInfoForBranch(): any {
850
+        let dt = null;
851
+        const entity: TransitEntity = {
852
+            ServiceName: "aftersupervise",
853
+            FuncName: "TaskDistributeSelect"
854
+        };
855
+        // 文件byte[]数据组织 begin
856
+        // 特殊结构转换
857
+        // 文件byte[]数据组织 end
858
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
859
+        if (tmpresult && tmpresult.length === 1) {
860
+            dt = tmpresult[0].AttachValue;
861
+        }
862
+        return dt;
863
+    }
864
+
865
+    /**
866
+     * 事后监督查询
867
+     * @param date 日期
868
+     * @param branch 机构
869
+     * @param teller 柜员
870
+     * @param stat 状态
871
+     */
872
+    static GetSuperRecords(date: string, branch: string, teller: string, stat: string): any {
873
+        let dt = null;
874
+        const entity: TransitEntity = {
875
+            ServiceName: "aftersupervise",
876
+            FuncName: "SelectAfterSuperviseInfo",
877
+            Parameters: { "1": date, "2": branch, "3": teller, "4": stat }
878
+        };
879
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
880
+        if (tmpresult && tmpresult.length === 1) {
881
+            dt = tmpresult[0].AttachValue;
882
+        }
883
+        return dt;
884
+    }
885
+
886
+    /**
887
+     * 统计凭证信息
888
+     * @param date 日期
889
+     */
890
+    static GetNoteInfo(date: string): any {
891
+        let dt = null;
892
+        const entity: TransitEntity = {
893
+            ServiceName: "aftersupervise",
894
+            FuncName: "GetNoteInfo",
895
+            Parameters: { "1": date }
896
+        };
897
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
898
+        if (tmpresult && tmpresult.length === 1) {
899
+            dt = tmpresult[0].AttachValue;
900
+        }
901
+        return dt;
902
+    }
903
+
904
+    /**
905
+     * 查询柜员指定日期最大票号
906
+     * @param date 日期
907
+     */
908
+    static GetMaxPrintnum(date: string): any {
909
+        let dt = null;
910
+        const entity: TransitEntity = {
911
+            ServiceName: "aftersupervise",
912
+            FuncName: "GetMaxPrintnum",
913
+            Parameters: { "1": date }
914
+        };
915
+        const tmpresult = ServiceManager.GetInstance().Commit(entity);
916
+        if (tmpresult && tmpresult.length === 1) {
917
+            dt = tmpresult[0].AttachValue;
918
+        }
919
+        return dt;
920
+    }
921
+
922
+    /**
923
+     * 获取日终状态
924
+     */
925
+    static GetDanEndStat(): boolean {
926
+        let tradeReturn = false;
927
+        try {
928
+            const entity: TransitEntity = {
929
+                ServiceName: "aftersupervise",
930
+                FuncName: "getDayEndStat"
931
+            };
932
+            // 文件byte[]数据组织 begin
933
+            // 特殊结构转换
934
+            // 文件byte[]数据组织 end
935
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
936
+            if (tmpresult && tmpresult.length === 1) {
937
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
938
+            }
939
+        } catch (e) {
940
+            throw e;
941
+        }
942
+        return tradeReturn;
943
+    }
944
+}
945
+
946
+export { AfterSuperviseHandle };

+ 256
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/EncrypteHandle.ts View File

@@ -0,0 +1,256 @@
1
+// 定义 TransitEntity 类型
2
+interface TransitEntity {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters: { [key: string]: string };
6
+}
7
+
8
+// 定义 AttachFile 类型
9
+interface AttachFile {
10
+    AttachValue: any;
11
+}
12
+
13
+// 定义 ServiceManager 类,这里只是模拟,需要根据实际情况实现
14
+class ServiceManager {
15
+    private static instance: ServiceManager;
16
+    private constructor() {}
17
+
18
+    static getInstance(): ServiceManager {
19
+        if (!this.instance) {
20
+            this.instance = new ServiceManager();
21
+        }
22
+        return this.instance;
23
+    }
24
+
25
+    Commit(entity: TransitEntity): AttachFile[] | null {
26
+        // 这里需要实现实际的提交逻辑
27
+        return null;
28
+    }
29
+}
30
+
31
+/**
32
+ * 客户端加密类
33
+ */
34
+export class EncrypteHandle {
35
+    /**
36
+     * 更新秘钥
37
+     * 此接口用于在某一周期之后调用更新设备的工作秘钥和保护秘钥
38
+     * @param workKeyName 工作秘钥(pinpad.终端号.zpk)
39
+     * @param proKeyName 保护秘钥(pinpad.终端号.zmk)
40
+     * @returns 
41
+     */
42
+    static GetNewKey(workKeyName: string, proKeyName: string): string | null {
43
+        let tradeReturn: string | null = null;
44
+        try {
45
+            const entity: TransitEntity = {
46
+                ServiceName: "encryptservice",
47
+                FuncName: "GetZPKOrZAK",
48
+                Parameters: { "1": workKeyName, "2": proKeyName }
49
+            };
50
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
51
+            if (tmpresult && tmpresult.length === 1) {
52
+                tradeReturn = tmpresult[0].AttachValue.toString();
53
+            }
54
+        } catch (e) {
55
+            throw e;
56
+        }
57
+        return tradeReturn;
58
+    }
59
+
60
+    /**
61
+     * 与核心转加密
62
+     * @param account 账户
63
+     * @param pinBlock1 PIN密文
64
+     * @param workKeyName 工作秘钥
65
+     * @returns 
66
+     */
67
+    static TranslateEncrypt(account: string, pinBlock1: string, workKeyName: string): string | null {
68
+        let tradeReturn: string | null = null;
69
+        try {
70
+            const entity: TransitEntity = {
71
+                ServiceName: "encryptservice",
72
+                FuncName: "TranslateEncrypt",
73
+                Parameters: { "1": account, "2": pinBlock1, "3": workKeyName }
74
+            };
75
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
76
+            if (tmpresult && tmpresult.length === 1) {
77
+                tradeReturn = tmpresult[0].AttachValue.toString();
78
+            }
79
+        } catch (e) {
80
+            throw e;
81
+        }
82
+        return tradeReturn;
83
+    }
84
+
85
+    /**
86
+     * 发服务端验证MAC
87
+     * @param lenOfMac 
88
+     * @param macData 
89
+     * @param mac 
90
+     * @returns 
91
+     */
92
+    static VerifyMack(lenOfMac: string, macData: string, mac: string): boolean {
93
+        let tradeReturn: boolean = false;
94
+        try {
95
+            const entity: TransitEntity = {
96
+                ServiceName: "encryptservice",
97
+                FuncName: "CheckMack",
98
+                Parameters: { "1": lenOfMac, "2": macData, "3": mac }
99
+            };
100
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
101
+            if (tmpresult && tmpresult.length === 1) {
102
+                tradeReturn = Boolean(tmpresult[0].AttachValue.toString());
103
+            }
104
+        } catch (e) {
105
+            throw e;
106
+        }
107
+        return tradeReturn;
108
+    }
109
+
110
+    /**
111
+     * 服务端算MAC
112
+     * @param macData 
113
+     * @param dataLenth 
114
+     * @returns 
115
+     */
116
+    static GetMac(macData: string, dataLenth: string): string | null {
117
+        let tradeReturn: string | null = null;
118
+        try {
119
+            const entity: TransitEntity = {
120
+                ServiceName: "encryptservice",
121
+                FuncName: "GetMac",
122
+                Parameters: { "1": macData, "2": dataLenth }
123
+            };
124
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
125
+            if (tmpresult && tmpresult.length === 1) {
126
+                tradeReturn = tmpresult[0].AttachValue.toString();
127
+            }
128
+        } catch (e) {
129
+            throw e;
130
+        }
131
+        return tradeReturn;
132
+    }
133
+
134
+    /**
135
+     * 调用银联加密 多法人
136
+     * @param account 
137
+     * @param pwd 
138
+     * @param legal_pwd 
139
+     * @returns 
140
+     */
141
+    static EncrypteUnion(account: string, pwd: string, legal_pwd: string): string | null {
142
+        let tradeReturn: string | null = null;
143
+        try {
144
+            const entity: TransitEntity = {
145
+                ServiceName: "encryptservice",
146
+                FuncName: "EncrypteUnion",
147
+                Parameters: { "1": account, "2": pwd, "3": legal_pwd }
148
+            };
149
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
150
+            if (tmpresult && tmpresult.length === 1) {
151
+                tradeReturn = tmpresult[0].AttachValue.toString();
152
+            }
153
+        } catch (e) {
154
+            throw e;
155
+        }
156
+        return tradeReturn;
157
+    }
158
+
159
+    /**
160
+     * 调用银联加密
161
+     * @param account 
162
+     * @param pwd 
163
+     * @returns 
164
+     */
165
+    static EncrypteUnionSingle(account: string, pwd: string): string | null {
166
+        let tradeReturn: string | null = null;
167
+        try {
168
+            const entity: TransitEntity = {
169
+                ServiceName: "encryptservice",
170
+                FuncName: "EncrypteUnion",
171
+                Parameters: { "1": account, "2": pwd }
172
+            };
173
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
174
+            if (tmpresult && tmpresult.length === 1) {
175
+                tradeReturn = tmpresult[0].AttachValue.toString();
176
+            }
177
+        } catch (e) {
178
+            throw e;
179
+        }
180
+        return tradeReturn;
181
+    }
182
+
183
+    /**
184
+     * 调用银联加密-国密
185
+     * @param account 
186
+     * @param pwd 
187
+     * @param legal_pwd 
188
+     * @param encrypteType 
189
+     * @returns 
190
+     */
191
+    static EncrypteUnion_GM(account: string, pwd: string, legal_pwd: string, encrypteType: string): string | null {
192
+        let tradeReturn: string | null = null;
193
+        try {
194
+            const entity: TransitEntity = {
195
+                ServiceName: "encryptservice",
196
+                FuncName: "EncrypteUnion",
197
+                Parameters: { "1": account, "2": pwd, "3": legal_pwd, "4": encrypteType }
198
+            };
199
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
200
+            if (tmpresult && tmpresult.length === 1) {
201
+                tradeReturn = tmpresult[0].AttachValue.toString();
202
+            }
203
+        } catch (e) {
204
+            throw e;
205
+        }
206
+        return tradeReturn;
207
+    }
208
+
209
+    /**
210
+     * 调用银联渠道加密
211
+     * @param account 
212
+     * @param pwd 
213
+     * @returns 
214
+     */
215
+    static EncrypteUnion_Sec(account: string, pwd: string): string | null {
216
+        let tradeReturn: string | null = null;
217
+        try {
218
+            const entity: TransitEntity = {
219
+                ServiceName: "encryptservice",
220
+                FuncName: "EncrypteUnion_Sec",
221
+                Parameters: { "1": account, "2": pwd }
222
+            };
223
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
224
+            if (tmpresult && tmpresult.length === 1) {
225
+                tradeReturn = tmpresult[0].AttachValue.toString();
226
+            }
227
+        } catch (e) {
228
+            throw e;
229
+        }
230
+        return tradeReturn;
231
+    }
232
+
233
+    /**
234
+     * 更新密钥
235
+     * @param seqno 设备序号
236
+     * @param date 交易日期
237
+     * @returns 
238
+     */
239
+    static IsUpdateNewKey(seqno: string, date: string): boolean {
240
+        let tradeReturn: boolean = false;
241
+        try {
242
+            const entity: TransitEntity = {
243
+                ServiceName: "UtilService",
244
+                FuncName: "getUpdateDeviceKeyState",
245
+                Parameters: { "1": seqno, "2": date }
246
+            };
247
+            const tmpresult: AttachFile[] | null = ServiceManager.getInstance().Commit(entity);
248
+            if (tmpresult && tmpresult.length === 1) {
249
+                tradeReturn = Boolean(tmpresult[0].AttachValue.toString());
250
+            }
251
+        } catch (e) {
252
+            throw e;
253
+        }
254
+        return tradeReturn;
255
+    }
256
+}

+ 37
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/FingerConfigHandle.ts View File

@@ -0,0 +1,37 @@
1
+// 假设这些类型在其他文件中定义,需要按需导入
2
+interface TransitEntity {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+}
6
+
7
+interface AttachFile {
8
+    AttachValue: any;
9
+}
10
+
11
+interface ServiceManager {
12
+    static GetInstance(): ServiceManager;
13
+    Commit(entity: TransitEntity): AttachFile[];
14
+}
15
+
16
+export class FingerConfigHandle {
17
+    /**
18
+     * 获取服务端指纹服务器配置地址
19
+     * @returns 服务端指纹服务器配置地址
20
+     */
21
+    public static GetFingerService(): string {
22
+        let service: string = '';
23
+        try {
24
+            const entity: TransitEntity = {
25
+                ServiceName: "UtilService",
26
+                FuncName: "getFingerIp"
27
+            };
28
+            const list: AttachFile[] = ServiceManager.GetInstance().Commit(entity);
29
+            if (list.length > 0) {
30
+                service = list[0].AttachValue.toString();
31
+            }
32
+        } catch (ex) {
33
+            throw ex;
34
+        }
35
+        return service;
36
+    }
37
+}

+ 188
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PicpHandle.ts View File

@@ -0,0 +1,188 @@
1
+// 模拟部分类型和函数,实际需要根据项目情况补充
2
+type TransitEntity = {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters?: { [key: string]: string };
6
+    AttachFiles: AttachFile[];
7
+};
8
+
9
+type AttachFile = {
10
+    AttachIndex: string;
11
+    AttachType: Types;
12
+    AttachValue: any;
13
+};
14
+
15
+enum Types {
16
+    TableType,
17
+    ByteType
18
+}
19
+
20
+class ServiceManager {
21
+    private static instance: ServiceManager;
22
+    private constructor() { }
23
+
24
+    static getInstance() {
25
+        if (!this.instance) {
26
+            this.instance = new ServiceManager();
27
+        }
28
+        return this.instance;
29
+    }
30
+
31
+    Commit(entity: TransitEntity): AttachFile[] {
32
+        // 这里只是模拟,实际需要实现具体逻辑
33
+        return [];
34
+    }
35
+}
36
+
37
+class CommonFunction {
38
+    static ChangeEntityToTable(pic: any[]): any {
39
+        // 这里只是模拟,实际需要实现具体逻辑
40
+        return {};
41
+    }
42
+
43
+    static ChangeTableToEntitys<T>(dataTable: any): T[] {
44
+        // 这里只是模拟,实际需要实现具体逻辑
45
+        return [] as T[];
46
+    }
47
+}
48
+
49
+type PicpCheckRecords = any;
50
+type PicpCheckResInfo = {
51
+    photoData?: Uint8Array;
52
+};
53
+
54
+export class PicpHandle {
55
+    public static PicpCommonRequest(msgStr: string): Uint8Array | null {
56
+        let tradeReturn: Uint8Array | null = null;
57
+        try {
58
+            const entity: TransitEntity = {
59
+                ServiceName: "PicpService",
60
+                FuncName: "PicpCommonRequest",
61
+                Parameters: { "1": msgStr },
62
+                AttachFiles: []
63
+            };
64
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
65
+            if (tmpresult && tmpresult.length === 1) {
66
+                tradeReturn = tmpresult[0].AttachValue as Uint8Array;
67
+            }
68
+        } catch (e) {
69
+            throw e;
70
+        }
71
+        return tradeReturn;
72
+    }
73
+
74
+    public static PicpCheckRequest(picpCheckRecords: PicpCheckRecords): PicpCheckResInfo | null {
75
+        let tradeReturn: PicpCheckResInfo | null = null;
76
+        try {
77
+            const entity: TransitEntity = {
78
+                ServiceName: "PicpService",
79
+                FuncName: "PicpCheckRequest",
80
+                AttachFiles: []
81
+            };
82
+            const attcheds: AttachFile = {
83
+                AttachIndex: "1",
84
+                AttachType: Types.TableType,
85
+                AttachValue: CommonFunction.ChangeEntityToTable([picpCheckRecords])
86
+            };
87
+            entity.AttachFiles.push(attcheds);
88
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
89
+            if (tmpresult && tmpresult.length === 2) {
90
+                tradeReturn = CommonFunction.ChangeTableToEntitys<PicpCheckResInfo>(tmpresult[0].AttachValue)[0];
91
+                if (tradeReturn) {
92
+                    tradeReturn.photoData = tmpresult[1].AttachValue as Uint8Array;
93
+                }
94
+            }
95
+        } catch (e) {
96
+            throw e;
97
+        }
98
+        return tradeReturn;
99
+    }
100
+
101
+    public static GenCheckReqMessage(picpCheckRecords: PicpCheckRecords): string | null {
102
+        let tradeReturn: string | null = null;
103
+        try {
104
+            const entity: TransitEntity = {
105
+                ServiceName: "PicpService",
106
+                FuncName: "GenCheckReqMessage",
107
+                AttachFiles: []
108
+            };
109
+            const attcheds: AttachFile = {
110
+                AttachIndex: "1",
111
+                AttachType: Types.TableType,
112
+                AttachValue: CommonFunction.ChangeEntityToTable([picpCheckRecords])
113
+            };
114
+            entity.AttachFiles.push(attcheds);
115
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
116
+            if (tmpresult && tmpresult.length === 1) {
117
+                tradeReturn = tmpresult[0].AttachValue.toString();
118
+            }
119
+        } catch (e) {
120
+            throw e;
121
+        }
122
+        return tradeReturn;
123
+    }
124
+
125
+    public static AnalyzeCheckResMessage(recvData: Uint8Array): PicpCheckResInfo | null {
126
+        let tradeReturn: PicpCheckResInfo | null = null;
127
+        try {
128
+            const entity: TransitEntity = {
129
+                ServiceName: "PicpService",
130
+                FuncName: "AnalyzeCheckResMessage",
131
+                AttachFiles: []
132
+            };
133
+            const attcheds2: AttachFile = {
134
+                AttachIndex: "1",
135
+                AttachType: Types.ByteType,
136
+                AttachValue: recvData
137
+            };
138
+            entity.AttachFiles.push(attcheds2);
139
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
140
+            if (tmpresult && tmpresult.length === 1) {
141
+                tradeReturn = CommonFunction.ChangeTableToEntitys<PicpCheckResInfo>(tmpresult[0].AttachValue)[0];
142
+                if (tradeReturn) {
143
+                    // 原代码此处索引 1 可能有误,因为 tmpresult 长度为 1
144
+                    // tradeReturn.photoData = tmpresult[1].AttachValue as Uint8Array; 
145
+                }
146
+            }
147
+        } catch (e) {
148
+            throw e;
149
+        }
150
+        return tradeReturn;
151
+    }
152
+
153
+    public static HnSaveCheckdata(picpCheckRecords: PicpCheckRecords, checkResInfo: PicpCheckResInfo): number {
154
+        let result = 0;
155
+        try {
156
+            const entity: TransitEntity = {
157
+                ServiceName: "PicpService",
158
+                FuncName: "HnSaveCheckdata",
159
+                AttachFiles: []
160
+            };
161
+            const attcheds: AttachFile = {
162
+                AttachIndex: "1",
163
+                AttachType: Types.TableType,
164
+                AttachValue: CommonFunction.ChangeEntityToTable([picpCheckRecords])
165
+            };
166
+            const attcheds2: AttachFile = {
167
+                AttachIndex: "2",
168
+                AttachType: Types.TableType,
169
+                AttachValue: CommonFunction.ChangeEntityToTable([checkResInfo])
170
+            };
171
+            const attcheds3: AttachFile = {
172
+                AttachIndex: "3",
173
+                AttachType: Types.ByteType,
174
+                AttachValue: checkResInfo.photoData
175
+            };
176
+            entity.AttachFiles.push(attcheds3);
177
+            entity.AttachFiles.push(attcheds);
178
+            entity.AttachFiles.push(attcheds2);
179
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
180
+            if (tmpresult && tmpresult.length === 1) {
181
+                result = Number(tmpresult[0].AttachValue);
182
+            }
183
+        } catch (e) {
184
+            throw e;
185
+        }
186
+        return result;
187
+    }
188
+}

+ 948
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PlatformManagerHandle.ts View File

@@ -0,0 +1,948 @@
1
+// 模拟引入必要的类型
2
+type TransitEntity = {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters?: Record<string, string>;
6
+    AttachFiles?: AttachFile[];
7
+};
8
+
9
+type AttachFile = {
10
+    AttachIndex: string;
11
+    AttachType: any;
12
+    AttachValue: any;
13
+};
14
+
15
+type TT_KinbrInfo = any;
16
+type TBL_Sys_TerminalNumber = any;
17
+type TBL_Sys_NotifyMessage = any;
18
+type TBL_Sys_SendGroupRole = any;
19
+type TT_GroupRule = any;
20
+type TT_LoginUser = any;
21
+type TT_LoginSign = any;
22
+type TBL_Sys_ReceiveName = any;
23
+type TT_MenuInfo = any;
24
+
25
+// 模拟 ServiceManager 类
26
+class ServiceManager {
27
+    private static instance: ServiceManager;
28
+
29
+    static getInstance() {
30
+        if (!this.instance) {
31
+            this.instance = new ServiceManager();
32
+        }
33
+        return this.instance;
34
+    }
35
+
36
+    async Commit(entity: TransitEntity): Promise<AttachFile[]> {
37
+        // 这里模拟服务调用,实际使用时需要替换为真实的请求逻辑
38
+        console.log('模拟服务调用:', entity);
39
+        return [];
40
+    }
41
+}
42
+
43
+// 模拟 CommonFunction 类
44
+class CommonFunction {
45
+    static ChangeTableToEntitys<T>(dataTable: any): T[] {
46
+        // 这里模拟数据转换,实际使用时需要替换为真实的转换逻辑
47
+        console.log('模拟数据转换:', dataTable);
48
+        return [] as T[];
49
+    }
50
+
51
+    static ChangeEntityToTable(entities: any[]): any {
52
+        // 这里模拟数据转换,实际使用时需要替换为真实的转换逻辑
53
+        console.log('模拟数据转换:', entities);
54
+        return {};
55
+    }
56
+
57
+    static ChangArrayToStr(arr: string[]): string {
58
+        return arr.join(',');
59
+    }
60
+
61
+    static ChangStrToArray(str: string): string[] {
62
+        return str.split(',');
63
+    }
64
+}
65
+
66
+// 模拟 Types 常量
67
+const Types = {
68
+    TableType: 'TableType',
69
+    ByteType: 'ByteType'
70
+};
71
+
72
+/**
73
+ * 平台管理操作类
74
+ */
75
+export class PlatformManagerHandle {
76
+    /**
77
+     * 终端号操作
78
+     */
79
+    /**
80
+     * 查询机构信息
81
+     * @param code 编码
82
+     * @returns Id、Code、Name
83
+     */
84
+    static async KinbrInfo_GetList_IDCodeName(code: string): Promise<TT_KinbrInfo[]> {
85
+        let result: TT_KinbrInfo[] | null = null;
86
+        try {
87
+            const entity: TransitEntity = {
88
+                ServiceName: "tradeManagerService",
89
+                FuncName: "KinbrInfo_GetList_IDCodeName",
90
+                Parameters: { "1": code }
91
+            };
92
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
93
+            if (tmpresult && tmpresult.length === 1) {
94
+                result = CommonFunction.ChangeTableToEntitys<TT_KinbrInfo>(tmpresult[0].AttachValue);
95
+            }
96
+        } catch (e) {
97
+            throw e;
98
+        }
99
+        return result || [];
100
+    }
101
+
102
+    /**
103
+     * 查询终端号列表
104
+     * @param kinbrno 
105
+     * @returns 
106
+     */
107
+    static async TerminalNumber_GetList(kinbrno: string): Promise<TBL_Sys_TerminalNumber[]> {
108
+        let result: TBL_Sys_TerminalNumber[] | null = null;
109
+        try {
110
+            const entity: TransitEntity = {
111
+                ServiceName: "tradeManagerService",
112
+                FuncName: "TerminalNumber_GetList",
113
+                Parameters: { "1": kinbrno }
114
+            };
115
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
116
+            if (tmpresult && tmpresult.length === 1) {
117
+                result = CommonFunction.ChangeTableToEntitys<TBL_Sys_TerminalNumber>(tmpresult[0].AttachValue);
118
+            }
119
+        } catch (e) {
120
+            throw e;
121
+        }
122
+        return result || [];
123
+    }
124
+
125
+    /**
126
+     * 
127
+     * @param disk 
128
+     * @returns 
129
+     */
130
+    static async TerminalNumber_GetListByDisk(disk: string): Promise<TBL_Sys_TerminalNumber[]> {
131
+        let result: TBL_Sys_TerminalNumber[] | null = null;
132
+        try {
133
+            const entity: TransitEntity = {
134
+                ServiceName: "tradeManagerService",
135
+                FuncName: "TerminalNumberList_SelectByDisk",
136
+                Parameters: { "1": disk }
137
+            };
138
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
139
+            if (tmpresult && tmpresult.length === 1) {
140
+                result = CommonFunction.ChangeTableToEntitys<TBL_Sys_TerminalNumber>(tmpresult[0].AttachValue);
141
+            }
142
+        } catch (e) {
143
+            throw e;
144
+        }
145
+        return result || [];
146
+    }
147
+
148
+    /**
149
+     * 添加终端号
150
+     * @param terminalNumberList 终端号
151
+     * @returns "0000"-成功|"9999"-失败
152
+     */
153
+    static async TerminalNumber_Add(terminalNumberList: TBL_Sys_TerminalNumber[]): Promise<string | null> {
154
+        let result: string | null = null;
155
+        try {
156
+            const entity: TransitEntity = {
157
+                ServiceName: "tradeManagerService",
158
+                FuncName: "TerminalNumber_Add",
159
+                AttachFiles: []
160
+            };
161
+            const file: AttachFile = {
162
+                AttachIndex: "1",
163
+                AttachType: Types.TableType,
164
+                AttachValue: CommonFunction.ChangeEntityToTable(terminalNumberList)
165
+            };
166
+            entity.AttachFiles.push(file);
167
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
168
+            if (tmpresult && tmpresult.length === 1) {
169
+                result = tmpresult[0].AttachValue.toString();
170
+            }
171
+        } catch (e) {
172
+            throw e;
173
+        }
174
+        return result;
175
+    }
176
+
177
+    /**
178
+     * 终端号和激活码的匹配
179
+     * @param tellerNumber 柜员号
180
+     * @param activationcode 激活码
181
+     * @param registerTime 注册时间
182
+     * @param remakInfo 备份信息
183
+     * @returns 
184
+     */
185
+    static async TerminalNumberList_Add(tellerNumber: string, activationcode: string, registerTime: string, remakInfo: string): Promise<string | null> {
186
+        let result: string | null = null;
187
+        try {
188
+            const entity: TransitEntity = {
189
+                ServiceName: "tradeManagerService",
190
+                FuncName: "TerminalNumberList_Add",
191
+                Parameters: { "1": tellerNumber, "2": activationcode, "3": registerTime, "4": remakInfo }
192
+            };
193
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
194
+            if (tmpresult && tmpresult.length === 1) {
195
+                result = tmpresult[0].AttachValue.toString();
196
+            }
197
+        } catch (e) {
198
+            throw e;
199
+        }
200
+        return result;
201
+    }
202
+
203
+    /**
204
+     * 解除终端号和设备号匹配
205
+     * @param code where条件
206
+     * @returns "0000"-成功|"9999"-失败
207
+     */
208
+    static async UnTerminalNumber_Matching(code: string): Promise<string | null> {
209
+        let result: string | null = null;
210
+        try {
211
+            const entity: TransitEntity = {
212
+                ServiceName: "tradeManagerService",
213
+                FuncName: "UnTerminalNumber_Matching",
214
+                Parameters: { "1": code }
215
+            };
216
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
217
+            if (tmpresult && tmpresult.length === 1) {
218
+                result = tmpresult[0].AttachValue.toString();
219
+            }
220
+        } catch (e) {
221
+            throw e;
222
+        }
223
+        return result;
224
+    }
225
+
226
+    /**
227
+     * 删除终端号
228
+     * @param Id where条件
229
+     * @returns "0000"-成功|"9999"-失败
230
+     */
231
+    static async TerminalNumber_DeleteByID(Id: string[]): Promise<string | null> {
232
+        let result: string | null = null;
233
+        try {
234
+            const entity: TransitEntity = {
235
+                ServiceName: "tradeManagerService",
236
+                FuncName: "TerminalNumber_DeleteByID",
237
+                Parameters: { "1": CommonFunction.ChangArrayToStr(Id) }
238
+            };
239
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
240
+            if (tmpresult && tmpresult.length === 1) {
241
+                result = tmpresult[0].AttachValue.toString();
242
+            }
243
+        } catch (e) {
244
+            throw e;
245
+        }
246
+        return result;
247
+    }
248
+
249
+    /**
250
+     *  更新终端号匹配
251
+     * @param valueData 终端号
252
+     * @param whereData where激活码
253
+     * @returns "0000"-成功|"9999"-失败
254
+     */
255
+    static async TerminalNumber_Matching(valueData: string, whereData: string): Promise<string | null> {
256
+        let result: string | null = null;
257
+        try {
258
+            const entity: TransitEntity = {
259
+                ServiceName: "tradeManagerService",
260
+                FuncName: "TerminalNumberUpdate",
261
+                Parameters: { "1": valueData, "2": whereData }
262
+            };
263
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
264
+            if (tmpresult && tmpresult.length === 1) {
265
+                result = tmpresult[0].AttachValue.toString();
266
+            }
267
+        } catch (e) {
268
+            throw e;
269
+        }
270
+        return result;
271
+    }
272
+
273
+    /**
274
+     * 获取终端号最大的值
275
+     * @param kinbrNo 机构号
276
+     * @returns 终端号
277
+     */
278
+    static async TerminalNumber_GetMaxNumber(kinbrNo: string): Promise<string | null> {
279
+        let result: string | null = null;
280
+        try {
281
+            const entity: TransitEntity = {
282
+                ServiceName: "tradeManagerService",
283
+                FuncName: "TerminalNumber_GetMaxNumber",
284
+                Parameters: { "1": kinbrNo }
285
+            };
286
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
287
+            if (tmpresult && tmpresult.length === 1) {
288
+                result = tmpresult[0].AttachValue.toString();
289
+            }
290
+        } catch (e) {
291
+            throw e;
292
+        }
293
+        return result;
294
+    }
295
+
296
+    /**
297
+     * 查询终端号注册状态
298
+     * @param activationCode 激活码
299
+     * @returns 0-没有注册,1-已经注册
300
+     */
301
+    static async TerminalNumber_GetStatus(activationCode: string): Promise<string | null> {
302
+        let result: string | null = null;
303
+        try {
304
+            const entity: TransitEntity = {
305
+                ServiceName: "tradeManagerService",
306
+                FuncName: "TerminalNumber_GetStatus",
307
+                Parameters: { "1": activationCode }
308
+            };
309
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
310
+            if (tmpresult && tmpresult.length === 1) {
311
+                result = tmpresult[0].AttachValue.toString();
312
+            }
313
+        } catch (e) {
314
+            throw e;
315
+        }
316
+        return result;
317
+    }
318
+
319
+    /**
320
+     * 根据激活码获取机构号
321
+     * @param activationCode 激活码
322
+     * @returns 0-没有机构,1-机构号
323
+     */
324
+    static async TerminalNumber_GetKinbrNO(activationCode: string): Promise<string | null> {
325
+        let result: string | null = null;
326
+        try {
327
+            const entity: TransitEntity = {
328
+                ServiceName: "tradeManagerService",
329
+                FuncName: "TerminalNumber_GetKinbrno",
330
+                Parameters: { "1": activationCode }
331
+            };
332
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
333
+            if (tmpresult && tmpresult.length === 1) {
334
+                result = tmpresult[0].AttachValue.toString();
335
+            }
336
+        } catch (e) {
337
+            throw e;
338
+        }
339
+        return result;
340
+    }
341
+
342
+    /**
343
+     * 通知下发信息操作
344
+     */
345
+    /**
346
+     * 查询公告信息
347
+     * @param id id
348
+     * @param flag 0-普通查询,1-查询值包括附件
349
+     * @param userCode 
350
+     * @param dt 
351
+     * @returns TBL_Sys__NotifyMessage集合列表
352
+     */
353
+    static async NotifyMessage_GetInfobyId(id: string, flag: string, userCode: string): Promise<[TBL_Sys_NotifyMessage[], any | null]> {
354
+        let result: TBL_Sys_NotifyMessage[] | null = null;
355
+        let dt: any | null = null;
356
+        try {
357
+            const entity: TransitEntity = {
358
+                ServiceName: "tradeManagerService",
359
+                FuncName: "NotifyMessage_GetInfoByID",
360
+                Parameters: { "1": id, "2": flag, "3": userCode }
361
+            };
362
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
363
+            if (tmpresult && tmpresult.length === 1) {
364
+                dt = tmpresult[0].AttachValue;
365
+                result = CommonFunction.ChangeTableToEntitys<TBL_Sys_NotifyMessage>(tmpresult[0].AttachValue);
366
+            }
367
+        } catch (e) {
368
+            throw e;
369
+        }
370
+        return [result || [], dt];
371
+    }
372
+
373
+    /**
374
+     * 查看公告信息对应机构和岗位
375
+     * @param type 0-机构,1-岗位
376
+     * @param userid 公告信息id
377
+     * @returns 机构|岗位 列表
378
+     */
379
+    static async NotifyMessage_GetGroupRolebyInfoId(type: string, userid: string): Promise<TBL_Sys_SendGroupRole[]> {
380
+        let result: TBL_Sys_SendGroupRole[] | null = null;
381
+        try {
382
+            const entity: TransitEntity = {
383
+                ServiceName: "tradeManagerService",
384
+                FuncName: "NotifyMessage_GetGroupRolebyInfoId",
385
+                Parameters: { "1": type, "2": userid }
386
+            };
387
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
388
+            if (tmpresult && tmpresult.length === 1) {
389
+                result = CommonFunction.ChangeTableToEntitys<TBL_Sys_SendGroupRole>(tmpresult[0].AttachValue);
390
+            }
391
+        } catch (e) {
392
+            throw e;
393
+        }
394
+        return result || [];
395
+    }
396
+
397
+    /**
398
+     * 添加公告信息
399
+     * @param notifyMessagelist 信息列表
400
+     * @returns "0000"-成功|"9999"-失败
401
+     */
402
+    static async NotifyMessage_Add(notifyMessagelist: TBL_Sys_NotifyMessage): Promise<string | null> {
403
+        let result: string | null = null;
404
+        const list = [notifyMessagelist];
405
+        try {
406
+            const entity: TransitEntity = {
407
+                ServiceName: "tradeManagerService",
408
+                FuncName: "NotifyMessage_Add",
409
+                AttachFiles: []
410
+            };
411
+            const file: AttachFile = {
412
+                AttachIndex: "1",
413
+                AttachType: Types.TableType,
414
+                AttachValue: CommonFunction.ChangeEntityToTable(list)
415
+            };
416
+            entity.AttachFiles.push(file);
417
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
418
+            if (tmpresult && tmpresult.length === 1) {
419
+                result = tmpresult[0].AttachValue.toString();
420
+            }
421
+        } catch (e) {
422
+            throw e;
423
+        }
424
+        return result;
425
+    }
426
+
427
+    /**
428
+     * 添加公告信息发送的机构和岗位
429
+     * @param tblsysSendGroupRoleList 
430
+     * @returns 
431
+     */
432
+    static async NotifyMessage_SendGroupRoleAdd(tblsysSendGroupRoleList: TBL_Sys_SendGroupRole[]): Promise<string | null> {
433
+        let result: string | null = null;
434
+        try {
435
+            const entity: TransitEntity = {
436
+                ServiceName: "tradeManagerService",
437
+                FuncName: "NotifyMessage_SendGroupRoleAdd",
438
+                AttachFiles: []
439
+            };
440
+            const file: AttachFile = {
441
+                AttachIndex: "1",
442
+                AttachType: Types.TableType,
443
+                AttachValue: CommonFunction.ChangeEntityToTable(tblsysSendGroupRoleList)
444
+            };
445
+            entity.AttachFiles.push(file);
446
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
447
+            if (tmpresult && tmpresult.length === 1) {
448
+                result = tmpresult[0].AttachValue.toString();
449
+            }
450
+        } catch (e) {
451
+            throw e;
452
+        }
453
+        return result;
454
+    }
455
+
456
+    /**
457
+     *  修改公告信息
458
+     * @param notifyMessagelist 信息列表
459
+     * @returns "0000"-成功|"9999"-失败
460
+     */
461
+    static async NotifyMessage_Update(notifyMessagelist: TBL_Sys_NotifyMessage): Promise<string | null> {
462
+        let result: string | null = null;
463
+        try {
464
+            const entity: TransitEntity = {
465
+                ServiceName: "tradeManagerService",
466
+                FuncName: "NotifyMessage_Update",
467
+                AttachFiles: []
468
+            };
469
+            const file: AttachFile = {
470
+                AttachIndex: "1",
471
+                AttachType: Types.TableType,
472
+                AttachValue: notifyMessagelist
473
+            };
474
+            entity.AttachFiles.push(file);
475
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
476
+            if (tmpresult && tmpresult.length === 1) {
477
+                result = tmpresult[0].AttachValue.toString();
478
+            }
479
+        } catch (e) {
480
+            throw e;
481
+        }
482
+        return result;
483
+    }
484
+
485
+    /**
486
+     * 更新附件
487
+     * @param info_Annex 附件
488
+     * @param info_id Id
489
+     * @returns "0000"-成功|"9999"-失败
490
+     */
491
+    static async NotifyMessage_AttachedFile_Update(info_Annex: string, info_id: string): Promise<string | null> {
492
+        let result: string | null = null;
493
+        try {
494
+            const entity: TransitEntity = {
495
+                ServiceName: "tradeManagerService",
496
+                FuncName: "NotifyMessage_AttachedFile_Del",
497
+                Parameters: { "1": info_Annex, "2": info_id }
498
+            };
499
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
500
+            if (tmpresult && tmpresult.length === 1) {
501
+                result = tmpresult[0].AttachValue.toString();
502
+            }
503
+        } catch (e) {
504
+            throw e;
505
+        }
506
+        return result;
507
+    }
508
+
509
+    /**
510
+     * 取得本柜员的公告信息
511
+     * @param userCode 柜员号
512
+     * @param isStatus 0-未读,1-已读
513
+     * @returns TBL_Sys__NotifyMessage集合列表
514
+     */
515
+    static async NotifyMessage_GetNewsBoxByID(userCode: string, isStatus: string): Promise<TBL_Sys_NotifyMessage[]> {
516
+        let result: TBL_Sys_NotifyMessage[] | null = null;
517
+        try {
518
+            const entity: TransitEntity = {
519
+                ServiceName: "tradeManagerService",
520
+                FuncName: "NotifyMessage_GetNewsBoxByID",
521
+                Parameters: { "1": userCode, "2": isStatus }
522
+            };
523
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
524
+            if (tmpresult && tmpresult.length === 1) {
525
+                result = CommonFunction.ChangeTableToEntitys<TBL_Sys_NotifyMessage>(tmpresult[0].AttachValue);
526
+            }
527
+        } catch (e) {
528
+            throw e;
529
+        }
530
+        return result || [];
531
+    }
532
+
533
+    /**
534
+     * 更新公告查看的状态
535
+     * @param userId 信息Id
536
+     * @param infoID 用户Id
537
+     * @returns "0000"-成功|"9999"-失败
538
+     */
539
+    static async NotifyMessage_UpdateStateByinfoID(userId: string, infoID: string): Promise<string | null> {
540
+        let result: string | null = null;
541
+        try {
542
+            const entity: TransitEntity = {
543
+                ServiceName: "tradeManagerService",
544
+                FuncName: "NotifyMessage_UpdateStateByinfoID",
545
+                Parameters: { "1": userId, "2": infoID }
546
+            };
547
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
548
+            if (tmpresult && tmpresult.length === 1) {
549
+                result = tmpresult[0].AttachValue.toString();
550
+            }
551
+        } catch (e) {
552
+            throw e;
553
+        }
554
+        return result;
555
+    }
556
+
557
+    /**
558
+     * 根据用户编码获取登陆用户Id
559
+     * @param userCode 用户编码
560
+     * @returns 登陆用户Id
561
+     */
562
+    static async Get_TT_LOGINUSER_UserID(userCode: string): Promise<string | null> {
563
+        let result: string | null = null;
564
+        try {
565
+            const entity: TransitEntity = {
566
+                ServiceName: "tradeManagerService",
567
+                FuncName: "GetUserIdByCode",
568
+                Parameters: { "1": userCode }
569
+            };
570
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
571
+            if (tmpresult && tmpresult.length === 1) {
572
+                result = tmpresult[0].AttachValue.toString();
573
+            }
574
+        } catch (e) {
575
+            throw e;
576
+        }
577
+        return result;
578
+    }
579
+
580
+    /**
581
+     * 删除已发送的信息
582
+     * @param infoId 信息ID
583
+     * @returns "0000"-成功|"9999"-失败
584
+     */
585
+    static async NotifyMessageReceive_DeleteByID(infoId: string): Promise<string | null> {
586
+        let result: string | null = null;
587
+        try {
588
+            const entity: TransitEntity = {
589
+                ServiceName: "tradeManagerService",
590
+                FuncName: "NotifyMessageReceive_DeleteByID",
591
+                Parameters: { "1": infoId }
592
+            };
593
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
594
+            if (tmpresult && tmpresult.length === 1) {
595
+                result = tmpresult[0].AttachValue.toString();
596
+            }
597
+        } catch (e) {
598
+            throw e;
599
+        }
600
+        return result;
601
+    }
602
+
603
+    /**
604
+     * 删除公告信息和接收人信息
605
+     * @param infoId 信息ID
606
+     * @returns "0000"-成功|"9999"-失败
607
+     */
608
+    static async NotifyMessage_DelByInfoId(infoId: string): Promise<string | null> {
609
+        let result: string | null = null;
610
+        try {
611
+            const entity: TransitEntity = {
612
+                ServiceName: "tradeManagerService",
613
+                FuncName: "NotifyMessage_DelByInfoID",
614
+                Parameters: { "1": infoId }
615
+            };
616
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
617
+            if (tmpresult && tmpresult.length === 1) {
618
+                result = tmpresult[0].AttachValue.toString();
619
+            }
620
+        } catch (e) {
621
+            throw e;
622
+        }
623
+        return result;
624
+    }
625
+
626
+    /**
627
+     * 查询角色信息
628
+     * @param code 过滤条件
629
+     * @returns 角色Id、code、name
630
+     */
631
+    static async TT_ROLEGROUP_Get_IDCodeName(code: string): Promise<TT_GroupRule[]> {
632
+        let result: TT_GroupRule[] | null = null;
633
+        try {
634
+            const entity: TransitEntity = {
635
+                ServiceName: "tradeManagerService",
636
+                FuncName: "TT_ROLEGROUP_Get_IDCodeName",
637
+                Parameters: { "1": code }
638
+            };
639
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
640
+            if (tmpresult && tmpresult.length === 1) {
641
+                result = CommonFunction.ChangeTableToEntitys<TT_GroupRule>(tmpresult[0].AttachValue);
642
+            }
643
+        } catch (e) {
644
+            throw e;
645
+        }
646
+        return result || [];
647
+    }
648
+
649
+    /**
650
+     * 机构和角色下对应的柜员Code
651
+     * @param kinbrId 机构号
652
+     * @param roleId 角色号
653
+     * @returns 柜员Code列表
654
+     */
655
+    static async TT_LOGINUSER_Get_Code(kinbrId: string, roleId: string): Promise<string[] | null> {
656
+        let result: string[] | null = null;
657
+        try {
658
+            const entity: TransitEntity = {
659
+                ServiceName: "tradeManagerService",
660
+                FuncName: "TT_LOGINUSER_Get_Code",
661
+                Parameters: { "1": kinbrId, "2": roleId }
662
+            };
663
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
664
+            if (tmpresult && tmpresult.length === 1) {
665
+                result = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
666
+            }
667
+        } catch (e) {
668
+            throw e;
669
+        }
670
+        return result;
671
+    }
672
+
673
+    /**
674
+     * 用户登录信息列表
675
+     * @returns 返回用户登陆信息列表
676
+     */
677
+    static async LoginUser_List(): Promise<TT_LoginUser[]> {
678
+        let result: TT_LoginUser[] | null = null;
679
+        try {
680
+            const entity: TransitEntity = {
681
+                ServiceName: "tradeManagerService",
682
+                FuncName: "LoginUser_List"
683
+            };
684
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
685
+            if (tmpresult && tmpresult.length === 1) {
686
+                result = CommonFunction.ChangeTableToEntitys<TT_LoginUser>(tmpresult[0].AttachValue);
687
+            }
688
+        } catch (e) {
689
+            throw e;
690
+        }
691
+        return result || [];
692
+    }
693
+
694
+    /**
695
+     * 用户在线状态
696
+     * @returns 返回在线用户Id列表
697
+     */
698
+    static async LoginSign_List(): Promise<TT_LoginSign[]> {
699
+        let result: TT_LoginSign[] | null = null;
700
+        try {
701
+            const entity: TransitEntity = {
702
+                ServiceName: "tradeManagerService",
703
+                FuncName: "LoginSign_List"
704
+            };
705
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
706
+            if (tmpresult && tmpresult.length === 1) {
707
+                result = CommonFunction.ChangeTableToEntitys<TT_LoginSign>(tmpresult[0].AttachValue);
708
+            }
709
+        } catch (e) {
710
+            throw e;
711
+        }
712
+        return result || [];
713
+    }
714
+
715
+    /**
716
+     * 添加接收人信息
717
+     * @param receiveName 接收人List集合
718
+     * @returns "0000"-成功|"9999"-失败
719
+     */
720
+    static async ReceiveName_Add(receiveName: TBL_Sys_ReceiveName[]): Promise<string | null> {
721
+        let result: string | null = null;
722
+        try {
723
+            const entity: TransitEntity = {
724
+                ServiceName: "tradeManagerService",
725
+                FuncName: "RECEIVENAME_Add",
726
+                AttachFiles: []
727
+            };
728
+            const file: AttachFile = {
729
+                AttachIndex: "1",
730
+                AttachType: Types.TableType,
731
+                AttachValue: CommonFunction.ChangeEntityToTable(receiveName)
732
+            };
733
+            entity.AttachFiles.push(file);
734
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
735
+            if (tmpresult && tmpresult.length === 1) {
736
+                result = tmpresult[0].AttachValue.toString();
737
+            }
738
+        } catch (e) {
739
+            throw e;
740
+        }
741
+        return result;
742
+    }
743
+
744
+    /**
745
+     * 帮助文件编辑
746
+     */
747
+    /**
748
+     * 添加帮助文档
749
+     * @param code 交易号
750
+     * @param md5 
751
+     * @returns "0000"-成功|"9999"-失败
752
+     */
753
+    static async AddHelpDocument(code: string, md5: string): Promise<string> {
754
+        let result = "0000";
755
+        try {
756
+            const entity: TransitEntity = {
757
+                ServiceName: "tradeManagerService",
758
+                FuncName: "AddHelpDocument",
759
+                Parameters: { "1": code, "2": md5 }
760
+            };
761
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
762
+            if (tmpresult && tmpresult.length === 1) {
763
+                result = tmpresult[0].AttachValue.toString();
764
+            }
765
+        } catch (e) {
766
+            throw e;
767
+        }
768
+        return result;
769
+    }
770
+
771
+    /**
772
+     * 删除帮助文档
773
+     * @param code 
774
+     * @returns "0000"-成功|"9999"-失败
775
+     */
776
+    static async GetHelpDocumentMd5ByCode(code: string): Promise<string> {
777
+        let result = "0000";
778
+        try {
779
+            const entity: TransitEntity = {
780
+                ServiceName: "tradeManagerService",
781
+                FuncName: "GetHelpDocumentMd5ByCode",
782
+                Parameters: { "1": code }
783
+            };
784
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
785
+            if (tmpresult && tmpresult.length === 1) {
786
+                result = tmpresult[0].AttachValue.toString();
787
+            }
788
+        } catch (e) {
789
+            throw e;
790
+        }
791
+        return result;
792
+    }
793
+
794
+    /**
795
+     * 菜单信息管理
796
+     */
797
+    /**
798
+     * 删除菜单信息
799
+     * @param code 
800
+     * @returns 
801
+     */
802
+    static async TT_MenuConfig_DeleteByID(code: string): Promise<string | null> {
803
+        let result: string | null = null;
804
+        try {
805
+            const entity: TransitEntity = {
806
+                ServiceName: "TradeFlowService",
807
+                FuncName: "TT_MenuConfig_DeleteByID",
808
+                Parameters: { "1": code }
809
+            };
810
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
811
+            if (tmpresult && tmpresult.length === 1) {
812
+                // TODO 待修改
813
+            }
814
+        } catch (e) {
815
+            throw e;
816
+        }
817
+        return result;
818
+    }
819
+
820
+    /**
821
+     * 更新菜单信息
822
+     * @param add_infos 
823
+     * @param Modify_infos 
824
+     * @param Delete_infos 
825
+     * @returns 
826
+     */
827
+    static async MenuInfoConfig_Update(add_infos: TT_MenuInfo[], Modify_infos: TT_MenuInfo[], Delete_infos: TT_MenuInfo[]): Promise<string | null> {
828
+        let result: string | null = null;
829
+        try {
830
+            const entity: TransitEntity = {
831
+                ServiceName: "tradeManagerService",
832
+                FuncName: "MenuInfoConfig_Update",
833
+                AttachFiles: []
834
+            };
835
+            const file_add: AttachFile = {
836
+                AttachIndex: "1",
837
+                AttachType: Types.TableType,
838
+                AttachValue: CommonFunction.ChangeEntityToTable(add_infos)
839
+            };
840
+            entity.AttachFiles.push(file_add);
841
+
842
+            const file_delete: AttachFile = {
843
+                AttachIndex: "2",
844
+                AttachType: Types.TableType,
845
+                AttachValue: CommonFunction.ChangeEntityToTable(Delete_infos)
846
+            };
847
+            entity.AttachFiles.push(file_delete);
848
+
849
+            const file_update: AttachFile = {
850
+                AttachIndex: "3",
851
+                AttachType: Types.TableType,
852
+                AttachValue: CommonFunction.ChangeEntityToTable(Modify_infos)
853
+            };
854
+            entity.AttachFiles.push(file_update);
855
+
856
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
857
+            if (tmpresult && tmpresult.length === 1) {
858
+                result = tmpresult[0].AttachValue.toString();
859
+            }
860
+        } catch (e) {
861
+            throw e;
862
+        }
863
+        return result;
864
+    }
865
+
866
+    /**
867
+     * 更新菜单信息
868
+     * @returns 
869
+     */
870
+    static async MenuInfoConfig_SyncFile(): Promise<string | null> {
871
+        let result: string | null = null;
872
+        try {
873
+            const entity: TransitEntity = {
874
+                ServiceName: "tradeManagerService",
875
+                FuncName: "MenuInfoConfig_SyncFile"
876
+            };
877
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
878
+            if (tmpresult && tmpresult.length === 1) {
879
+                result = tmpresult[0].AttachValue.toString();
880
+            }
881
+        } catch (e) {
882
+            throw e;
883
+        }
884
+        return result;
885
+    }
886
+
887
+    /**
888
+     * 更新菜单信息
889
+     * @param add_infos 
890
+     * @returns 
891
+     */
892
+    static async MenuInfoConfig_SyncData(add_infos: TT_MenuInfo[]): Promise<string | null> {
893
+        let result: string | null = null;
894
+        try {
895
+            const entity: TransitEntity = {
896
+                ServiceName: "tradeManagerService",
897
+                FuncName: "MenuInfoConfig_SyncData",
898
+                AttachFiles: []
899
+            };
900
+            const file_add: AttachFile = {
901
+                AttachIndex: "1",
902
+                AttachType: Types.TableType,
903
+                AttachValue: CommonFunction.ChangeEntityToTable(add_infos)
904
+            };
905
+            entity.AttachFiles.push(file_add);
906
+
907
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
908
+            if (tmpresult && tmpresult.length === 1) {
909
+                result = tmpresult[0].AttachValue.toString();
910
+            }
911
+        } catch (e) {
912
+            throw e;
913
+        }
914
+        return result;
915
+    }
916
+
917
+    /**
918
+     *  保存柜员个人配置文件
919
+     * @param userCode 
920
+     * @param userDefinedInfo 
921
+     * @returns "0000"-成功|"9999"-失败
922
+     */
923
+    static async SaveUserDefinedInfo(userCode: string, userDefinedInfo: Uint8Array): Promise<string | null> {
924
+        let result: string | null = null;
925
+        try {
926
+            const entity: TransitEntity = {
927
+                ServiceName: "PlatFormService",
928
+                FuncName: "SaveUserDefinedInfo",
929
+                Parameters: { "1": userCode },
930
+                AttachFiles: []
931
+            };
932
+            const files: AttachFile = {
933
+                AttachIndex: "2",
934
+                AttachType: Types.ByteType,
935
+                AttachValue: userDefinedInfo
936
+            };
937
+            entity.AttachFiles.push(files);
938
+
939
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
940
+            if (tmpresult && tmpresult.length === 1) {
941
+                result = tmpresult[0].AttachValue.toString();
942
+            }
943
+        } catch (e) {
944
+            throw e;
945
+        }
946
+        return result;
947
+    }
948
+}

+ 126
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PluginHandle.ts View File

@@ -0,0 +1,126 @@
1
+// 模拟引入相关模块,实际需要根据项目结构调整
2
+interface TransitEntity {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters: { [key: string]: string };
6
+}
7
+
8
+interface AttachFile {
9
+    AttachValue: any;
10
+}
11
+
12
+// 模拟服务管理器类
13
+class ServiceManager {
14
+    static getInstance() {
15
+        return new ServiceManager();
16
+    }
17
+
18
+    Commit(entity: TransitEntity): AttachFile[] | null {
19
+        // 这里是模拟实现,实际需要根据业务逻辑实现
20
+        return null;
21
+    }
22
+}
23
+
24
+// 模拟日志类
25
+class PlatformLogger {
26
+    static CommunicationInfo(message: string, category: string) {
27
+        // 这里是模拟实现,实际需要根据业务逻辑实现
28
+    }
29
+
30
+    static SystemErrorInfo(message: string, ex: Error) {
31
+        // 这里是模拟实现,实际需要根据业务逻辑实现
32
+    }
33
+}
34
+
35
+// 定义 RestfulItem 类
36
+class RestfulItem {
37
+    Prefix: string;
38
+    Method: string;
39
+    Url: string;
40
+    Data: string;
41
+    Headers: { [key: string]: string };
42
+    Resp: [number, string] | null;
43
+
44
+    constructor() {
45
+        this.Prefix = "";
46
+        this.Method = "";
47
+        this.Url = "";
48
+        this.Data = "";
49
+        this.Headers = {};
50
+        this.Resp = null;
51
+    }
52
+}
53
+
54
+// 定义 PluginHandle 类
55
+export class PluginHandle {
56
+    /**
57
+     * 调用插件,使用简洁模式,1输入,1输出
58
+     * @param pluginName 插件名称
59
+     * @param methodName 方法名称
60
+     * @param input 输入数据
61
+     * @returns [是否成功, 输出数据]
62
+     */
63
+    static CallPlugin2Simple(pluginName: string, methodName: string, input: string): [boolean, string] {
64
+        let output = "";
65
+        try {
66
+            PlatformLogger.CommunicationInfo(`插件调用【${pluginName}.${methodName}】,输入数据:\n${input}`, "CallPlugin");
67
+            const entity: TransitEntity = {
68
+                ServiceName: "UtilService",
69
+                FuncName: "CallPlugin",
70
+                Parameters: { "1": pluginName, "2": methodName, "3": input }
71
+            };
72
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
73
+            if (tmpresult && tmpresult.length === 1) {
74
+                output = tmpresult[0].AttachValue.toString();
75
+                return [true, output];
76
+            }
77
+        } catch (ex) {
78
+            if (ex instanceof Error) {
79
+                PlatformLogger.SystemErrorInfo("PluginHandle.CallPlugin:发生异常!", ex);
80
+            }
81
+        } finally {
82
+            PlatformLogger.CommunicationInfo(`插件调用【${pluginName}.${methodName}】,输出数据:\n${output}`, "CallPlugin");
83
+        }
84
+        return [false, ""];
85
+    }
86
+
87
+    /**
88
+     * 调用Restful插件
89
+     * @param item Restful 插件调用信息
90
+     * @returns 是否调用成功
91
+     */
92
+    static Restful(item: RestfulItem): boolean {
93
+        try {
94
+            // 参数输入
95
+            const dict = {
96
+                "prefix": item.Prefix,
97
+                "method": item.Method,
98
+                "url": item.Url,
99
+                "data": item.Data,
100
+                "headers": item.Headers
101
+            };
102
+            // 调用插件
103
+            const [success, output] = this.CallPlugin2Simple("restful-1.0-SNAPSHOT", "com.dhcc.cloud.plugins.restful.method.Restful", JSON.stringify(dict));
104
+            if (success) {
105
+                const resultDict = JSON.parse(output) as { [key: string]: any };
106
+                item.Resp = [parseInt(resultDict["code"].toString()), resultDict["data"].toString()];
107
+                return true;
108
+            }
109
+        } catch (ex) {
110
+            if (ex instanceof Error) {
111
+                PlatformLogger.SystemErrorInfo("PluginHandle.Restful:发生异常!", ex);
112
+            }
113
+        }
114
+        return false;
115
+    }
116
+
117
+    /**
118
+     * 测试Api
119
+     * @param name 测试名称
120
+     * @returns 测试结果
121
+     */
122
+    static Test(name: string): string | null {
123
+        const [flag, output] = this.CallPlugin2Simple("simple-demo-1.0-SNAPSHOT", "com.dhcc.cloud.plugins.simple_demo.DemoMethod", name);
124
+        return flag ? output : null;
125
+    }
126
+}

+ 771
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/PrintManagerHandle.ts View File

@@ -0,0 +1,771 @@
1
+import axios from 'axios';
2
+
3
+// 模拟 TransitEntity 类型
4
+interface TransitEntity {
5
+    ServiceName: string;
6
+    FuncName: string;
7
+    Parameters?: { [key: string]: string };
8
+    AttachFiles?: AttachFile[];
9
+}
10
+
11
+// 模拟 AttachFile 类型
12
+interface AttachFile {
13
+    AttachIndex: string;
14
+    AttachType: string;
15
+    AttachValue: any;
16
+}
17
+
18
+// 模拟 ServiceManager 类
19
+class ServiceManager {
20
+    private static instance: ServiceManager;
21
+
22
+    static getInstance() {
23
+        if (!this.instance) {
24
+            this.instance = new ServiceManager();
25
+        }
26
+        return this.instance;
27
+    }
28
+
29
+    async Commit(entity: TransitEntity): Promise<AttachFile[]> {
30
+        // 这里模拟调用服务,实际需要根据后端接口修改
31
+        const response = await axios.post('/api/PrintService', entity);
32
+        return response.data;
33
+    }
34
+}
35
+
36
+// 模拟 Platform.ServiceProxy.CommonFunction 类
37
+class CommonFunction {
38
+    static ChangeTableToEntitys<T>(dataTable: any): T[] {
39
+        // 这里简单模拟转换,实际需要根据数据结构实现
40
+        return [] as T[];
41
+    }
42
+
43
+    static ChangeEntityToTable(data: any): any {
44
+        // 这里简单模拟转换,实际需要根据数据结构实现
45
+        return {};
46
+    }
47
+
48
+    static ChangArrayToStr(arr: string[]): string {
49
+        return arr.join(',');
50
+    }
51
+
52
+    static ChangStrToArray(str: string): string[] {
53
+        return str.split(',');
54
+    }
55
+}
56
+
57
+// 模拟各种实体类型
58
+interface TT_FormKind { }
59
+interface TT_Form { }
60
+interface TT_TradeForm { }
61
+interface TT_PrintData {
62
+    PrintData: number[];
63
+}
64
+interface TT_PrintDataDetail { }
65
+interface TT_PrintDataDetail2 { }
66
+interface PrintDataLimit { }
67
+interface PrintExtData {
68
+    Attributes: string;
69
+    TradeBus: string;
70
+    Message: number[];
71
+    MsgFile: number[];
72
+}
73
+
74
+// 模拟 Types 常量
75
+const Types = {
76
+    TableType: 'TableType',
77
+    ByteType: 'ByteType'
78
+};
79
+
80
+// 模拟 PlatformSettings 类
81
+class PlatformSettings {
82
+    static Encoding = {
83
+        GetBytes: (str: string): number[] => {
84
+            return Array.from(new TextEncoder().encode(str));
85
+        },
86
+        GetString: (bytes: number[]): string => {
87
+            return new TextDecoder().decode(new Uint8Array(bytes));
88
+        }
89
+    };
90
+}
91
+
92
+// 模拟 PlatformLogger 类
93
+class PlatformLogger {
94
+    static SystemErrorInfo(message: string, error: Error) {
95
+        console.error(message, error);
96
+    }
97
+}
98
+
99
+export class PrintManagerHandle {
100
+    /**
101
+     * 增加一个表单分类
102
+     */
103
+    static async AddFormKind(id: string, name: string, flag: string): Promise<boolean> {
104
+        let result: string | null = null;
105
+        try {
106
+            const entity: TransitEntity = {
107
+                ServiceName: 'PrintService',
108
+                FuncName: 'PrintAddTradeForm',
109
+                Parameters: { "1": id, "2": name, "3": flag }
110
+            };
111
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
112
+            if (tmpresult && tmpresult.length === 1) {
113
+                result = tmpresult[0].AttachValue as string;
114
+            }
115
+        } catch (e) {
116
+            throw e;
117
+        }
118
+
119
+        return result === "0000";
120
+    }
121
+
122
+    /**
123
+     * 修改一个表单分类
124
+     */
125
+    static async UpdateFormKind(id: string, name: string, flag: string): Promise<boolean> {
126
+        let result: string | null = null;
127
+        try {
128
+            const entity: TransitEntity = {
129
+                ServiceName: 'PrintService',
130
+                FuncName: 'PrintModTradeForm',
131
+                Parameters: { "1": id, "2": name, "3": flag }
132
+            };
133
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
134
+            if (tmpresult && tmpresult.length === 1) {
135
+                result = tmpresult[0].AttachValue as string;
136
+            }
137
+        } catch (e) {
138
+            throw e;
139
+        }
140
+
141
+        return result === "0000";
142
+    }
143
+
144
+    /**
145
+     * 删除一个表单分类
146
+     */
147
+    static async DeleteFormKind(id: string): Promise<boolean> {
148
+        let result: string | null = null;
149
+        try {
150
+            const entity: TransitEntity = {
151
+                ServiceName: 'PrintService',
152
+                FuncName: 'PrintDelTradeForm',
153
+                Parameters: { "1": id }
154
+            };
155
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
156
+            if (tmpresult && tmpresult.length === 1) {
157
+                result = tmpresult[0].AttachValue as string;
158
+            }
159
+        } catch (e) {
160
+            throw e;
161
+        }
162
+
163
+        return result === "0000";
164
+    }
165
+
166
+    /**
167
+     * 获得全部分类信息
168
+     */
169
+    static async GetFormKind(): Promise<TT_FormKind[]> {
170
+        let result: TT_FormKind[] | null = null;
171
+        try {
172
+            const entity: TransitEntity = {
173
+                ServiceName: 'PrintService',
174
+                FuncName: 'PrintGetTotalFormData'
175
+            };
176
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
177
+            if (tmpresult && tmpresult.length === 1) {
178
+                result = CommonFunction.ChangeTableToEntitys<TT_FormKind>(tmpresult[0].AttachValue);
179
+            }
180
+        } catch (e) {
181
+            throw e;
182
+        }
183
+
184
+        return result || [];
185
+    }
186
+
187
+    /**
188
+     * 获得表单信息,参数为空字符串就是查询全部,参数有值就是表示分类编号,查询这个分类下的表单
189
+     */
190
+    static async GetForm(id: string): Promise<TT_Form[]> {
191
+        let result: TT_Form[] | null = null;
192
+        try {
193
+            const entity: TransitEntity = {
194
+                ServiceName: 'PrintService',
195
+                FuncName: 'PrintGetPrintForm',
196
+                Parameters: { "1": id }
197
+            };
198
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
199
+            if (tmpresult && tmpresult.length === 1) {
200
+                result = CommonFunction.ChangeTableToEntitys<TT_Form>(tmpresult[0].AttachValue);
201
+            }
202
+        } catch (e) {
203
+            throw e;
204
+        }
205
+
206
+        return result || [];
207
+    }
208
+
209
+    /**
210
+     * 删除一个表单
211
+     */
212
+    static async DeleteForm(id: string): Promise<boolean> {
213
+        let result: string | null = null;
214
+        try {
215
+            const entity: TransitEntity = {
216
+                ServiceName: 'PrintService',
217
+                FuncName: 'PrintDelPrintForm',
218
+                Parameters: { "1": id }
219
+            };
220
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
221
+            if (tmpresult && tmpresult.length === 1) {
222
+                result = tmpresult[0].AttachValue as string;
223
+            }
224
+        } catch (e) {
225
+            throw e;
226
+        }
227
+
228
+        return result === "0000";
229
+    }
230
+
231
+    /**
232
+     * 修改一个表单
233
+     */
234
+    static async UpdateForm(id: string, formId: string, formName: string, description: string): Promise<boolean> {
235
+        let result: string | null = null;
236
+        try {
237
+            const entity: TransitEntity = {
238
+                ServiceName: 'PrintService',
239
+                FuncName: 'PrintModPrintForm',
240
+                Parameters: { "1": id, "2": formId, "3": formName, "4": description }
241
+            };
242
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
243
+            if (tmpresult && tmpresult.length === 1) {
244
+                result = tmpresult[0].AttachValue as string;
245
+            }
246
+        } catch (e) {
247
+            throw e;
248
+        }
249
+
250
+        return result === "0000";
251
+    }
252
+
253
+    /**
254
+     * 增加一个表单
255
+     */
256
+    static async AddForm(id: string, formId: string, formName: string, description: string): Promise<boolean> {
257
+        let result: string | null = null;
258
+        try {
259
+            const entity: TransitEntity = {
260
+                ServiceName: 'PrintService',
261
+                FuncName: 'PrintAddPrintForm',
262
+                Parameters: { "1": id, "2": formId, "3": formName, "4": description }
263
+            };
264
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
265
+            if (tmpresult && tmpresult.length === 1) {
266
+                result = tmpresult[0].AttachValue as string;
267
+            }
268
+        } catch (e) {
269
+            throw e;
270
+        }
271
+
272
+        return result === "0000";
273
+    }
274
+
275
+    /**
276
+     * 增加一个表单
277
+     */
278
+    static async AddKindForm(id: string, formId: string[]): Promise<boolean> {
279
+        let result: string | null = null;
280
+        try {
281
+            const entity: TransitEntity = {
282
+                ServiceName: 'PrintService',
283
+                FuncName: 'PrintAddTradeFormKind',
284
+                Parameters: { "1": id, "2": CommonFunction.ChangArrayToStr(formId) }
285
+            };
286
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
287
+            if (tmpresult && tmpresult.length === 1) {
288
+                result = tmpresult[0].AttachValue as string;
289
+            }
290
+        } catch (e) {
291
+            throw e;
292
+        }
293
+
294
+        return result === "0000";
295
+    }
296
+
297
+    /**
298
+     * 删除某个分类下的某表单
299
+     */
300
+    static async DeleteKindForm(id: string, formid: string[]): Promise<boolean> {
301
+        let result: string | null = null;
302
+        try {
303
+            const entity: TransitEntity = {
304
+                ServiceName: 'PrintService',
305
+                FuncName: 'PrintDelTradeFormKind',
306
+                Parameters: { "1": id, "2": CommonFunction.ChangArrayToStr(formid) }
307
+            };
308
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
309
+            if (tmpresult && tmpresult.length === 1) {
310
+                result = tmpresult[0].AttachValue as string;
311
+            }
312
+        } catch (e) {
313
+            throw e;
314
+        }
315
+
316
+        return result === "0000";
317
+    }
318
+
319
+    /**
320
+     * 获得表单信息,参数为空字符串就是查询全部,参数有值就是表示分类编号,查询这个分类下的表单
321
+     */
322
+    static async GetTradeForm(tradeNo: string): Promise<TT_TradeForm[]> {
323
+        let result: TT_TradeForm[] | null = null;
324
+        try {
325
+            const entity: TransitEntity = {
326
+                ServiceName: 'PrintService',
327
+                FuncName: 'PrintGetTradeFormByTradeId',
328
+                Parameters: { "1": tradeNo }
329
+            };
330
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
331
+            if (tmpresult && tmpresult.length === 1) {
332
+                result = CommonFunction.ChangeTableToEntitys<TT_TradeForm>(tmpresult[0].AttachValue);
333
+            }
334
+        } catch (e) {
335
+            throw e;
336
+        }
337
+
338
+        return result || [];
339
+    }
340
+
341
+    /**
342
+     * 增加一个交易表单
343
+     */
344
+    static async AddTradeForm(form: TT_TradeForm[]): Promise<boolean> {
345
+        let result: string | null = null;
346
+        try {
347
+            const attach: AttachFile = {
348
+                AttachIndex: "1",
349
+                AttachType: Types.TableType,
350
+                AttachValue: CommonFunction.ChangeEntityToTable(form)
351
+            };
352
+
353
+            const entity: TransitEntity = {
354
+                ServiceName: 'PrintService',
355
+                FuncName: 'PrintAddTradeFormByTradeId',
356
+                AttachFiles: [attach]
357
+            };
358
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
359
+            if (tmpresult && tmpresult.length === 1) {
360
+                result = tmpresult[0].AttachValue as string;
361
+            }
362
+        } catch (e) {
363
+            throw e;
364
+        }
365
+
366
+        return result === "0000";
367
+    }
368
+
369
+    /**
370
+     * 修改一个交易下某表单
371
+     */
372
+    static async UpdateTradeForm(tradeNo: string, formId: string, sort: string, authLevel: string, printFlag: string): Promise<boolean> {
373
+        let result: string | null = null;
374
+        try {
375
+            const entity: TransitEntity = {
376
+                ServiceName: 'PrintService',
377
+                FuncName: 'PrintModTradeFormByTradeId',
378
+                Parameters: { "1": tradeNo, "2": formId, "3": sort, "4": authLevel, "5": printFlag }
379
+            };
380
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
381
+            if (tmpresult && tmpresult.length === 1) {
382
+                result = tmpresult[0].AttachValue as string;
383
+            }
384
+        } catch (e) {
385
+            throw e;
386
+        }
387
+
388
+        return result === "0000";
389
+    }
390
+
391
+    /**
392
+     * 删除一个表单分类
393
+     */
394
+    static async DeleteTradeForm(tradeNo: string, id: string): Promise<boolean> {
395
+        let result: string | null = null;
396
+        try {
397
+            const entity: TransitEntity = {
398
+                ServiceName: 'PrintService',
399
+                FuncName: 'PrintDelTradeFormByTradeId',
400
+                Parameters: { "1": tradeNo, "2": id }
401
+            };
402
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
403
+            if (tmpresult && tmpresult.length === 1) {
404
+                result = tmpresult[0].AttachValue as string;
405
+            }
406
+        } catch (e) {
407
+            throw e;
408
+        }
409
+
410
+        return result === "0000";
411
+    }
412
+
413
+    /**
414
+     * 增加打印表单数据,此函数的服务端对应函数会过滤掉没有权限的表单,并返回有权限的表单ID
415
+     */
416
+    static async AddPrintData(tradeNo: string, printData: TT_PrintData[]): Promise<string[]> {
417
+        let result: string[] | null = null;
418
+        try {
419
+            const entity: TransitEntity = {
420
+                ServiceName: 'PrintService',
421
+                FuncName: 'PrintAddPrintDataByLimit',
422
+                Parameters: { "1": tradeNo },
423
+                AttachFiles: []
424
+            };
425
+
426
+            const attach: AttachFile = {
427
+                AttachIndex: "2",
428
+                AttachType: Types.TableType,
429
+                AttachValue: CommonFunction.ChangeEntityToTable(printData)
430
+            };
431
+            entity.AttachFiles.push(attach);
432
+
433
+            const attcheds2: AttachFile = {
434
+                AttachIndex: "3",
435
+                AttachType: Types.ByteType,
436
+                AttachValue: new Uint8Array()
437
+            };
438
+            let memoryStream = new Uint8Array();
439
+            printData.forEach(tmp => {
440
+                const newStream = new Uint8Array(memoryStream.length + tmp.PrintData.length);
441
+                newStream.set(memoryStream);
442
+                newStream.set(tmp.PrintData, memoryStream.length);
443
+                memoryStream = newStream;
444
+            });
445
+            attcheds2.AttachValue = memoryStream;
446
+            entity.AttachFiles.push(attcheds2);
447
+
448
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
449
+            if (tmpresult && tmpresult.length === 1) {
450
+                result = CommonFunction.ChangStrToArray(tmpresult[0].AttachValue as string);
451
+            }
452
+        } catch (e) {
453
+            throw e;
454
+        }
455
+
456
+        return result || [];
457
+    }
458
+
459
+    /**
460
+     * 获得打印数据
461
+     */
462
+    static async GetPrintData(TellerSerialId: string, ThirdSerialNo: string, TellerNo: string, PrintState: string, businessdate: string): Promise<TT_PrintData[]> {
463
+        let result: TT_PrintData[] | null = null;
464
+        try {
465
+            const entity: TransitEntity = {
466
+                ServiceName: 'PrintService',
467
+                FuncName: 'PrintGetPrintDataByLimit',
468
+                Parameters: { "1": TellerSerialId, "2": ThirdSerialNo, "3": TellerNo, "4": PrintState, "5": businessdate }
469
+            };
470
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
471
+            if (tmpresult && tmpresult.length === 1) {
472
+                result = CommonFunction.ChangeTableToEntitys<TT_PrintData>(tmpresult[0].AttachValue);
473
+            }
474
+        } catch (e) {
475
+            throw e;
476
+        }
477
+
478
+        return result || [];
479
+    }
480
+
481
+    /**
482
+     * 获得打印数据明细
483
+     */
484
+    static async GetPrintDataDetail(id: string, tradeNo: string): Promise<TT_PrintDataDetail2[]> {
485
+        let result: TT_PrintDataDetail2[] | null = null;
486
+        try {
487
+            const entity: TransitEntity = {
488
+                ServiceName: 'PrintService',
489
+                FuncName: 'PrintGetPrintRecordByDataId',
490
+                Parameters: { "1": id, "2": tradeNo }
491
+            };
492
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
493
+            if (tmpresult && tmpresult.length === 1) {
494
+                result = CommonFunction.ChangeTableToEntitys<TT_PrintDataDetail2>(tmpresult[0].AttachValue);
495
+            }
496
+        } catch (e) {
497
+            throw e;
498
+        }
499
+
500
+        return result || [];
501
+    }
502
+
503
+    /**
504
+     * 获得流水号/日期/柜员号
505
+     */
506
+    static async GetRevokePrintData(seriousNum: string, data: string, tradeNo: string): Promise<TT_FormKind[]> {
507
+        let result: TT_FormKind[] | null = null;
508
+        try {
509
+            const entity: TransitEntity = {
510
+                ServiceName: 'PrintService',
511
+                FuncName: 'GetFormKind',
512
+                Parameters: { "1": seriousNum.padStart(6, '0'), "2": data, "3": tradeNo }
513
+            };
514
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
515
+            if (tmpresult && tmpresult.length === 1) {
516
+                result = CommonFunction.ChangeTableToEntitys<TT_FormKind>(tmpresult[0].AttachValue);
517
+            }
518
+        } catch (e) {
519
+            throw e;
520
+        }
521
+
522
+        return result || [];
523
+    }
524
+
525
+    /**
526
+     * 增加一个打印历史记录
527
+     */
528
+    static async AddPrintDataHistory(data: TT_PrintDataDetail): Promise<boolean> {
529
+        let result: string | null = null;
530
+        try {
531
+            const attach: AttachFile = {
532
+                AttachIndex: "1",
533
+                AttachType: Types.TableType,
534
+                AttachValue: CommonFunction.ChangeEntityToTable([data])
535
+            };
536
+
537
+            const entity: TransitEntity = {
538
+                ServiceName: 'PrintService',
539
+                FuncName: 'PrintAddPrintRecord',
540
+                AttachFiles: [attach]
541
+            };
542
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
543
+            if (tmpresult && tmpresult.length === 1) {
544
+                result = tmpresult[0].AttachValue as string;
545
+            }
546
+        } catch (e) {
547
+            throw e;
548
+        }
549
+
550
+        return result === "0000";
551
+    }
552
+
553
+    /**
554
+     * 获得指定的打印数据
555
+     */
556
+    static async GetPrintDataHistory(id: string[]): Promise<number[][]> {
557
+        let result: number[][] | null = null;
558
+        try {
559
+            const entity: TransitEntity = {
560
+                ServiceName: 'PrintService',
561
+                FuncName: 'PrintGetFormDataBlobByPrintIds',
562
+                Parameters: { "1": CommonFunction.ChangArrayToStr(id) }
563
+            };
564
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
565
+
566
+            if (tmpresult) {
567
+                result = tmpresult.map(tmp => tmp.AttachValue as number[]);
568
+            }
569
+        } catch (e) {
570
+            throw e;
571
+        }
572
+
573
+        return result || [];
574
+    }
575
+
576
+    /**
577
+     * 判断一个表单编号是否存在
578
+     */
579
+    static async FormIsExist(formId: string): Promise<boolean> {
580
+        let result: string | null = null;
581
+        try {
582
+            const entity: TransitEntity = {
583
+                ServiceName: 'PrintService',
584
+                FuncName: 'PrintIsFormIdExists',
585
+                Parameters: { "1": formId }
586
+            };
587
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
588
+            if (tmpresult && tmpresult.length === 1) {
589
+                result = tmpresult[0].AttachValue as string;
590
+            }
591
+        } catch (e) {
592
+            throw e;
593
+        }
594
+
595
+        return result !== "0";
596
+    }
597
+
598
+    /**
599
+     * 获得打印票号
600
+     */
601
+    static async GetPrintNum(tellerNo: string, businessdate: string, serialid: string): Promise<string | null> {
602
+        let result: string | null = null;
603
+        try {
604
+            const entity: TransitEntity = {
605
+                ServiceName: 'PrintService',
606
+                FuncName: 'PrintModPrintNumBySerId',
607
+                Parameters: { "1": tellerNo, "2": businessdate, "3": serialid }
608
+            };
609
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
610
+            if (tmpresult && tmpresult.length === 1) {
611
+                result = tmpresult[0].AttachValue as string;
612
+            }
613
+        } catch (e) {
614
+            throw e;
615
+        }
616
+
617
+        return result;
618
+    }
619
+
620
+    /**
621
+     * 获取表单打印控制信息
622
+     */
623
+    static async GetPrintLimit(): Promise<PrintDataLimit[]> {
624
+        let result: PrintDataLimit[] | null = null;
625
+        try {
626
+            const entity: TransitEntity = {
627
+                ServiceName: 'PrintService',
628
+                FuncName: 'GetPrintLimit'
629
+            };
630
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
631
+            if (tmpresult && tmpresult.length === 1) {
632
+                result = CommonFunction.ChangeTableToEntitys<PrintDataLimit>(tmpresult[0].AttachValue);
633
+            }
634
+        } catch (e) {
635
+            throw e;
636
+        }
637
+
638
+        return result || [];
639
+    }
640
+
641
+    /**
642
+     * 将打印数据插入到 T_PRINTDATA 表中
643
+     */
644
+    static async SavePrintData(printData: TT_PrintData[]): Promise<void> {
645
+        try {
646
+            const entity: TransitEntity = {
647
+                ServiceName: 'PrintService',
648
+                FuncName: 'SavePrintData',
649
+                AttachFiles: []
650
+            };
651
+
652
+            const attach: AttachFile = {
653
+                AttachIndex: "1",
654
+                AttachType: Types.TableType,
655
+                AttachValue: CommonFunction.ChangeEntityToTable(printData)
656
+            };
657
+            entity.AttachFiles.push(attach);
658
+
659
+            const attcheds2: AttachFile = {
660
+                AttachIndex: "2",
661
+                AttachType: Types.ByteType,
662
+                AttachValue: new Uint8Array()
663
+            };
664
+            let memoryStream = new Uint8Array();
665
+            printData.forEach(tmp => {
666
+                const newStream = new Uint8Array(memoryStream.length + tmp.PrintData.length);
667
+                newStream.set(memoryStream);
668
+                newStream.set(tmp.PrintData, memoryStream.length);
669
+                memoryStream = newStream;
670
+            });
671
+            attcheds2.AttachValue = memoryStream;
672
+            entity.AttachFiles.push(attcheds2);
673
+
674
+            await ServiceManager.getInstance().Commit(entity);
675
+        } catch (e) {
676
+            throw e;
677
+        }
678
+    }
679
+
680
+    /**
681
+     * 提交前登记打印扩展数据
682
+     */
683
+    static async RecordPrintExt(serialid: string, tradeAction: string, classFullName: string, attributes: string, tradeBus: string): Promise<boolean> {
684
+        let result: string = '';
685
+        try {
686
+            const entity: TransitEntity = {
687
+                ServiceName: 'PrintService',
688
+                FuncName: 'RecordPrintExt',
689
+                Parameters: { "1": serialid, "2": tradeAction, "3": classFullName },
690
+                AttachFiles: []
691
+            };
692
+
693
+            const attFile: AttachFile = {
694
+                AttachIndex: "4",
695
+                AttachType: Types.ByteType,
696
+                AttachValue: PlatformSettings.Encoding.GetBytes(attributes)
697
+            };
698
+            entity.AttachFiles.push(attFile);
699
+
700
+            const busFile: AttachFile = {
701
+                AttachIndex: "5",
702
+                AttachType: Types.ByteType,
703
+                AttachValue: PlatformSettings.Encoding.GetBytes(tradeBus)
704
+            };
705
+            entity.AttachFiles.push(busFile);
706
+
707
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
708
+            if (tmpresult && tmpresult.length === 1) {
709
+                result = tmpresult[0].AttachValue as string;
710
+            }
711
+        } catch (e) {
712
+            throw e;
713
+        }
714
+
715
+        return result === "0000";
716
+    }
717
+
718
+    /**
719
+     * 获取可补打列表
720
+     */
721
+    static async GetPrintExtListData(businessDate: string, tellerNo: string, isHasNormal: boolean = false): Promise<any | null> {
722
+        let result: any | null = null;
723
+        try {
724
+            const entity: TransitEntity = {
725
+                ServiceName: 'PrintService',
726
+                FuncName: 'GetPrintExtListData',
727
+                Parameters: { "1": businessDate, "2": tellerNo, "3": isHasNormal ? "1" : "0" }
728
+            };
729
+
730
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
731
+            if (tmpresult && tmpresult.length === 1) {
732
+                result = tmpresult[0].AttachValue;
733
+            }
734
+        } catch (e) {
735
+            PlatformLogger.SystemErrorInfo('获取可补打列表异常:', e);
736
+        }
737
+
738
+        return result;
739
+    }
740
+
741
+    /**
742
+     * 获取指定打印数据
743
+     */
744
+    static async GetPrintExtDataById(serialId: string): Promise<PrintExtData | null> {
745
+        let result: PrintExtData | null = null;
746
+        try {
747
+            const entity: TransitEntity = {
748
+                ServiceName: 'PrintService',
749
+                FuncName: 'GetPrintExtDataById',
750
+                Parameters: { "1": serialId }
751
+            };
752
+
753
+            const tmpresult = await ServiceManager.getInstance().Commit(entity);
754
+            if (tmpresult && tmpresult.length === 5) {
755
+                const dt = tmpresult[0].AttachValue;
756
+                if (!dt || dt.columns.length !== 4 || !tmpresult[3].AttachValue || (tmpresult[3].AttachValue as number[]).length === 0) {
757
+                    return null;
758
+                }
759
+                result = CommonFunction.ChangeTableToEntitys<PrintExtData>(dt)[0];
760
+                result.Attributes = PlatformSettings.Encoding.GetString(tmpresult[1].AttachValue as number[]);
761
+                result.TradeBus = PlatformSettings.Encoding.GetString(tmpresult[2].AttachValue as number[]);
762
+                result.Message = tmpresult[3].AttachValue as number[];
763
+                result.MsgFile = tmpresult[4].AttachValue as number[];
764
+            }
765
+        } catch (e) {
766
+            throw e;
767
+        }
768
+
769
+        return result;
770
+    }
771
+}

+ 562
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/ResgistryHandle.ts View File

@@ -0,0 +1,562 @@
1
+// 模拟 C# 中的 DataTable 类型,这里简单用 any[][] 表示
2
+type DataTable = any[][];
3
+
4
+// 模拟 TransitEntity 类型
5
+interface TransitEntity {
6
+    ServiceName: string;
7
+    FuncName: string;
8
+    Parameters?: { [key: string]: string };
9
+    AttachFiles?: AttachFile[];
10
+}
11
+
12
+// 模拟 AttachFile 类型
13
+interface AttachFile {
14
+    AttachIndex: string;
15
+    AttachType: TableType;
16
+    AttachValue: any;
17
+}
18
+
19
+// 模拟 Types.TableType
20
+enum TableType {
21
+    // 这里可以根据实际情况补充具体值
22
+}
23
+
24
+// 模拟 ServiceManager 类,假设 Commit 方法是异步的
25
+class ServiceManager {
26
+    private static instance: ServiceManager;
27
+
28
+    static GetInstance() {
29
+        if (!this.instance) {
30
+            this.instance = new ServiceManager();
31
+        }
32
+        return this.instance;
33
+    }
34
+
35
+    async Commit(entity: TransitEntity): Promise<AttachFile[]> {
36
+        // 这里只是模拟,实际需要实现具体逻辑
37
+        return [];
38
+    }
39
+}
40
+
41
+// 模拟 Platform.ServiceProxy.CommonFunction
42
+namespace Platform {
43
+    export namespace ServiceProxy {
44
+        export class CommonFunction {
45
+            static ChangeEntityToTable<T>(entities: T[]): DataTable {
46
+                // 这里只是模拟,实际需要实现具体逻辑
47
+                return [];
48
+            }
49
+
50
+            static ChangeTableToEntitys<T>(dt: DataTable): T[] {
51
+                // 这里只是模拟,实际需要实现具体逻辑
52
+                return [];
53
+            }
54
+        }
55
+    }
56
+}
57
+
58
+// 模拟 TdoutbfulPay 类型
59
+interface TdoutbfulPay {}
60
+
61
+// 模拟 Tcashvarb 类型
62
+interface Tcashvarb {}
63
+
64
+// 模拟 TcheckMachine 类型
65
+interface TcheckMachine {}
66
+
67
+// 模拟 TcheckAccount 类型
68
+interface TcheckAccount {}
69
+
70
+// 模拟 TatmDbpnr 类型
71
+interface TatmDbpnr {}
72
+
73
+// 模拟 ResgistryHandle 类
74
+class ResgistryHandle {
75
+    /**
76
+     * 大额可以支付查询
77
+     * @param s1 参数1
78
+     * @param s2 参数2
79
+     * @param s3 参数3
80
+     */
81
+    static async LargeSumPaySelect(s1: string, s2: string, s3: string): Promise<DataTable | null> {
82
+        const entity: TransitEntity = {
83
+            ServiceName: "registerservice",
84
+            FuncName: "LargeSumPayTradeSelect",
85
+            Parameters: { "1": s1, "2": s2, "3": s3 }
86
+        };
87
+        const tmpresult = await ServiceManager.GetInstance().Commit(entity);
88
+        const dt = tmpresult[0]?.AttachValue as DataTable;
89
+        return dt;
90
+    }
91
+
92
+    /**
93
+     * 大额可以支付插入
94
+     * @param tr 支付信息实体
95
+     */
96
+    static async LargeSumPayInsert(tr: TdoutbfulPay): Promise<boolean> {
97
+        let tradeReturn = false;
98
+        try {
99
+            const entity: TransitEntity = {
100
+                ServiceName: "registerservice",
101
+                FuncName: "LargeSumPayTradeInsert",
102
+                AttachFiles: []
103
+            };
104
+            const attcheds: AttachFile = {
105
+                AttachIndex: "1",
106
+                AttachType: TableType,
107
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
108
+            };
109
+            entity.AttachFiles.push(attcheds);
110
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
111
+            if (tmpresult && tmpresult.length === 1) {
112
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
113
+            }
114
+        } catch (e) {
115
+            throw e;
116
+        }
117
+        return tradeReturn;
118
+    }
119
+
120
+    /**
121
+     * 大额可以支付更新
122
+     * @param tr 支付信息实体
123
+     */
124
+    static async LargeSumPayUpdate(tr: TdoutbfulPay): Promise<boolean> {
125
+        let tradeReturn = false;
126
+        try {
127
+            const entity: TransitEntity = {
128
+                ServiceName: "registerservice",
129
+                FuncName: "LargeSumPayTradeUpdate",
130
+                AttachFiles: []
131
+            };
132
+            const attcheds: AttachFile = {
133
+                AttachIndex: "1",
134
+                AttachType: TableType,
135
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
136
+            };
137
+            entity.AttachFiles.push(attcheds);
138
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
139
+            if (tmpresult && tmpresult.length === 1) {
140
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
141
+            }
142
+        } catch (e) {
143
+            throw e;
144
+        }
145
+        return tradeReturn;
146
+    }
147
+
148
+    /**
149
+     * 大额可以支付删除
150
+     * @param f_id 要删除记录的 ID
151
+     */
152
+    static async LargeSumPayDelete(f_id: string): Promise<boolean> {
153
+        let tradeReturn = false;
154
+        try {
155
+            const entity: TransitEntity = {
156
+                ServiceName: "registerservice",
157
+                FuncName: "LargeSumPayTradeDelete",
158
+                Parameters: { "1": f_id }
159
+            };
160
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
161
+            if (tmpresult && tmpresult.length === 1) {
162
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
163
+            }
164
+        } catch (e) {
165
+            throw e;
166
+        }
167
+        return tradeReturn;
168
+    }
169
+
170
+    /**
171
+     * 大额口头预约查询
172
+     * @param s1 参数1
173
+     * @param s2 参数2
174
+     * @param s3 参数3
175
+     */
176
+    static async LargeSumVerBarContractSelect(s1: string, s2: string, s3: string): Promise<DataTable | null> {
177
+        const entity: TransitEntity = {
178
+            ServiceName: "registerservice",
179
+            FuncName: "LargeSumVerbarContractSelect",
180
+            Parameters: { "1": s1, "2": s2, "3": s3 }
181
+        };
182
+        const tmpresult = await ServiceManager.GetInstance().Commit(entity);
183
+        const dt = tmpresult[0]?.AttachValue as DataTable;
184
+        return dt;
185
+    }
186
+
187
+    /**
188
+     * 大额口头预约插入
189
+     * @param tr 预约信息实体
190
+     */
191
+    static async LargeSumVerBarContractInsert(tr: Tcashvarb): Promise<boolean> {
192
+        let tradeReturn = false;
193
+        try {
194
+            const entity: TransitEntity = {
195
+                ServiceName: "registerservice",
196
+                FuncName: "LargeSumVerbarContractInsert",
197
+                AttachFiles: []
198
+            };
199
+            const attcheds: AttachFile = {
200
+                AttachIndex: "1",
201
+                AttachType: TableType,
202
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
203
+            };
204
+            entity.AttachFiles.push(attcheds);
205
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
206
+            if (tmpresult && tmpresult.length === 1) {
207
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
208
+            }
209
+        } catch (e) {
210
+            throw e;
211
+        }
212
+        return tradeReturn;
213
+    }
214
+
215
+    /**
216
+     * 大额口头预约更新
217
+     * @param tr 预约信息实体
218
+     */
219
+    static async LargeSumVerBarContractUpdate(tr: Tcashvarb): Promise<boolean> {
220
+        let tradeReturn = false;
221
+        try {
222
+            const entity: TransitEntity = {
223
+                ServiceName: "registerservice",
224
+                FuncName: "LargeSumVerbarContractUpdate",
225
+                AttachFiles: []
226
+            };
227
+            const attcheds: AttachFile = {
228
+                AttachIndex: "1",
229
+                AttachType: TableType,
230
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
231
+            };
232
+            entity.AttachFiles.push(attcheds);
233
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
234
+            if (tmpresult && tmpresult.length === 1) {
235
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
236
+            }
237
+        } catch (e) {
238
+            throw e;
239
+        }
240
+        return tradeReturn;
241
+    }
242
+
243
+    /**
244
+     * 大额口头预约删除
245
+     * @param f_id 要删除记录的 ID
246
+     */
247
+    static async LargeSumVerBarContractDelete(f_id: string): Promise<boolean> {
248
+        let tradeReturn = false;
249
+        try {
250
+            const entity: TransitEntity = {
251
+                ServiceName: "registerservice",
252
+                FuncName: "LargeSumVerbarContractDelete",
253
+                Parameters: { "1": f_id }
254
+            };
255
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
256
+            if (tmpresult && tmpresult.length === 1) {
257
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
258
+            }
259
+        } catch (e) {
260
+            throw e;
261
+        }
262
+        return tradeReturn;
263
+    }
264
+
265
+    /**
266
+     * 机器检查查询
267
+     * @param s1 参数1
268
+     * @param s2 参数2
269
+     * @param s3 参数3
270
+     */
271
+    static async MachineCheckSelect(s1: string, s2: string, s3: string): Promise<DataTable | null> {
272
+        const entity: TransitEntity = {
273
+            ServiceName: "registerservice",
274
+            FuncName: "MachineCheckSelect",
275
+            Parameters: { "1": s1, "2": s2, "3": s3 }
276
+        };
277
+        const tmpresult = await ServiceManager.GetInstance().Commit(entity);
278
+        const dt = tmpresult[0]?.AttachValue as DataTable;
279
+        return dt;
280
+    }
281
+
282
+    /**
283
+     * 机器检查插入
284
+     * @param tr 机器检查信息实体
285
+     */
286
+    static async MachineCheckInsert(tr: TcheckMachine): Promise<boolean> {
287
+        let tradeReturn = false;
288
+        try {
289
+            const entity: TransitEntity = {
290
+                ServiceName: "registerservice",
291
+                FuncName: "MachineCheckInsert",
292
+                AttachFiles: []
293
+            };
294
+            const attcheds: AttachFile = {
295
+                AttachIndex: "1",
296
+                AttachType: TableType,
297
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
298
+            };
299
+            entity.AttachFiles.push(attcheds);
300
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
301
+            if (tmpresult && tmpresult.length === 1) {
302
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
303
+            }
304
+        } catch (e) {
305
+            throw e;
306
+        }
307
+        return tradeReturn;
308
+    }
309
+
310
+    /**
311
+     * 机器检查更新
312
+     * @param tr 机器检查信息实体
313
+     */
314
+    static async MachineCheckUpdate(tr: TcheckMachine): Promise<boolean> {
315
+        let tradeReturn = false;
316
+        try {
317
+            const entity: TransitEntity = {
318
+                ServiceName: "registerservice",
319
+                FuncName: "MachineCheckUpdate",
320
+                AttachFiles: []
321
+            };
322
+            const attcheds: AttachFile = {
323
+                AttachIndex: "1",
324
+                AttachType: TableType,
325
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
326
+            };
327
+            entity.AttachFiles.push(attcheds);
328
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
329
+            if (tmpresult && tmpresult.length === 1) {
330
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
331
+            }
332
+        } catch (e) {
333
+            throw e;
334
+        }
335
+        return tradeReturn;
336
+    }
337
+
338
+    /**
339
+     * 机器检查删除
340
+     * @param f_id 要删除记录的 ID
341
+     */
342
+    static async MachineCheckDelete(f_id: string): Promise<boolean> {
343
+        let tradeReturn = false;
344
+        try {
345
+            const entity: TransitEntity = {
346
+                ServiceName: "registerservice",
347
+                FuncName: "MachineCheckDelete",
348
+                Parameters: { "1": f_id }
349
+            };
350
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
351
+            if (tmpresult && tmpresult.length === 1) {
352
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
353
+            }
354
+        } catch (e) {
355
+            throw e;
356
+        }
357
+        return tradeReturn;
358
+    }
359
+
360
+    /**
361
+     * 账户检查查询
362
+     * @param s1 参数1
363
+     * @param s2 参数2
364
+     * @param s3 参数3
365
+     */
366
+    static async CheckAccountSelect(s1: string, s2: string, s3: string): Promise<DataTable | null> {
367
+        const entity: TransitEntity = {
368
+            ServiceName: "registerservice",
369
+            FuncName: "CheckAccountSelect",
370
+            Parameters: { "1": s1, "2": s2, "3": s3 }
371
+        };
372
+        const tmpresult = await ServiceManager.GetInstance().Commit(entity);
373
+        const dt = tmpresult[0]?.AttachValue as DataTable;
374
+        return dt;
375
+    }
376
+
377
+    /**
378
+     * 账户检查插入
379
+     * @param tr 账户检查信息实体
380
+     */
381
+    static async CheckAccountInsert(tr: TcheckAccount): Promise<boolean> {
382
+        let tradeReturn = false;
383
+        try {
384
+            const entity: TransitEntity = {
385
+                ServiceName: "registerservice",
386
+                FuncName: "CheckAccountInsert",
387
+                AttachFiles: []
388
+            };
389
+            const attcheds: AttachFile = {
390
+                AttachIndex: "1",
391
+                AttachType: TableType,
392
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
393
+            };
394
+            entity.AttachFiles.push(attcheds);
395
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
396
+            if (tmpresult && tmpresult.length === 1) {
397
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
398
+            }
399
+        } catch (e) {
400
+            throw e;
401
+        }
402
+        return tradeReturn;
403
+    }
404
+
405
+    /**
406
+     * 账户检查更新
407
+     * @param tr 账户检查信息实体
408
+     */
409
+    static async CheckAccountUpdate(tr: TcheckAccount): Promise<boolean> {
410
+        let tradeReturn = false;
411
+        try {
412
+            const entity: TransitEntity = {
413
+                ServiceName: "registerservice",
414
+                FuncName: "CheckAccountUpdate",
415
+                AttachFiles: []
416
+            };
417
+            const attcheds: AttachFile = {
418
+                AttachIndex: "1",
419
+                AttachType: TableType,
420
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
421
+            };
422
+            entity.AttachFiles.push(attcheds);
423
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
424
+            if (tmpresult && tmpresult.length === 1) {
425
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
426
+            }
427
+        } catch (e) {
428
+            throw e;
429
+        }
430
+        return tradeReturn;
431
+    }
432
+
433
+    /**
434
+     * 账户检查删除
435
+     * @param f_id 要删除记录的 ID
436
+     */
437
+    static async CheckAccountDelete(f_id: string): Promise<boolean> {
438
+        let tradeReturn = false;
439
+        try {
440
+            const entity: TransitEntity = {
441
+                ServiceName: "registerservice",
442
+                FuncName: "CheckAccountDelete",
443
+                Parameters: { "1": f_id }
444
+            };
445
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
446
+            if (tmpresult && tmpresult.length === 1) {
447
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
448
+            }
449
+        } catch (e) {
450
+            throw e;
451
+        }
452
+        return tradeReturn;
453
+    }
454
+
455
+    /**
456
+     * ATM 查询
457
+     * @param s1 参数1
458
+     * @param s2 参数2
459
+     * @param s3 参数3
460
+     */
461
+    static async AtmSelect(s1: string, s2: string, s3: string): Promise<DataTable | null> {
462
+        const entity: TransitEntity = {
463
+            ServiceName: "registerservice",
464
+            FuncName: "AtmSelect",
465
+            Parameters: { "1": s1, "2": s2, "3": s3 }
466
+        };
467
+        const tmpresult = await ServiceManager.GetInstance().Commit(entity);
468
+        const dt = tmpresult[0]?.AttachValue as DataTable;
469
+        return dt;
470
+    }
471
+
472
+    /**
473
+     * ATM 插入
474
+     * @param tr ATM 信息实体
475
+     */
476
+    static async AtmInsert(tr: TatmDbpnr): Promise<boolean> {
477
+        let tradeReturn = false;
478
+        try {
479
+            const entity: TransitEntity = {
480
+                ServiceName: "registerservice",
481
+                FuncName: "AtmInsert",
482
+                AttachFiles: []
483
+            };
484
+            const attcheds: AttachFile = {
485
+                AttachIndex: "1",
486
+                AttachType: TableType,
487
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
488
+            };
489
+            entity.AttachFiles.push(attcheds);
490
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
491
+            if (tmpresult && tmpresult.length === 1) {
492
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
493
+            }
494
+        } catch (e) {
495
+            throw e;
496
+        }
497
+        return tradeReturn;
498
+    }
499
+
500
+    /**
501
+     * ATM 更新
502
+     * @param tr ATM 信息实体
503
+     */
504
+    static async AtmUpdate(tr: TatmDbpnr): Promise<boolean> {
505
+        let tradeReturn = false;
506
+        try {
507
+            const entity: TransitEntity = {
508
+                ServiceName: "registerservice",
509
+                FuncName: "AtmUpdate",
510
+                AttachFiles: []
511
+            };
512
+            const attcheds: AttachFile = {
513
+                AttachIndex: "1",
514
+                AttachType: TableType,
515
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tr])
516
+            };
517
+            entity.AttachFiles.push(attcheds);
518
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
519
+            if (tmpresult && tmpresult.length === 1) {
520
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
521
+            }
522
+        } catch (e) {
523
+            throw e;
524
+        }
525
+        return tradeReturn;
526
+    }
527
+
528
+    /**
529
+     * ATM 删除
530
+     * @param f_id 要删除记录的 ID
531
+     */
532
+    static async AtmDelete(f_id: string): Promise<boolean> {
533
+        let tradeReturn = false;
534
+        try {
535
+            const entity: TransitEntity = {
536
+                ServiceName: "registerservice",
537
+                FuncName: "AtmDelete",
538
+                Parameters: { "1": f_id }
539
+            };
540
+            const tmpresult = await ServiceManager.GetInstance().Commit(entity);
541
+            if (tmpresult && tmpresult.length === 1) {
542
+                tradeReturn = Boolean(tmpresult[0].AttachValue);
543
+            }
544
+        } catch (e) {
545
+            throw e;
546
+        }
547
+        return tradeReturn;
548
+    }
549
+
550
+    /**
551
+     * 将普通字符串格式化为日期字符串
552
+     * @param normalString 普通字符串
553
+     */
554
+    static FormatNormalStringToDateString(normalString: string): string {
555
+        if (normalString.length !== 8) return normalString;
556
+        const s1 = normalString.slice(0, 4) + '-' + normalString.slice(4);
557
+        const s2 = s1.slice(0, 7) + '-' + s1.slice(7);
558
+        return s2;
559
+    }
560
+}
561
+
562
+export { ResgistryHandle };

+ 12
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/ServiceEntitys.ts View File

@@ -0,0 +1,12 @@
1
+export class TransitEntity {
2
+  ServiceName: string = ''
3
+  FuncName: string = ''
4
+  Parameters: Record<string, string> = {}
5
+  AttachFiles: AttachFile[] = []
6
+}
7
+
8
+export class AttachFile {
9
+  AttachIndex: string = ''
10
+  AttachType: string = ''
11
+  AttachValue: any = null
12
+}

+ 602
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/SysBatchHandle.ts View File

@@ -0,0 +1,602 @@
1
+// 假设的类型定义
2
+type TransitEntity = {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters?: Record<string, string>;
6
+    AttachFiles?: AttachFile[];
7
+};
8
+
9
+type AttachFile = {
10
+    AttachIndex: string;
11
+    AttachType: any;
12
+    AttachValue: any;
13
+};
14
+
15
+type BatSysInfo = any;
16
+type BatInfo = any;
17
+type BatSysConfig = any;
18
+type Types = {
19
+    TableType: any;
20
+};
21
+
22
+// 假设的 ServiceManager 类
23
+class ServiceManager {
24
+    private static instance: ServiceManager;
25
+
26
+    static GetInstance() {
27
+        if (!this.instance) {
28
+            this.instance = new ServiceManager();
29
+        }
30
+        return this.instance;
31
+    }
32
+
33
+    Commit(entity: TransitEntity): AttachFile[] {
34
+        // 这里应该实现实际的提交逻辑,暂时返回空数组
35
+        return [];
36
+    }
37
+}
38
+
39
+// 假设的 CommonFunction 类
40
+class CommonFunction {
41
+    static ChangeTableToEntitys<T>(dataTable: any): T[] {
42
+        // 这里应该实现实际的转换逻辑,暂时返回空数组
43
+        return [];
44
+    }
45
+
46
+    static ChangeEntityToTable(entities: any[]): any {
47
+        // 这里应该实现实际的转换逻辑,暂时返回 null
48
+        return null;
49
+    }
50
+}
51
+
52
+/**
53
+ * 跑批流程处理
54
+ */
55
+class SysBatchHandle {
56
+    /**
57
+     * 单点登录
58
+     * @param TGT 
59
+     * @returns 
60
+     */
61
+    static SSOAuthentication(TGT: string): string {
62
+        let result = '';
63
+        try {
64
+            const entity: TransitEntity = {
65
+                ServiceName: "CommonService",
66
+                FuncName: "SSOAuthentication",
67
+                Parameters: { "1": TGT }
68
+            };
69
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
70
+            if (tmpresult && tmpresult.length === 1) {
71
+                result = tmpresult[0].AttachValue.toString();
72
+            }
73
+        } catch (e) {
74
+            throw e;
75
+        }
76
+        return result;
77
+    }
78
+
79
+    /**
80
+     * 读取批量顺序控制表数据(按mainseqn、subseqn排序出来的)
81
+     * @param wherecond 条件
82
+     * @returns 
83
+     */
84
+    static GetBatSysInfos(wherecond: string): BatSysInfo[] | null {
85
+        let result: BatSysInfo[] | null = null;
86
+        try {
87
+            const entity: TransitEntity = {
88
+                ServiceName: "sysbatchservice",
89
+                FuncName: "GetBatSysList",
90
+                Parameters: { "1": wherecond }
91
+            };
92
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
93
+            if (tmpresult && tmpresult.length === 1) {
94
+                result = CommonFunction.ChangeTableToEntitys<BatSysInfo>(tmpresult[0].AttachValue as any);
95
+            }
96
+        } catch (e) {
97
+            throw e;
98
+        }
99
+        return result;
100
+    }
101
+
102
+    /**
103
+     * 在批量顺序表中插入数据
104
+     * @param batSysInfos 数据串
105
+     * @returns 
106
+     */
107
+    static InsertBatSysInfo(batSysInfos: BatSysInfo[]): boolean {
108
+        let result = false;
109
+        try {
110
+            const entity: TransitEntity = {
111
+                ServiceName: "sysbatchservice",
112
+                FuncName: "BatSysAdd",
113
+                AttachFiles: []
114
+            };
115
+            const file: AttachFile = {
116
+                AttachIndex: "1",
117
+                AttachType: Types.TableType,
118
+                AttachValue: CommonFunction.ChangeEntityToTable(batSysInfos)
119
+            };
120
+            entity.AttachFiles.push(file);
121
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
122
+            if (tmpresult && tmpresult.length === 1) {
123
+                result = Boolean(tmpresult[0].AttachValue);
124
+            }
125
+        } catch (e) {
126
+            throw e;
127
+        }
128
+        return result;
129
+    }
130
+
131
+    /**
132
+     * 更新批量顺序控制表数据
133
+     * @param batSysInfos 数据串
134
+     * @returns 
135
+     */
136
+    static UpDateBatSysInfo(batSysInfos: BatSysInfo[]): boolean {
137
+        let result = false;
138
+        try {
139
+            const entity: TransitEntity = {
140
+                ServiceName: "sysbatchservice",
141
+                FuncName: "BatSysUpdata",
142
+                AttachFiles: []
143
+            };
144
+            const file: AttachFile = {
145
+                AttachIndex: "1",
146
+                AttachType: Types.TableType,
147
+                AttachValue: CommonFunction.ChangeEntityToTable(batSysInfos)
148
+            };
149
+            entity.AttachFiles.push(file);
150
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
151
+            if (tmpresult && tmpresult.length === 1) {
152
+                result = Boolean(tmpresult[0].AttachValue);
153
+            }
154
+        } catch (e) {
155
+            throw e;
156
+        }
157
+        return result;
158
+    }
159
+
160
+    /**
161
+     * 更新批量顺序控制表数据
162
+     * @param batSysInfo 
163
+     * @returns 
164
+     */
165
+    static UpDateBatSysInfoSingle(batSysInfo: BatSysInfo): boolean {
166
+        const data: BatSysInfo[] = [];
167
+        if (batSysInfo) {
168
+            data.push(batSysInfo);
169
+        }
170
+        return this.UpDateBatSysInfo(data);
171
+    }
172
+
173
+    /**
174
+     * 跑批过程中更新顺序控制表
175
+     * @param batSysInfo 跑批流程实体
176
+     * @returns 布尔型
177
+     */
178
+    static UpProcessBatSysInfo(batSysInfo: BatSysInfo): boolean {
179
+        let result = false;
180
+        try {
181
+            const entity: TransitEntity = {
182
+                ServiceName: "sysbatchservice",
183
+                FuncName: "UpdateProcessBatInfo",
184
+                AttachFiles: []
185
+            };
186
+            const file: AttachFile = {
187
+                AttachIndex: "1",
188
+                AttachType: Types.TableType,
189
+                AttachValue: CommonFunction.ChangeEntityToTable([batSysInfo])
190
+            };
191
+            entity.AttachFiles.push(file);
192
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
193
+            if (tmpresult && tmpresult.length === 1) {
194
+                result = Boolean(tmpresult[0].AttachValue);
195
+            }
196
+        } catch (e) {
197
+            throw e;
198
+        }
199
+        return result;
200
+    }
201
+
202
+    /**
203
+     * 删除批量顺序表数据
204
+     * @param batSysInfos 被删除对象
205
+     * @returns 
206
+     */
207
+    static DeleteBatSysInfo(batSysInfos: BatSysInfo[]): boolean {
208
+        let result = false;
209
+        try {
210
+            const entity: TransitEntity = {
211
+                ServiceName: "sysbatchservice",
212
+                FuncName: "BatSysDelete",
213
+                AttachFiles: []
214
+            };
215
+            const file: AttachFile = {
216
+                AttachIndex: "1",
217
+                AttachType: Types.TableType,
218
+                AttachValue: CommonFunction.ChangeEntityToTable(batSysInfos)
219
+            };
220
+            entity.AttachFiles.push(file);
221
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
222
+            if (tmpresult && tmpresult.length === 1) {
223
+                result = Boolean(tmpresult[0].AttachValue);
224
+            }
225
+        } catch (e) {
226
+            throw e;
227
+        }
228
+        return result;
229
+    }
230
+
231
+    /**
232
+     * 验证顺序控制表记录是否存在
233
+     * @param batSysInfo 验证对象
234
+     * @returns 
235
+     */
236
+    static IsBatSysInfoExistSingle(batSysInfo: BatSysInfo): boolean {
237
+        if (!batSysInfo) {
238
+            return false;
239
+        }
240
+
241
+        try {
242
+            const data = this.GetBatSysInfos(` batcode='${batSysInfo.batcode}' and syscode='${batSysInfo.syscode}'`);
243
+            if (!data || data.length === 0) {
244
+                return false;
245
+            }
246
+            return true;
247
+        } catch (e) {
248
+            throw e;
249
+        }
250
+    }
251
+
252
+    /**
253
+     * 验证顺序控制表记录是否存在
254
+     * @param batcode 批量编号
255
+     * @param syscode 系统编号
256
+     * @returns 
257
+     */
258
+    static IsBatSysInfoExist(batcode: string, syscode: string): boolean {
259
+        try {
260
+            const data = this.GetBatSysInfos(` batcode='${batcode}' and syscode='${syscode}'`);
261
+            if (!data || data.length === 0) {
262
+                return false;
263
+            }
264
+            return true;
265
+        } catch (e) {
266
+            throw e;
267
+        }
268
+    }
269
+
270
+    /**
271
+     * 把批量顺序控制表数据备份到历史记录表中
272
+     * @param nextdate 
273
+     * @param iscontentmonth 
274
+     * @param nextmonth 
275
+     * @returns 
276
+     */
277
+    static BackUpBatSysInfo(nextdate: string, iscontentmonth: boolean, nextmonth: string): boolean {
278
+        let result = false;
279
+        try {
280
+            const entity: TransitEntity = {
281
+                ServiceName: "sysbatchservice",
282
+                FuncName: "BatSysHisAdd",
283
+                Parameters: { "1": nextdate, "2": iscontentmonth ? "1" : "0", "3": nextmonth }
284
+            };
285
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
286
+            if (tmpresult && tmpresult.length === 1) {
287
+                result = Boolean(tmpresult[0].AttachValue);
288
+            }
289
+        } catch (e) {
290
+            throw e;
291
+        }
292
+        return result;
293
+    }
294
+
295
+    /**
296
+     * 取批量历史记录表数据
297
+     * @param begDate 条件
298
+     * @returns 
299
+     */
300
+    static GetBatSysHisInfos(begDate: string): BatSysInfo[] | null {
301
+        let result: BatSysInfo[] | null = null;
302
+        try {
303
+            const entity: TransitEntity = {
304
+                ServiceName: "sysbatchservice",
305
+                FuncName: "GetBatSysHisList",
306
+                Parameters: { "1": begDate }
307
+            };
308
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
309
+            if (tmpresult && tmpresult.length === 1) {
310
+                result = CommonFunction.ChangeTableToEntitys<BatSysInfo>(tmpresult[0].AttachValue as any);
311
+            }
312
+        } catch (e) {
313
+            throw e;
314
+        }
315
+        return result;
316
+    }
317
+
318
+    /**
319
+     * 在详情表中插入数据
320
+     * @param batSysInfos 数据串
321
+     * @returns 布尔型
322
+     */
323
+    static InsertBatInfo(batSysInfos: BatInfo[]): boolean {
324
+        let result = false;
325
+        try {
326
+            const entity: TransitEntity = {
327
+                ServiceName: "sysbatchservice",
328
+                FuncName: "BatSysInfoAdd",
329
+                AttachFiles: []
330
+            };
331
+            const file: AttachFile = {
332
+                AttachIndex: "1",
333
+                AttachType: Types.TableType,
334
+                AttachValue: CommonFunction.ChangeEntityToTable(batSysInfos)
335
+            };
336
+            entity.AttachFiles.push(file);
337
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
338
+            if (tmpresult && tmpresult.length === 1) {
339
+                result = Boolean(tmpresult[0].AttachValue);
340
+            }
341
+        } catch (e) {
342
+            throw e;
343
+        }
344
+        return result;
345
+    }
346
+
347
+    /**
348
+     * 备份详情数据到历史表
349
+     * @param end_date 
350
+     * @param tx_date 
351
+     * @returns 
352
+     */
353
+    static BackUpBatInfo(end_date: string, tx_date: string): boolean {
354
+        let result = false;
355
+        try {
356
+            const entity: TransitEntity = {
357
+                ServiceName: "sysbatchservice",
358
+                FuncName: "BatSysInfoHisAdd",
359
+                Parameters: { "1": end_date, "2": tx_date }
360
+            };
361
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
362
+            if (tmpresult && tmpresult.length === 1) {
363
+                result = Boolean(tmpresult[0].AttachValue);
364
+            }
365
+        } catch (e) {
366
+            throw e;
367
+        }
368
+        return result;
369
+    }
370
+
371
+    /**
372
+     * 获取批量详情表信息
373
+     * @param syscode 
374
+     * @param batcode 
375
+     * @returns 
376
+     */
377
+    static GetBatSysInfoInfos(syscode: string, batcode: string): BatInfo[] | null {
378
+        let result: BatInfo[] | null = null;
379
+        try {
380
+            const entity: TransitEntity = {
381
+                ServiceName: "sysbatchservice",
382
+                FuncName: "GetBatSysInfoList",
383
+                Parameters: { "1": syscode, "2": batcode }
384
+            };
385
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
386
+            if (tmpresult && tmpresult.length === 1) {
387
+                result = CommonFunction.ChangeTableToEntitys<BatInfo>(tmpresult[0].AttachValue as any);
388
+            }
389
+        } catch (e) {
390
+            throw e;
391
+        }
392
+        return result;
393
+    }
394
+
395
+    /**
396
+     * 获取跑批系统列表
397
+     * @returns 
398
+     */
399
+    static GetBatSystemList(): BatSysConfig[] | null {
400
+        let result: BatSysConfig[] | null = null;
401
+        try {
402
+            const entity: TransitEntity = {
403
+                ServiceName: "sysbatchservice",
404
+                FuncName: "GetBatSystemList"
405
+            };
406
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
407
+            if (tmpresult && tmpresult.length === 1) {
408
+                result = CommonFunction.ChangeTableToEntitys<BatSysConfig>(tmpresult[0].AttachValue as any);
409
+            }
410
+        } catch (e) {
411
+            throw e;
412
+        }
413
+        return result;
414
+    }
415
+
416
+    /**
417
+     * 查询批量详情历史信息
418
+     * @param textdate 
419
+     * @param syscode 
420
+     * @param batcode 
421
+     * @returns 
422
+     */
423
+    static GetBatSysInfoHisInfos(textdate: string, syscode: string, batcode: string): BatInfo[] | null {
424
+        let result: BatInfo[] | null = null;
425
+        try {
426
+            const entity: TransitEntity = {
427
+                ServiceName: "sysbatchservice",
428
+                FuncName: "GetBatSysInfoHisList",
429
+                Parameters: { "1": textdate, "2": syscode, "3": batcode }
430
+            };
431
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
432
+            if (tmpresult && tmpresult.length === 1) {
433
+                result = CommonFunction.ChangeTableToEntitys<BatInfo>(tmpresult[0].AttachValue as any);
434
+            }
435
+        } catch (e) {
436
+            throw e;
437
+        }
438
+        return result;
439
+    }
440
+
441
+    /**
442
+     * 更新主控制表
443
+     * @param nextDate 
444
+     * @param opteller 
445
+     * @param suncnt 
446
+     * @returns 
447
+     */
448
+    static UpSysControl(nextDate: string, opteller: string, suncnt: string): boolean {
449
+        let result = false;
450
+        try {
451
+            const entity: TransitEntity = {
452
+                ServiceName: "sysbatchservice",
453
+                FuncName: "UpSysControl",
454
+                Parameters: { "1": nextDate, "2": opteller, "3": suncnt }
455
+            };
456
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
457
+            if (tmpresult && tmpresult.length === 1) {
458
+                result = Boolean(tmpresult[0].AttachValue);
459
+            }
460
+        } catch (e) {
461
+            throw e;
462
+        }
463
+        return result;
464
+    }
465
+
466
+    /**
467
+     * 校验当前日期是否可以开启跑批
468
+     * @param tradeDate 营业日期
469
+     * @param mainseqn 序号
470
+     * @param stat 状态
471
+     * @returns 
472
+     */
473
+    static IsAllowStart(tradeDate: string, mainseqn: string, stat: string): boolean {
474
+        let result = false;
475
+        try {
476
+            const entity: TransitEntity = {
477
+                ServiceName: "sysbatchservice",
478
+                FuncName: "IsAllowStart",
479
+                Parameters: { "1": tradeDate, "2": mainseqn, "3": stat }
480
+            };
481
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
482
+            if (tmpresult && tmpresult.length === 1) {
483
+                result = Boolean(tmpresult[0].AttachValue);
484
+            }
485
+        } catch (e) {
486
+            throw e;
487
+        }
488
+        return result;
489
+    }
490
+
491
+    /**
492
+     * 获取跑批系统列表
493
+     * @returns 
494
+     */
495
+    static UpSysControlStat(): boolean {
496
+        let result = false;
497
+        try {
498
+            const entity: TransitEntity = {
499
+                ServiceName: "sysbatchservice",
500
+                FuncName: "UpSysControlStat"
501
+            };
502
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
503
+            if (tmpresult && tmpresult.length === 1) {
504
+                result = Boolean(tmpresult[0].AttachValue);
505
+            }
506
+        } catch (e) {
507
+            throw e;
508
+        }
509
+        return result;
510
+    }
511
+
512
+    /**
513
+     * 查询总控表跑批日期
514
+     * @returns 
515
+     */
516
+    static GetSysBatStartDay(): string {
517
+        let result = '';
518
+        try {
519
+            const entity: TransitEntity = {
520
+                ServiceName: "sysbatchservice",
521
+                FuncName: "GetSysBatStartDay"
522
+            };
523
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
524
+            if (tmpresult && tmpresult.length === 1) {
525
+                result = tmpresult[0].AttachValue.toString();
526
+            }
527
+        } catch (e) {
528
+            throw e;
529
+        }
530
+        return result;
531
+    }
532
+
533
+    /**
534
+     * 卸载数据中心数据
535
+     * @param tradeDate 
536
+     * @param serverName 
537
+     * @returns 
538
+     */
539
+    static UnLoadData(tradeDate: string, serverName: string): boolean {
540
+        let ret = false;
541
+        try {
542
+            const entity: TransitEntity = {
543
+                ServiceName: "sysbatchservice",
544
+                FuncName: "UnLoadData",
545
+                Parameters: { "1": tradeDate, "2": serverName }
546
+            };
547
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
548
+            if (tmpresult && tmpresult.length === 1) {
549
+                ret = Boolean(tmpresult[0].AttachValue);
550
+            }
551
+        } catch (e) {
552
+            throw e;
553
+        }
554
+        return ret;
555
+    }
556
+
557
+    /**
558
+     * 拉起备份流水表数据
559
+     * @param tradeDate 
560
+     * @returns 0:拉起失败;1:拉起成功
561
+     */
562
+    static pullBackupTradedata(tradeDate: string): string {
563
+        let result = '';
564
+        try {
565
+            const entity: TransitEntity = {
566
+                ServiceName: "sysbatchservice",
567
+                FuncName: "pullBackupTradedata",
568
+                Parameters: { "1": tradeDate }
569
+            };
570
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
571
+            if (tmpresult && tmpresult.length === 1) {
572
+                result = tmpresult[0].AttachValue.toString();
573
+            }
574
+        } catch (e) {
575
+            throw e;
576
+        }
577
+        return result;
578
+    }
579
+
580
+    /**
581
+     * 获取备份状态
582
+     * @returns 1:正在执行;2:备份完成;3:备份失败
583
+     */
584
+    static getBackupState(): string {
585
+        let result = '';
586
+        try {
587
+            const entity: TransitEntity = {
588
+                ServiceName: "sysbatchservice",
589
+                FuncName: "getBackupState"
590
+            };
591
+            const tmpresult = ServiceManager.GetInstance().Commit(entity);
592
+            if (tmpresult && tmpresult.length === 1) {
593
+                result = tmpresult[0].AttachValue.toString();
594
+            }
595
+        } catch (e) {
596
+            throw e;
597
+        }
598
+        return result;
599
+    }
600
+}
601
+
602
+export default SysBatchHandle;

+ 283
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/TradeHandle.ts View File

@@ -0,0 +1,283 @@
1
+import { ref } from 'vue'
2
+import { message } from 'ant-design-vue'
3
+import { ServiceManager } from './ServiceManager'
4
+import { TransitEntity, AttachFile } from './ServiceEntitys'
5
+import { Platform } from './Platform'
6
+
7
+export enum Transit {
8
+  CallServer = 'CallServer',
9
+  CallAgn = 'CallAgn',
10
+  CallTips = 'CallTips',
11
+  CallAgnPay = 'CallAgnPay',
12
+  CallAgnTIPS = 'CallAgnTIPS',
13
+  CallAgnSecdistruct = 'CallAgnSecdistruct',
14
+  CallAgnMobileBanking = 'CallAgnMobileBanking'
15
+}
16
+
17
+export class TradeHandle {
18
+  /**
19
+   * 获取8583域定义
20
+   */
21
+  static async GetFdItemMap(type: string): Promise<any> {
22
+    const table = {
23
+      Code: '',
24
+      Type: '',
25
+      Length: '',
26
+      DotLength: '',
27
+      Description: '',
28
+      FieldType: '',
29
+      MaxLength: ''
30
+    }
31
+
32
+    const entity = new TransitEntity()
33
+    entity.ServiceName = 'TradeService'
34
+    entity.FuncName = 'GetFdItemMap'
35
+    entity.Parameters = { '1': type }
36
+
37
+    const tmpresult = await ServiceManager.GetInstance().Commit(entity)
38
+    let data = null
39
+    if (tmpresult && tmpresult.length === 1) {
40
+      data = tmpresult[0].AttachValue as string
41
+    }
42
+    
43
+    if (data) {
44
+      const lines = data.split('\n')
45
+      return lines.map(line => {
46
+        const rows = line.split('|')
47
+        return {
48
+          ...table,
49
+          Code: rows[0],
50
+          Type: rows[1],
51
+          Length: rows[2],
52
+          DotLength: rows[3],
53
+          Description: rows[4],
54
+          FieldType: rows[5],
55
+          MaxLength: rows[6]
56
+        }
57
+      })
58
+    }
59
+    return []
60
+  }
61
+
62
+  /**
63
+   * 按照参数指示与外端进行通讯交互
64
+   */
65
+  static async DoTrade(
66
+    transit: string, 
67
+    integrateData: Uint8Array, 
68
+    kinBrno: string, 
69
+    fileName: string,
70
+    fileData: Uint8Array, 
71
+    args: any[], 
72
+    serialNo: string
73
+  ): Promise<Uint8Array[]> {
74
+    const result: Uint8Array[] = []
75
+    try {
76
+      const entity = new TransitEntity()
77
+      entity.ServiceName = 'TradeService'
78
+      entity.FuncName = 'DoTradeByTransit'
79
+      entity.Parameters = { 
80
+        '1': transit, 
81
+        '3': kinBrno, 
82
+        '4': fileName, 
83
+        '6': '', 
84
+        '7': serialNo 
85
+      }
86
+
87
+      const data = new AttachFile()
88
+      data.AttachIndex = '2'
89
+      data.AttachType = 'ByteType'
90
+      data.AttachValue = integrateData
91
+      entity.AttachFiles.push(data)
92
+
93
+      const data1 = new AttachFile()
94
+      data1.AttachIndex = '5'
95
+      data1.AttachType = 'ByteType'
96
+      data1.AttachValue = fileData
97
+      entity.AttachFiles.push(data1)
98
+
99
+      const tmpresult = await ServiceManager.GetInstance().Commit(entity)
100
+      if (tmpresult) {
101
+        tmpresult.forEach(attachFile => {
102
+          result.push(attachFile.AttachValue as Uint8Array)
103
+        })
104
+      }
105
+    } catch (e) {
106
+      throw e
107
+    }
108
+    return result
109
+  }
110
+
111
+  /**
112
+   * 获取交易返回的附件信息数据
113
+   */
114
+  static async GetTradeFile(fileName: string): Promise<Uint8Array> {
115
+    const filePath = ServiceSettings.TempFilePath + fileName + 'dhcc'
116
+    return FilesHandle.GetFileData(filePath)
117
+  }
118
+
119
+  /**
120
+   * 清空交易附件信息
121
+   */
122
+  static async ClearvFile(fileName: string): Promise<boolean> {
123
+    let result = false
124
+    try {
125
+      const entity = new TransitEntity()
126
+      entity.ServiceName = 'UtilService'
127
+      entity.FuncName = 'SaveFile'
128
+      entity.Parameters = { 
129
+        '1': fileName, 
130
+        '3': 'false' 
131
+      }
132
+
133
+      const data = new AttachFile()
134
+      data.AttachIndex = '2'
135
+      data.AttachType = 'ByteType'
136
+      data.AttachValue = new Uint8Array(0)
137
+      entity.AttachFiles.push(data)
138
+
139
+      const tmpresult = await ServiceManager.GetInstance().Commit(entity)
140
+      if (tmpresult && tmpresult.length === 1) {
141
+        result = tmpresult[0].AttachValue as boolean
142
+      }
143
+    } catch (e) {
144
+      throw e
145
+    }
146
+    return result
147
+  }
148
+
149
+  /**
150
+   * 检查交易
151
+   */
152
+  static async Check(inf: CheckInfo): Promise<CheckResult | null> {
153
+    let result: CheckResult | null = null
154
+    try {
155
+      const entity = new TransitEntity()
156
+      entity.ServiceName = 'TradeService'
157
+      entity.FuncName = 'Check'
158
+
159
+      const data = new AttachFile()
160
+      data.AttachIndex = '1'
161
+      data.AttachType = 'TableType'
162
+      data.AttachValue = Platform.CommonFunction.ChangeEntityToTable([inf])
163
+      entity.AttachFiles.push(data)
164
+
165
+      const tmpresult = await ServiceManager.GetInstance().Commit(entity)
166
+      if (tmpresult && tmpresult.length === 1) {
167
+        const rmpresult = Platform.CommonFunction.ChangeTableToEntitys<CheckResult>(
168
+          tmpresult[0].AttachValue as DataTable
169
+        )
170
+        if (rmpresult.length > 0) {
171
+          result = rmpresult[0]
172
+        }
173
+      }
174
+    } catch (e) {
175
+      throw e
176
+    }
177
+    return result
178
+  }
179
+
180
+  /**
181
+   * 复核操作
182
+   */
183
+  static async Super(
184
+    serialId: string, 
185
+    SuperId: string, 
186
+    taskid: string, 
187
+    stat: number, 
188
+    TellerNo: string, 
189
+    tradedata: Record<string, string>, 
190
+    pagedata: Uint8Array,
191
+    refuseReason: string
192
+  ): Promise<boolean> {
193
+    let result = false
194
+    try {
195
+      const entity = new TransitEntity()
196
+      entity.ServiceName = 'TradeService'
197
+      entity.FuncName = 'Super'
198
+      entity.Parameters = { 
199
+        '1': serialId, 
200
+        '2': SuperId, 
201
+        '3': taskid, 
202
+        '4': stat.toString(), 
203
+        '5': TellerNo, 
204
+        '6': Platform.CommonFunction.ChangeDicToStr(tradedata),
205
+        '8': refuseReason
206
+      }
207
+
208
+      const data = new AttachFile()
209
+      data.AttachIndex = '7'
210
+      data.AttachType = 'ByteType'
211
+      data.AttachValue = pagedata
212
+      entity.AttachFiles.push(data)
213
+
214
+      const tmpresult = await ServiceManager.GetInstance().Commit(entity)
215
+      if (tmpresult && tmpresult.length === 1) {
216
+        result = tmpresult[0].AttachValue as boolean
217
+      }
218
+    } catch (e) {
219
+      throw e
220
+    }
221
+    return result
222
+  }
223
+
224
+  /**
225
+   * 授权验证操作
226
+   */
227
+  static async DoAuth(auth: string, pwd: string, lvl: string | null): Promise<AuthResult | null> {
228
+    let result: AuthResult | null = null
229
+    try {
230
+      const entity = new TransitEntity()
231
+      entity.ServiceName = 'TradeService'
232
+      entity.FuncName = 'DoAuth'
233
+      entity.Parameters = { 
234
+        '1': auth, 
235
+        '2': pwd, 
236
+        '3': lvl || '' 
237
+      }
238
+
239
+      const tmpresult = await ServiceManager.GetInstance().Commit(entity)
240
+      if (tmpresult && tmpresult.length === 1) {
241
+        const rmpresult = Platform.CommonFunction.ChangeTableToEntitys<AuthResult>(
242
+          tmpresult[0].AttachValue as DataTable
243
+        )
244
+        if (rmpresult.length > 0) {
245
+          result = rmpresult[0]
246
+        }
247
+      }
248
+    } catch (e) {
249
+      throw e
250
+    }
251
+    return result
252
+  }
253
+}
254
+
255
+interface CheckInfo {
256
+  // ... 检查信息字段
257
+}
258
+
259
+interface CheckResult {
260
+  // ... 检查结果字段
261
+}
262
+
263
+interface AuthResult {
264
+  // ... 授权结果字段
265
+}
266
+
267
+interface AskSuperInfo {
268
+  // ... 申请复核信息字段
269
+}
270
+
271
+interface AskAuthInfo {
272
+  // ... 申请授权信息字段
273
+}
274
+
275
+interface PageData {
276
+  datas: Uint8Array
277
+  dataslength: number
278
+  // ... 其他字段
279
+}
280
+
281
+interface AuthTransRecords {
282
+  // ... 授权交易记录字段
283
+}

+ 509
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/UserManagerHandle.ts View File

@@ -0,0 +1,509 @@
1
+// 假设的类型定义
2
+interface TransitEntity {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters: { [key: string]: string };
6
+    AttachFiles?: AttachFile[];
7
+}
8
+
9
+interface AttachFile {
10
+    AttachIndex: string;
11
+    AttachType: any;
12
+    AttachValue: any;
13
+}
14
+
15
+interface ServiceManagerStatic {
16
+    GetInstance(): {
17
+        Commit(entity: TransitEntity): AttachFile[];
18
+    };
19
+}
20
+
21
+// 假设的全局变量和函数
22
+const ServiceManager: ServiceManagerStatic = {
23
+    GetInstance: () => ({
24
+        Commit: (entity: TransitEntity) => {
25
+            // 这里只是模拟实现,实际需要替换为真实逻辑
26
+            return [];
27
+        }
28
+    })
29
+};
30
+
31
+namespace Platform {
32
+    export namespace ServiceProxy {
33
+        export namespace CommonFunction {
34
+            export function ChangArrayToStr(arr: string[]): string {
35
+                // 简单模拟,实际需要替换为真实逻辑
36
+                return arr.join(',');
37
+            }
38
+
39
+            export function ChangStrToArray(str: string): string[] {
40
+                // 简单模拟,实际需要替换为真实逻辑
41
+                return str.split(',');
42
+            }
43
+        }
44
+    }
45
+}
46
+
47
+namespace TellerSystem {
48
+    export namespace ServiceProxy {
49
+        export namespace Ext {
50
+            export namespace ServiceHelper {
51
+                export class UserManagerHandle {
52
+                    // 柜员管理
53
+                    /**
54
+                     * 发送公告信息
55
+                     * @param key 唯一标示
56
+                     * @param sender 发送人
57
+                     * @param time 时间
58
+                     * @param title 标题
59
+                     */
60
+                    public static SendMessage(key: string, sender: string, time: string, title: string): void {
61
+                        try {
62
+                            const entity: TransitEntity = {
63
+                                ServiceName: "UtilService",
64
+                                FuncName: "SocketSendMessage",
65
+                                Parameters: { "1": key, "2": sender, "3": time, "4": title }
66
+                            };
67
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
68
+                        } catch (e) {
69
+                            throw e;
70
+                        }
71
+                    }
72
+
73
+                    /**
74
+                     * 发送信息
75
+                     * @param sender 发送人
76
+                     * @param message 发送信息
77
+                     * @param TradeNo 接收信息柜员号列表
78
+                     */
79
+                    public static SendMessage2(sender: string, message: string, TradeNo: string[]): void {
80
+                        try {
81
+                            const entity: TransitEntity = {
82
+                                ServiceName: "UtilService",
83
+                                FuncName: "SendMessage",
84
+                                Parameters: {
85
+                                    "1": sender,
86
+                                    "2": message,
87
+                                    "3": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(TradeNo)
88
+                                }
89
+                            };
90
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
91
+                        } catch (e) {
92
+                            throw e;
93
+                        }
94
+                    }
95
+
96
+                    /**
97
+                     * 获取外部存储数据
98
+                     * @param tradeno 
99
+                     * @param tradetype 
100
+                     * @param key_words 
101
+                     * @param branch_no 
102
+                     * @returns 
103
+                     */
104
+                    public static GetOutOfData(tradeno: string, tradetype: string, key_words: string, branch_no: string): string | null {
105
+                        let result: string | null = null;
106
+                        try {
107
+                            const entity: TransitEntity = {
108
+                                ServiceName: "TradeService",
109
+                                FuncName: "GetOutOfData",
110
+                                Parameters: { "1": tradeno, "2": tradetype, "3": key_words, "4": branch_no }
111
+                            };
112
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
113
+                            if (tmpresult && tmpresult.length === 1) {
114
+                                result = tmpresult[0].AttachValue.toString();
115
+                            }
116
+                        } catch (e) {
117
+                            throw e;
118
+                        }
119
+                        return result;
120
+                    }
121
+
122
+                    /**
123
+                     * 插入外部存储数据
124
+                     * @param guid 
125
+                     * @param tradenum 
126
+                     * @param tradetype 
127
+                     * @param keywords 
128
+                     * @param tradedata 
129
+                     * @param tellerno 
130
+                     * @param branch_no 
131
+                     * @returns 
132
+                     */
133
+                    public static SetOutOfData(guid: string, tradenum: string, tradetype: string, keywords: string, tradedata: string, tellerno: string, branch_no: string): boolean {
134
+                        let result = false;
135
+                        try {
136
+                            const entity: TransitEntity = {
137
+                                ServiceName: "TradeService",
138
+                                FuncName: "SetOutOfData",
139
+                                Parameters: {
140
+                                    "1": guid, "2": tradenum, "3": tradetype, "4": keywords,
141
+                                    "5": tradedata, "6": tellerno, "7": branch_no
142
+                                }
143
+                            };
144
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
145
+                            if (tmpresult && tmpresult.length === 1) {
146
+                                result = Boolean(tmpresult[0].AttachValue.toString());
147
+                            }
148
+                        } catch (e) {
149
+                            throw e;
150
+                        }
151
+                        return result;
152
+                    }
153
+
154
+                    /**
155
+                     * 更新外部存储数据
156
+                     * @param Guid 
157
+                     * @param tradedata 
158
+                     * @returns 
159
+                     */
160
+                    public static UpdateOutOfData(Guid: string, tradedata: string): boolean {
161
+                        let result = false;
162
+                        try {
163
+                            const entity: TransitEntity = {
164
+                                ServiceName: "TradeService",
165
+                                FuncName: "UpdateOutOfData",
166
+                                Parameters: { "1": Guid, "2": tradedata }
167
+                            };
168
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
169
+                            if (tmpresult && tmpresult.length === 1) {
170
+                                result = Boolean(tmpresult[0].AttachValue.toString());
171
+                            }
172
+                        } catch (e) {
173
+                            throw e;
174
+                        }
175
+                        return result;
176
+                    }
177
+
178
+                    /**
179
+                     * 向表中插入Blob字段的值
180
+                     * @param tableName 表名
181
+                     * @param columnName 列名
182
+                     * @param strWhere where条件
183
+                     * @param data 插入的数据
184
+                     * @returns Ture成功|False失败
185
+                     */
186
+                    public static InsertBlob(tableName: string, columnName: string, strWhere: string, data: Uint8Array): boolean {
187
+                        let result = false;
188
+                        try {
189
+                            const entity: TransitEntity = {
190
+                                ServiceName: "UtilService",
191
+                                FuncName: "InsertBlob",
192
+                                Parameters: { "1": tableName, "2": columnName, "3": strWhere },
193
+                                AttachFiles: []
194
+                            };
195
+                            const files: AttachFile = {
196
+                                AttachIndex: "4",
197
+                                AttachType: "ByteType",
198
+                                AttachValue: data
199
+                            };
200
+                            entity.AttachFiles.push(files);
201
+
202
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
203
+                            if (tmpresult && tmpresult.length === 1) {
204
+                                result = Boolean(tmpresult[0].AttachValue.toString());
205
+                            }
206
+                        } catch (e) {
207
+                            throw e;
208
+                        }
209
+                        return result;
210
+                    }
211
+
212
+                    /**
213
+                     * 删除文件
214
+                     * @param sPath 文件的路径
215
+                     * @returns 
216
+                     */
217
+                    public static DeleteFolderOrFile(sPath: string): boolean {
218
+                        let result = false;
219
+                        try {
220
+                            const entity: TransitEntity = {
221
+                                ServiceName: "UtilService",
222
+                                FuncName: "DeleteFolder",
223
+                                Parameters: { "1": sPath }
224
+                            };
225
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
226
+                            if (tmpresult && tmpresult.length === 1) {
227
+                                result = Boolean(tmpresult[0].AttachValue.toString());
228
+                            }
229
+                        } catch (e) {
230
+                            throw e;
231
+                        }
232
+                        return result;
233
+                    }
234
+
235
+                    public static GetBlob(tableName: string, columnName: string, strWhere: string): Uint8Array | null {
236
+                        let result: Uint8Array | null = null;
237
+                        try {
238
+                            const entity: TransitEntity = {
239
+                                ServiceName: "UtilService",
240
+                                FuncName: "GetBlobColumn",
241
+                                Parameters: { "1": tableName, "2": columnName, "3": strWhere }
242
+                            };
243
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
244
+                            if (tmpresult && tmpresult.length === 1) {
245
+                                result = tmpresult[0].AttachValue as Uint8Array;
246
+                            }
247
+                        } catch (e) {
248
+                            throw e;
249
+                        }
250
+                        return result;
251
+                    }
252
+
253
+                    /**
254
+                     * 保存或更新客户端配置文件
255
+                     * @param fileName 文件名称
256
+                     * @param file 文件内容
257
+                     * @param flag 追加还是覆盖
258
+                     * @returns 
259
+                     */
260
+                    public static SaveConfFile(fileName: string, file: Uint8Array, flag: boolean): boolean {
261
+                        let result = false;
262
+                        try {
263
+                            const entity: TransitEntity = {
264
+                                ServiceName: "UtilService",
265
+                                FuncName: "SaveFile",
266
+                                Parameters: { "1": "ServiceSettings.ConfigFilePath" + fileName, "3": flag.toString() },
267
+                                AttachFiles: []
268
+                            };
269
+                            const files: AttachFile = {
270
+                                AttachIndex: "2",
271
+                                AttachType: "ByteType",
272
+                                AttachValue: file
273
+                            };
274
+                            entity.AttachFiles.push(files);
275
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
276
+                            if (tmpresult && tmpresult.length === 1) {
277
+                                result = Boolean(tmpresult[0].AttachValue.toString());
278
+                            }
279
+                        } catch (e) {
280
+                            throw e;
281
+                        }
282
+                        return result;
283
+                    }
284
+
285
+                    /**
286
+                     * 查找服务端报表文件列表
287
+                     * @param path 
288
+                     * @returns 
289
+                     */
290
+                    public static findReportFile(path: string): string[] | null {
291
+                        let result: string[] | null = null;
292
+                        try {
293
+                            const entity: TransitEntity = {
294
+                                ServiceName: "UtilService",
295
+                                FuncName: "FindReportFile",
296
+                                Parameters: { "1": path }
297
+                            };
298
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
299
+                            if (tmpresult && tmpresult.length === 1) {
300
+                                result = Platform.ServiceProxy.CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
301
+                            }
302
+                        } catch (e) {
303
+                            throw e;
304
+                        }
305
+                        return result;
306
+                    }
307
+
308
+                    /**
309
+                     * 提取客户端配置文件内容
310
+                     * @param fileName 文件名称
311
+                     * @returns 
312
+                     */
313
+                    public static GetConfFile(fileName: string): Uint8Array | null {
314
+                        let result: Uint8Array | null = null;
315
+                        try {
316
+                            const entity: TransitEntity = {
317
+                                ServiceName: "UtilService",
318
+                                FuncName: "GetFile",
319
+                                Parameters: { "1": "ServiceSettings.ConfigFilePath" + fileName }
320
+                            };
321
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
322
+                            if (tmpresult && tmpresult.length === 1) {
323
+                                result = tmpresult[0].AttachValue as Uint8Array;
324
+                            }
325
+                        } catch (e) {
326
+                            throw e;
327
+                        }
328
+                        return result;
329
+                    }
330
+
331
+                    /**
332
+                     * 提取客户端配置文件内容
333
+                     * @param date 
334
+                     * @param fileName 文件名称
335
+                     * @returns 
336
+                     */
337
+                    public static GetLogFile(date: string, fileName: string): Uint8Array | null {
338
+                        let result: Uint8Array | null = null;
339
+                        try {
340
+                            const entity: TransitEntity = {
341
+                                ServiceName: "UtilService",
342
+                                FuncName: "GetFile",
343
+                                Parameters: { "1": "Logs/" + date + "/LoginUserInfo.TellerNo/" + fileName }
344
+                            };
345
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
346
+                            if (tmpresult && tmpresult.length === 1) {
347
+                                result = tmpresult[0].AttachValue as Uint8Array;
348
+                            }
349
+                        } catch (e) {
350
+                            throw e;
351
+                        }
352
+                        return result;
353
+                    }
354
+
355
+                    /**
356
+                     * 执行一条SQL语句,返回执行影响的行数
357
+                     * @param strsql Sql语句
358
+                     * @returns 
359
+                     */
360
+                    public static ExecuteSql(strsql: string): number {
361
+                        let result = 0;
362
+                        try {
363
+                            const entity: TransitEntity = {
364
+                                ServiceName: "UtilService",
365
+                                FuncName: "ExecuteSql",
366
+                                Parameters: { "1": strsql }
367
+                            };
368
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
369
+                            if (tmpresult && tmpresult.length === 1) {
370
+                                result = parseInt(tmpresult[0].AttachValue.toString(), 10);
371
+                            }
372
+                        } catch (e) {
373
+                            throw e;
374
+                        }
375
+                        return result;
376
+                    }
377
+
378
+                    /**
379
+                     * 执行一条SQL查询语句,返回查询结果数据集
380
+                     * @param sql Sql语句
381
+                     * @returns 
382
+                     */
383
+                    public static ExecuteQuery(sql: string): string[] | null {
384
+                        let result: string[] | null = null;
385
+                        try {
386
+                            const entity: TransitEntity = {
387
+                                ServiceName: "UtilService",
388
+                                FuncName: "ExecuteQuery",
389
+                                Parameters: { "1": sql }
390
+                            };
391
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
392
+                            if (tmpresult && tmpresult.length === 1) {
393
+                                result = Platform.ServiceProxy.CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
394
+                            }
395
+                        } catch (e) {
396
+                            throw e;
397
+                        }
398
+                        return result;
399
+                    }
400
+
401
+                    /**
402
+                     * 执行多条SQL语句,实现数据库事务
403
+                     * @param SQLStringList Sql语句集合
404
+                     * @returns 
405
+                     */
406
+                    public static ExecuteSQLTran(SQLStringList: string[]): boolean {
407
+                        let result = false;
408
+                        try {
409
+                            const entity: TransitEntity = {
410
+                                ServiceName: "UtilService",
411
+                                FuncName: "ExecuteSQLTran",
412
+                                Parameters: { "1": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(SQLStringList) }
413
+                            };
414
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
415
+                            if (tmpresult && tmpresult.length === 1) {
416
+                                result = Boolean(tmpresult[0].AttachValue.toString());
417
+                            }
418
+                        } catch (e) {
419
+                            throw e;
420
+                        }
421
+                        return result;
422
+                    }
423
+
424
+                    public static SortSockAddress(Address: string[]): string | null {
425
+                        let result: string | null = null;
426
+                        try {
427
+                            const entity: TransitEntity = {
428
+                                ServiceName: "UtilService",
429
+                                FuncName: "SortSockAddress",
430
+                                Parameters: { "1": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(Address) }
431
+                            };
432
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
433
+                            if (tmpresult && tmpresult.length === 1) {
434
+                                result = tmpresult[0].AttachValue.toString();
435
+                            }
436
+                        } catch (e) {
437
+                            throw e;
438
+                        }
439
+                        return result;
440
+                    }
441
+
442
+                    public static ExecuteProcudure(procedureName: string, arg: string[]): boolean {
443
+                        let result = false;
444
+                        try {
445
+                            const entity: TransitEntity = {
446
+                                ServiceName: "UtilService",
447
+                                FuncName: "ExecuteProcudure",
448
+                                Parameters: {
449
+                                    "1": procedureName,
450
+                                    "2": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(arg)
451
+                                }
452
+                            };
453
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
454
+                            if (tmpresult && tmpresult.length === 1) {
455
+                                result = Boolean(tmpresult[0].AttachValue.toString());
456
+                            }
457
+                        } catch (e) {
458
+                            throw e;
459
+                        }
460
+                        return result;
461
+                    }
462
+
463
+                    public static ExecuteProcudureWithResult(procedureName: string, arg: string[]): string[] | null {
464
+                        let result: string[] | null = null;
465
+                        try {
466
+                            const entity: TransitEntity = {
467
+                                ServiceName: "UtilService",
468
+                                FuncName: "ExecuteProcudureWithResult",
469
+                                Parameters: {
470
+                                    "1": procedureName,
471
+                                    "2": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(arg)
472
+                                }
473
+                            };
474
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
475
+                            if (tmpresult && tmpresult.length === 1) {
476
+                                result = Platform.ServiceProxy.CommonFunction.ChangStrToArray(tmpresult[0].AttachValue.toString());
477
+                            }
478
+                        } catch (e) {
479
+                            throw e;
480
+                        }
481
+                        return result;
482
+                    }
483
+
484
+                    public static ExecuteProcudureWithResultOutIndex(procedureName: string, outParameterIndex: number, arg: string[]): string | null {
485
+                        let result: string | null = null;
486
+                        try {
487
+                            const entity: TransitEntity = {
488
+                                ServiceName: "UtilService",
489
+                                FuncName: "ExecuteProcudureWithResultOutIndex",
490
+                                Parameters: {
491
+                                    "1": procedureName,
492
+                                    "2": outParameterIndex.toString(),
493
+                                    "3": Platform.ServiceProxy.CommonFunction.ChangArrayToStr(arg)
494
+                                }
495
+                            };
496
+                            const tmpresult = ServiceManager.GetInstance().Commit(entity);
497
+                            if (tmpresult && tmpresult.length === 1) {
498
+                                result = tmpresult[0].AttachValue.toString();
499
+                            }
500
+                        } catch (e) {
501
+                            throw e;
502
+                        }
503
+                        return result;
504
+                    }
505
+                }
506
+            }
507
+        }
508
+    }
509
+}

+ 562
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/WorkFlowHandle.ts View File

@@ -0,0 +1,562 @@
1
+// 假设的类型定义,需要根据实际情况调整
2
+interface TransitEntity {
3
+    ServiceName: string;
4
+    FuncName: string;
5
+    Parameters: { [key: string]: string };
6
+    AttachFiles?: AttachFile[];
7
+}
8
+
9
+interface AttachFile {
10
+    AttachIndex: string;
11
+    AttachType: any;
12
+    AttachValue: any;
13
+}
14
+
15
+interface TellerInfo {
16
+    // 这里可以补充 TellerInfo 的具体属性
17
+}
18
+
19
+interface WorkItemDesc {
20
+    // 这里可以补充 WorkItemDesc 的具体属性
21
+}
22
+
23
+interface ProcessInfo {
24
+    // 这里可以补充 ProcessInfo 的具体属性
25
+}
26
+
27
+class ServiceManager {
28
+    private static instance: ServiceManager;
29
+
30
+    private constructor() { }
31
+
32
+    static getInstance(): ServiceManager {
33
+        if (!this.instance) {
34
+            this.instance = new ServiceManager();
35
+        }
36
+        return this.instance;
37
+    }
38
+
39
+    Commit(entity: TransitEntity): AttachFile[] {
40
+        // 这里需要实现实际的提交逻辑
41
+        return [];
42
+    }
43
+}
44
+
45
+namespace Platform {
46
+    export namespace ServiceProxy {
47
+        export namespace CommonFunction {
48
+            export function ChangeDicToStr(dic: { [key: string]: string }): string {
49
+                // 这里需要实现实际的转换逻辑
50
+                return '';
51
+            }
52
+
53
+            export function ChangeEntityToTable<T>(entities: T[]): any {
54
+                // 这里需要实现实际的转换逻辑
55
+                return null;
56
+            }
57
+
58
+            export function ChangeTableToEntitys<T>(table: any): T[] {
59
+                // 这里需要实现实际的转换逻辑
60
+                return [];
61
+            }
62
+
63
+            export function ChangeStrToDic(str: string): { [key: string]: string } {
64
+                // 这里需要实现实际的转换逻辑
65
+                return {};
66
+            }
67
+        }
68
+    }
69
+}
70
+
71
+export class WorkFlowHandle {
72
+    /**
73
+     * 获取工作流请求返回
74
+     * @param workflowId 
75
+     * @returns 
76
+     */
77
+    static GetWorkFlowTradeReturn(workflowId: string): string | null {
78
+        let tradeReturn: string | null = null;
79
+        try {
80
+            const entity: TransitEntity = {
81
+                ServiceName: "ProcessService",
82
+                FuncName: "TradeRequest",
83
+                Parameters: { "1": workflowId },
84
+                AttachFiles: []
85
+            };
86
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
87
+            if (tmpresult && tmpresult.length === 1) {
88
+                tradeReturn = tmpresult[0].AttachValue as string;
89
+            }
90
+        } catch (e) {
91
+            throw e;
92
+        }
93
+        return tradeReturn;
94
+    }
95
+
96
+    /**
97
+     * 获取工作流请求返回
98
+     * @param tellerinfo 基本信息
99
+     * @param tradePageData 页面数据
100
+     * @param alldatas 总线数据
101
+     * @param id ID
102
+     * @param serialNo 流水号
103
+     * @param isWorkFlow 是否走工作流
104
+     * @param firstNodeFlag 首节点标志位
105
+     * @returns 
106
+     */
107
+    static GetWorkFlowTradeSubmit(tellerinfo: TellerInfo, tradePageData: Uint8Array, alldatas: { [key: string]: string }, id: string, serialNo: string, isWorkFlow: boolean, firstNodeFlag: boolean): string | null {
108
+        let tradeReturn: string | null = null;
109
+        try {
110
+            const entity: TransitEntity = {
111
+                ServiceName: "ProcessService",
112
+                FuncName: "TradeSubmit",
113
+                Parameters: {
114
+                    "3": Platform.ServiceProxy.CommonFunction.ChangeDicToStr(alldatas),
115
+                    "4": id,
116
+                    "5": serialNo,
117
+                    "6": isWorkFlow.toString(),
118
+                    "7": firstNodeFlag.toString()
119
+                },
120
+                AttachFiles: []
121
+            };
122
+            // 做 tellerinfo 类型转换
123
+            const teller: AttachFile = {
124
+                AttachIndex: "1",
125
+                AttachType: "TableType", // 假设 Types.TableType 对应 "TableType"
126
+                AttachValue: Platform.ServiceProxy.CommonFunction.ChangeEntityToTable([tellerinfo])
127
+            };
128
+            entity.AttachFiles.push(teller);
129
+            // 做 tradePageData 类型转换
130
+            const pagedata: AttachFile = {
131
+                AttachIndex: "2",
132
+                AttachType: "ByteType", // 假设 Types.ByteType 对应 "ByteType"
133
+                AttachValue: tradePageData
134
+            };
135
+            entity.AttachFiles.push(pagedata);
136
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
137
+            if (tmpresult && tmpresult.length === 1) {
138
+                tradeReturn = tmpresult[0].AttachValue as string;
139
+            }
140
+        } catch (e) {
141
+            throw e;
142
+        }
143
+        return tradeReturn;
144
+    }
145
+
146
+    /**
147
+     * 根据柜员号和任务状态获取任务列表
148
+     * @param tellerNo 
149
+     * @param state 
150
+     * @returns 
151
+     */
152
+    static GetWorkFlowWorkItem(tellerNo: string, state: string): WorkItemDesc[] | null {
153
+        let tradeReturn: WorkItemDesc[] | null = null;
154
+        try {
155
+            const entity: TransitEntity = {
156
+                ServiceName: "ProcessService",
157
+                FuncName: "GetWorkItems",
158
+                Parameters: { "1": tellerNo, "2": state },
159
+                AttachFiles: []
160
+            };
161
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
162
+            if (tmpresult && tmpresult.length === 1) {
163
+                tradeReturn = Platform.ServiceProxy.CommonFunction.ChangeTableToEntitys<WorkItemDesc>(tmpresult[0].AttachValue as any);
164
+            }
165
+        } catch (e) {
166
+            throw e;
167
+        }
168
+        return tradeReturn;
169
+    }
170
+
171
+    /**
172
+     * 挂起
173
+     * @param processid 
174
+     * @returns 
175
+     */
176
+    static ProcessSuspend(processid: string): string | null {
177
+        let tradeReturn: string | null = null;
178
+        try {
179
+            const entity: TransitEntity = {
180
+                ServiceName: "ProcessService",
181
+                FuncName: "ProcessSuspend",
182
+                Parameters: { "1": processid },
183
+                AttachFiles: []
184
+            };
185
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
186
+            if (tmpresult && tmpresult.length === 1) {
187
+                tradeReturn = tmpresult[0].AttachValue as string;
188
+            }
189
+        } catch (e) {
190
+            throw e;
191
+        }
192
+        return tradeReturn;
193
+    }
194
+
195
+    /**
196
+     * 
197
+     * @param processid 
198
+     * @returns 
199
+     */
200
+    static ProcessResume(processid: string): string | null {
201
+        let tradeReturn: string | null = null;
202
+        try {
203
+            const entity: TransitEntity = {
204
+                ServiceName: "ProcessService",
205
+                FuncName: "ProcessResume",
206
+                Parameters: { "1": processid },
207
+                AttachFiles: []
208
+            };
209
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
210
+            if (tmpresult && tmpresult.length === 1) {
211
+                tradeReturn = tmpresult[0].AttachValue as string;
212
+            }
213
+        } catch (e) {
214
+            throw e;
215
+        }
216
+        return tradeReturn;
217
+    }
218
+
219
+    /**
220
+     * 工作流撤销
221
+     * @param processid 
222
+     * @returns 
223
+     */
224
+    static ProcessDelete(processid: string): string | null {
225
+        let tradeReturn: string | null = null;
226
+        try {
227
+            const entity: TransitEntity = {
228
+                ServiceName: "ProcessService",
229
+                FuncName: "ProcessDelete",
230
+                Parameters: { "1": processid },
231
+                AttachFiles: []
232
+            };
233
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
234
+            if (tmpresult && tmpresult.length === 1) {
235
+                tradeReturn = tmpresult[0].AttachValue as string;
236
+            }
237
+        } catch (e) {
238
+            throw e;
239
+        }
240
+        return tradeReturn;
241
+    }
242
+
243
+    static GetTradePageData(serialNo: string, ActiviteId: string): Uint8Array | null {
244
+        let result: Uint8Array | null = null;
245
+        try {
246
+            const entity: TransitEntity = {
247
+                ServiceName: "ProcessService",
248
+                FuncName: "GetTradePageData",
249
+                Parameters: { "1": serialNo, "2": ActiviteId },
250
+                AttachFiles: []
251
+            };
252
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
253
+            if (tmpresult && tmpresult.length === 1) {
254
+                result = tmpresult[0].AttachValue as Uint8Array;
255
+            }
256
+        } catch (e) {
257
+            throw e;
258
+        }
259
+        return result;
260
+    }
261
+
262
+    /**
263
+     * 根据柜员号,获取流程状态信息
264
+     * @param serialNo 
265
+     * @returns 
266
+     */
267
+    static GetTradedataBySerialNo(serialNo: string): { [key: string]: string } | null {
268
+        let result: { [key: string]: string } | null = null;
269
+        try {
270
+            const entity: TransitEntity = {
271
+                ServiceName: "ProcessService",
272
+                FuncName: "GetTradedataBySerialNo",
273
+                Parameters: { "1": serialNo },
274
+                AttachFiles: []
275
+            };
276
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
277
+            if (tmpresult && tmpresult.length === 1) {
278
+                result = Platform.ServiceProxy.CommonFunction.ChangeStrToDic(tmpresult[0].AttachValue.toString());
279
+            }
280
+        } catch (e) {
281
+            throw e;
282
+        }
283
+        return result;
284
+    }
285
+
286
+    /**
287
+     * 根据柜员号,获取该柜员发起的流程状态信息
288
+     * @param userId 
289
+     * @returns 
290
+     */
291
+    static getProcessInfosByUserId(userId: string): ProcessInfo[] | null {
292
+        let result: ProcessInfo[] | null = null;
293
+        try {
294
+            const entity: TransitEntity = {
295
+                ServiceName: "ProcessService",
296
+                FuncName: "GetProcessInfosByUserId",
297
+                Parameters: { "1": userId },
298
+                AttachFiles: []
299
+            };
300
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
301
+            if (tmpresult && tmpresult.length === 1) {
302
+                result = Platform.ServiceProxy.CommonFunction.ChangeTableToEntitys<ProcessInfo>(tmpresult[0].AttachValue as any);
303
+            }
304
+        } catch (e) {
305
+            throw e;
306
+        }
307
+        return result;
308
+    }
309
+
310
+    /**
311
+     * 根据流程实例ID,删除流程实例
312
+     * @param proInsId 
313
+     * @param delReason 
314
+     */
315
+    static deleteProcessInsById(proInsId: string, delReason: string): void {
316
+        try {
317
+            const entity: TransitEntity = {
318
+                ServiceName: "ProcessService",
319
+                FuncName: "DeleteProcessInsById",
320
+                Parameters: { "1": proInsId, "2": delReason },
321
+                AttachFiles: []
322
+            };
323
+            ServiceManager.getInstance().Commit(entity);
324
+        } catch (e) {
325
+            throw e;
326
+        }
327
+    }
328
+
329
+    /**
330
+     * 根据发起柜员号删除历史任务
331
+     * @param TellerNo 
332
+     */
333
+    static deleteHisTaskInsByuserId(TellerNo: string): void {
334
+        try {
335
+            const entity: TransitEntity = {
336
+                ServiceName: "ProcessService",
337
+                FuncName: "DeleteHisTaskInsByuserId",
338
+                Parameters: { "1": TellerNo },
339
+                AttachFiles: []
340
+            };
341
+            ServiceManager.getInstance().Commit(entity);
342
+        } catch (e) {
343
+            throw e;
344
+        }
345
+    }
346
+
347
+    /**
348
+     * 根据发起柜员号删除该柜员发起的流程实例信息记录
349
+     * @param TellerNo 
350
+     */
351
+    static deleteHisProcessInsByuserId(TellerNo: string): void {
352
+        try {
353
+            const entity: TransitEntity = {
354
+                ServiceName: "ProcessService",
355
+                FuncName: "DeleteHisProcessInsByuserId",
356
+                Parameters: { "1": TellerNo },
357
+                AttachFiles: []
358
+            };
359
+            ServiceManager.getInstance().Commit(entity);
360
+        } catch (e) {
361
+            throw e;
362
+        }
363
+    }
364
+
365
+    /**
366
+     * 根据任务id,放弃任务
367
+     * @param taskid 
368
+     * @param begTeller 
369
+     * @returns 
370
+     */
371
+    static GiveUpTask(taskid: string, begTeller: string): boolean {
372
+        let result = false;
373
+        try {
374
+            const entity: TransitEntity = {
375
+                ServiceName: "ProcessService",
376
+                FuncName: "GiveUpTask",
377
+                Parameters: { "1": taskid, "2": begTeller },
378
+                AttachFiles: []
379
+            };
380
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
381
+            if (tmpresult && tmpresult.length === 1) {
382
+                result = Boolean(tmpresult[0].AttachValue);
383
+            }
384
+        } catch (e) {
385
+            throw e;
386
+        }
387
+        return result;
388
+    }
389
+
390
+    /**
391
+     * 根据任务id,提交任务
392
+     * @param taskid 
393
+     */
394
+    static CompleteTaskById(taskid: string): void {
395
+        try {
396
+            const entity: TransitEntity = {
397
+                ServiceName: "ProcessService",
398
+                FuncName: "CompleteTaskById",
399
+                Parameters: { "1": taskid },
400
+                AttachFiles: []
401
+            };
402
+            ServiceManager.getInstance().Commit(entity);
403
+        } catch (e) {
404
+            throw e;
405
+        }
406
+    }
407
+
408
+    /**
409
+     * 根据任务id,柜员号,查询该任务是否被他人认领
410
+     * @param taskid 
411
+     * @param TellerNo 
412
+     * @param lvl 
413
+     * @returns 
414
+     */
415
+    static CheckTask(taskid: string, TellerNo: string, lvl: string): boolean {
416
+        let result = false;
417
+        try {
418
+            const entity: TransitEntity = {
419
+                ServiceName: "ProcessService",
420
+                FuncName: "CheckTask",
421
+                Parameters: { "1": taskid, "2": TellerNo, "3": lvl },
422
+                AttachFiles: []
423
+            };
424
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
425
+            if (tmpresult && tmpresult.length === 1) {
426
+                result = Boolean(tmpresult[0].AttachValue);
427
+            }
428
+        } catch (e) {
429
+            throw e;
430
+        }
431
+        return result;
432
+    }
433
+
434
+    /**
435
+     * 获取主流水
436
+     * @param tradeNo 交易号
437
+     * @param telNo 柜员号
438
+     * @param brNo 机构号
439
+     * @param businessdate 营业日期
440
+     * @param localip 本地IP地址
441
+     * @returns 
442
+     */
443
+    static GenNextSerialNo(tradeNo: string, telNo: string, brNo: string, businessdate: string, localip: string): string | null {
444
+        let result: string | null = null;
445
+        try {
446
+            const entity: TransitEntity = {
447
+                ServiceName: "ProcessService",
448
+                FuncName: "GenNextSerialNo",
449
+                Parameters: { "1": tradeNo, "2": telNo, "3": brNo, "4": businessdate, "5": localip },
450
+                AttachFiles: []
451
+            };
452
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
453
+            if (tmpresult && tmpresult.length === 1) {
454
+                result = tmpresult[0].AttachValue.toString();
455
+            }
456
+        } catch (e) {
457
+            throw e;
458
+        }
459
+        return result;
460
+    }
461
+
462
+    /**
463
+     * 获取柜员流水
464
+     * @param telNo 柜员号
465
+     * @param brNo 机构号
466
+     * @param businessdate 营业日期
467
+     * @param serialid 
468
+     * @returns 
469
+     */
470
+    static GenTellerSerialNo(telNo: string, brNo: string, businessdate: string, serialid: string): string | null {
471
+        let result: string | null = null;
472
+        try {
473
+            const entity: TransitEntity = {
474
+                ServiceName: "ProcessService",
475
+                FuncName: "genTellerSerialNo",
476
+                Parameters: { "1": telNo, "2": brNo, "3": businessdate, "4": serialid },
477
+                AttachFiles: []
478
+            };
479
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
480
+            if (tmpresult && tmpresult.length === 1) {
481
+                result = tmpresult[0].AttachValue.toString();
482
+            }
483
+        } catch (e) {
484
+            throw e;
485
+        }
486
+        return result;
487
+    }
488
+
489
+    /**
490
+     * 获取某个柜员是否还有未完成的任务
491
+     * @param telNo 柜员号
492
+     * @returns 
493
+     */
494
+    static IsExistProcessByTellerNO(telNo: string): boolean {
495
+        let result = false;
496
+        try {
497
+            const entity: TransitEntity = {
498
+                ServiceName: "ProcessService",
499
+                FuncName: "getWorkItemsProcessByTellerNO",
500
+                Parameters: { "1": telNo },
501
+                AttachFiles: []
502
+            };
503
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
504
+            if (tmpresult && tmpresult.length === 1) {
505
+                result = Boolean(tmpresult[0].AttachValue);
506
+            }
507
+        } catch (e) {
508
+            throw e;
509
+        }
510
+        return result;
511
+    }
512
+
513
+    /**
514
+     * 获取柜员任务个数
515
+     * @param TellerNo 柜员号
516
+     * @returns 
517
+     */
518
+    static getWorkItemsProcessNum(TellerNo: string): number {
519
+        let result = 0;
520
+        try {
521
+            const entity: TransitEntity = {
522
+                ServiceName: "ProcessService",
523
+                FuncName: "getWorkItemsProcessNum",
524
+                Parameters: { "1": TellerNo },
525
+                AttachFiles: []
526
+            };
527
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
528
+            if (tmpresult && tmpresult.length === 1) {
529
+                result = Number(tmpresult[0].AttachValue);
530
+            }
531
+        } catch (e) {
532
+            throw e;
533
+        }
534
+        return result;
535
+    }
536
+
537
+    /**
538
+     * 根据任务id,柜员号,查询该复核任务是否被他人认领
539
+     * 只有会计结算部才启用任务认领的功能
540
+     * @param taskid 
541
+     * @param TellerNo 
542
+     * @returns 
543
+     */
544
+    static CheckSuper(taskid: string, TellerNo: string): boolean {
545
+        let result = false;
546
+        try {
547
+            const entity: TransitEntity = {
548
+                ServiceName: "ProcessService",
549
+                FuncName: "CheckSuper",
550
+                Parameters: { "1": taskid, "2": TellerNo },
551
+                AttachFiles: []
552
+            };
553
+            const tmpresult = ServiceManager.getInstance().Commit(entity);
554
+            if (tmpresult && tmpresult.length === 1) {
555
+                result = Boolean(tmpresult[0].AttachValue);
556
+            }
557
+        } catch (e) {
558
+            throw e;
559
+        }
560
+        return result;
561
+    }
562
+}

+ 20
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceHelper/types.ts View File

@@ -0,0 +1,20 @@
1
+export interface TransitEntity {
2
+    ServiceName: string;
3
+    FuncName: string;
4
+    Parameters: { [key: string]: string };
5
+    AttachFiles: AttachFile[];
6
+}
7
+
8
+export interface AttachFile {
9
+    AttachIndex: string;
10
+    AttachType: Types;
11
+    AttachValue: any;
12
+}
13
+
14
+export enum Types {
15
+    TableType,
16
+    BaseType,
17
+    ByteType
18
+}
19
+
20
+// 其他类型定义...

+ 178
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/ServiceSettings.ts View File

@@ -0,0 +1,178 @@
1
+// 模拟 ConfigType 枚举
2
+enum ConfigType {
3
+    System,
4
+    Client
5
+}
6
+
7
+// 模拟 TT_SysConfig 类
8
+class TT_SysConfig {
9
+    Configid: string;
10
+    Configname: string;
11
+    Configvalue: string;
12
+
13
+    constructor(Configid: string, Configname: string, Configvalue: string) {
14
+        this.Configid = Configid;
15
+        this.Configname = Configname;
16
+        this.Configvalue = Configvalue;
17
+    }
18
+}
19
+
20
+// 模拟 ConfigManager 类
21
+class ConfigManager {
22
+    private static instance: ConfigManager;
23
+    private constructor() { }
24
+
25
+    static GetInstance(): ConfigManager {
26
+        if (!this.instance) {
27
+            this.instance = new ConfigManager();
28
+        }
29
+        return this.instance;
30
+    }
31
+
32
+    GetConfigValue(key: string, type: ConfigType): string {
33
+        // 这里需要根据实际情况实现获取配置值的逻辑
34
+        return '';
35
+    }
36
+}
37
+
38
+// 模拟 TradeManagerHandle 类
39
+class TradeManagerHandle {
40
+    static TT_SYSCONFIG_GetConfigValueByConfigID(id: string): string {
41
+        // 这里需要根据实际情况实现获取配置值的逻辑
42
+        return '';
43
+    }
44
+
45
+    static GetSysconfigList(prefix: string): TT_SysConfig[] {
46
+        // 这里需要根据实际情况实现获取配置列表的逻辑
47
+        return [];
48
+    }
49
+}
50
+
51
+// 模拟 LoginUserInfo 类
52
+class LoginUserInfo {
53
+    static KinbrNo: number = 0;
54
+}
55
+
56
+// 模拟 Func 类型
57
+type Func<T, R> = (arg: T) => R;
58
+
59
+class ServiceSettings {
60
+    /**
61
+     * 服务端采用的临时目录
62
+     */
63
+    static get TempFilePath(): string {
64
+        return ConfigManager.GetInstance().GetConfigValue('TempFilePath', ConfigType.System);
65
+    }
66
+
67
+    /**
68
+     * 服务端采用的临时目录
69
+     */
70
+    static get ConfigFilePath(): string {
71
+        return ConfigManager.GetInstance().GetConfigValue('ConfigFilePath', ConfigType.System);
72
+    }
73
+
74
+    /**
75
+     * 服务端地址
76
+     */
77
+    static get AuthServiceUri(): string {
78
+        return ConfigManager.GetInstance().GetConfigValue('AuthServiceAddress', ConfigType.Client) + "mdps";
79
+    }
80
+
81
+    static get AuthSystemName(): string {
82
+        const FLAG = TradeManagerHandle.TT_SYSCONFIG_GetConfigValueByConfigID('2ea3a7e6cfa04f89a335bf1e363295de');
83
+        if (LoginUserInfo.KinbrNo.toString().substring(0, 3) === '106' && FLAG === 'V6') {
84
+            return "pycz";
85
+        } else {
86
+            return ConfigManager.GetInstance().GetConfigValue('AuthSystemName', ConfigType.Client);
87
+        }
88
+    }
89
+
90
+    static get AuthSystemSecret(): string {
91
+        const FLAG = TradeManagerHandle.TT_SYSCONFIG_GetConfigValueByConfigID('2ea3a7e6cfa04f89a335bf1e363295de');
92
+        if (LoginUserInfo.KinbrNo.toString().substring(0, 3) === '106' && FLAG === 'V6') {
93
+            return "PyczDefaultKey";
94
+        } else {
95
+            return ConfigManager.GetInstance().GetConfigValue('AuthSystemSecret', ConfigType.Client);
96
+        }
97
+    }
98
+
99
+    /**
100
+     * 文件地址
101
+     */
102
+    static get AuthFileUri(): string {
103
+        return ConfigManager.GetInstance().GetConfigValue('AuthServiceAddress', ConfigType.Client) + "upload/";
104
+    }
105
+
106
+    /**
107
+     * 远程授权文件服务器地址
108
+     */
109
+    static get AuthFileSever(): string {
110
+        return ConfigManager.GetInstance().GetConfigValue('AuthServiceAddress', ConfigType.Client) + "fileService/";
111
+    }
112
+
113
+    private static _SysConfig_: TT_SysConfig[] = TradeManagerHandle.GetSysconfigList("");
114
+
115
+    /**
116
+     * 获取服务端配置项,TT_Sysconfig
117
+     */
118
+    static GetConfig(id: string, defV: string = ''): string {
119
+        // 设计时不执行
120
+        // 由于 TypeScript 环境没有类似 WPF 的设计时模式,这里暂时注释掉
121
+        // if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())) return defV;
122
+        const item = this._SysConfig_.find(x => x.Configid === id || x.Configname === id);
123
+        // 找到配置项,返回
124
+        if (item) return item.Configvalue;
125
+        // 数据库未配置的情况,以 System 配置文件为准
126
+        const value = ConfigManager.GetInstance().GetConfigValue(id, ConfigType.System);
127
+        if (value) return value;
128
+        return defV;
129
+    }
130
+
131
+    /**
132
+     * 获取参数集合
133
+     */
134
+    static GetConfigList(prefix: string): { [key: string]: string } {
135
+        if (!prefix) return {};
136
+        // 优先匹配 id
137
+        const dict = this._SysConfig_.filter(x => x.Configid.startsWith(prefix)).reduce((acc, x) => {
138
+            acc[x.Configid.substring(prefix.length)] = x.Configvalue;
139
+            return acc;
140
+        }, {} as { [key: string]: string });
141
+        if (Object.keys(dict).length > 0) return dict;
142
+        return this._SysConfig_.filter(x => x.Configname.startsWith(prefix)).reduce((acc, x) => {
143
+            acc[x.Configname.substring(prefix.length)] = x.Configvalue;
144
+            return acc;
145
+        }, {} as { [key: string]: string });
146
+    }
147
+
148
+    static GetConfig(id: string, defV: number): number;
149
+    static GetConfig(id: string, defV: boolean): boolean;
150
+    static GetConfig<T>(id: string, defV?: T): T {
151
+        if (typeof defV === 'number') {
152
+            const value = this.GetConfig(id, '');
153
+            const v = parseInt(value, 10);
154
+            return isNaN(v) ? defV : v as unknown as T;
155
+        } else if (typeof defV === 'boolean') {
156
+            const value = this.GetConfig(id, '');
157
+            return value.toLowerCase() === 'true' ? true : false as unknown as T;
158
+        } else {
159
+            return this.GetConfig(id, defV as string) as unknown as T;
160
+        }
161
+    }
162
+
163
+    /**
164
+     * 是否登记打印数据
165
+     */
166
+    static get IsRecordPrintData(): boolean {
167
+        return this.GetConfig('45befe979ea74ef39b1fe2289c58bb63', false);
168
+    }
169
+
170
+    /**
171
+     * 银行标签
172
+     */
173
+    static get BankFlag(): string {
174
+        return TradeManagerHandle.TT_SYSCONFIG_GetConfigValueByConfigID('2ea3a7e6cfa04f89a335bf1e363295de');
175
+    }
176
+}
177
+
178
+export { ServiceSettings };

+ 38
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/AUTH_LVL.ts View File

@@ -0,0 +1,38 @@
1
+// 定义 IEntity 接口,由于原代码未给出,这里简单定义
2
+interface IEntity {
3
+    ChangeToTable(): string[];
4
+    ChangeFromTable(parms: any[]): void;
5
+}
6
+
7
+/**
8
+ * 
9
+ * @author LICHEN
10
+ * @date 2013/6/26 星期三 16:17:15
11
+ */
12
+class AUTH_LVL implements IEntity {
13
+    Lvlno: string;
14
+    Des: string;
15
+
16
+    constructor() {
17
+        this.Lvlno = "";
18
+        this.Des = "";
19
+    }
20
+
21
+    /**
22
+     * 将属性转换为字符串数组
23
+     */
24
+    ChangeToTable(): string[] {
25
+        return [this.Lvlno, this.Des];
26
+    }
27
+
28
+    /**
29
+     * 从对象数组中读取数据并赋值给属性
30
+     * @param parms - 包含数据的对象数组
31
+     */
32
+    ChangeFromTable(parms: any[]): void {
33
+        this.Lvlno = parms[0].toString();
34
+        this.Des = parms[1].toString();
35
+    }
36
+}
37
+
38
+export { AUTH_LVL };

+ 187
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/LoginData.ts View File

@@ -0,0 +1,187 @@
1
+// 定义 IEntity 接口,若有具体内容需补充
2
+interface IEntity {}
3
+
4
+/**
5
+ * 登录数据类,包含柜员登录相关的各种信息
6
+ */
7
+class LoginData implements IEntity {
8
+    // 柜员ID
9
+    UserId: string;
10
+    // 柜员号
11
+    UserCode: string;
12
+    // 柜员名称
13
+    UserName: string;
14
+    // 当前登陆状态
15
+    IsPiont: string;
16
+    // 启用标志
17
+    IsLogin: string;
18
+    // 所属机构
19
+    KinbrId: string;
20
+    // ATM管理柜员
21
+    MngatmUser: string;
22
+    // 用户密码
23
+    UserPsw: string;
24
+    // IC卡id
25
+    CardId: string;
26
+    // IC卡管理级别
27
+    CardLevel: string;
28
+    // 上次密码修改日期
29
+    PwdChgDate: string;
30
+    // 上次登录IP
31
+    LoginIp: string;
32
+    // 上次登录端口
33
+    PortNo: string;
34
+    // 上次登录时间
35
+    BeforeDate: string;
36
+    // 当前系统日期
37
+    Date: string;
38
+    // 登陆验证方式
39
+    PswLevel: string;
40
+    // 上次验证方式修改日期
41
+    LevelChgDate: string;
42
+    // 登陆验证方式有效期
43
+    LevelDate: string;
44
+    // 登陆修改密码
45
+    IsChangePsw: string;
46
+    // 密码连续错误次数
47
+    PswErrCount: string;
48
+    // 上次密码错误时间
49
+    PswTime: string;
50
+    // 当前登陆状态
51
+    ChenkSign: string;
52
+    // 最大密码修改周期
53
+    MaxPswCycle: string;
54
+    // 是否允许强制登陆
55
+    CanForceLogin: boolean;
56
+    // 机构编号
57
+    KinbrNo: string;
58
+    // 是否跨终端登录
59
+    IsAcross: string;
60
+    // 是否允许多角色登录
61
+    CanGroupsLogin: boolean;
62
+    // 凭证管理上级机构
63
+    UpNoteKinbrno: string;
64
+    // 现金管理上级机构
65
+    UpCashKinbrno: string;
66
+    // 上级机构凭证管理员
67
+    upnoteteller: string;
68
+    // 上级机构现金管理员
69
+    upcashteller: string;
70
+    // 机构类型
71
+    kinbrtype: string;
72
+    // 柜员表备用字段--旧柜员号
73
+    usercomment: string;
74
+    // 机构表备用字段--旧机构号
75
+    kinbrcomment: string;
76
+    // 身份证号
77
+    idCarNo: string;
78
+    // 汇总机构
79
+    GroupKinbrNo: string;
80
+    // 是否移动端
81
+    IsMobile: boolean;
82
+
83
+    constructor() {
84
+        // 初始化属性,可根据实际情况修改默认值
85
+        this.UserId = "";
86
+        this.UserCode = "";
87
+        this.UserName = "";
88
+        this.IsPiont = "";
89
+        this.IsLogin = "";
90
+        this.KinbrId = "";
91
+        this.MngatmUser = "";
92
+        this.UserPsw = "";
93
+        this.CardId = "";
94
+        this.CardLevel = "";
95
+        this.PwdChgDate = "";
96
+        this.LoginIp = "";
97
+        this.PortNo = "";
98
+        this.BeforeDate = "";
99
+        this.Date = "";
100
+        this.PswLevel = "";
101
+        this.LevelChgDate = "";
102
+        this.LevelDate = "";
103
+        this.IsChangePsw = "";
104
+        this.PswErrCount = "";
105
+        this.PswTime = "";
106
+        this.ChenkSign = "";
107
+        this.MaxPswCycle = "";
108
+        this.CanForceLogin = false;
109
+        this.KinbrNo = "";
110
+        this.IsAcross = "";
111
+        this.CanGroupsLogin = false;
112
+        this.UpNoteKinbrno = "";
113
+        this.UpCashKinbrno = "";
114
+        this.upnoteteller = "";
115
+        this.upcashteller = "";
116
+        this.kinbrtype = "";
117
+        this.usercomment = "";
118
+        this.kinbrcomment = "";
119
+        this.idCarNo = "";
120
+        this.GroupKinbrNo = "";
121
+        this.IsMobile = false;
122
+    }
123
+
124
+    /**
125
+     * 将登录数据转换为字符串数组
126
+     * @returns 包含所有登录数据的字符串数组
127
+     */
128
+    ChangeToTable(): string[] {
129
+        return [
130
+            this.UserId, this.UserCode, this.UserName, this.IsPiont, this.IsLogin,
131
+            this.KinbrId, this.MngatmUser, this.UserPsw, this.CardId, this.CardLevel,
132
+            this.PwdChgDate, this.LoginIp, this.PortNo, this.BeforeDate, this.Date,
133
+            this.PswLevel, this.LevelChgDate, this.LevelDate, this.IsChangePsw,
134
+            this.PswErrCount, this.PswTime, this.ChenkSign, this.MaxPswCycle,
135
+            this.CanForceLogin.toString(), this.KinbrNo, this.IsAcross,
136
+            this.CanGroupsLogin.toString(), this.UpNoteKinbrno, this.UpCashKinbrno,
137
+            this.upnoteteller, this.upcashteller, this.kinbrtype, this.usercomment,
138
+            this.kinbrcomment, this.idCarNo, this.GroupKinbrNo, this.IsMobile.toString()
139
+        ];
140
+    }
141
+
142
+    /**
143
+     * 从对象数组中填充登录数据
144
+     * @param parms 包含登录数据的对象数组
145
+     */
146
+    ChangeFromTable(parms: any[]): void {
147
+        this.UserId = parms[0].toString();
148
+        this.UserCode = parms[1].toString();
149
+        this.UserName = parms[2].toString();
150
+        this.IsPiont = parms[3].toString();
151
+        this.IsLogin = parms[4].toString();
152
+        this.KinbrId = parms[5].toString();
153
+        this.MngatmUser = parms[6].toString();
154
+        this.UserPsw = parms[7].toString();
155
+        this.CardId = parms[8].toString();
156
+        this.CardLevel = parms[9].toString();
157
+        this.PwdChgDate = parms[10].toString();
158
+        this.LoginIp = parms[11].toString();
159
+        this.PortNo = parms[12].toString();
160
+        this.BeforeDate = parms[13].toString();
161
+        this.Date = parms[14].toString();
162
+        this.PswLevel = parms[15].toString();
163
+        this.LevelChgDate = parms[16].toString();
164
+        this.LevelDate = parms[17].toString();
165
+        this.IsChangePsw = parms[18].toString();
166
+        this.PswErrCount = parms[19].toString();
167
+        this.PswTime = parms[20].toString();
168
+        this.ChenkSign = parms[21].toString();
169
+        this.MaxPswCycle = parms[22].toString();
170
+        this.CanForceLogin = Boolean(parms[23]);
171
+        this.KinbrNo = parms[24].toString();
172
+        this.IsAcross = parms[25].toString();
173
+        this.CanGroupsLogin = Boolean(parms[26]);
174
+        this.UpNoteKinbrno = parms[27].toString();
175
+        this.UpCashKinbrno = parms[28].toString();
176
+        this.upnoteteller = parms[29].toString();
177
+        this.upcashteller = parms[30].toString();
178
+        this.kinbrtype = parms[31].toString();
179
+        this.usercomment = parms[32].toString();
180
+        this.kinbrcomment = parms[33].toString();
181
+        this.idCarNo = parms[34].toString();
182
+        this.GroupKinbrNo = parms[35].toString();
183
+        this.IsMobile = parms[36] === "1";
184
+    }
185
+}
186
+
187
+export default LoginData;

+ 105
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintDataLimit.ts View File

@@ -0,0 +1,105 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, event: { propertyName: string }) => void;
3
+
4
+// 模拟 IEntity 接口,由于未提供具体定义,这里留空
5
+interface IEntity {}
6
+
7
+// 定义 PrintDataLimit 类
8
+class PrintDataLimit implements IEntity {
9
+    // 定义 PropertyChanged 事件
10
+    private _propertyChanged?: PropertyChangedEventHandler;
11
+    public get PropertyChanged(): PropertyChangedEventHandler | undefined {
12
+        return this._propertyChanged;
13
+    }
14
+    public set PropertyChanged(value: PropertyChangedEventHandler | undefined) {
15
+        this._propertyChanged = value;
16
+    }
17
+
18
+    // 表单id
19
+    private formid: string = '';
20
+    // 表单名称
21
+    private formname: string = '';
22
+    // 交易号
23
+    private tradeno: string = '';
24
+    // 表单索引
25
+    private formindex: string = '';
26
+    // 授权级别
27
+    private authlvl: string = '';
28
+    // 打印控制标志
29
+    private printflag: string = '';
30
+
31
+    public get Formid(): string {
32
+        return this.formid;
33
+    }
34
+    public set Formid(value: string) {
35
+        this.formid = value;
36
+        if (this._propertyChanged) {
37
+            this._propertyChanged(this, { propertyName: 'Formid' });
38
+        }
39
+    }
40
+
41
+    public get Formname(): string {
42
+        return this.formname;
43
+    }
44
+    public set Formname(value: string) {
45
+        this.formname = value;
46
+        if (this._propertyChanged) {
47
+            this._propertyChanged(this, { propertyName: 'Formname' });
48
+        }
49
+    }
50
+
51
+    public get Tradeno(): string {
52
+        return this.tradeno;
53
+    }
54
+    public set Tradeno(value: string) {
55
+        this.tradeno = value;
56
+        if (this._propertyChanged) {
57
+            this._propertyChanged(this, { propertyName: 'Tradeno' });
58
+        }
59
+    }
60
+
61
+    public get Formindex(): string {
62
+        return this.formindex;
63
+    }
64
+    public set Formindex(value: string) {
65
+        this.formindex = value;
66
+        if (this._propertyChanged) {
67
+            this._propertyChanged(this, { propertyName: 'Formindex' });
68
+        }
69
+    }
70
+
71
+    public get Authlvl(): string {
72
+        return this.authlvl;
73
+    }
74
+    public set Authlvl(value: string) {
75
+        this.authlvl = value;
76
+        if (this._propertyChanged) {
77
+            this._propertyChanged(this, { propertyName: 'Authlvl' });
78
+        }
79
+    }
80
+
81
+    public get Printflag(): string {
82
+        return this.printflag;
83
+    }
84
+    public set Printflag(value: string) {
85
+        this.printflag = value;
86
+        if (this._propertyChanged) {
87
+            this._propertyChanged(this, { propertyName: 'Printflag' });
88
+        }
89
+    }
90
+
91
+    public ChangeFromTable(parms: any[]): void {
92
+        this.Formid = parms[0].toString();
93
+        this.Formname = parms[1].toString();
94
+        this.Tradeno = parms[2].toString();
95
+        this.Formindex = parms[3].toString();
96
+        this.Authlvl = parms[4].toString();
97
+        this.Printflag = parms[5].toString();
98
+    }
99
+
100
+    public ChangeToTable(): string[] {
101
+        return [this.Formid, this.Formname, this.Tradeno, this.Formindex, this.Authlvl, this.Printflag];
102
+    }
103
+}
104
+
105
+export { PrintDataLimit };

+ 71
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintExtData.ts View File

@@ -0,0 +1,71 @@
1
+// 假设 IEntity 接口定义如下,如果有实际定义需要替换
2
+interface IEntity {
3
+    // 这里可以根据实际情况补充接口的成员
4
+}
5
+
6
+class PrintExtData implements IEntity {
7
+    /**
8
+     * 系统流水号
9
+     */
10
+    SerialId: string;
11
+    /**
12
+     * 
13
+     */
14
+    TradeAction: string;
15
+    /**
16
+     * 打印类全名
17
+     */
18
+    ClassFullName: string;
19
+    /**
20
+     * 报文类型
21
+     */
22
+    MsgType: string;
23
+    /**
24
+     * 属性
25
+     */
26
+    Attributes: string;
27
+    /**
28
+     * 总线
29
+     */
30
+    TradeBus: string;
31
+    /**
32
+     * 报文
33
+     */
34
+    Message: Uint8Array;
35
+    /**
36
+     * 报文附件
37
+     */
38
+    MsgFile: Uint8Array;
39
+
40
+    constructor() {
41
+        this.SerialId = "";
42
+        this.TradeAction = "";
43
+        this.ClassFullName = "";
44
+        this.MsgType = "";
45
+        this.Attributes = "";
46
+        this.TradeBus = "";
47
+        this.Message = new Uint8Array();
48
+        this.MsgFile = new Uint8Array();
49
+    }
50
+
51
+    /**
52
+     * 从对象数组中填充属性值
53
+     * @param parms 对象数组
54
+     */
55
+    ChangeFromTable(parms: any[]): void {
56
+        this.SerialId = parms[0].toString();
57
+        this.TradeAction = parms[1].toString();
58
+        this.ClassFullName = parms[2].toString();
59
+        this.MsgType = parms[3].toString();
60
+    }
61
+
62
+    /**
63
+     * 将部分属性转换为字符串数组
64
+     * @returns 包含部分属性值的字符串数组
65
+     */
66
+    ChangeToTable(): string[] {
67
+        return [this.SerialId, this.TradeAction, this.ClassFullName, this.MsgType];
68
+    }
69
+}
70
+
71
+export { PrintExtData };

+ 35
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/PrintExtListData.ts View File

@@ -0,0 +1,35 @@
1
+// 定义 PrintExtListData 类
2
+class PrintExtListData {
3
+    // 交易名称
4
+    TradeName: string;
5
+    // 交易编号
6
+    TradeNo: string;
7
+    // 系统流水号
8
+    SerialId: string;
9
+    // 柜员流水号
10
+    SerialNo: string;
11
+    // 第三方流水号
12
+    ThirdSerialNo: string;
13
+    // 数据更新时间
14
+    UpdateTime: string;
15
+
16
+    // 构造函数,用于初始化对象属性
17
+    constructor(
18
+        TradeName: string = '',
19
+        TradeNo: string = '',
20
+        SerialId: string = '',
21
+        SerialNo: string = '',
22
+        ThirdSerialNo: string = '',
23
+        UpdateTime: string = ''
24
+    ) {
25
+        this.TradeName = TradeName;
26
+        this.TradeNo = TradeNo;
27
+        this.SerialId = SerialId;
28
+        this.SerialNo = SerialNo;
29
+        this.ThirdSerialNo = ThirdSerialNo;
30
+        this.UpdateTime = UpdateTime;
31
+    }
32
+}
33
+
34
+// 导出类,方便其他模块使用
35
+export { PrintExtListData };

+ 85
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_NotifyMessage.ts View File

@@ -0,0 +1,85 @@
1
+// 假设 IEntity 接口在其他地方定义,这里先简单定义占位
2
+interface IEntity {}
3
+
4
+/**
5
+ * 通知下发信息实体表
6
+ */
7
+class TBL_Sys_NotifyMessage implements IEntity {
8
+    /**
9
+     * 信息ID
10
+     */
11
+    Info_Id: string;
12
+    /**
13
+     * 标题
14
+     */
15
+    Info_Title: string;
16
+    /**
17
+     * 发送人编号
18
+     */
19
+    Info_SendCode: string;
20
+    /**
21
+     * 发送人
22
+     */
23
+    Info_SendName: string;
24
+    /**
25
+     * 开始时间
26
+     */
27
+    Info_StartTime: string;
28
+    /**
29
+     * 结束时间
30
+     */
31
+    Info_EndTime: string;
32
+    /**
33
+     * 附件名
34
+     */
35
+    Info_Annex: string;
36
+    /**
37
+     * 日期
38
+     */
39
+    Info_Date: string;
40
+
41
+    constructor() {
42
+        this.Info_Id = "";
43
+        this.Info_Title = "";
44
+        this.Info_SendCode = "";
45
+        this.Info_SendName = "";
46
+        this.Info_StartTime = "";
47
+        this.Info_EndTime = "";
48
+        this.Info_Annex = "";
49
+        this.Info_Date = "";
50
+    }
51
+
52
+    /**
53
+     * 从数组参数初始化对象属性
54
+     * @param parms - 包含属性值的数组
55
+     */
56
+    ChangeFromTable(parms: any[]): void {
57
+        this.Info_Id = parms[0].toString();
58
+        this.Info_Title = parms[1].toString();
59
+        this.Info_SendCode = parms[2].toString();
60
+        this.Info_SendName = parms[3].toString();
61
+        this.Info_StartTime = parms[4].toString();
62
+        this.Info_EndTime = parms[5].toString();
63
+        this.Info_Annex = parms[6].toString();
64
+        this.Info_Date = parms[7].toString();
65
+    }
66
+
67
+    /**
68
+     * 将对象属性转换为字符串数组
69
+     * @returns 包含对象属性值的字符串数组
70
+     */
71
+    ChangeToTable(): string[] {
72
+        return [
73
+            this.Info_Id,
74
+            this.Info_Title,
75
+            this.Info_SendCode,
76
+            this.Info_SendName,
77
+            this.Info_StartTime,
78
+            this.Info_EndTime,
79
+            this.Info_Annex,
80
+            this.Info_Date
81
+        ];
82
+    }
83
+}
84
+
85
+export { TBL_Sys_NotifyMessage };

+ 58
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_ReceiveName.ts View File

@@ -0,0 +1,58 @@
1
+// 由于 IEntity 接口未给出,这里先空定义,可根据实际情况补充
2
+interface IEntity {}
3
+
4
+/**
5
+ * 通知下发信息接收人信息实体
6
+ */
7
+class TBL_Sys_ReceiveName implements IEntity {
8
+    /**
9
+     * ID
10
+     */
11
+    Id: string;
12
+    /**
13
+     * 接收人Id
14
+     */
15
+    UserId: string;
16
+    /**
17
+     * 信息Id
18
+     */
19
+    InfoId: string;
20
+    /**
21
+     * 状态
22
+     */
23
+    Status: string;
24
+    /**
25
+     * 是否发送成功
26
+     */
27
+    IsSend: string;
28
+
29
+    constructor() {
30
+        this.Id = '';
31
+        this.UserId = '';
32
+        this.InfoId = '';
33
+        this.Status = '';
34
+        this.IsSend = '';
35
+    }
36
+
37
+    /**
38
+     * 从数组填充实体属性
39
+     * @param parms - 包含属性值的数组
40
+     */
41
+    ChangeFromTable(parms: any[]): void {
42
+        this.Id = parms[0].toString();
43
+        this.UserId = parms[1].toString();
44
+        this.InfoId = parms[2].toString();
45
+        this.Status = parms[3].toString();
46
+        this.IsSend = parms[4].toString();
47
+    }
48
+
49
+    /**
50
+     * 将实体属性转换为数组
51
+     * @returns 包含实体属性值的字符串数组
52
+     */
53
+    ChangeToTable(): string[] {
54
+        return [this.Id, this.UserId, this.InfoId, this.Status, this.IsSend];
55
+    }
56
+}
57
+
58
+export { TBL_Sys_ReceiveName };

+ 63
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_SendGroupRole.ts View File

@@ -0,0 +1,63 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未给出其定义
2
+interface IEntity {}
3
+
4
+/**
5
+ * 柜员发送的机构和角色实体
6
+ */
7
+class TBL_Sys_SendGroupRole implements IEntity {
8
+    /**
9
+     * 信息ID
10
+     */
11
+    Info_Id: string;
12
+
13
+    /**
14
+     * 机构和角色编号
15
+     */
16
+    Info_GroupRole: string;
17
+
18
+    /**
19
+     * 类别
20
+     */
21
+    Info_Type: string;
22
+
23
+    /**
24
+     * 机构名称
25
+     */
26
+    Info_GroupName: string;
27
+
28
+    /**
29
+     * 角色名称
30
+     */
31
+    Info_RoleName: string;
32
+
33
+    constructor() {
34
+        this.Info_Id = "";
35
+        this.Info_GroupRole = "";
36
+        this.Info_Type = "";
37
+        this.Info_GroupName = "";
38
+        this.Info_RoleName = "";
39
+    }
40
+
41
+    /**
42
+     * 从对象数组填充属性值
43
+     * @param parms - 对象数组
44
+     */
45
+    ChangeFromTable(parms: any[]): void {
46
+        this.Info_Id = parms[0].toString();
47
+        this.Info_GroupRole = parms[1].toString();
48
+        this.Info_Type = parms[2].toString();
49
+        this.Info_GroupName = parms[3].toString();
50
+        this.Info_RoleName = parms[4].toString();
51
+    }
52
+
53
+    /**
54
+     * 将属性值转换为字符串数组
55
+     * @returns 包含属性值的字符串数组
56
+     */
57
+    ChangeToTable(): string[] {
58
+        // 原代码此处可能存在笔误,重复使用了 Info_GroupRole,按原代码逻辑保留
59
+        return [this.Info_Id, this.Info_GroupRole, this.Info_Type, this.Info_GroupName, this.Info_GroupRole];
60
+    }
61
+}
62
+
63
+export { TBL_Sys_SendGroupRole };

+ 85
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TBL_Sys_TerminalNumber.ts View File

@@ -0,0 +1,85 @@
1
+// 假设 IEntity 是一个接口,这里先简单定义,实际需要根据项目情况调整
2
+interface IEntity {}
3
+
4
+/**
5
+ * 终端号管理实体
6
+ */
7
+class TBL_Sys_TerminalNumber implements IEntity {
8
+    /**
9
+     * 机构号
10
+     */
11
+    KinbrNo: string;
12
+    /**
13
+     * 机构名称
14
+     */
15
+    KinbrName: string;
16
+    /**
17
+     * 终端号
18
+     */
19
+    TerminalNumber: string;
20
+    /**
21
+     * 注册柜员号
22
+     */
23
+    TellerNumber: string;
24
+    /**
25
+     * 注册时间
26
+     */
27
+    RegisterTime: string;
28
+    /**
29
+     * 激活码
30
+     */
31
+    ActivationCode: string;
32
+    /**
33
+     * 未接设备
34
+     */
35
+    DeviceNumber: string;
36
+    /**
37
+     * 状态
38
+     */
39
+    Status: string;
40
+
41
+    constructor() {
42
+        this.KinbrNo = '';
43
+        this.KinbrName = '';
44
+        this.TerminalNumber = '';
45
+        this.TellerNumber = '';
46
+        this.RegisterTime = '';
47
+        this.ActivationCode = '';
48
+        this.DeviceNumber = '';
49
+        this.Status = '';
50
+    }
51
+
52
+    /**
53
+     * 从数组参数中更新实体属性
54
+     * @param parms - 包含属性值的数组
55
+     */
56
+    ChangeFromTable(parms: any[]): void {
57
+        this.KinbrNo = parms[0].toString();
58
+        this.KinbrName = parms[1].toString();
59
+        this.TerminalNumber = parms[2].toString();
60
+        this.TellerNumber = parms[3].toString();
61
+        this.RegisterTime = parms[4].toString();
62
+        this.ActivationCode = parms[5].toString();
63
+        this.DeviceNumber = parms[6].toString();
64
+        this.Status = parms[7].toString();
65
+    }
66
+
67
+    /**
68
+     * 将实体属性转换为字符串数组
69
+     * @returns 包含实体属性值的字符串数组
70
+     */
71
+    ChangeToTable(): string[] {
72
+        return [
73
+            this.KinbrNo,
74
+            this.KinbrName,
75
+            this.TerminalNumber,
76
+            this.TellerNumber,
77
+            this.RegisterTime,
78
+            this.ActivationCode,
79
+            this.DeviceNumber,
80
+            this.Status
81
+        ];
82
+    }
83
+}
84
+
85
+export { TBL_Sys_TerminalNumber };

+ 149
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_ExtSys.ts View File

@@ -0,0 +1,149 @@
1
+// 定义 IEntity 接口,由于原 C# 中未给出定义,这里简单定义一个空接口
2
+interface IEntity {}
3
+
4
+/**
5
+ * 外接系统实体
6
+ */
7
+class TT_ExtSys implements IEntity {
8
+    /**
9
+     * 外接系统ID
10
+     */
11
+    Extid: string;
12
+
13
+    /**
14
+     * 外接系统名称
15
+     */
16
+    Extname: string;
17
+
18
+    /**
19
+     * 外接类型
20
+     */
21
+    Exttype: string;
22
+
23
+    /**
24
+     * IP地址/路径
25
+     */
26
+    Ipadd: string;
27
+
28
+    /**
29
+     * 开发方式
30
+     */
31
+    Devtypy: string;
32
+
33
+    /**
34
+     * 附加键
35
+     */
36
+    Appendkey: string;
37
+
38
+    /**
39
+     * 操作代码段
40
+     */
41
+    Devdata: string;
42
+
43
+    /**
44
+     * 密码键入方式
45
+     */
46
+    Pswpresstype: string;
47
+
48
+    /**
49
+     * 调用方式
50
+     */
51
+    Modeshow: string;
52
+
53
+    /**
54
+     * 调用参数声明
55
+     */
56
+    Inparasign: string;
57
+
58
+    /**
59
+     * 调用参数数据
60
+     */
61
+    Inparadata: string;
62
+
63
+    /**
64
+     * 被调用参数声明
65
+     */
66
+    Outparasign: string;
67
+
68
+    /**
69
+     * 被调用参数数据
70
+     */
71
+    Outparadata: string;
72
+
73
+    /**
74
+     * 功能ID
75
+     */
76
+    Ruleid: string;
77
+
78
+    /**
79
+     * 功能编号
80
+     */
81
+    Ruleno: string;
82
+
83
+    constructor() {
84
+        // 初始化属性
85
+        this.Extid = '';
86
+        this.Extname = '';
87
+        this.Exttype = '';
88
+        this.Ipadd = '';
89
+        this.Devtypy = '';
90
+        this.Appendkey = '';
91
+        this.Devdata = '';
92
+        this.Pswpresstype = '';
93
+        this.Modeshow = '';
94
+        this.Inparasign = '';
95
+        this.Inparadata = '';
96
+        this.Outparasign = '';
97
+        this.Outparadata = '';
98
+        this.Ruleid = '';
99
+        this.Ruleno = '';
100
+    }
101
+
102
+    /**
103
+     * 从数组参数中更新实体属性值
104
+     * @param parms - 包含外接系统信息的数组
105
+     */
106
+    ChangeFromTable(parms: any[]): void {
107
+        this.Extid = parms[0].toString();
108
+        this.Extname = parms[1].toString();
109
+        this.Exttype = parms[2].toString();
110
+        this.Ipadd = parms[3].toString();
111
+        this.Devtypy = parms[4].toString();
112
+        this.Appendkey = parms[5].toString();
113
+        this.Devdata = parms[6].toString();
114
+        this.Pswpresstype = parms[7].toString();
115
+        this.Modeshow = parms[8].toString();
116
+        this.Inparasign = parms[9].toString();
117
+        this.Inparadata = parms[10].toString();
118
+        this.Outparasign = parms[11].toString();
119
+        this.Outparadata = parms[12].toString();
120
+        this.Ruleid = parms[13].toString();
121
+        this.Ruleno = parms[14].toString();
122
+    }
123
+
124
+    /**
125
+     * 将实体属性值转换为字符串数组
126
+     * @returns 包含外接系统信息的字符串数组
127
+     */
128
+    ChangeToTable(): string[] {
129
+        return [
130
+            this.Extid,
131
+            this.Extname,
132
+            this.Exttype,
133
+            this.Ipadd,
134
+            this.Devtypy,
135
+            this.Appendkey,
136
+            this.Devdata,
137
+            this.Pswpresstype,
138
+            this.Modeshow,
139
+            this.Inparasign,
140
+            this.Inparadata,
141
+            this.Outparasign,
142
+            this.Outparadata,
143
+            this.Ruleid,
144
+            this.Ruleno
145
+        ];
146
+    }
147
+}
148
+
149
+export default TT_ExtSys;

+ 107
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_Extsys_ExtuserFromByGroup.ts View File

@@ -0,0 +1,107 @@
1
+// 定义 IEntity 接口,由于原 C# 代码未给出其定义,这里简单留空
2
+interface IEntity {}
3
+
4
+/**
5
+ * 外接系统用户 【根据角色】实体
6
+ */
7
+class TT_Extsys_ExtuserFromByGroup implements IEntity {
8
+    /**
9
+     * 功能ID
10
+     */
11
+    RuleId: string;
12
+
13
+    /**
14
+     * 外接系统id
15
+     */
16
+    ExtId: string;
17
+
18
+    /**
19
+     * 交易(功能)编号
20
+     */
21
+    RuleNo: string;
22
+
23
+    /**
24
+     * 外接系统名称
25
+     */
26
+    ExtName: string;
27
+
28
+    /**
29
+     * 外接用户ID(外系统登录账号)
30
+     */
31
+    ExtUserId: string;
32
+
33
+    /**
34
+     * 外接用户密码
35
+     */
36
+    ExtPsw: string;
37
+
38
+    /**
39
+     * 外接机构
40
+     */
41
+    ExtKinbr: string;
42
+
43
+    /**
44
+     * 系统地址,ip(web系统),绝对路径(exe)
45
+     */
46
+    ExtAddress: string;
47
+
48
+    /**
49
+     * 外接系统类型,exe或者web
50
+     */
51
+    ExtType: string;
52
+
53
+    /**
54
+     * 系统参数脚本,
55
+     */
56
+    ArgStript: string;
57
+
58
+    constructor() {
59
+        this.RuleId = "";
60
+        this.ExtId = "";
61
+        this.RuleNo = "";
62
+        this.ExtName = "";
63
+        this.ExtUserId = "";
64
+        this.ExtPsw = "";
65
+        this.ExtKinbr = "";
66
+        this.ExtAddress = "";
67
+        this.ExtType = "";
68
+        this.ArgStript = "";
69
+    }
70
+
71
+    /**
72
+     * 将实体属性转换为字符串数组
73
+     */
74
+    ChangeToTable(): string[] {
75
+        return [
76
+            this.RuleId,
77
+            this.ExtId,
78
+            this.RuleNo,
79
+            this.ExtName,
80
+            this.ExtUserId,
81
+            this.ExtPsw,
82
+            this.ExtKinbr,
83
+            this.ExtAddress,
84
+            this.ExtType,
85
+            this.ArgStript
86
+        ];
87
+    }
88
+
89
+    /**
90
+     * 从对象数组中读取数据并赋值给实体属性
91
+     * @param parms - 包含数据的对象数组
92
+     */
93
+    ChangeFromTable(parms: any[]): void {
94
+        this.RuleId = parms[0].toString();
95
+        this.ExtId = parms[1].toString();
96
+        this.RuleNo = parms[2].toString();
97
+        this.ExtName = parms[3].toString();
98
+        this.ExtUserId = parms[4].toString();
99
+        this.ExtPsw = parms[5].toString();
100
+        this.ExtKinbr = parms[6].toString();
101
+        this.ExtAddress = parms[7].toString();
102
+        this.ExtType = parms[8].toString();
103
+        this.ArgStript = parms[9].toString();
104
+    }
105
+}
106
+
107
+export { TT_Extsys_ExtuserFromByGroup };

+ 82
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_Form.ts View File

@@ -0,0 +1,82 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
3
+
4
+// 模拟 IEntity 接口,这里暂时为空,可根据实际情况补充
5
+interface IEntity {}
6
+
7
+// 定义 TT_Form 类
8
+class TT_Form implements IEntity {
9
+    private _propertyChanged: PropertyChangedEventHandler[] = [];
10
+
11
+    // 定义 PropertyChanged 事件,使用数组存储回调函数
12
+    public get PropertyChanged(): {
13
+        add: (handler: PropertyChangedEventHandler) => void;
14
+        remove: (handler: PropertyChangedEventHandler) => void;
15
+    } {
16
+        return {
17
+            add: (handler) => {
18
+                this._propertyChanged.push(handler);
19
+            },
20
+            remove: (handler) => {
21
+                const index = this._propertyChanged.indexOf(handler);
22
+                if (index !== -1) {
23
+                    this._propertyChanged.splice(index, 1);
24
+                }
25
+            }
26
+        };
27
+    }
28
+
29
+    private id: string;
30
+    private formId: string;
31
+    private formName: string;
32
+    private description: string;
33
+
34
+    public get Id(): string {
35
+        return this.id;
36
+    }
37
+
38
+    public set Id(value: string) {
39
+        this.id = value;
40
+        this._propertyChanged.forEach(handler => handler(this, { propertyName: 'Id' }));
41
+    }
42
+
43
+    public get FormId(): string {
44
+        return this.formId;
45
+    }
46
+
47
+    public set FormId(value: string) {
48
+        this.formId = value;
49
+        this._propertyChanged.forEach(handler => handler(this, { propertyName: 'FormId' }));
50
+    }
51
+
52
+    public get FormName(): string {
53
+        return this.formName;
54
+    }
55
+
56
+    public set FormName(value: string) {
57
+        this.formName = value;
58
+        this._propertyChanged.forEach(handler => handler(this, { propertyName: 'FormName' }));
59
+    }
60
+
61
+    public get Description(): string {
62
+        return this.description;
63
+    }
64
+
65
+    public set Description(value: string) {
66
+        this.description = value;
67
+        this._propertyChanged.forEach(handler => handler(this, { propertyName: 'Description' }));
68
+    }
69
+
70
+    public ChangeFromTable(parms: any[]): void {
71
+        this.Id = parms[0] === null ? '' : String(parms[0]);
72
+        this.FormId = parms[1] === null ? '' : String(parms[1]);
73
+        this.FormName = parms[2] === null ? '' : String(parms[2]);
74
+        this.Description = parms[3] === null ? '' : String(parms[3]);
75
+    }
76
+
77
+    public ChangeToTable(): string[] {
78
+        return [this.Id, this.FormId, this.FormName, this.Description];
79
+    }
80
+}
81
+
82
+export { TT_Form };

+ 70
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_FormKind.ts View File

@@ -0,0 +1,70 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
3
+
4
+// 定义 IEntity 接口,由于原代码未给出其定义,这里先留空
5
+interface IEntity {}
6
+
7
+// 定义 TT_FormKind 类
8
+class TT_FormKind implements IEntity {
9
+    // 定义 PropertyChanged 事件
10
+    private _propertyChanged?: PropertyChangedEventHandler;
11
+
12
+    get PropertyChanged(): PropertyChangedEventHandler | undefined {
13
+        return this._propertyChanged;
14
+    }
15
+
16
+    set PropertyChanged(value: PropertyChangedEventHandler | undefined) {
17
+        this._propertyChanged = value;
18
+    }
19
+
20
+    private id: string;
21
+    private formKindName: string;
22
+    private printFlag: string;
23
+
24
+    get Id(): string {
25
+        return this.id;
26
+    }
27
+
28
+    set Id(value: string) {
29
+        this.id = value;
30
+        if (this._propertyChanged) {
31
+            this._propertyChanged(this, { propertyName: 'Id' });
32
+        }
33
+    }
34
+
35
+    get FormKindName(): string {
36
+        return this.formKindName;
37
+    }
38
+
39
+    set FormKindName(value: string) {
40
+        this.formKindName = value;
41
+        if (this._propertyChanged) {
42
+            this._propertyChanged(this, { propertyName: 'FormKindName' });
43
+        }
44
+    }
45
+
46
+    get PrintFlag(): string {
47
+        return this.printFlag;
48
+    }
49
+
50
+    set PrintFlag(value: string) {
51
+        this.printFlag = value;
52
+        if (this._propertyChanged) {
53
+            this._propertyChanged(this, { propertyName: 'PrintFlag' });
54
+        }
55
+    }
56
+
57
+    // 从数组中更新对象属性
58
+    public ChangeFromTable(parms: any[]): void {
59
+        this.Id = parms[0].toString();
60
+        this.FormKindName = parms[1].toString();
61
+        this.PrintFlag = parms[2].toString();
62
+    }
63
+
64
+    // 将对象属性转换为数组
65
+    public ChangeToTable(): string[] {
66
+        return [this.Id, this.FormKindName, this.PrintFlag];
67
+    }
68
+}
69
+
70
+export { TT_FormKind };

+ 46
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_GroupRule.ts View File

@@ -0,0 +1,46 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未给出其定义
2
+interface IEntity {}
3
+
4
+/**
5
+ * 角色与功能关系实体
6
+ */
7
+class TT_GroupRule implements IEntity { 
8
+    /**
9
+     * 角色ID
10
+     */
11
+    GroupId: string;
12
+    /**
13
+     * 角色编号
14
+     */
15
+    GroupCode: string;
16
+    /**
17
+     * 角色名称
18
+     */
19
+    GroupName: string;
20
+
21
+    constructor() {
22
+        this.GroupId = "";
23
+        this.GroupCode = "";
24
+        this.GroupName = "";
25
+    }
26
+
27
+    /**
28
+     * 从数组中转换数据到实体
29
+     * @param parms - 包含角色信息的数组
30
+     */
31
+    ChangeFromTable(parms: any[]): void {
32
+        this.GroupId = parms[0].toString();
33
+        this.GroupCode = parms[1].toString();
34
+        this.GroupName = parms[2].toString();
35
+    }
36
+
37
+    /**
38
+     * 将实体数据转换为数组
39
+     * @returns 包含角色信息的字符串数组
40
+     */
41
+    ChangeToTable(): string[] {
42
+        return [this.GroupId, this.GroupCode, this.GroupName];
43
+    }
44
+}
45
+
46
+export { TT_GroupRule };

+ 120
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrInfo.ts View File

@@ -0,0 +1,120 @@
1
+// 定义 IEntity 接口,这里由于原 C# 代码未给出其定义,先简单占位
2
+interface IEntity {}
3
+
4
+/**
5
+ * 机构实体
6
+ */
7
+class TT_KinbrInfo implements IEntity {
8
+    /**
9
+     * 机构id
10
+     */
11
+    KinbrId: string;
12
+    /**
13
+     * 机构编号
14
+     */
15
+    KinbrNo: string;
16
+    /**
17
+     * 机构名称
18
+     */
19
+    KinbrName: string;
20
+    /**
21
+     * 机构描述
22
+     */
23
+    KinbrRemark: string;
24
+    /**
25
+     * 机构类型
26
+     */
27
+    KinbrType: string;
28
+    /**
29
+     * 电话号码
30
+     */
31
+    KinbrTel: string;
32
+    /**
33
+     * 机构地址
34
+     */
35
+    KinbrAdd: string;
36
+    /**
37
+     * 联系人
38
+     */
39
+    Contact: string;
40
+    /**
41
+     * 备注
42
+     */
43
+    KinbrComment: string;
44
+    /**
45
+     * 现金上级机构
46
+     */
47
+    CASHUPKINBRNO: string;
48
+    /**
49
+     * 凭证上级机构
50
+     */
51
+    VOUCHERUPKINBRNO: string;
52
+    /**
53
+     * 机构关系类型
54
+     */
55
+    Reltype: string;
56
+    /**
57
+     * 行政管理类型
58
+     */
59
+    XZGLUPBACKNO: string;
60
+
61
+    constructor() {
62
+        this.KinbrId = "";
63
+        this.KinbrNo = "";
64
+        this.KinbrName = "";
65
+        this.KinbrRemark = "";
66
+        this.KinbrType = "";
67
+        this.KinbrTel = "";
68
+        this.KinbrAdd = "";
69
+        this.Contact = "";
70
+        this.KinbrComment = "";
71
+        this.CASHUPKINBRNO = "";
72
+        this.VOUCHERUPKINBRNO = "";
73
+        this.Reltype = "";
74
+        this.XZGLUPBACKNO = "";
75
+    }
76
+
77
+    /**
78
+     * 从数组参数中更新实体属性
79
+     * @param parms - 包含机构信息的数组
80
+     */
81
+    ChangeFromTable(parms: any[]): void {
82
+        this.KinbrId = parms[0].toString();
83
+        this.KinbrNo = parms[1].toString();
84
+        this.KinbrName = parms[2].toString();
85
+        this.KinbrRemark = parms[3].toString();
86
+        this.KinbrType = parms[4].toString();
87
+        this.KinbrTel = parms[5].toString();
88
+        this.KinbrAdd = parms[6].toString();
89
+        this.Contact = parms[7].toString();
90
+        this.KinbrComment = parms[8].toString();
91
+        this.Reltype = parms[9].toString();
92
+        this.CASHUPKINBRNO = parms[10].toString();
93
+        this.VOUCHERUPKINBRNO = parms[11].toString();
94
+        this.XZGLUPBACKNO = parms[12].toString();
95
+    }
96
+
97
+    /**
98
+     * 将实体属性转换为字符串数组
99
+     * @returns 包含机构信息的字符串数组
100
+     */
101
+    ChangeToTable(): string[] {
102
+        return [
103
+            this.KinbrId,
104
+            this.KinbrNo,
105
+            this.KinbrName,
106
+            this.KinbrRemark,
107
+            this.KinbrType,
108
+            this.KinbrTel,
109
+            this.KinbrAdd,
110
+            this.Contact,
111
+            this.KinbrComment,
112
+            this.Reltype,
113
+            this.CASHUPKINBRNO,
114
+            this.VOUCHERUPKINBRNO,
115
+            this.XZGLUPBACKNO
116
+        ];
117
+    }
118
+}
119
+
120
+export default TT_KinbrInfo;

+ 6
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrRelation.ts View File

@@ -0,0 +1,6 @@
1
+/**
2
+ * 机构关系实体
3
+ */
4
+export class TT_KinbrRelation {
5
+    // 类中暂时没有属性和方法,若后续有可在此添加
6
+}

+ 6
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_KinbrRule.ts View File

@@ -0,0 +1,6 @@
1
+/**
2
+ * 机构与功能关系实体
3
+ */
4
+export class TT_KinbrRule {
5
+    // 由于原 C# 类中无属性和方法,这里类体为空
6
+}

+ 157
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_LoginSign.ts View File

@@ -0,0 +1,157 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
3
+
4
+/**
5
+ * 登录状态验证实体
6
+ */
7
+class TT_LoginSign {
8
+    // 字段
9
+    private _userid: string;
10
+    private _usercode: string;
11
+    private _chenksign: string;
12
+    private _loginip: string;
13
+    private _portno: string;
14
+    private _loginmarc: string;
15
+    private _logintime: string;
16
+    private _logingroups: string;
17
+
18
+    // 事件
19
+    public PropertyChanged: PropertyChangedEventHandler | null = null;
20
+
21
+    constructor() {
22
+        this._userid = '';
23
+        this._usercode = '';
24
+        this._chenksign = '';
25
+        this._loginip = '';
26
+        this._portno = '';
27
+        this._loginmarc = '';
28
+        this._logintime = '';
29
+        this._logingroups = '';
30
+    }
31
+
32
+    /**
33
+     * 用户ID
34
+     */
35
+    get UserID(): string {
36
+        return this._userid;
37
+    }
38
+
39
+    set UserID(value: string) {
40
+        this._userid = value;
41
+        this.RaisePropertyChanged('UserID');
42
+    }
43
+
44
+    get UserCode(): string {
45
+        return this._usercode;
46
+    }
47
+
48
+    set UserCode(value: string) {
49
+        this._usercode = value;
50
+        this.RaisePropertyChanged('UserCode');
51
+    }
52
+
53
+    /**
54
+     * 签到签退状态
55
+     */
56
+    get ChenkSign(): string {
57
+        return this._chenksign;
58
+    }
59
+
60
+    set ChenkSign(value: string) {
61
+        this._chenksign = value;
62
+        this.RaisePropertyChanged('ChenkSign');
63
+    }
64
+
65
+    /**
66
+     * 登陆IP地址
67
+     */
68
+    get LoginIp(): string {
69
+        return this._loginip;
70
+    }
71
+
72
+    set LoginIp(value: string) {
73
+        this._loginip = value;
74
+        this.RaisePropertyChanged('LoginIp');
75
+    }
76
+
77
+    /**
78
+     * 登陆端口号
79
+     */
80
+    get PortNo(): string {
81
+        return this._portno;
82
+    }
83
+
84
+    set PortNo(value: string) {
85
+        this._portno = value;
86
+        this.RaisePropertyChanged('PortNo');
87
+    }
88
+
89
+    /**
90
+     * 登陆MARC地址
91
+     */
92
+    get LoginMarc(): string {
93
+        return this._loginmarc;
94
+    }
95
+
96
+    set LoginMarc(value: string) {
97
+        this._loginmarc = value;
98
+        this.RaisePropertyChanged('LoginMarc');
99
+    }
100
+
101
+    /**
102
+     * 登陆时间
103
+     */
104
+    get LoginTime(): string {
105
+        return this._logintime;
106
+    }
107
+
108
+    set LoginTime(value: string) {
109
+        this._logintime = value;
110
+        this.RaisePropertyChanged('LoginTime');
111
+    }
112
+
113
+    get LoginGroups(): string {
114
+        return this._logingroups;
115
+    }
116
+
117
+    set LoginGroups(value: string) {
118
+        this._logingroups = value;
119
+        // 原 C# 代码这里有拼写错误,修正为 'LoginGroups'
120
+        this.RaisePropertyChanged('LoginGroups'); 
121
+    }
122
+
123
+    /**
124
+     * 从数组参数更新实体属性
125
+     * @param parms - 包含属性值的数组
126
+     */
127
+    public ChangeFromTable(parms: any[]): void {
128
+        this.UserID = parms[0].toString();
129
+        this.UserCode = parms[1].toString();
130
+        this.ChenkSign = parms[2].toString();
131
+        this.LoginIp = parms[3].toString();
132
+        this.PortNo = parms[4].toString();
133
+        this.LoginMarc = parms[5].toString();
134
+        this.LoginTime = parms[6].toString();
135
+        this.LoginGroups = parms[7].toString();
136
+    }
137
+
138
+    /**
139
+     * 将实体属性转换为字符串数组
140
+     * @returns 包含属性值的字符串数组
141
+     */
142
+    public ChangeToTable(): string[] {
143
+        return [this.UserID, this.UserCode, this.ChenkSign, this.LoginIp, this.PortNo, this.LoginMarc, this.LoginTime, this.LoginGroups];
144
+    }
145
+
146
+    /**
147
+     * 触发属性变更事件
148
+     * @param propertyName - 发生变更的属性名
149
+     */
150
+    public RaisePropertyChanged(propertyName: string): void {
151
+        if (this.PropertyChanged) {
152
+            this.PropertyChanged(this, { propertyName });
153
+        }
154
+    }
155
+}
156
+
157
+export default TT_LoginSign;

+ 274
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_LoginUser.ts View File

@@ -0,0 +1,274 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, args: PropertyChangedEventArgs) => void;
3
+
4
+// 定义 PropertyChangedEventArgs 类
5
+class PropertyChangedEventArgs {
6
+    constructor(public propertyName: string) {}
7
+}
8
+
9
+// 定义 IEntity 接口(这里只是占位,具体实现根据实际情况补充)
10
+interface IEntity {}
11
+
12
+// 定义 INotifyPropertyChanged 接口
13
+interface INotifyPropertyChanged {
14
+    PropertyChanged: PropertyChangedEventHandler | null;
15
+    RaisePropertyChanged(propertyName: string): void;
16
+}
17
+
18
+// 用户信息实体类
19
+class TT_LoginUser implements IEntity, INotifyPropertyChanged {
20
+    private _userid: string;
21
+    private _usercode: string;
22
+    private _username: string;
23
+    private _kinbrid: string;
24
+    private _kinbrno: string;
25
+    private _userDescription: string;
26
+    private _docId: string;
27
+    private _isPiont: string;
28
+    private _isLogin: string;
29
+    private _isAtm: string;
30
+    private _telephone: string;
31
+    private _userComment: string;
32
+    private _mngatmuser: string;
33
+    private _isAcross: string;
34
+    private _authlvldes: string;
35
+    private _ismobile: string;
36
+
37
+    public PropertyChanged: PropertyChangedEventHandler | null = null;
38
+
39
+    constructor() {
40
+        this._userid = '';
41
+        this._usercode = '';
42
+        this._username = '';
43
+        this._kinbrid = '';
44
+        this._kinbrno = '';
45
+        this._userDescription = '';
46
+        this._docId = '';
47
+        this._isPiont = '';
48
+        this._isLogin = '';
49
+        this._isAtm = '';
50
+        this._telephone = '';
51
+        this._userComment = '';
52
+        this._mngatmuser = '';
53
+        this._isAcross = '';
54
+        this._authlvldes = '';
55
+        this._ismobile = '';
56
+    }
57
+
58
+    // 用户ID
59
+    get UserId(): string {
60
+        return this._userid;
61
+    }
62
+    set UserId(value: string) {
63
+        this._userid = value;
64
+        this.RaisePropertyChanged('UserId');
65
+    }
66
+
67
+    // 用户登录账号
68
+    get UserCode(): string {
69
+        return this._usercode;
70
+    }
71
+    set UserCode(value: string) {
72
+        this._usercode = value;
73
+        this.RaisePropertyChanged('UserCode');
74
+    }
75
+
76
+    // 姓名
77
+    get UserName(): string {
78
+        return this._username;
79
+    }
80
+    set UserName(value: string) {
81
+        this._username = value;
82
+        this.RaisePropertyChanged('UserName');
83
+    }
84
+
85
+    // 所属机构
86
+    get KinbrId(): string {
87
+        return this._kinbrid;
88
+    }
89
+    set KinbrId(value: string) {
90
+        this._kinbrid = value;
91
+        this.RaisePropertyChanged('KinbrId');
92
+    }
93
+
94
+    // 机构号
95
+    get KinBrno(): string {
96
+        return this._kinbrno;
97
+    }
98
+    set KinBrno(value: string) {
99
+        this._kinbrno = value;
100
+        this.RaisePropertyChanged('KinBrno');
101
+    }
102
+
103
+    // 用户描述
104
+    get UserDescription(): string {
105
+        return this._userDescription;
106
+    }
107
+    set UserDescription(value: string) {
108
+        this._userDescription = value;
109
+        this.RaisePropertyChanged('UserDescription');
110
+    }
111
+
112
+    // 身份证号
113
+    get DocId(): string {
114
+        return this._docId;
115
+    }
116
+    set DocId(value: string) {
117
+        this._docId = value;
118
+        this.RaisePropertyChanged('DocId');
119
+    }
120
+
121
+    // 是否单客户端
122
+    get IsPiont(): string {
123
+        return this._isPiont;
124
+    }
125
+    set IsPiont(value: string) {
126
+        this._isPiont = value;
127
+        this.RaisePropertyChanged('IsPiont');
128
+    }
129
+
130
+    // 锁定标志
131
+    get IsLogin(): string {
132
+        return this._isLogin;
133
+    }
134
+    set IsLogin(value: string) {
135
+        this._isLogin = value;
136
+        this.RaisePropertyChanged('IsLogin');
137
+    }
138
+
139
+    // 是否ATM柜员
140
+    get IsAtm(): string {
141
+        return this._isAtm;
142
+    }
143
+    set IsAtm(value: string) {
144
+        this._isAtm = value;
145
+        this.RaisePropertyChanged('IsAtm');
146
+    }
147
+
148
+    // 电话号码
149
+    get Telephone(): string {
150
+        return this._telephone;
151
+    }
152
+    set Telephone(value: string) {
153
+        this._telephone = value;
154
+        this.RaisePropertyChanged('Telephone');
155
+    }
156
+
157
+    // 备注
158
+    get UserComment(): string {
159
+        return this._userComment;
160
+    }
161
+    set UserComment(value: string) {
162
+        this._userComment = value;
163
+        this.RaisePropertyChanged('UserComment');
164
+    }
165
+
166
+    // ATM管理柜员
167
+    get Mngatmuser(): string {
168
+        return this._mngatmuser;
169
+    }
170
+    set Mngatmuser(value: string) {
171
+        this._mngatmuser = value;
172
+        this.RaisePropertyChanged('Mngatmuser');
173
+    }
174
+
175
+    // 是否跨终端登录
176
+    get IsAcross(): string {
177
+        return this._isAcross;
178
+    }
179
+    set IsAcross(value: string) {
180
+        this._isAcross = value;
181
+        this.RaisePropertyChanged('IsAcross');
182
+    }
183
+
184
+    // 授权级别
185
+    get AuthLvlDdes(): string {
186
+        return this._authlvldes;
187
+    }
188
+    set AuthLvlDdes(value: string) {
189
+        this._authlvldes = value;
190
+        this.RaisePropertyChanged('AuthLvlDdes');
191
+    }
192
+
193
+    // 是否移动端
194
+    get IsMobile(): string {
195
+        return this._ismobile;
196
+    }
197
+    set IsMobile(value: string) {
198
+        this._ismobile = value;
199
+        this.RaisePropertyChanged('IsMobile');
200
+    }
201
+
202
+    // 转换为数组
203
+    public ChangeToTable(): string[] {
204
+        return [
205
+            this.UserId,
206
+            this.UserCode,
207
+            this.UserName,
208
+            this.KinbrId,
209
+            this.KinBrno,
210
+            this.UserDescription,
211
+            this.DocId,
212
+            this.IsPiont,
213
+            this.IsLogin,
214
+            this.IsAtm,
215
+            this.Telephone,
216
+            this.UserComment,
217
+            this.Mngatmuser,
218
+            this.IsAcross,
219
+            this.AuthLvlDdes,
220
+            this.IsMobile
221
+        ];
222
+    }
223
+
224
+    // 从数组转换
225
+    public ChangeFromTable(parms: any[]): void {
226
+        this.UserId = parms[0].toString();
227
+        this.UserCode = parms[1].toString();
228
+        this.UserName = parms[2].toString();
229
+        this.KinbrId = parms[3].toString();
230
+        this.KinBrno = parms[4].toString();
231
+        this.UserDescription = parms[5].toString();
232
+        this.DocId = parms[6].toString();
233
+        this.IsPiont = parms[7].toString();
234
+        this.IsLogin = parms[8].toString();
235
+        this.IsAtm = parms[9].toString();
236
+        this.Telephone = parms[10].toString();
237
+        this.UserComment = parms[11].toString();
238
+        this.Mngatmuser = parms[12].toString();
239
+        this.IsAcross = parms[13].toString();
240
+        this.AuthLvlDdes = parms[14].toString();
241
+        this.IsMobile = parms[15].toString();
242
+    }
243
+
244
+    // 触发属性变更事件
245
+    public RaisePropertyChanged(propertyName: string): void {
246
+        if (this.PropertyChanged) {
247
+            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
248
+        }
249
+    }
250
+
251
+    // 复制新实例
252
+    public Clone(): TT_LoginUser {
253
+        const instance = new TT_LoginUser();
254
+        instance.UserId = this.UserId;
255
+        instance.UserCode = this.UserCode;
256
+        instance.UserName = this.UserName;
257
+        instance.KinbrId = this.KinbrId;
258
+        instance.KinBrno = this.KinBrno;
259
+        instance.UserDescription = this.UserDescription;
260
+        instance.DocId = this.DocId;
261
+        instance.IsPiont = this.IsPiont;
262
+        instance.IsLogin = this.IsLogin;
263
+        instance.IsAtm = this.IsAtm;
264
+        instance.Telephone = this.Telephone;
265
+        instance.UserComment = this.UserComment;
266
+        instance.Mngatmuser = this.Mngatmuser;
267
+        instance.IsAcross = this.IsAcross;
268
+        instance.AuthLvlDdes = this.AuthLvlDdes;
269
+        instance.IsMobile = this.IsMobile;
270
+        return instance;
271
+    }
272
+}
273
+
274
+export { TT_LoginUser };

+ 208
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_MenuInfo.ts View File

@@ -0,0 +1,208 @@
1
+// 定义 IEntity 接口,由于不清楚具体内容,先设为空
2
+interface IEntity {}
3
+
4
+// 定义 PropertyChangedEventHandler 类型
5
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
6
+
7
+// 定义 INotifyPropertyChanged 接口
8
+interface INotifyPropertyChanged {
9
+    PropertyChanged: PropertyChangedEventHandler[];
10
+    RaisePropertyChanged(propertyName: string): void;
11
+}
12
+
13
+// 定义 TT_MenuInfo 类
14
+class TT_MenuInfo implements IEntity, INotifyPropertyChanged {
15
+    // 事件处理函数数组
16
+    PropertyChanged: PropertyChangedEventHandler[] = [];
17
+
18
+    // 字段
19
+    private _menuid: string = '';
20
+    private _pmenuid: string = '';
21
+    private _menuorder: string = '';
22
+    private _menuname: string = '';
23
+    private _tradeno: string = '';
24
+    private _tradefilename: string = '';
25
+    private _state: string = '';
26
+    private _comments: string = '';
27
+    private _metadata: { [key: string]: string } = {};
28
+
29
+    // 构造函数
30
+    constructor(element?: { attributes: () => { toList: () => { forEach: (callback: (c: { name: { toString: () => string }, value: string }) => void ) => void } } }, pid?: string) {
31
+        if (element && pid) {
32
+            element.attributes().toList().forEach(c => {
33
+                this.SetValue(c.name.toString(), c.value);
34
+            });
35
+            this.PMenuID = pid;
36
+        }
37
+    }
38
+
39
+    // 属性
40
+    get MenuID(): string {
41
+        return this._menuid;
42
+    }
43
+    set MenuID(value: string) {
44
+        if (this._menuid !== value) {
45
+            this._menuid = value;
46
+            this.RaisePropertyChanged('MenuID');
47
+        }
48
+    }
49
+
50
+    get PMenuID(): string {
51
+        return this._pmenuid;
52
+    }
53
+    set PMenuID(value: string) {
54
+        if (this._pmenuid !== value) {
55
+            this._pmenuid = value;
56
+            this.RaisePropertyChanged('PMenuID');
57
+        }
58
+    }
59
+
60
+    get MenuOrder(): string {
61
+        return this._menuorder;
62
+    }
63
+    set MenuOrder(value: string) {
64
+        if (this._menuorder !== value) {
65
+            this._menuorder = value;
66
+            this.RaisePropertyChanged('MenuOrder');
67
+        }
68
+    }
69
+
70
+    get MenuName(): string {
71
+        return this._menuname;
72
+    }
73
+    set MenuName(value: string) {
74
+        if (this._menuname !== value) {
75
+            this._menuname = value;
76
+            this.RaisePropertyChanged('MenuName');
77
+        }
78
+    }
79
+
80
+    get TradeNo(): string {
81
+        return this._tradeno;
82
+    }
83
+    set TradeNo(value: string) {
84
+        if (this._tradeno !== value) {
85
+            this._tradeno = value;
86
+            this.RaisePropertyChanged('TradeNo');
87
+        }
88
+    }
89
+
90
+    get TradeFileName(): string {
91
+        return this._tradefilename;
92
+    }
93
+    set TradeFileName(value: string) {
94
+        if (this._tradefilename !== value) {
95
+            this._tradefilename = value;
96
+            this.RaisePropertyChanged('TradeFileName');
97
+        }
98
+    }
99
+
100
+    get State(): string {
101
+        return this._state;
102
+    }
103
+    set State(value: string) {
104
+        if (this._state !== value) {
105
+            this._state = value;
106
+            this.RaisePropertyChanged('State');
107
+        }
108
+    }
109
+
110
+    get Comments(): string {
111
+        return this._comments;
112
+    }
113
+    set Comments(value: string) {
114
+        if (this._comments !== value) {
115
+            this._comments = value;
116
+            this.RaisePropertyChanged('Comments');
117
+        }
118
+    }
119
+
120
+    get Metadata(): { [key: string]: string } {
121
+        if (!this._metadata) {
122
+            this._metadata = {};
123
+        }
124
+        return this._metadata;
125
+    }
126
+    set Metadata(value: { [key: string]: string }) {
127
+        this._metadata = value;
128
+    }
129
+
130
+    // 扩展方法
131
+    UpdataMetadataValue(key: string, value: string): void {
132
+        this.Metadata[key] = value;
133
+        this.RaisePropertyChanged('Metadata');
134
+    }
135
+
136
+    AddMetadataValue(key: string, value: string): void {
137
+        if (!this.Metadata[key]) {
138
+            this.Metadata[key] = value;
139
+        }
140
+        this.RaisePropertyChanged('Metadata');
141
+    }
142
+
143
+    // 方法
144
+    ChangeFromTable(parms: any[]): void {
145
+        this.MenuID = parms[0].toString();
146
+        this.PMenuID = parms[1].toString();
147
+        this.MenuOrder = parms[2].toString();
148
+        this.MenuName = parms[3].toString();
149
+        this.TradeNo = parms[4].toString();
150
+        this.TradeFileName = parms[5].toString();
151
+        this.State = parms[6].toString();
152
+        this.Comments = parms[7].toString();
153
+        // 假设 Platform.ServiceProxy.CommonFunction.ChangeStrToDic 有对应的 TypeScript 实现
154
+        // 这里先简单模拟
155
+        this.Metadata = JSON.parse(parms[8].toString());
156
+    }
157
+
158
+    ChangeToTable(): string[] {
159
+        // 假设 Platform.ServiceProxy.CommonFunction.ChangeDicToStr 有对应的 TypeScript 实现
160
+        // 这里先简单模拟
161
+        const metadataStr = Object.keys(this.Metadata).length > 0 ? JSON.stringify(this.Metadata) : '';
162
+        return [
163
+            this.MenuID,
164
+            this.PMenuID,
165
+            this.MenuOrder,
166
+            this.MenuName,
167
+            this.TradeNo,
168
+            this.TradeFileName,
169
+            this.State,
170
+            this.Comments,
171
+            metadataStr
172
+        ];
173
+    }
174
+
175
+    private SetValue(name: string, value: string): void {
176
+        const properties = Object.getOwnPropertyNames(this);
177
+        const found = properties.some(prop => {
178
+            if (this.isEqual(prop, name)) {
179
+                (this as any)[prop] = value.trim();
180
+                return true;
181
+            }
182
+            return false;
183
+        });
184
+        if (!found) {
185
+            this.AddMetadataValue(name, value);
186
+        }
187
+    }
188
+
189
+    // 触发属性变更事件
190
+    RaisePropertyChanged(propertyName: string): void {
191
+        this.PropertyChanged.forEach(handler => {
192
+            handler(this, { propertyName });
193
+        });
194
+    }
195
+
196
+    // 字符串比较方法
197
+    private isEqual(str1: string, str2: string): boolean {
198
+        const ConvertStr: { [key: string]: string } = { "name": "MenuName", "menucode": "TradeNo", "action": "TradeFileName" };
199
+        if (str1 === str2) {
200
+            return true;
201
+        } else if (ConvertStr[str2]) {
202
+            return str1 === ConvertStr[str2];
203
+        }
204
+        return false;
205
+    }
206
+}
207
+
208
+export { TT_MenuInfo };

+ 129
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintData.ts View File

@@ -0,0 +1,129 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, event: { propertyName: string }) => void;
3
+
4
+// 定义 IEntity 接口,这里暂时留空,可根据实际情况补充
5
+interface IEntity {}
6
+
7
+// 定义 TT_PrintData 类
8
+class TT_PrintData implements IEntity {
9
+    // 定义 PropertyChanged 事件
10
+    private _propertyChanged: PropertyChangedEventHandler[] = [];
11
+    public get PropertyChanged(): { add: (handler: PropertyChangedEventHandler) => void, remove: (handler: PropertyChangedEventHandler) => void } {
12
+        return {
13
+            add: (handler) => this._propertyChanged.push(handler),
14
+            remove: (handler) => {
15
+                const index = this._propertyChanged.indexOf(handler);
16
+                if (index !== -1) {
17
+                    this._propertyChanged.splice(index, 1);
18
+                }
19
+            }
20
+        };
21
+    }
22
+
23
+    private id: string;
24
+    private tradeNo: string;
25
+    private formId: string;
26
+    private printData: Uint8Array;
27
+    private date: string;
28
+    private businessId: string;
29
+    private description: string;
30
+    private byteLength: string;
31
+    private tellerSerialNo: string;
32
+
33
+    public get Id(): string {
34
+        return this.id;
35
+    }
36
+    public set Id(value: string) {
37
+        this.id = value;
38
+        this.notifyPropertyChanged('Id');
39
+    }
40
+
41
+    public get TradeNo(): string {
42
+        return this.tradeNo;
43
+    }
44
+    public set TradeNo(value: string) {
45
+        this.tradeNo = value;
46
+        this.notifyPropertyChanged('tradeNo');
47
+    }
48
+
49
+    public get FormId(): string {
50
+        return this.formId;
51
+    }
52
+    public set FormId(value: string) {
53
+        this.formId = value;
54
+        this.notifyPropertyChanged('FormId');
55
+    }
56
+
57
+    public get ByteLength(): string {
58
+        return this.byteLength;
59
+    }
60
+    public set ByteLength(value: string) {
61
+        this.byteLength = value;
62
+        this.notifyPropertyChanged('ByteLength');
63
+    }
64
+
65
+    public get PrintData(): Uint8Array {
66
+        return this.printData;
67
+    }
68
+    public set PrintData(value: Uint8Array) {
69
+        this.printData = value;
70
+        this.notifyPropertyChanged('PrintData');
71
+    }
72
+
73
+    public get Date(): string {
74
+        return this.date;
75
+    }
76
+    public set Date(value: string) {
77
+        this.date = value;
78
+        this.notifyPropertyChanged('Date');
79
+    }
80
+
81
+    public get BusinessId(): string {
82
+        return this.businessId;
83
+    }
84
+    public set BusinessId(value: string) {
85
+        this.businessId = value;
86
+        this.notifyPropertyChanged('BusinessId');
87
+    }
88
+
89
+    public get Description(): string {
90
+        return this.description;
91
+    }
92
+    public set Description(value: string) {
93
+        this.description = value;
94
+        this.notifyPropertyChanged('Description');
95
+    }
96
+
97
+    public get TellerSerialNo(): string {
98
+        return this.tellerSerialNo;
99
+    }
100
+    public set TellerSerialNo(value: string) {
101
+        this.tellerSerialNo = value;
102
+        this.notifyPropertyChanged('TellerSerialNo');
103
+    }
104
+
105
+    // 触发属性变更通知
106
+    private notifyPropertyChanged(propertyName: string): void {
107
+        this._propertyChanged.forEach(handler => handler(this, { propertyName }));
108
+    }
109
+
110
+    // 从数组参数中更新对象属性
111
+    public ChangeFromTable(parms: any[]): void {
112
+        this.Id = parms[0].toString();
113
+        this.TradeNo = parms[1].toString();
114
+        this.FormId = parms[2].toString();
115
+        this.byteLength = parms[3].toString();
116
+        // this.PrintData = new Uint8Array(0); // 原注释部分
117
+        this.Date = parms[4].toString();
118
+        this.BusinessId = parms[5].toString();
119
+        this.Description = parms[6].toString();
120
+        this.TellerSerialNo = parms[7].toString();
121
+    }
122
+
123
+    // 将对象属性转换为字符串数组
124
+    public ChangeToTable(): string[] {
125
+        return [this.Id, this.TradeNo, this.FormId, this.byteLength, this.Date, this.BusinessId, this.Description, this.TellerSerialNo];
126
+    }
127
+}
128
+
129
+export { TT_PrintData };

+ 108
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintDataDetail.ts View File

@@ -0,0 +1,108 @@
1
+// 定义 PropertyChangedEventHandler 类型
2
+type PropertyChangedEventHandler = (sender: any, args: PropertyChangedEventArgs) => void;
3
+
4
+// 定义 PropertyChangedEventArgs 类
5
+class PropertyChangedEventArgs {
6
+    constructor(public propertyName: string) {}
7
+}
8
+
9
+// 定义 IEntity 接口(这里由于无具体内容,先留空)
10
+interface IEntity {}
11
+
12
+// 定义 INotifyPropertyChanged 接口
13
+interface INotifyPropertyChanged {
14
+    PropertyChanged: PropertyChangedEventHandler | null;
15
+}
16
+
17
+// 定义 TT_PrintDataDetail 类
18
+class TT_PrintDataDetail implements IEntity, INotifyPropertyChanged {
19
+    public PropertyChanged: PropertyChangedEventHandler | null = null;
20
+
21
+    private id: string = '';
22
+    private formId: string = '';
23
+    private date: string = '';
24
+    private tellerNo: string = '';
25
+    private authTellerNo: string = '';
26
+    private description: string = '';
27
+
28
+    get Id(): string {
29
+        return this.id;
30
+    }
31
+
32
+    set Id(value: string) {
33
+        this.id = value;
34
+        if (this.PropertyChanged) {
35
+            this.PropertyChanged(this, new PropertyChangedEventArgs('Id'));
36
+        }
37
+    }
38
+
39
+    get FormId(): string {
40
+        return this.formId;
41
+    }
42
+
43
+    set FormId(value: string) {
44
+        this.formId = value;
45
+        if (this.PropertyChanged) {
46
+            this.PropertyChanged(this, new PropertyChangedEventArgs('FormId'));
47
+        }
48
+    }
49
+
50
+    get Date(): string {
51
+        return this.date;
52
+    }
53
+
54
+    set Date(value: string) {
55
+        this.date = value;
56
+        if (this.PropertyChanged) {
57
+            this.PropertyChanged(this, new PropertyChangedEventArgs('Date'));
58
+        }
59
+    }
60
+
61
+    get TellerNo(): string {
62
+        return this.tellerNo;
63
+    }
64
+
65
+    set TellerNo(value: string) {
66
+        this.tellerNo = value;
67
+        if (this.PropertyChanged) {
68
+            this.PropertyChanged(this, new PropertyChangedEventArgs('TellerNo'));
69
+        }
70
+    }
71
+
72
+    get AuthTellerNo(): string {
73
+        return this.authTellerNo;
74
+    }
75
+
76
+    set AuthTellerNo(value: string) {
77
+        this.authTellerNo = value;
78
+        if (this.PropertyChanged) {
79
+            this.PropertyChanged(this, new PropertyChangedEventArgs('AuthTellerNo'));
80
+        }
81
+    }
82
+
83
+    get Description(): string {
84
+        return this.description;
85
+    }
86
+
87
+    set Description(value: string) {
88
+        this.description = value;
89
+        if (this.PropertyChanged) {
90
+            this.PropertyChanged(this, new PropertyChangedEventArgs('Description'));
91
+        }
92
+    }
93
+
94
+    public ChangeFromTable(parms: any[]): void {
95
+        this.Id = parms[0].toString();
96
+        this.FormId = parms[1].toString();
97
+        this.Date = parms[2].toString();
98
+        this.TellerNo = parms[3].toString();
99
+        this.AuthTellerNo = parms[4].toString();
100
+        this.Description = parms[5].toString();
101
+    }
102
+
103
+    public ChangeToTable(): string[] {
104
+        return [this.Id, this.FormId, this.Date, this.TellerNo, this.AuthTellerNo, this.Description];
105
+    }
106
+}
107
+
108
+export { TT_PrintDataDetail };

+ 92
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_PrintDataDetail2.ts View File

@@ -0,0 +1,92 @@
1
+// 模拟依赖对象,在实际项目中可能需要根据具体情况实现
2
+class DependencyObject {}
3
+
4
+// 模拟 IEntity 接口,在实际项目中可能需要根据具体情况实现
5
+interface IEntity {}
6
+
7
+// 定义 PropertyChangedEventHandler 类型
8
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
9
+
10
+// 定义 INotifyPropertyChanged 接口
11
+interface INotifyPropertyChanged {
12
+    PropertyChanged: PropertyChangedEventHandler[];
13
+}
14
+
15
+// 定义 TT_PrintDataDetail2 类
16
+class TT_PrintDataDetail2 extends DependencyObject implements IEntity, INotifyPropertyChanged {
17
+    private id: string;
18
+    private count: string;
19
+    private description: string;
20
+    private isreprint: string;
21
+    private formid: string;
22
+
23
+    public PropertyChanged: PropertyChangedEventHandler[] = [];
24
+
25
+    constructor() {
26
+        super();
27
+        this.id = '';
28
+        this.count = '';
29
+        this.description = '';
30
+        this.isreprint = '';
31
+        this.formid = '';
32
+    }
33
+
34
+    get Id(): string {
35
+        return this.id;
36
+    }
37
+
38
+    set Id(value: string) {
39
+        this.id = value;
40
+        this.PropertyChanged.forEach(handler => handler(this, { propertyName: 'Id' }));
41
+    }
42
+
43
+    get Count(): string {
44
+        return this.count;
45
+    }
46
+
47
+    set Count(value: string) {
48
+        this.count = value;
49
+        this.PropertyChanged.forEach(handler => handler(this, { propertyName: 'Count' }));
50
+    }
51
+
52
+    get Description(): string {
53
+        return this.description;
54
+    }
55
+
56
+    set Description(value: string) {
57
+        this.description = value;
58
+        this.PropertyChanged.forEach(handler => handler(this, { propertyName: 'Description' }));
59
+    }
60
+
61
+    get Isreprint(): string {
62
+        return this.isreprint;
63
+    }
64
+
65
+    set Isreprint(value: string) {
66
+        this.isreprint = value;
67
+        this.PropertyChanged.forEach(handler => handler(this, { propertyName: 'Isreprint' }));
68
+    }
69
+
70
+    get FormId(): string {
71
+        return this.formid;
72
+    }
73
+
74
+    set FormId(value: string) {
75
+        this.formid = value;
76
+        this.PropertyChanged.forEach(handler => handler(this, { propertyName: 'FormId' }));
77
+    }
78
+
79
+    public ChangeFromTable(parms: any[]): void {
80
+        this.Id = parms[0].toString();
81
+        this.Count = parms[1].toString();
82
+        this.Description = parms[2].toString();
83
+        this.Isreprint = parms[3].toString();
84
+        this.FormId = parms[4].toString();
85
+    }
86
+
87
+    public ChangeToTable(): string[] {
88
+        return [this.Id, this.Count, this.Description, this.Isreprint, this.FormId];
89
+    }
90
+}
91
+
92
+export { TT_PrintDataDetail2 };

+ 75
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_RoleGroup.ts View File

@@ -0,0 +1,75 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未给出其定义
2
+interface IEntity {}
3
+
4
+/**
5
+ * 角色实体
6
+ */
7
+class TT_RoleGroup implements IEntity {
8
+    /**
9
+     * 角色ID
10
+     */
11
+    GroupId: string;
12
+
13
+    /**
14
+     * 角色编号(显示用)
15
+     */
16
+    GroupCode: string;
17
+
18
+    /**
19
+     * 角色名称
20
+     */
21
+    GroupName: string;
22
+
23
+    /**
24
+     * 角色描述
25
+     */
26
+    GroupRemark: string;
27
+
28
+    /**
29
+     * 副角色标志
30
+     */
31
+    IssysGroup: string;
32
+
33
+    /**
34
+     * 密码修改周期(天)
35
+     */
36
+    Pswcycle: string;
37
+
38
+    /**
39
+     * 备注
40
+     */
41
+    GroupComment: string;
42
+
43
+    constructor() {
44
+        this.GroupId = '';
45
+        this.GroupCode = '';
46
+        this.GroupName = '';
47
+        this.GroupRemark = '';
48
+        this.IssysGroup = '';
49
+        this.Pswcycle = '';
50
+        this.GroupComment = '';
51
+    }
52
+
53
+    /**
54
+     * 将实体属性转换为字符串数组
55
+     */
56
+    ChangeToTable(): string[] {
57
+        return [this.GroupId, this.GroupCode, this.GroupName, this.GroupRemark, this.IssysGroup, this.Pswcycle, this.GroupComment];
58
+    }
59
+
60
+    /**
61
+     * 从对象数组中读取数据并赋值给实体属性
62
+     * @param parms - 包含数据的对象数组
63
+     */
64
+    ChangeFromTable(parms: any[]): void {
65
+        this.GroupId = parms[0].toString();
66
+        this.GroupCode = parms[1].toString();
67
+        this.GroupName = parms[2].toString();
68
+        this.GroupRemark = parms[3].toString();
69
+        this.IssysGroup = parms[4].toString();
70
+        this.Pswcycle = parms[5].toString();
71
+        this.GroupComment = parms[6].toString();
72
+    }
73
+}
74
+
75
+export { TT_RoleGroup };

+ 89
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_RuleInfo.ts View File

@@ -0,0 +1,89 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未给出其定义
2
+interface IEntity {}
3
+
4
+/**
5
+ * 功能信息
6
+ */
7
+class TT_RuleInfo implements IEntity {
8
+    /**
9
+     * 功能ID
10
+     */
11
+    RuleId: string;
12
+
13
+    /**
14
+     * 上级功能ID
15
+     */
16
+    RulePId: string;
17
+
18
+    /**
19
+     * 交易(功能)编号
20
+     */
21
+    RuleNo: string;
22
+
23
+    /**
24
+     * 功能名称
25
+     */
26
+    RuleName: string;
27
+
28
+    /**
29
+     * 功能描述
30
+     */
31
+    RuleRemark: string;
32
+
33
+    /**
34
+     * 功能类型号
35
+     */
36
+    RuleTypeCode: string;
37
+
38
+    /**
39
+     * 功能类型
40
+     */
41
+    RuleType: string;
42
+
43
+    /**
44
+     * 外接系统ID
45
+     */
46
+    ExtId: string;
47
+
48
+    /**
49
+     * 备注
50
+     */
51
+    RuleComment: string;
52
+
53
+    constructor() {
54
+        this.RuleId = "";
55
+        this.RulePId = "";
56
+        this.RuleNo = "";
57
+        this.RuleName = "";
58
+        this.RuleRemark = "";
59
+        this.RuleTypeCode = "";
60
+        this.RuleType = "";
61
+        this.ExtId = "";
62
+        this.RuleComment = "";
63
+    }
64
+
65
+    /**
66
+     * 将对象属性转换为字符串数组
67
+     */
68
+    ChangeToTable(): string[] {
69
+        return [this.RuleId, this.RulePId, this.RuleNo, this.RuleName, this.RuleRemark, this.RuleTypeCode, this.RuleType, this.ExtId, this.RuleComment];
70
+    }
71
+
72
+    /**
73
+     * 从对象数组中读取数据并赋值给对象属性
74
+     * @param parms - 包含数据的对象数组
75
+     */
76
+    ChangeFromTable(parms: any[]): void {
77
+        this.RuleId = parms[0].toString();
78
+        this.RulePId = parms[1].toString();
79
+        this.RuleNo = parms[2].toString();
80
+        this.RuleName = parms[3].toString();
81
+        this.RuleRemark = parms[4].toString();
82
+        this.RuleTypeCode = parms[5].toString();
83
+        this.RuleType = parms[6].toString();
84
+        this.ExtId = parms[7].toString();
85
+        this.RuleComment = parms[8].toString();
86
+    }
87
+}
88
+
89
+export { TT_RuleInfo };

+ 58
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_SysConfig.ts View File

@@ -0,0 +1,58 @@
1
+// 假设 IEntity 是一个空接口,因为原代码未展示其具体内容
2
+interface IEntity {}
3
+
4
+/**
5
+ * 系统配置实体
6
+ */
7
+class TT_SysConfig implements IEntity {
8
+    /**
9
+     * 配置ID
10
+     */
11
+    Configid: string;
12
+    /**
13
+     * 配置组
14
+     */
15
+    Configgroup: string;
16
+    /**
17
+     * 配置名称
18
+     */
19
+    Configname: string;
20
+    /**
21
+     * 配置值
22
+     */
23
+    Configvalue: string;
24
+    /**
25
+     * 备注
26
+     */
27
+    Remark: string;
28
+
29
+    constructor() {
30
+        this.Configid = "";
31
+        this.Configgroup = "";
32
+        this.Configname = "";
33
+        this.Configvalue = "";
34
+        this.Remark = "";
35
+    }
36
+
37
+    /**
38
+     * 将实体属性转换为字符串数组
39
+     * @returns 包含实体属性值的字符串数组
40
+     */
41
+    ChangeToTable(): string[] {
42
+        return [this.Configid, this.Configgroup, this.Configname, this.Configvalue, this.Remark];
43
+    }
44
+
45
+    /**
46
+     * 从对象数组中读取数据并设置到实体属性
47
+     * @param parms 对象数组,包含要设置的数据
48
+     */
49
+    ChangeFromTable(parms: any[]): void {
50
+        this.Configid = parms[0].toString();
51
+        this.Configgroup = parms[1].toString();
52
+        this.Configname = parms[2].toString();
53
+        this.Configvalue = parms[3].toString();
54
+        this.Remark = parms[4].toString();
55
+    }
56
+}
57
+
58
+export { TT_SysConfig };

+ 132
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_TradeForm.ts View File

@@ -0,0 +1,132 @@
1
+// 定义 PropertyChangedEventHandler 类型,模拟 C# 中的事件处理函数类型
2
+type PropertyChangedEventHandler = (sender: any, args: { propertyName: string }) => void;
3
+
4
+// 定义 IEntity 接口,由于原 C# 中未给出具体定义,这里先留空
5
+interface IEntity {}
6
+
7
+// 定义 INotifyPropertyChanged 接口
8
+interface INotifyPropertyChanged {
9
+    PropertyChanged: PropertyChangedEventHandler | null;
10
+}
11
+
12
+// 定义 TT_TradeForm 类
13
+class TT_TradeForm implements IEntity, INotifyPropertyChanged {
14
+    PropertyChanged: PropertyChangedEventHandler | null = null;
15
+
16
+    private id: string = '';
17
+    private formId: string = '';
18
+    private tradeNo: string = '';
19
+    private sort: string = '';
20
+    private authLevel: string = '';
21
+    private printFlag: string = '';
22
+    private t_formid: string = '';
23
+    private t_formname: string = '';
24
+
25
+    get Id(): string {
26
+        return this.id;
27
+    }
28
+
29
+    set Id(value: string) {
30
+        this.id = value;
31
+        if (this.PropertyChanged) {
32
+            this.PropertyChanged(this, { propertyName: 'Id' });
33
+        }
34
+    }
35
+
36
+    get FormId(): string {
37
+        return this.formId;
38
+    }
39
+
40
+    set FormId(value: string) {
41
+        this.formId = value;
42
+        if (this.PropertyChanged) {
43
+            this.PropertyChanged(this, { propertyName: 'FormId' });
44
+        }
45
+    }
46
+
47
+    get TradeNo(): string {
48
+        return this.tradeNo;
49
+    }
50
+
51
+    set TradeNo(value: string) {
52
+        this.tradeNo = value;
53
+        if (this.PropertyChanged) {
54
+            this.PropertyChanged(this, { propertyName: 'TradeNo' });
55
+        }
56
+    }
57
+
58
+    get Sort(): string {
59
+        return this.sort;
60
+    }
61
+
62
+    set Sort(value: string) {
63
+        this.sort = value;
64
+        if (this.PropertyChanged) {
65
+            this.PropertyChanged(this, { propertyName: 'Sort' });
66
+        }
67
+    }
68
+
69
+    get AuthLevel(): string {
70
+        return this.authLevel;
71
+    }
72
+
73
+    set AuthLevel(value: string) {
74
+        this.authLevel = value;
75
+        if (this.PropertyChanged) {
76
+            this.PropertyChanged(this, { propertyName: 'AuthLevel' });
77
+        }
78
+    }
79
+
80
+    /**
81
+     * 业务上的表单编号
82
+     */
83
+    get T_Form_ID(): string {
84
+        return this.t_formid;
85
+    }
86
+
87
+    set T_Form_ID(value: string) {
88
+        this.t_formid = value;
89
+        if (this.PropertyChanged) {
90
+            this.PropertyChanged(this, { propertyName: 'T_Form_ID' });
91
+        }
92
+    }
93
+
94
+    get T_Form_Name(): string {
95
+        return this.t_formname;
96
+    }
97
+
98
+    set T_Form_Name(value: string) {
99
+        this.t_formname = value;
100
+        if (this.PropertyChanged) {
101
+            this.PropertyChanged(this, { propertyName: 'T_Form_Name' });
102
+        }
103
+    }
104
+
105
+    get PrintFlag(): string {
106
+        return this.printFlag;
107
+    }
108
+
109
+    set PrintFlag(value: string) {
110
+        this.printFlag = value;
111
+        if (this.PropertyChanged) {
112
+            this.PropertyChanged(this, { propertyName: 'PrintFlag' });
113
+        }
114
+    }
115
+
116
+    ChangeFromTable(parms: any[]): void {
117
+        this.Id = parms[0].toString();
118
+        this.FormId = parms[1].toString();
119
+        this.TradeNo = parms[2].toString();
120
+        this.Sort = parms[3].toString();
121
+        this.AuthLevel = parms[4].toString();
122
+        this.PrintFlag = parms[5].toString();
123
+        this.T_Form_ID = parms[6].toString();
124
+        this.T_Form_Name = parms[7].toString();
125
+    }
126
+
127
+    ChangeToTable(): string[] {
128
+        return [this.Id, this.FormId, this.TradeNo, this.Sort, this.AuthLevel, this.PrintFlag, this.T_Form_ID, this.T_Form_Name];
129
+    }
130
+}
131
+
132
+export { TT_TradeForm };

+ 6
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserInterface.ts View File

@@ -0,0 +1,6 @@
1
+/**
2
+ * 用户与外接用户关系
3
+ */
4
+export class TT_UserInterface {
5
+    // 类体为空,对应 C# 中无成员的类
6
+}

+ 5
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserPswverify.ts View File

@@ -0,0 +1,5 @@
1
+// 由于 TypeScript 没有像 C# 那样的命名空间概念,这里使用模块来模拟
2
+// 若在项目中使用,可按需调整模块导出方式
3
+export class TT_UserPswverify {
4
+    // 类体为空,对应 C# 里的空类
5
+}

+ 6
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/TradeBusinessEntitys/TT_UserRole.ts View File

@@ -0,0 +1,6 @@
1
+/**
2
+ * 用户与角色关系实体
3
+ */
4
+export class TT_UserRole {
5
+    // 这里原 C# 类无属性和方法,若后续补充可在此添加
6
+}

+ 113
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/AuthHandle.ts View File

@@ -0,0 +1,113 @@
1
+// 模拟导入相关模块,需要根据实际情况调整
2
+import { RestClient } from './RestClient'; // 假设 RestClient 定义在此路径
3
+import { ServiceSettings } from './ServiceSettings'; // 假设 ServiceSettings 定义在此路径
4
+import { LoginUserInfo } from './LoginUserInfo'; // 假设 LoginUserInfo 定义在此路径
5
+import { GetTokenReq, TokenResult, ElementInfoResult, ApplyInfoReq, RmAuthResult, FlawTradeListResult, AuthHistoryInfoResult, FlawInfoReq } from './AuthEntity'; // 假设这些实体定义在此路径
6
+import { RSAUtil } from './RSAUtil'; // 假设 RSAUtil 定义在此路径
7
+import { PlatformLogger } from './PlatformLogger'; // 假设 PlatformLogger 定义在此路径
8
+
9
+export class AuthHandle {
10
+    private static restClient: RestClient = new RestClient(ServiceSettings.AuthServiceUri);
11
+    private static authSystemName: string = ServiceSettings.AuthSystemName;
12
+    private static authSystemSecret: string = ServiceSettings.AuthSystemSecret;
13
+    private static tellerNo: string = LoginUserInfo.TellerNo.trim();
14
+    private static tellerName: string = LoginUserInfo.TellerName.trim();
15
+    private static threadTimer: NodeJS.Timer | null = null;
16
+
17
+    private static authToken: string | null = null;
18
+
19
+    public static get AuthToken(): string {
20
+        if (this.authToken === null) {
21
+            this.authToken = this.GetToken();
22
+            this.threadTimer = setInterval(() => this.TimerUp(null), 300000);
23
+        }
24
+        return this.authToken;
25
+    }
26
+
27
+    private static TimerUp(value: any): void {
28
+        try {
29
+            this.authToken = this.GetToken();
30
+        } catch (e) {
31
+            if (e instanceof Error) {
32
+                PlatformLogger.TradeErrorInfo('GetToken Exception', e);
33
+            }
34
+        }
35
+    }
36
+
37
+    private static GetToken(): string {
38
+        const req: GetTokenReq = new GetTokenReq();
39
+        req.sysName = this.authSystemName;
40
+        req.secret = new RSAUtil(this.GetPublicKey()).Encrypt(this.authSystemSecret);
41
+        const result: TokenResult = this.restClient.Post<TokenResult>("auth/getToken", req);
42
+        return result.accessToken;
43
+    }
44
+
45
+    private static GetPublicKey(): string {
46
+        const para: { [key: string]: string } = {};
47
+        para["sysName"] = this.authSystemName;
48
+        return this.restClient.Get<string>("auth/getPublicKey", para);
49
+    }
50
+
51
+    public static GetRmAuthElementByMenu(menuCode: string, menuNo: string = "0"): ElementInfoResult {
52
+        const para: { [key: string]: string } = {};
53
+        para["menuCode"] = menuCode;
54
+        para["menuNo"] = menuNo;
55
+        return this.restClient.Get<ElementInfoResult>("client/getRmAuthElementByMenu", para, this.AuthToken);
56
+    }
57
+
58
+    public static ApplyRmAuth(applyInfoReq: ApplyInfoReq): string {
59
+        return this.restClient.Post<string>("client/applyRmAuth", applyInfoReq, this.AuthToken);
60
+    }
61
+
62
+    public static GetRmAuthResultByRecord(rmAuthRecord: string): RmAuthResult {
63
+        const para: { [key: string]: string } = {};
64
+        para["rmAuthRecord"] = rmAuthRecord;
65
+        return this.restClient.Get<RmAuthResult>("client/getRmAuthResultByRecord", para, this.AuthToken);
66
+    }
67
+
68
+    public static UndoRmAuth(rmAuthRecord: string): string {
69
+        const para: { [key: string]: string } = {};
70
+        para["rmAuthRecord"] = rmAuthRecord;
71
+        return this.restClient.Get<string>("client/undoRmAuth", para, this.AuthToken);
72
+    }
73
+
74
+    public static UploadFile(fileName: string, fileByte: Uint8Array): string {
75
+        let resultUploadeFile = "";
76
+        try {
77
+            const startime = new Date().toISOString().replace(/[^0-9]/g, '');
78
+            PlatformLogger.SystemInfo(`--------------------------start--${startime}::${fileName}------------------------`);
79
+            resultUploadeFile = this.restClient.UploadFile<string>("file/upload", fileName, fileByte, this.AuthToken);
80
+        } catch (e) {
81
+            // 原代码未处理异常,这里保持原样
82
+        }
83
+        const endtime = new Date().toISOString().replace(/[^0-9]/g, '');
84
+        PlatformLogger.SystemInfo(`-----------------------end-----${endtime}::${resultUploadeFile}------------------------`);
85
+        return resultUploadeFile;
86
+    }
87
+
88
+    public static UploadFileWithoutParams(): string {
89
+        // 由于 Node.js 中文件操作和浏览器不同,这里只是模拟
90
+        // 实际使用时需要正确实现文件读取逻辑
91
+        // 以下代码仅为示例,无法直接运行
92
+        // const filePath = "D:/pictrue/oYYBAFsfnJ-AI-bzAAAhtqb3L2s004.jpg";
93
+        // const fileBuffer = fs.readFileSync(filePath);
94
+        // return this.UploadFile("oYYBAFsfnJ-AI-bzAAAhtqb3L2s004.jpg", new Uint8Array(fileBuffer));
95
+        throw new Error('需要实现文件读取逻辑');
96
+    }
97
+
98
+    public static GetFlawTradeList(): FlawTradeListResult[] {
99
+        const para: { [key: string]: string } = {};
100
+        para["userCode"] = this.tellerNo;
101
+        return this.restClient.Get<FlawTradeListResult[]>("record/getFlawTradeList", para, this.AuthToken);
102
+    }
103
+
104
+    public static GetHistoryInfo(recordCode: string): AuthHistoryInfoResult {
105
+        const para: { [key: string]: string } = {};
106
+        para["recordCode"] = recordCode;
107
+        return this.restClient.Get<AuthHistoryInfoResult>("/client/getHistoryInfo", para, this.AuthToken);
108
+    }
109
+
110
+    public static AdditionalRmauthInfo(flawInfoReq: FlawInfoReq): string {
111
+        return this.restClient.Post<string>("record/additionalRmauthInfo", flawInfoReq, this.AuthToken);
112
+    }
113
+}

+ 40
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/ApplyInfoReq.ts View File

@@ -0,0 +1,40 @@
1
+// 假设 CustomImageInfo 是一个自定义类型,这里先使用 any 代替,你需要根据实际情况替换
2
+type CustomImageInfo = any;
3
+
4
+export class ApplyInfoReq {
5
+    baseId: string;
6
+    applyUserCode: string;
7
+    applyUserName: string;
8
+    applyBranchCode: string;
9
+    applyBranchName: string;
10
+    remarksInfo: string;
11
+    uisSerialID: string;
12
+    imageInfoList: CustomImageInfo[];
13
+
14
+    private Lvl: string = '';
15
+
16
+    constructor() {
17
+        this.baseId = '';
18
+        this.applyUserCode = '';
19
+        this.applyUserName = '';
20
+        this.applyBranchCode = '';
21
+        this.applyBranchName = '';
22
+        this.remarksInfo = '';
23
+        this.uisSerialID = '';
24
+        this.imageInfoList = [];
25
+    }
26
+
27
+    get applyLevel(): string {
28
+        return this.Lvl;
29
+    }
30
+
31
+    set applyLevel(value: string) {
32
+        if (value.includes('1')) {
33
+            this.Lvl = '1';
34
+        } else if (value.includes('2')) {
35
+            this.Lvl = '2';
36
+        } else {
37
+            this.Lvl = '3';
38
+        }
39
+    }
40
+}

+ 91
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/AuthHistoryInfoResult.ts View File

@@ -0,0 +1,91 @@
1
+// 定义 ImageListItem 接口
2
+export interface ImageListItem {
3
+    /**
4
+     * 图片地址
5
+     */
6
+    imageUrl: string;
7
+    /**
8
+     * 图片顺序号
9
+     */
10
+    imageRemark: string;
11
+}
12
+
13
+// 定义 ImageResultListItem 接口
14
+export interface ImageResultListItem {
15
+    /**
16
+     * 图片类型:Trade交易、Teller柜员、Client客户、Voucher凭证、Flaw瑕疵
17
+     */
18
+    imageRemark: string;
19
+    /**
20
+     * 图片列表(同一类型)
21
+     */
22
+    imageList: ImageListItem[];
23
+}
24
+
25
+// 定义 AuthHistoryInfoResult 接口
26
+export interface AuthHistoryInfoResult {
27
+    /**
28
+     * 交易编号
29
+     */
30
+    tradeId: string;
31
+    /**
32
+     * 授权记录编号
33
+     */
34
+    recordCode: string;
35
+    /**
36
+     * 授权申请时间
37
+     */
38
+    recordApplyTime: string;
39
+    /**
40
+     * 申请用户编号
41
+     */
42
+    applyUserCode: string;
43
+    /**
44
+     * 申请用户姓名
45
+     */
46
+    applyUserName: string;
47
+    /**
48
+     * 申请机构编号
49
+     */
50
+    applyBranchCode: string;
51
+    /**
52
+     * 申请机构名称
53
+     */
54
+    applyBranchName: string;
55
+    /**
56
+     * 授权级别
57
+     */
58
+    applyLevel: string;
59
+    /**
60
+     * 授权名称
61
+     */
62
+    baseName: string;
63
+    /**
64
+     * 菜单编号
65
+     */
66
+    menuCode: string;
67
+    /**
68
+     * 详情描述
69
+     */
70
+    baseRemark: string;
71
+    /**
72
+     * 授权要素列表
73
+     */
74
+    elementList: string[];
75
+    /**
76
+     * 图片列表(只有url)
77
+     */
78
+    imageUrlList: string[];
79
+    /**
80
+     * 授权图片列表
81
+     */
82
+    imageResultList: ImageResultListItem[];
83
+    /**
84
+     * 是否通过
85
+     */
86
+    isPass: string;
87
+    /**
88
+     * 通过原因
89
+     */
90
+    reason: string;
91
+}

+ 11
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/CustomImageInfo.ts View File

@@ -0,0 +1,11 @@
1
+// 定义 CustomImageInfo 接口
2
+interface CustomImageInfo {
3
+    // 图片的 URL
4
+    imageUrl: string;
5
+    /**
6
+     * 值只允许Client、Teller、Voucher
7
+     */
8
+    imageRemark: 'Client' | 'Teller' | 'Voucher';
9
+}
10
+
11
+export default CustomImageInfo;

+ 10
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/ElementInfoResult.ts View File

@@ -0,0 +1,10 @@
1
+// 定义 ElementInfoResult 接口,在 TypeScript 里常用接口来模拟 C# 类的数据结构
2
+export interface ElementInfoResult {
3
+    baseId: string;
4
+    baseName: string;
5
+    menuCode: string;
6
+    menuNo: string;
7
+    baseRemark: string;
8
+    sysName: string;
9
+    elementList: string[];
10
+}

+ 21
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/FlawInfoReq.ts View File

@@ -0,0 +1,21 @@
1
+// 定义 FlawInfoReq 类型,对应 C# 中的类
2
+type FlawInfoReq = {
3
+    /**
4
+     * 授权编号
5
+     */
6
+    recordCode: string;
7
+    /**
8
+     * 柜员号
9
+     */
10
+    userCode: string;
11
+    /**
12
+     * 柜员姓名
13
+     */
14
+    userName: string;
15
+    /**
16
+     * 补录图片列表
17
+     */
18
+    imageUrlList: string[];
19
+};
20
+
21
+export default FlawInfoReq;

+ 85
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/FlawTradeListResult.ts View File

@@ -0,0 +1,85 @@
1
+// 定义 FlawTradeListResult 接口,对应 C# 中的类
2
+interface FlawTradeListResult {
3
+    /**
4
+     * 授权编号
5
+     */
6
+    recordCode: string;
7
+    /**
8
+     * 申请日期
9
+     */
10
+    recordApplyDate: string;
11
+    /**
12
+     * 申请时间
13
+     */
14
+    recordApplyTimes: string;
15
+    /**
16
+     * 申请用户编号
17
+     */
18
+    applyUserCode: string;
19
+    /**
20
+     * 申请用户名称
21
+     */
22
+    applyUserName: string;
23
+    /**
24
+     * 授权柜员编号
25
+     */
26
+    authUserCode: string;
27
+    /**
28
+     * 授权柜员名称
29
+     */
30
+    authUserName: string;
31
+    /**
32
+     * 授权通过时间
33
+     */
34
+    recordProcessingTime: string;
35
+    /**
36
+     * 授权等级
37
+     */
38
+    recordAuthLevel: string;
39
+    /**
40
+     * 授权状态
41
+     */
42
+    authState: string;
43
+    /**
44
+     * 申请机构编号
45
+     */
46
+    applyBranchCode: string;
47
+    /**
48
+     * 申请机构名称
49
+     */
50
+    applyBranchName: string;
51
+    /**
52
+     * 授权编号
53
+     */
54
+    baseId: string;
55
+    /**
56
+     * 拒绝原因
57
+     */
58
+    refuseReason: string;
59
+    /**
60
+     * 记录更新时间
61
+     */
62
+    recordUpdateTime: string;
63
+    /**
64
+     * 授权名称
65
+     */
66
+    baseName: string;
67
+    /**
68
+     * 菜单编号
69
+     */
70
+    menuCode: string;
71
+    /**
72
+     * 备注
73
+     */
74
+    baseRemark: string;
75
+    /**
76
+     * 顶级机构Id
77
+     */
78
+    branchTopId: string;
79
+    /**
80
+     * 记录表更新时间
81
+     */
82
+    baseUpdateTime: string;
83
+}
84
+
85
+export default FlawTradeListResult;

+ 18
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/GetTokenReq.ts View File

@@ -0,0 +1,18 @@
1
+// 这里模拟命名空间,在 TypeScript 里可以用模块来替代
2
+// 定义一个模块来模拟 C# 的命名空间
3
+namespace TellerSystem.ServiceProxy.Ext.WebAPI.Auth.Entity {
4
+    export class GetTokenReq {
5
+        // 定义属性
6
+        sysName: string;
7
+        secret: string;
8
+
9
+        // 构造函数,方便初始化对象
10
+        constructor(sysName: string = '', secret: string = '') {
11
+            this.sysName = sysName;
12
+            this.secret = secret;
13
+        }
14
+    }
15
+}
16
+
17
+// 如果需要在外部使用这个类,可以这样导出
18
+export default TellerSystem.ServiceProxy.Ext.WebAPI.Auth.Entity.GetTokenReq;

+ 19
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/Result.ts View File

@@ -0,0 +1,19 @@
1
+// 定义泛型类 Result,与 C# 中的类结构对应
2
+class Result<T> {
3
+    // 错误码,类型为 number
4
+    errcode: number;
5
+    // 错误信息,类型为 string
6
+    errmsg: string;
7
+    // 数据,类型为泛型 T
8
+    data: T;
9
+
10
+    // 构造函数,用于初始化类的属性
11
+    constructor(errcode: number, errmsg: string, data: T) {
12
+        this.errcode = errcode;
13
+        this.errmsg = errmsg;
14
+        this.data = data;
15
+    }
16
+}
17
+
18
+// 导出 Result 类,方便其他文件使用
19
+export { Result };

+ 47
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/RmAuthResult.ts View File

@@ -0,0 +1,47 @@
1
+// 定义 RmAuthResult 类型
2
+export type RmAuthResult = {
3
+    /**
4
+     * 记录信息
5
+     */
6
+    record: string;
7
+    /**
8
+     * 0已申请、1排队中、2已分配、3处理中、4授权通过、5授权不通过、6接受超时、7已撤销
9
+     */
10
+    state: string;
11
+    /**
12
+     * 等待号码
13
+     */
14
+    waitNumber: string;
15
+    /**
16
+     * 授权中心已登录授权柜员数量
17
+     */
18
+    authUserNumber: string;
19
+    /**
20
+     * 申请用户代码
21
+     */
22
+    applyUserCode: string;
23
+    /**
24
+     * 申请用户名称
25
+     */
26
+    applyUserName: string;
27
+    /**
28
+     * 申请机构代码
29
+     */
30
+    applyBranchCode: string;
31
+    /**
32
+     * 申请机构名称
33
+     */
34
+    applyBranchName: string;
35
+    /**
36
+     * 拒绝原因
37
+     */
38
+    refuseReason: string;
39
+    /**
40
+     * 授权用户代码
41
+     */
42
+    authUserCode: string;
43
+    /**
44
+     * 授权用户名称
45
+     */
46
+    authUserName: string;
47
+};

+ 15
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/Auth/Entity/TokenResult.ts View File

@@ -0,0 +1,15 @@
1
+// 此文件对应原 C# 的 TokenResult.cs,定义了 Token 结果的数据结构
2
+
3
+/**
4
+ * 表示令牌结果的接口,包含访问令牌和刷新令牌
5
+ */
6
+export interface TokenResult {
7
+    /**
8
+     * 访问令牌,用于访问受保护的资源
9
+     */
10
+    accessToken: string;
11
+    /**
12
+     * 刷新令牌,用于在访问令牌过期时获取新的访问令牌
13
+     */
14
+    refreshToken: string;
15
+}

+ 29
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/RSAUtil.ts View File

@@ -0,0 +1,29 @@
1
+import crypto from 'crypto';
2
+
3
+export class RSAUtil {
4
+    private publicKeyRsaProvider: crypto.KeyObject;
5
+
6
+    constructor(publicKey: string) {
7
+        this.publicKeyRsaProvider = this.createRsaProviderFromPublicKey(publicKey);
8
+    }
9
+
10
+    private createRsaProviderFromPublicKey(publicKeyString: string): crypto.KeyObject {
11
+        const publicKeyBuffer = Buffer.from(publicKeyString, 'base64');
12
+        return crypto.createPublicKey({
13
+            key: publicKeyBuffer,
14
+            format: 'der',
15
+            type: 'spki'
16
+        });
17
+    }
18
+
19
+    public encrypt(text: string): string {
20
+        const encrypted = crypto.publicEncrypt(
21
+            {
22
+                key: this.publicKeyRsaProvider,
23
+                padding: crypto.constants.RSA_PKCS1_PADDING
24
+            },
25
+            Buffer.from(text, 'utf8')
26
+        );
27
+        return encrypted.toString('base64');
28
+    }
29
+}

+ 127
- 0
ant-design-pro-vue3/src/views/front/develop/ServiceProxy.Ext/WebAPI/RestClient.ts View File

@@ -0,0 +1,127 @@
1
+import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+
3
+// 假设 Result 类型,需根据实际情况调整
4
+interface Result<T> {
5
+    errcode: number;
6
+    errmsg: string;
7
+    data: T;
8
+}
9
+
10
+export class RestClient {
11
+    public BaseUri: string;
12
+
13
+    constructor(baseUri: string) {
14
+        this.BaseUri = baseUri;
15
+    }
16
+
17
+    // Get 请求,带泛型
18
+    public async Get<T>(uri: string, para?: { [key: string]: string }, token?: string): Promise<T> {
19
+        let url = this.buildUrl(uri, para);
20
+        let json = await this.getRequest(url, token);
21
+        return this.ResultHandle<T>(json);
22
+    }
23
+
24
+    // 基础 Get 请求
25
+    private async getRequest(uri: string, token?: string): Promise<string> {
26
+        let serviceUrl = `${this.BaseUri}/${uri}`;
27
+        let config: AxiosRequestConfig = {
28
+            headers: {}
29
+        };
30
+
31
+        if (token) {
32
+            config.headers['Authorization'] = token;
33
+        }
34
+
35
+        try {
36
+            let response: AxiosResponse = await axios.get(serviceUrl, config);
37
+            return response.data;
38
+        } catch (error) {
39
+            throw error;
40
+        }
41
+    }
42
+
43
+    // Post 请求,带泛型
44
+    public async Post<T>(uri: string, obj: any, token?: string): Promise<T> {
45
+        let data = JSON.stringify(obj);
46
+        let json = await this.postRequest(uri, data, token);
47
+        return this.ResultHandle<T>(json);
48
+    }
49
+
50
+    // 基础 Post 请求
51
+    private async postRequest(uri: string, data: string, token?: string): Promise<string> {
52
+        let serviceUrl = `${this.BaseUri}/${uri}`;
53
+        let config: AxiosRequestConfig = {
54
+            headers: {
55
+                'Content-Type': 'application/json',
56
+                'Accept': '*/*'
57
+            }
58
+        };
59
+
60
+        if (token) {
61
+            config.headers['Authorization'] = token;
62
+        }
63
+
64
+        try {
65
+            let response: AxiosResponse = await axios.post(serviceUrl, data, config);
66
+            return response.data;
67
+        } catch (error) {
68
+            throw error;
69
+        }
70
+    }
71
+
72
+    // 文件上传,带泛型
73
+    public async UploadFile<T>(uri: string, fileName: string, fileByte: Uint8Array, token?: string): Promise<T> {
74
+        let json = await this.uploadFileRequest(uri, fileName, fileByte, token);
75
+        return this.ResultHandle<T>(json);
76
+    }
77
+
78
+    // 基础文件上传请求
79
+    private async uploadFileRequest(uri: string, fileName: string, fileByte: Uint8Array, token?: string): Promise<string> {
80
+        // 假设 ServiceSettings 存在,这里简单模拟
81
+        let serviceUrl = 'https://example.com/auth-file'; 
82
+        let formData = new FormData();
83
+        let blob = new Blob([fileByte], { type: 'application/octet-stream' });
84
+        formData.append('file', blob, fileName);
85
+
86
+        let config: AxiosRequestConfig = {
87
+            headers: {
88
+                'Content-Type': `multipart/form-data; boundary=${formData.getBoundary()}`
89
+            }
90
+        };
91
+
92
+        if (token) {
93
+            config.headers['Authorization'] = token;
94
+        }
95
+
96
+        try {
97
+            let response: AxiosResponse = await axios.post(serviceUrl, formData, config);
98
+            return response.data;
99
+        } catch (error) {
100
+            if (axios.isAxiosError(error) && error.code === 'ETIMEDOUT') {
101
+                throw new Error(error.message);
102
+            }
103
+            throw error;
104
+        }
105
+    }
106
+
107
+    // 结果处理
108
+    public ResultHandle<T>(returnJson: string): T {
109
+        let result: Result<T> = JSON.parse(returnJson);
110
+        if (result && result.errcode !== 0) {
111
+            throw new Error(result.errmsg);
112
+        } else if (!result) {
113
+            throw new Error('网络连接超时,稍后重试');
114
+        }
115
+        return result.data;
116
+    }
117
+
118
+    // 构建 URL
119
+    private buildUrl(uri: string, para?: { [key: string]: string }): string {
120
+        let url = uri;
121
+        if (para) {
122
+            let params = Object.entries(para).map(([key, value]) => `${key}=${value}`).join('&');
123
+            url += `?${params}`;
124
+        }
125
+        return url;
126
+    }
127
+}

Loading…
Cancel
Save