@cpzxrobot/sdk 1.2.62 → 1.2.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/construction_gateway.ts +1 -1
- package/contract_gateway.readme.md +193 -0
- package/contract_gateway.ts +22 -0
- package/dist/construction_gateway.js +1 -1
- package/dist/contract_gateway.js +10 -0
- package/dist/index.js +2 -0
- package/dist/project_gateway.js +13 -2
- package/dist/system_gateway.js +20 -0
- package/index.ts +2 -1
- package/package.json +1 -1
- package/project_gateway.readme.md +65 -34
- package/project_gateway.ts +29 -2
- package/readme.md +1 -138
- package/system_gateway.ts +21 -0
- package/types.d.ts +2 -0
package/construction_gateway.ts
CHANGED
|
@@ -19,7 +19,7 @@ export class ConstructionGateway extends Object {
|
|
|
19
19
|
groupId: number;
|
|
20
20
|
}) {
|
|
21
21
|
return this.context.ready.then((axios) => {
|
|
22
|
-
return axios.post(`/api/v2/coremde-sale/construction/
|
|
22
|
+
return axios.post(`/api/v2/coremde-sale/construction/create`, args);
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# ContractGateway 类文档
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
ContractGateway 是合同管理系统的核心网关类,提供了与合同相关的各种API接口封装。
|
|
5
|
+
|
|
6
|
+
## 主要功能
|
|
7
|
+
|
|
8
|
+
### 基础合同操作
|
|
9
|
+
- `list()`: 获取合同列表
|
|
10
|
+
- `get()`: 获取单个合同详情
|
|
11
|
+
- `add()`: 创建新合同
|
|
12
|
+
- `export()`: 导出合同
|
|
13
|
+
- `approval()`: 合同审批
|
|
14
|
+
- `restart()`: 重新提交合同
|
|
15
|
+
- `types()`: 获取合同类型
|
|
16
|
+
- `confirm()`: 确认合同细节
|
|
17
|
+
|
|
18
|
+
### 子功能模块
|
|
19
|
+
- `project`: 项目合同相关操作
|
|
20
|
+
- `addContract()`: 添加项目合同
|
|
21
|
+
- `addPayment()`: 添加项目回款
|
|
22
|
+
- `listPayments()`: 获取项目回款列表
|
|
23
|
+
- `product`: 产品合同相关操作
|
|
24
|
+
- `addContract()`: 添加产品合同
|
|
25
|
+
- `addPayment()`: 添加产品回款
|
|
26
|
+
- `listPayments()`: 获取产品回款列表
|
|
27
|
+
|
|
28
|
+
## 详细接口说明
|
|
29
|
+
|
|
30
|
+
### 合同基础操作
|
|
31
|
+
```javascript
|
|
32
|
+
// 获取合同列表
|
|
33
|
+
cpzxrobot().contract.list({
|
|
34
|
+
factoryId: number,
|
|
35
|
+
page?: number,
|
|
36
|
+
size?: number
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// 获取合同详情
|
|
40
|
+
cpzxrobot().contract.get(contractId)
|
|
41
|
+
|
|
42
|
+
// 添加合同
|
|
43
|
+
cpzxrobot().contract.add({
|
|
44
|
+
projectId: number,
|
|
45
|
+
contractType: number,
|
|
46
|
+
amount: number,
|
|
47
|
+
startDate: string, // YYYY-MM-DD
|
|
48
|
+
endDate: string, // YYYY-MM-DD
|
|
49
|
+
content: string
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
// 导出合同
|
|
53
|
+
cpzxrobot().contract.export({
|
|
54
|
+
contractId: number,
|
|
55
|
+
fileName?: string
|
|
56
|
+
})
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 合同分组接口
|
|
60
|
+
```javascript
|
|
61
|
+
// 项目相关合同接口
|
|
62
|
+
cpzxrobot().contract.project = {
|
|
63
|
+
// 添加项目合同 (替代原addForProject)
|
|
64
|
+
addContract: (args: any) => Promise<any>
|
|
65
|
+
|
|
66
|
+
// 添加项目回款信息
|
|
67
|
+
addPayment: (args: {
|
|
68
|
+
createTime: string;
|
|
69
|
+
createUserId: number;
|
|
70
|
+
updateTime: string;
|
|
71
|
+
updateUserId: number;
|
|
72
|
+
companyId: number;
|
|
73
|
+
contractId: number;
|
|
74
|
+
receivedPayments: number;
|
|
75
|
+
receivedPerson: string;
|
|
76
|
+
receiveDate: string;
|
|
77
|
+
remark: string;
|
|
78
|
+
}) => Promise<any>
|
|
79
|
+
|
|
80
|
+
// 查看项目回款记录
|
|
81
|
+
listPayments: (id: number) => Promise<any>
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// 产品相关合同接口
|
|
85
|
+
cpzxrobot().contract.product = {
|
|
86
|
+
// 添加产品合同 (替代原addForProduct)
|
|
87
|
+
addContract: (args: any) => Promise<any>
|
|
88
|
+
|
|
89
|
+
// 添加产品回款信息
|
|
90
|
+
addPayment: (args: {
|
|
91
|
+
createTime: string;
|
|
92
|
+
createUserId: number;
|
|
93
|
+
updateTime: string;
|
|
94
|
+
updateUserId: number;
|
|
95
|
+
companyId: number;
|
|
96
|
+
contractId: number;
|
|
97
|
+
receivedPayments: number;
|
|
98
|
+
receivedPerson: string;
|
|
99
|
+
receiveDate: string;
|
|
100
|
+
remark: string;
|
|
101
|
+
}) => Promise<any>
|
|
102
|
+
|
|
103
|
+
// 查看产品回款记录
|
|
104
|
+
listPayments: (id: number) => Promise<any>
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 合同审批流程
|
|
109
|
+
```javascript
|
|
110
|
+
// 提交合同审批
|
|
111
|
+
cpzxrobot().contract.approval({
|
|
112
|
+
contractId: number,
|
|
113
|
+
opinion: string
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
// 重新提交审批
|
|
117
|
+
cpzxrobot().contract.restart({
|
|
118
|
+
contractId: number,
|
|
119
|
+
reason: string
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
// 获取合同类型列表
|
|
123
|
+
cpzxrobot().contract.types(factoryId)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 合同确认接口
|
|
127
|
+
```javascript
|
|
128
|
+
/**
|
|
129
|
+
* 商务部确认合同细节
|
|
130
|
+
* @param args 合同确认参数
|
|
131
|
+
* @returns Promise
|
|
132
|
+
*/
|
|
133
|
+
confirm(args: {
|
|
134
|
+
contractAmount: number;
|
|
135
|
+
contractCost: number;
|
|
136
|
+
contractGrossProfit: number;
|
|
137
|
+
engineeringId: number;
|
|
138
|
+
notes: string;
|
|
139
|
+
projectId: number;
|
|
140
|
+
projectStageRecordId: number;
|
|
141
|
+
projectStageId: number;
|
|
142
|
+
groupId: number;
|
|
143
|
+
projectQuotationDetailIds: number[];
|
|
144
|
+
}) {
|
|
145
|
+
return this.context.ready.then((axios) => {
|
|
146
|
+
return axios.post(`/api/v2/coremde-sale/contract/confirm`, args);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## 使用示例
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
// 初始化
|
|
155
|
+
const contractGateway = new ContractGateway(context);
|
|
156
|
+
|
|
157
|
+
// 获取合同列表
|
|
158
|
+
contractGateway.list({
|
|
159
|
+
pageNo: 1,
|
|
160
|
+
pageSize: 10,
|
|
161
|
+
name: '测试合同',
|
|
162
|
+
companyId: 123
|
|
163
|
+
}).then(response => {
|
|
164
|
+
console.log(response.data);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// 确认合同细节
|
|
168
|
+
contractGateway.confirm({
|
|
169
|
+
contractAmount: 100000,
|
|
170
|
+
contractCost: 80000,
|
|
171
|
+
contractGrossProfit: 20000,
|
|
172
|
+
engineeringId: 123,
|
|
173
|
+
notes: "合同细节确认",
|
|
174
|
+
projectId: 456,
|
|
175
|
+
projectStageRecordId: 789,
|
|
176
|
+
projectStageId: 101,
|
|
177
|
+
groupId: 1,
|
|
178
|
+
projectQuotationDetailIds: [1, 2, 3]
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// 添加项目合同
|
|
182
|
+
contractGateway.project.addContract({
|
|
183
|
+
projectId: 123,
|
|
184
|
+
contractType: 1,
|
|
185
|
+
amount: 50000
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## 注意事项
|
|
190
|
+
- 所有方法返回Promise对象
|
|
191
|
+
- 需要先初始化context对象
|
|
192
|
+
- 金额参数单位为元
|
|
193
|
+
- 日期参数格式为YYYY-MM-DD
|
package/contract_gateway.ts
CHANGED
|
@@ -60,6 +60,28 @@ export class ContractGateway extends Object {
|
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
/**
|
|
64
|
+
* 商务部确认合同细节
|
|
65
|
+
* @param args 合同确认参数
|
|
66
|
+
* @returns Promise
|
|
67
|
+
*/
|
|
68
|
+
confirm(args: {
|
|
69
|
+
contractAmount: number;
|
|
70
|
+
contractCost: number;
|
|
71
|
+
contractGrossProfit: number;
|
|
72
|
+
engineeringId: number;
|
|
73
|
+
notes: string;
|
|
74
|
+
projectId: number;
|
|
75
|
+
projectStageRecordId: number;
|
|
76
|
+
projectStageId: number;
|
|
77
|
+
groupId: number;
|
|
78
|
+
projectQuotationDetailIds: number[];
|
|
79
|
+
}) {
|
|
80
|
+
return this.context.ready.then((axios) => {
|
|
81
|
+
return axios.post(`/api/v2/coremde-sale/contract/confirm`, args);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
63
85
|
get project() {
|
|
64
86
|
return {
|
|
65
87
|
addContract: (args: any) => {
|
|
@@ -13,7 +13,7 @@ class ConstructionGateway extends Object {
|
|
|
13
13
|
*/
|
|
14
14
|
add(args) {
|
|
15
15
|
return this.context.ready.then((axios) => {
|
|
16
|
-
return axios.post(`/api/v2/coremde-sale/construction/
|
|
16
|
+
return axios.post(`/api/v2/coremde-sale/construction/create`, args);
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
/**
|
package/dist/contract_gateway.js
CHANGED
|
@@ -45,6 +45,16 @@ class ContractGateway extends Object {
|
|
|
45
45
|
return axios.get(`/api/v2/coremde-sale/contract/types`);
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* 商务部确认合同细节
|
|
50
|
+
* @param args 合同确认参数
|
|
51
|
+
* @returns Promise
|
|
52
|
+
*/
|
|
53
|
+
confirm(args) {
|
|
54
|
+
return this.context.ready.then((axios) => {
|
|
55
|
+
return axios.post(`/api/v2/coremde-sale/contract/confirm`, args);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
48
58
|
get project() {
|
|
49
59
|
return {
|
|
50
60
|
addContract: (args) => {
|
package/dist/index.js
CHANGED
|
@@ -47,6 +47,7 @@ const robot_gateway_1 = require("./robot_gateway");
|
|
|
47
47
|
const quotation_gateway_1 = require("./quotation_gateway");
|
|
48
48
|
const ai_gateway_1 = require("./ai_gateway");
|
|
49
49
|
const construction_gateway_1 = require("./construction_gateway");
|
|
50
|
+
const system_gateway_1 = require("./system_gateway");
|
|
50
51
|
class Cpzxrobot {
|
|
51
52
|
constructor(appCode) {
|
|
52
53
|
this.pigfarm = new pigfarm_gateway_1.PigfarmGateway(this);
|
|
@@ -67,6 +68,7 @@ class Cpzxrobot {
|
|
|
67
68
|
this.quotation = new quotation_gateway_1.QuotationGateway(this);
|
|
68
69
|
this.ai = new ai_gateway_1.AiGateway(this);
|
|
69
70
|
this.construction = new construction_gateway_1.ConstructionGateway(this);
|
|
71
|
+
this.system = new system_gateway_1.SystemGateway(this);
|
|
70
72
|
//获取当前浏览器的域名
|
|
71
73
|
this.ready = new Promise((resolve, reject) => {
|
|
72
74
|
this.resolveReady = resolve;
|
package/dist/project_gateway.js
CHANGED
|
@@ -161,9 +161,10 @@ class ProjectGateway extends Object {
|
|
|
161
161
|
return axios.get(`/api/v2/coremde-sale/project/inquiry/get?id=${id}`);
|
|
162
162
|
});
|
|
163
163
|
},
|
|
164
|
+
//申请报价单
|
|
164
165
|
add: (args) => {
|
|
165
166
|
return this.context.ready.then((axios) => {
|
|
166
|
-
return axios.post(`/api/v2/coremde-sale/project/inquiry/
|
|
167
|
+
return axios.post(`/api/v2/coremde-sale/project/inquiry/apply`, args);
|
|
167
168
|
});
|
|
168
169
|
},
|
|
169
170
|
//重新提交询价审核流程
|
|
@@ -193,6 +194,16 @@ class ProjectGateway extends Object {
|
|
|
193
194
|
params: args
|
|
194
195
|
});
|
|
195
196
|
});
|
|
197
|
+
},
|
|
198
|
+
/**
|
|
199
|
+
* 商务部响应报价申请,制作报价单
|
|
200
|
+
* @param args 报价单参数
|
|
201
|
+
* @returns Promise
|
|
202
|
+
*/
|
|
203
|
+
answer: (args) => {
|
|
204
|
+
return this.context.ready.then((axios) => {
|
|
205
|
+
return axios.post(`/api/v2/coremde-sale/project/inquiry/answer`, args);
|
|
206
|
+
});
|
|
196
207
|
}
|
|
197
208
|
};
|
|
198
209
|
}
|
|
@@ -256,7 +267,7 @@ class ProjectGateway extends Object {
|
|
|
256
267
|
*/
|
|
257
268
|
add: (args) => {
|
|
258
269
|
return this.context.ready.then((axios) => {
|
|
259
|
-
return axios.post(`/api/v2/coremde-sale/project/bom-config/
|
|
270
|
+
return axios.post(`/api/v2/coremde-sale/project/bom-config/create`, args);
|
|
260
271
|
});
|
|
261
272
|
}
|
|
262
273
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemGateway = void 0;
|
|
4
|
+
class SystemGateway extends Object {
|
|
5
|
+
constructor(context) {
|
|
6
|
+
super();
|
|
7
|
+
this.context = context;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 获取菜单列表
|
|
11
|
+
* @param roleId 角色ID
|
|
12
|
+
* @returns Promise
|
|
13
|
+
*/
|
|
14
|
+
menuList(roleId) {
|
|
15
|
+
return this.context.ready.then((axios) => {
|
|
16
|
+
return axios.get(`/api/v2/coremde-sale/system/menu/list/${roleId}`);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.SystemGateway = SystemGateway;
|
package/index.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { DeviceGateway } from "./device_gateway";
|
|
|
2
2
|
import { UserGateway } from "./user_gateway";
|
|
3
3
|
import { FactoryGateway } from "./factory_gateway";
|
|
4
4
|
import { TransportGateway } from "./transport_gateway";
|
|
5
|
-
import axios from "axios";
|
|
6
5
|
import { AssistantGateway } from "./assistant_gateway";
|
|
7
6
|
import { EnergyGateway } from "./energy_gateway";
|
|
8
7
|
import { CameraGateway } from "./camera_gateway";
|
|
@@ -22,6 +21,7 @@ import { RobotGateway } from "./robot_gateway";
|
|
|
22
21
|
import { QuotationGateway } from "./quotation_gateway";
|
|
23
22
|
import { AiGateway } from "./ai_gateway";
|
|
24
23
|
import { ConstructionGateway } from "./construction_gateway";
|
|
24
|
+
import { SystemGateway } from "./system_gateway";
|
|
25
25
|
|
|
26
26
|
export class Cpzxrobot {
|
|
27
27
|
private static factorySelectorLoaded = false;
|
|
@@ -76,6 +76,7 @@ export class Cpzxrobot {
|
|
|
76
76
|
quotation: QuotationGateway = new QuotationGateway(this);
|
|
77
77
|
ai: AiGateway = new AiGateway(this);
|
|
78
78
|
construction: ConstructionGateway = new ConstructionGateway(this);
|
|
79
|
+
system: SystemGateway = new SystemGateway(this);
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
constructor(appCode: string) {
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# ProjectGateway 类文档
|
|
2
2
|
|
|
3
3
|
## 概述
|
|
4
|
-
ProjectGateway
|
|
4
|
+
ProjectGateway 是项目管理系统的核心网关类,提供了与项目相关的各种API接口封装。
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## 主要功能模块
|
|
7
7
|
|
|
8
|
-
###
|
|
8
|
+
### 基础项目管理
|
|
9
9
|
- `list()`: 获取项目列表
|
|
10
10
|
- `get()`: 获取单个项目详情
|
|
11
11
|
- `add()`: 创建新项目
|
|
@@ -13,43 +13,74 @@ ProjectGateway 是项目管理系统中的核心网关类,提供了与项目
|
|
|
13
13
|
- `delete()`: 删除项目
|
|
14
14
|
|
|
15
15
|
### 子功能模块
|
|
16
|
-
- `feedback`:
|
|
17
|
-
- `
|
|
18
|
-
- `
|
|
16
|
+
- `feedback`: 项目反馈管理
|
|
17
|
+
- `inquiry`: 项目询盘管理
|
|
18
|
+
- `answer()`: 商务部响应报价申请
|
|
19
|
+
- `document`: 项目文档管理
|
|
20
|
+
- `material`: 项目物料管理
|
|
19
21
|
- `constructionTeam`: 施工队管理
|
|
20
|
-
- `
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
- `
|
|
24
|
-
- `stage`: 项目阶段
|
|
25
|
-
- `bom`: BOM配置
|
|
26
|
-
- `plan`: 项目计划
|
|
22
|
+
- `codePrefix`: 项目编码前缀管理
|
|
23
|
+
- `stage`: 项目阶段管理
|
|
24
|
+
- `bom`: BOM单管理
|
|
25
|
+
- `plan`: 项目计划管理
|
|
27
26
|
|
|
28
|
-
##
|
|
27
|
+
## 详细接口说明
|
|
29
28
|
|
|
29
|
+
### inquiry.answer() 方法
|
|
30
30
|
```typescript
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
31
|
+
/**
|
|
32
|
+
* 商务部响应报价申请,制作报价单
|
|
33
|
+
* @param args 报价单参数
|
|
34
|
+
* @returns Promise
|
|
35
|
+
*
|
|
36
|
+
* 参数说明:
|
|
37
|
+
* - projectId: 项目ID
|
|
38
|
+
* - projectStageRecordId: 项目阶段记录ID
|
|
39
|
+
* - quotationContent: 报价内容
|
|
40
|
+
* - amount: 金额
|
|
41
|
+
* - quotationCost: 报价成本
|
|
42
|
+
* - quotationGrossProfit: 报价毛利
|
|
43
|
+
* - tax: 税额
|
|
44
|
+
* - taxRatio: 税率
|
|
45
|
+
* - validDay: 有效期天数
|
|
46
|
+
* - projectStageId: 项目阶段ID
|
|
47
|
+
* - groupId: 组ID
|
|
48
|
+
* - materialInfo: 材料信息
|
|
49
|
+
*
|
|
50
|
+
* 使用示例:
|
|
51
|
+
* await projectGateway.inquiry.answer({
|
|
52
|
+
* projectId: 123,
|
|
53
|
+
* projectStageRecordId: 456,
|
|
54
|
+
* quotationContent: "详细报价内容",
|
|
55
|
+
* amount: 10000,
|
|
56
|
+
* quotationCost: 8000,
|
|
57
|
+
* quotationGrossProfit: 2000,
|
|
58
|
+
* tax: 200,
|
|
59
|
+
* taxRatio: 0.02,
|
|
60
|
+
* validDay: 30,
|
|
61
|
+
* projectStageId: 789,
|
|
62
|
+
* groupId: 1,
|
|
63
|
+
* materialInfo: "钢材10吨"
|
|
64
|
+
* });
|
|
65
|
+
*/
|
|
66
|
+
answer: (args: {
|
|
67
|
+
projectId: number;
|
|
68
|
+
projectStageRecordId: number;
|
|
69
|
+
quotationContent: string;
|
|
70
|
+
amount: number;
|
|
71
|
+
quotationCost: number;
|
|
72
|
+
quotationGrossProfit: number;
|
|
73
|
+
tax: number;
|
|
74
|
+
taxRatio: number;
|
|
75
|
+
validDay: number;
|
|
76
|
+
projectStageId: number;
|
|
77
|
+
groupId: number;
|
|
78
|
+
materialInfo: string;
|
|
79
|
+
}) => Promise<any>;
|
|
51
80
|
```
|
|
52
81
|
|
|
53
82
|
## 注意事项
|
|
54
83
|
- 所有方法返回Promise对象
|
|
55
84
|
- 需要先初始化context对象
|
|
85
|
+
- 金额参数单位为元
|
|
86
|
+
- 日期参数格式为YYYY-MM-DD
|
package/project_gateway.ts
CHANGED
|
@@ -15,6 +15,9 @@ export class ProjectGateway extends Object {
|
|
|
15
15
|
companyId: number;
|
|
16
16
|
projectProgress?: string;
|
|
17
17
|
customerId?: number;
|
|
18
|
+
groupId?: string;
|
|
19
|
+
userId?: number;
|
|
20
|
+
status?: string;
|
|
18
21
|
}) {
|
|
19
22
|
return this.context.ready.then((axios) => {
|
|
20
23
|
return axios.post(`/api/v2/coremde-sale/project/list`, args);
|
|
@@ -205,9 +208,10 @@ export class ProjectGateway extends Object {
|
|
|
205
208
|
return axios.get(`/api/v2/coremde-sale/project/inquiry/get?id=${id}`);
|
|
206
209
|
});
|
|
207
210
|
},
|
|
211
|
+
//申请报价单
|
|
208
212
|
add: (args: any) => {
|
|
209
213
|
return this.context.ready.then((axios) => {
|
|
210
|
-
return axios.post(`/api/v2/coremde-sale/project/inquiry/
|
|
214
|
+
return axios.post(`/api/v2/coremde-sale/project/inquiry/apply`, args);
|
|
211
215
|
});
|
|
212
216
|
},
|
|
213
217
|
//重新提交询价审核流程
|
|
@@ -237,6 +241,29 @@ export class ProjectGateway extends Object {
|
|
|
237
241
|
params: args
|
|
238
242
|
});
|
|
239
243
|
});
|
|
244
|
+
},
|
|
245
|
+
/**
|
|
246
|
+
* 商务部响应报价申请,制作报价单
|
|
247
|
+
* @param args 报价单参数
|
|
248
|
+
* @returns Promise
|
|
249
|
+
*/
|
|
250
|
+
answer: (args: {
|
|
251
|
+
projectId: number;
|
|
252
|
+
projectStageRecordId: number;
|
|
253
|
+
quotationContent: string;
|
|
254
|
+
amount: number;
|
|
255
|
+
quotationCost: number;
|
|
256
|
+
quotationGrossProfit: number;
|
|
257
|
+
tax: number;
|
|
258
|
+
taxRatio: number;
|
|
259
|
+
validDay: number;
|
|
260
|
+
projectStageId: number;
|
|
261
|
+
groupId: number;
|
|
262
|
+
materialInfo: string;
|
|
263
|
+
}) => {
|
|
264
|
+
return this.context.ready.then((axios) => {
|
|
265
|
+
return axios.post(`/api/v2/coremde-sale/project/inquiry/answer`, args);
|
|
266
|
+
});
|
|
240
267
|
}
|
|
241
268
|
};
|
|
242
269
|
}
|
|
@@ -315,7 +342,7 @@ export class ProjectGateway extends Object {
|
|
|
315
342
|
groupId: number;
|
|
316
343
|
}) => {
|
|
317
344
|
return this.context.ready.then((axios) => {
|
|
318
|
-
return axios.post(`/api/v2/coremde-sale/project/bom-config/
|
|
345
|
+
return axios.post(`/api/v2/coremde-sale/project/bom-config/create`, args);
|
|
319
346
|
});
|
|
320
347
|
}
|
|
321
348
|
};
|
package/readme.md
CHANGED
|
@@ -742,144 +742,7 @@ cpzxrobot().quotation.transform(id: number)
|
|
|
742
742
|
```
|
|
743
743
|
|
|
744
744
|
### 合同管理
|
|
745
|
-
|
|
746
|
-
```javascript
|
|
747
|
-
// 获取合同列表
|
|
748
|
-
cpzxrobot().contract.list({
|
|
749
|
-
factoryId: number,
|
|
750
|
-
page?: number,
|
|
751
|
-
size?: number
|
|
752
|
-
})
|
|
753
|
-
|
|
754
|
-
// 获取合同详情
|
|
755
|
-
cpzxrobot().contract.get(contractId)
|
|
756
|
-
|
|
757
|
-
// 添加合同
|
|
758
|
-
cpzxrobot().contract.add({
|
|
759
|
-
projectId: number,
|
|
760
|
-
contractType: number,
|
|
761
|
-
amount: number,
|
|
762
|
-
startDate: string, // YYYY-MM-DD
|
|
763
|
-
endDate: string, // YYYY-MM-DD
|
|
764
|
-
content: string
|
|
765
|
-
})
|
|
766
|
-
|
|
767
|
-
// 导出合同
|
|
768
|
-
cpzxrobot().contract.export({
|
|
769
|
-
contractId: number,
|
|
770
|
-
fileName?: string
|
|
771
|
-
})
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
#### 合同分组接口
|
|
775
|
-
```javascript
|
|
776
|
-
// 项目相关合同接口
|
|
777
|
-
cpzxrobot().contract.project = {
|
|
778
|
-
// 添加项目合同 (替代原addForProject)
|
|
779
|
-
addContract: (args: any) => Promise<any>
|
|
780
|
-
|
|
781
|
-
// 添加项目回款信息
|
|
782
|
-
addPayment: (args: {
|
|
783
|
-
createTime: string;
|
|
784
|
-
createUserId: number;
|
|
785
|
-
updateTime: string;
|
|
786
|
-
updateUserId: number;
|
|
787
|
-
companyId: number;
|
|
788
|
-
contractId: number;
|
|
789
|
-
receivedPayments: number;
|
|
790
|
-
receivedPerson: string;
|
|
791
|
-
receiveDate: string;
|
|
792
|
-
remark: string;
|
|
793
|
-
}) => Promise<any>
|
|
794
|
-
|
|
795
|
-
// 查看项目回款记录
|
|
796
|
-
listPayments: (id: number) => Promise<any>
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
// 产品相关合同接口
|
|
800
|
-
cpzxrobot().contract.product = {
|
|
801
|
-
// 添加产品合同 (替代原addForProduct)
|
|
802
|
-
addContract: (args: any) => Promise<any>
|
|
803
|
-
|
|
804
|
-
// 添加产品回款信息
|
|
805
|
-
addPayment: (args: {
|
|
806
|
-
createTime: string;
|
|
807
|
-
createUserId: number;
|
|
808
|
-
updateTime: string;
|
|
809
|
-
updateUserId: number;
|
|
810
|
-
companyId: number;
|
|
811
|
-
contractId: number;
|
|
812
|
-
receivedPayments: number;
|
|
813
|
-
receivedPerson: string;
|
|
814
|
-
receiveDate: string;
|
|
815
|
-
remark: string;
|
|
816
|
-
}) => Promise<any>
|
|
817
|
-
|
|
818
|
-
// 查看产品回款记录
|
|
819
|
-
listPayments: (id: number) => Promise<any>
|
|
820
|
-
}
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
#### 合同审批流程
|
|
824
|
-
```javascript
|
|
825
|
-
// 提交合同审批
|
|
826
|
-
cpzxrobot().contract.approval({
|
|
827
|
-
contractId: number,
|
|
828
|
-
opinion: string
|
|
829
|
-
})
|
|
830
|
-
|
|
831
|
-
// 重新提交审批
|
|
832
|
-
cpzxrobot().contract.restart({
|
|
833
|
-
contractId: number,
|
|
834
|
-
reason: string
|
|
835
|
-
})
|
|
836
|
-
|
|
837
|
-
// 获取合同类型列表
|
|
838
|
-
cpzxrobot().contract.types(factoryId)
|
|
839
|
-
```
|
|
840
|
-
|
|
841
|
-
#### Deprecated 接口
|
|
842
|
-
```javascript
|
|
843
|
-
// 已废弃 - 请使用contract.project.addContract
|
|
844
|
-
cpzxrobot().contract.addForProject(args: any)
|
|
845
|
-
|
|
846
|
-
// 已废弃 - 请使用contract.product.addContract
|
|
847
|
-
cpzxrobot().contract.addForProduct(args: any)
|
|
848
|
-
```
|
|
849
|
-
|
|
850
|
-
#### 合同关联信息
|
|
851
|
-
```javascript
|
|
852
|
-
// 获取客户列表
|
|
853
|
-
cpzxrobot().customer.list({
|
|
854
|
-
factoryId: number,
|
|
855
|
-
page?: number,
|
|
856
|
-
size?: number
|
|
857
|
-
})
|
|
858
|
-
|
|
859
|
-
// 获取客户详情
|
|
860
|
-
cpzxrobot().customer.get(customerId)
|
|
861
|
-
|
|
862
|
-
// 添加客户
|
|
863
|
-
cpzxrobot().customer.add({
|
|
864
|
-
name: string,
|
|
865
|
-
type: number,
|
|
866
|
-
contact: string,
|
|
867
|
-
mobile: string,
|
|
868
|
-
factoryId: number
|
|
869
|
-
})
|
|
870
|
-
|
|
871
|
-
// 客户拜访记录
|
|
872
|
-
cpzxrobot().customer.visit.add({
|
|
873
|
-
customerId: number,
|
|
874
|
-
content: string
|
|
875
|
-
})
|
|
876
|
-
|
|
877
|
-
// 获取客户拜访列表
|
|
878
|
-
cpzxrobot().customer.visit.list({
|
|
879
|
-
customerId: number,
|
|
880
|
-
page?: number
|
|
881
|
-
})
|
|
882
|
-
```
|
|
745
|
+
- [ContractGateway 类详细文档](./contract_gateway.readme.md) - 包含所有合同管理接口和使用方法
|
|
883
746
|
|
|
884
747
|
#### 公司管理
|
|
885
748
|
```javascript
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Cpzxrobot } from "./types";
|
|
2
|
+
|
|
3
|
+
export class SystemGateway extends Object {
|
|
4
|
+
context: Cpzxrobot;
|
|
5
|
+
|
|
6
|
+
constructor(context: Cpzxrobot) {
|
|
7
|
+
super();
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 获取菜单列表
|
|
13
|
+
* @param roleId 角色ID
|
|
14
|
+
* @returns Promise
|
|
15
|
+
*/
|
|
16
|
+
menuList(roleId: number) {
|
|
17
|
+
return this.context.ready.then((axios) => {
|
|
18
|
+
return axios.get(`/api/v2/coremde-sale/system/menu/list/${roleId}`);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
package/types.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { AiGateway } from "./ai_gateway";
|
|
|
20
20
|
import { EnergyGateway } from "./energy_gateway";
|
|
21
21
|
import { type ElectricMeterRate } from "./energy_types/electric_meter_gateway";
|
|
22
22
|
import { ConstructionGateway } from "./construction_gateway";
|
|
23
|
+
import { SystemGateway } from "./system_gateway";
|
|
23
24
|
|
|
24
25
|
type Device = {
|
|
25
26
|
id: number;
|
|
@@ -349,6 +350,7 @@ class Cpzxrobot {
|
|
|
349
350
|
ai: AiGateway;
|
|
350
351
|
energy: EnergyGateway;
|
|
351
352
|
construction: ConstructionGateway;
|
|
353
|
+
system: SystemGateway;
|
|
352
354
|
dict: (key: string) => any;
|
|
353
355
|
_getSelectedFarmFromMiniApp: () => Promise<Factory>;
|
|
354
356
|
_getSelectedUnitFromMiniApp: () => Promise<Unit>;
|