委外
# 委外报价单
# 获取委外报价单列表
# 一、接口描述
用于获取委外报价单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSqu |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSqu&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSqu",
"size": 8,
"stSearchDisplay": "委外报价单",
"values": [
{
"tDate": "2022-03-23",
"code": "SQUTEST",
"pdcoreMainSqu.lastModifyUid.simpleUser.desc__lang": "Milk",
"st_code": "SQUTEST",
"pdcoreMainSqu.venId.ven.desc__lang": "Accounts Payable Control Account (Raw Material) SC",
"st_desc": "SQUTEST",
"pdcoreMainSqu.flowTypeId.flowtype.code": "MX-SUBCON",
"iRev": 1,
"pdcoreMainSqu.curId.cur.sym": "HK$",
"pdcoreMainSqu.flowTypeId.flowtype.desc": "Subcontract",
"pdcoreMainSqu.venId.ven.code": "2000",
"st_id": 17,
"id": 17,
"lastModifyDate": "2022-03-24 14:39:36"
}
]
}
# 新增委外报价单(自动补全)
# 一、接口描述
1. 用于新增【委外报价单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSqu |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSqu";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"pdcoresqut": [
{
"sourceId": 0,
"lot": "A",
"sourceLot": "",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"disc": 5,
"up": 10
}
],
"code": "SQUTEST2",
"venId": 99,
"virDeptId": 7,
"flowTypeId": 15450
}
4、返回示例
{
"tranId": 19,
"tranCode": "SQUTEST2",
"message": "",
"status": true
}
# 读取委外报价单
# 一、接口描述
用于读取委外报价单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSqu |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSqu |
id | long(Query) | 是 | 委外报价单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSqu";
String param = "&menuCode=pdcoreSqu&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoremainsqu": [
{
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "",
"sysJson": "",
"viewCode": "pdcoreSqu",
"expDate": 253402185600000,
"beId": 142,
"useAccessBl": false,
"id": 17,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648103976000,
"createUid": 20,
"rev": "1",
"lastApproveUid": 20,
"ttlCharge": 0,
"expiredUid": 0,
"descOrigin": "VENREF",
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"\"}",
"manId": 0,
"ttlAmt": 0,
"position": "",
"flowTypeId": 15450,
"status": "Y",
"weightUnit": "kg",
"tDate": 1647964800000,
"code": "SQUTEST",
"cnDeptId": 0,
"amt": 0,
"iRev": 1,
"upOrigin": "SUBPRO",
"ce01Module": "pdcoreSqu",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"measUnit": "cbm",
"printCount": 0,
"statusModifyDate": 1648103976000,
"createDate": 1648103976000,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 785,
"domAmtDiff": 0
}
],
"pdcoresqut": [
{
"sourceId": 0,
"dDesc_ctw": "",
"dualQty": 0,
"costAmt": 0,
"amt": 0,
"iRev": 1,
"leadTime": 0,
"itemNo": " 1",
"dDesc_zh-CN": "",
"type": "product",
"bDesc_ctw": "",
"ce01Module": "pdcoreSqu",
"beId": 142,
"lot": "A",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"domAmt": 0,
"processId": 0,
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"unitId": 39720,
"dDesc_ccn": "",
"id": 64,
"up": 10,
"locId": 0,
"dDesc_haha1": "",
"hId": 17,
"bDesc_en": "",
"processDesc": "",
"dDesc_en": "",
"dualUnitId": 4489,
"sourceLot": "",
"dDesc": "",
"footerKey": "",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"disc": 5,
"refCode": "",
"lotNoId": 0,
"bDesc_zh-CN": ""
}
],
"pdcoreremsqu": [
{
"tradeTerm_ccn": "",
"country": "",
"heading_en": "",
"tradeTerm_zh-CN": "",
"shipAd4_haha1": "",
"remarks_en": "",
"packing_ccn": "",
"dest": "",
"tradeTerm": "",
"shipAd2_zh-TW": "",
"heading_ccn": "",
"shipAd1_en": "",
"payTerm_zh-TW": "",
"province": "",
"packing_haha1": "",
"tel": "",
"id": 17,
"fax": "",
"remarks_zh-TW": "",
"shipAd1_zh-CN": "",
"hId": 17,
"payTerm": "",
"payTerm_ccn": "",
"heading_zh-TW": "",
"remarks_ccn": "",
"heading_ctw": "",
"tradeTerm_zh-TW": "",
"shipAd4_ccn": "",
"zipcode": "",
"shipAd2_en": "",
"shipAd1_haha1": "",
"i18nField": "{\"heading_zh-CN\": \"\", \"packing_zh-CN\": \"\", \"payTerm_zh-CN\": \"\", \"remarks_zh-CN\": \"\", \"shipAd1_zh-CN\": \"\", \"shipAd2_zh-CN\": \"\", \"shipAd3_zh-CN\": \"\", \"shipAd4_zh-CN\": \"\", \"tradeTerm_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"shipAd4_ctw": "",
"packing_en": "",
"shipAd3_zh-TW": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"remarks_ctw": "",
"lTime": "",
"shipAd1_ccn": "",
"tradeTerm_en": "",
"shipCodeId": 0,
"city": "",
"shipAd3_ctw": "",
"payTerm_en": "",
"iRev": 1,
"shipAd4_zh-TW": "",
"packing": "",
"shipAd2_ccn": "",
"heading_zh-CN": "",
"ce01Module": "pdcoreSqu",
"payTerm_haha1": "",
"shipAd3_en": "",
"packing_zh-TW": "",
"shipAd3_zh-CN": "",
"shipAd4_zh-CN": "",
"shipAd2_ctw": "",
"shipAd2_haha1": "",
"shipAd1_ctw": "",
"remarks_haha1": "",
"email": "",
"shipAd3_ccn": "",
"packing_ctw": "",
"heading_haha1": "",
"heading": "",
"tradeTerm_ctw": "",
"packing_zh-CN": "",
"telCountry": "",
"tradeTerm_haha1": "",
"shipAd1": "",
"shipAd2": "",
"shipAd3": "",
"shipAd4": "",
"telArea": "",
"shipAd1_zh-TW": "",
"shipAd4_en": "",
"shipAd2_zh-CN": "",
"shipAd3_haha1": "",
"remarks": ""
}
]
},
"messages": [],
"status": true
}
# 保存委外报价单
# 一、接口描述
用于新增或者更新【委外报价单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSqu |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSqu |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSqu";
String param = "&menuCode=pdcoreSqu";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainsqu": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SQUTEST",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"staffId": 785
}
]
},
"pdcoresqut": {
"values": [
{
"sourceId": 0,
"lot": "A",
"sourceLot": "",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"disc": 5,
"up": 10
}
]
}
}
4、返回示例
{
"recordId": 20,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外报价单
# 一、接口描述
用于删除委外报价单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSqu |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSqu |
id | long(Query) | 是 | 委外报价单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSqu";
String param = "&menuCode=pdcoreSqu&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外报价单列表
# 一、接口描述
用于执行EBI[委外报价单列表],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 10,
"rows": [
{
"MAIN_reportRate": "1.00000000",
"MAIN_domFinalAmt": "1,130,481.00",
"MAIN_reportTtlCharge": "11,419.00",
"MAIN_domTtlDisc": "22,838.00",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_domTtlCharge": "11,419.00",
"MAIN_reportFinalAmt": "1,130,481.00",
"MAIN_domTtlAmt": "1,141,900.00",
"MAIN_reportTtlAmt": "1,141,900.00",
"MAIN_reportTtlDisc": "22,838.00"
}
]
}
# 读取EBI数据:委外报价单报告
# 一、接口描述
用于执行EBI[委外报价单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 44,
"rows": [
{
"SQUT_A_proId_code": "MX-YZ",
"SQUT_A_proId": "4174",
"aiM18ReservedCol_dataIndex": 1,
"SQUT_A_processId_code": "",
"SQU_A_code": "MX-TEST",
"SQUT_A_processId": "0",
"SQU_A_id": "1"
}
]
}
# 委外加工订单
# 获取委外加工订单列表
# 一、接口描述
用于获取委外加工订单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSjob |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSjob&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSjob",
"size": 62,
"stSearchDisplay": "委外加工订单",
"values": [
{
"tDate": "2022-03-23",
"code": "SJOBTEST",
"st_id": 198,
"st_code": "SJOBTEST",
"pdcoreMainSjob.lastModifyUid.simpleUser.desc__lang": "Milk",
"st_desc": "SJOBTEST",
"iRev": 8,
"id": 198,
"lastModifyDate": "2022-03-25 11:23:58"
}
]
}
# 新增委外加工订单(自动补全)
# 一、接口描述
1. 用于新增【委外加工订单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSjob |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSjob";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"code": "SJOBTEST2",
"venId": 99,
"virDeptId": 7,
"pdcoresjobt": [
{
"sourceId": 0,
"lot": "A",
"oriQty": 100,
"sourceLot": "",
"cDate": "2022-04-23",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"oriUnitId": 39720,
"startDate": "2022-03-23"
}
],
"flowTypeId": 15450
}
4、返回示例
{
"tranId": 19,
"tranCode": "SJOBTEST2",
"message": "",
"status": true
}
# 读取委外加工订单
# 一、接口描述
用于读取委外加工订单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSjob |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSjob |
id | long(Query) | 是 | 委外加工订单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSjob";
String param = "&menuCode=pdcoreSjob&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoremainsjob": [
{
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "",
"sysJson": "",
"viewCode": "pdcoreSjob",
"beId": 142,
"useAccessBl": false,
"id": 198,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648178638000,
"createUid": 20,
"rev": "4",
"lastApproveUid": 20,
"ttlCharge": 0,
"completed": false,
"expiredUid": 0,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"\"}",
"manId": 0,
"deposit": 0,
"ttlAmt": 0,
"position": "",
"flowTypeId": 15450,
"status": "Y",
"tDate": 1647964800000,
"code": "SJOBTEST",
"cnDeptId": 0,
"amt": 0,
"iRev": 8,
"ce01Module": "pdcoreSjob",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1648106762000,
"createDate": 1648025584000,
"depoRate": 0,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 785,
"domAmtDiff": 0
}
],
"pdcoresjobprot": [
{
"sourceId": 0,
"udfPJPwidth": 0,
"udfPJPtestNum": 0,
"dualQty": 0,
"itemNo": " 1",
"beId": 142,
"oriQty": 100,
"bDesc": "",
"bDesc_zh-TW": "",
"id": 250,
"up": 0,
"qcRequired": false,
"udfPJPtestBool": false,
"dDesc_haha1": "",
"hId": 198,
"cDate": 1650643200000,
"level": "",
"udfPJPtestLookup": 0,
"completed": false,
"footerKey": " 1",
"dDesc": "",
"udfPJPstring1": "",
"i18nField": "{}",
"sourceType": "pro",
"qty": 100,
"disc": 0,
"refCode": "",
"startDate": 1647964800000,
"dDesc_ctw": "",
"amt": 0,
"iRev": 8,
"dDesc_zh-CN": "",
"confirmed": true,
"bDesc_ctw": "",
"ce01Module": "pdcoreSjob",
"lot": "A",
"bDesc_haha1": "",
"treeLevel": "",
"dDesc_zh-TW": "",
"domAmt": 0,
"udfPJPtestStr": "",
"bDesc_ccn": "",
"unitId": 39720,
"udfPJPtestDate": -2209017600000,
"dDesc_ccn": "",
"bomId": 0,
"mjobId": 0,
"bDesc_en": "",
"udfPJPlength": 0,
"dDesc_en": "",
"oriUnitId": 39720,
"dualUnitId": 0,
"oriUp": 0,
"sourceLot": "",
"proId": 4634,
"cuspono": "",
"bDesc_zh-CN": ""
}
],
"pdcoresjobmatt": [
{
"tDate": 1647964800000,
"dDesc_ctw": "",
"dualQty": 0,
"oriMatLot": "A",
"pproId": 4634,
"iRev": 8,
"itemNo": " 1",
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSjob",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"treeLevel": "",
"dDesc_zh-TW": "",
"bomReqQty": 0,
"processId": 0,
"oriMatId": 3972,
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"unitId": 38887,
"dDesc_ccn": "",
"id": 586,
"dDesc_haha1": "",
"hId": 198,
"bomId": 0,
"bDesc_en": "",
"dDesc_en": "",
"completed": false,
"oriUnitId": 38887,
"dualUnitId": 0,
"jobId": 0,
"footerKey": " 1",
"dDesc": "",
"i18nField": "{}",
"proId": 3972,
"qty": 100,
"bomLot": "",
"refCode": "",
"jobLot": "",
"bDesc_zh-CN": ""
}
],
"pdcoreremsjob": [
{
"tradeTerm_ccn": "",
"country": "",
"shipMark": "",
"heading_en": "",
"shipMark_zh-CN": "",
"tradeTerm_zh-CN": "",
"shipAd4_haha1": "",
"remarks_en": "",
"packing_ccn": "",
"dest": "",
"tradeTerm": "",
"shipAd2_zh-TW": "",
"heading_ccn": "",
"shipAd1_en": "",
"payTerm_zh-TW": "",
"province": "",
"packing_haha1": "",
"tel": "",
"shipMark_en": "",
"id": 191,
"fax": "",
"remarks_zh-TW": "",
"shipAd1_zh-CN": "",
"hId": 198,
"payTerm": "",
"heading_zh-TW": "",
"payTerm_ccn": "",
"remarks_ccn": "",
"heading_ctw": "",
"tradeTerm_zh-TW": "",
"shipMark_ccn": "",
"shipAd4_ccn": "",
"zipcode": "",
"shipAd2_en": "",
"shipAd1_haha1": "",
"i18nField": "{\"heading_zh-CN\": \"\", \"packing_zh-CN\": \"\", \"payTerm_zh-CN\": \"\", \"remarks_zh-CN\": \"\", \"shipAd1_zh-CN\": \"\", \"shipAd2_zh-CN\": \"\", \"shipAd3_zh-CN\": \"\", \"shipAd4_zh-CN\": \"\", \"shipMark_zh-CN\": \"\", \"tradeTerm_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"shipAd4_ctw": "",
"packing_en": "",
"shipAd3_zh-TW": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"shipMark_zh-TW": "",
"remarks_ctw": "",
"shipAd1_ccn": "",
"tradeTerm_en": "",
"shipCodeId": 0,
"city": "",
"shipMark_ctw": "",
"shipAd3_ctw": "",
"payTerm_en": "",
"iRev": 8,
"shipAd4_zh-TW": "",
"packing": "",
"shipAd2_ccn": "",
"heading_zh-CN": "",
"ce01Module": "pdcoreSjob",
"payTerm_haha1": "",
"shipAd3_en": "",
"packing_zh-TW": "",
"shipAd3_zh-CN": "",
"shipAd4_zh-CN": "",
"shipAd2_ctw": "",
"shipAd2_haha1": "",
"shipAd1_ctw": "",
"remarks_haha1": "",
"email": "",
"shipAd3_ccn": "",
"packing_ctw": "",
"heading_haha1": "",
"heading": "",
"tradeTerm_ctw": "",
"packing_zh-CN": "",
"telCountry": "",
"tradeTerm_haha1": "",
"shipAd1": "",
"shipAd2": "",
"shipAd3": "",
"shipAd4": "",
"telArea": "",
"shipAd1_zh-TW": "",
"shipAd4_en": "",
"shipAd2_zh-CN": "",
"shipAd3_haha1": "",
"shipMark_haha1": "",
"smthId": 0,
"remarks": ""
}
],
"pdcoresjobt": [
{
"sourceId": 0,
"udfPJPwidth": 0,
"udfPJPtestNum": 0,
"dualQty": 0,
"prqFooterKey": "",
"itemNo": " 1",
"prqSourceId": 0,
"beId": 142,
"oriQty": 100,
"bDesc": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"id": 267,
"udfPJPtestBool": false,
"dDesc_haha1": "",
"hId": 198,
"cDate": 1650643200000,
"level": "",
"udfPJPtestLookup": 0,
"prqResultId": 0,
"bomSource": "noBom",
"completed": false,
"mjobModule": "",
"dDesc": "",
"footerKey": "",
"udfPJPstring1": "",
"i18nField": "{}",
"sourceType": "pro",
"sourceDDate": -2209017600000,
"qty": 100,
"refCode": "",
"lotNoId": 0,
"dDesc_ctw": "",
"costAmt": 0,
"pproId": 4634,
"iRev": 8,
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSjob",
"lot": "A",
"sourceDate": -2209017600000,
"bDesc_haha1": "",
"treeLevel": "",
"dDesc_zh-TW": "",
"udfPJPtestStr": "",
"bDesc_ccn": "",
"unitId": 39720,
"udfPJPtestDate": -2209017600000,
"dDesc_ccn": "",
"locId": 0,
"bomId": 0,
"mjobId": 0,
"bDesc_en": "",
"udfPJPlength": 0,
"dDesc_en": "",
"dualUnitId": 4489,
"oriUnitId": 39720,
"prqSourceType": "pro",
"sourceLot": "",
"prqSourceLot": "",
"proId": 4634,
"cuspono": "",
"ndFooterKey": " 1",
"proLot": "A",
"bDesc_zh-CN": ""
}
]
},
"messages": [],
"status": true
}
# 保存委外加工订单
# 一、接口描述
用于新增或者更新【委外加工订单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSjob |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSjob |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSjob";
String param = "&menuCode=pdcoreSjob";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainsjob": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SJOBTEST",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"staffId": 785
}
]
},
"pdcoresjobprot": {
"values": [
{
"sourceId": 0,
"lot": "A",
"oriQty": 100,
"sourceLot": "",
"cDate": "2022-04-23",
"footerKey": " 1",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"oriUnitId": 39720,
"startDate": "2022-03-23"
}
]
},
"pdcoresjobmatt": {
"values": [
{
"sourceId": 0,
"lot": "A",
"oriQty": 100,
"tDate": "2022-03-23",
"footerKey": " 1",
"proId": 3972,
"qty": 100,
"unitId": 38887,
"oriUnitId": 38887,
"treeLe": "pro"
}
]
},
"pdcoresjobt": {
"values": [
{
"sourceId": 0,
"cDate": "2022-04-23",
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sourceLot": "",
"sourceType": "pro",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"ndFooterKey": " 1",
"proLot": "A",
"startDate": "2022-03-23"
}
]
}
}
4、返回示例
{
"recordId": 20,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外加工订单
# 一、接口描述
用于删除委外加工订单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSjob |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSjob |
id | long(Query) | 是 | 委外加工订单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSjob";
String param = "&menuCode=pdcoreSjob&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外加工订单列表
# 一、接口描述
用于执行EBI[委外加工订单列表],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 69,
"rows": [
{
"MAIN_reportRate": "1.00000000",
"MAIN_domFinalAmt": "168,000.00",
"MAIN_reportTtlCharge": "16,000.00",
"MAIN_domTtlDisc": "8,000.00",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_domTtlCharge": "16,000.00",
"MAIN_reportFinalAmt": "168,000.00",
"MAIN_domTtlAmt": "160,000.00",
"MAIN_reportTtlAmt": "160,000.00",
"MAIN_reportTtlDisc": "8,000.00"
}
]
}
# 读取EBI数据:委外加工订单报告
# 一、接口描述
用于执行EBI[委外加工订单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"SJOB_A_id": "133",
"MAIN_completeDualQty": "0.00",
"MAIN_orderDualQty": "30.00",
"aiM18ReservedCol_dataIndex": 1,
"SJOBPROT_A_proId": "4634",
"SJOB_A_code": "BT_SCO2020122901",
"MAIN_outstandingQty": "30.0000",
"MAIN_returnDualQty": "0.00",
"SJOBPROT_A_proId_code": "MX-JZ-F5",
"MAIN_returnQty": "5.0000",
"MAIN_orderQty": "30.0000",
"MAIN_outstandingDualQty": "30.00",
"SJOBPROT_A_qty": "30.0000",
"MAIN_completeQty": "5.0000"
}
]
}
# 委外发料单
# 获取委外发料单列表
# 一、接口描述
用于获取委外发料单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSpick |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSpick&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSpick",
"size": 25,
"stSearchDisplay": "委外发料单",
"values": [
{
"pdcoreMainSpick.lastModifyUid.simpleUser.desc__lang": "Milk",
"tDate": "2022-03-23",
"code": "SPICKTEST",
"st_id": 40,
"st_code": "SPICKTEST",
"st_desc": "SPICKTEST",
"iRev": 1,
"id": 40,
"lastModifyDate": "2022-03-24 16:31:35"
}
]
}
# 新增委外发料单(自动补全)
# 一、接口描述
1. 用于新增【委外发料单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 职员栏位未填时,自动使用个人选项中的默认职员
c. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSpick |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSpick";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"code": "SPICKTEST2",
"venId": 99,
"virDeptId": 7,
"pdcorespickt": [
{
"sourceId": 198,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSjob",
"proId": 3972,
"oriUnitId": 38887,
"locId": 15
}
],
"locId": 15
}
4、返回示例
{
"tranId": 40,
"tranCode": "SPICKTEST2",
"message": "",
"status": true
}
# 读取委外发料单
# 一、接口描述
用于读取委外发料单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSpick |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpick |
id | long(Query) | 是 | 委外发料单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSpick";
String param = "&menuCode=pdcoreSpick&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcorespicktlot": [
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"lotnoLookupAttr19": 0,
"newLotno": 0,
"lotnoLot": "A",
"id": 205,
"lotnoNumAttr20": 0,
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"lotnoLookupAttr11": 0,
"iRev": 1,
"ce01Module": "pdcoreSpick",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 38887,
"lotnoDateAttr9": -2209017600000,
"locId": 15,
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"dualQty": 0,
"itemNo": "",
"hId": 40,
"lotnoNumAttr1": 1001,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"lotnoExpDate": 253402271999000,
"footerKey": " 1",
"qty": 100,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"lotNoId": 5388,
"lotnoTextAttr16": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"lotnoTextAttr19": "",
"lotnoTextAttr10": "",
"dualUnitId": 3937,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "mx20220112a",
"lotnoLookupAttr9": 0,
"proId": 3972,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
}
],
"pdcoreremspick": [
{
"hId": 40,
"i18nField": "{\"remarks_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "",
"remarks_haha1": "",
"iRev": 1,
"id": 40,
"remarks_zh-TW": "",
"remarks": "",
"remarks_ctw": "",
"ce01Module": "pdcoreSpick"
}
],
"pdcorespickt": [
{
"sourceId": 198,
"dualQty": 0,
"pbDesc": "",
"itemNo": " 1",
"beId": 142,
"oriQty": 100,
"pdDesc_zh-CN": "",
"bDesc": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"id": 103,
"pbDesc_zh-TW": "",
"dDesc_haha1": "",
"hId": 40,
"pbDesc_ccn": "",
"pdDesc_zh-TW": "",
"pdDesc_ccn": "",
"dDesc": "",
"footerKey": " 1",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\", \"pbDesc_zh-CN\": \"\", \"pdDesc_zh-CN\": \"\"}",
"pbDesc_zh-CN": "",
"sourceType": "pdcoreSjob",
"qty": 100,
"refCode": "",
"lotNoId": 0,
"dDesc_ctw": "",
"costAmt": 0,
"pproId": 4634,
"iRev": 1,
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSpick",
"lot": "A",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"pdDesc_ctw": "",
"plot": "A",
"bDesc_ccn": "",
"unitId": 38887,
"dDesc_ccn": "",
"pbDesc_haha1": "",
"pbDesc_ctw": "",
"locId": 15,
"mjobId": 0,
"bDesc_en": "",
"pbDesc_en": "",
"pdDesc": "",
"pdDesc_haha1": "",
"pdDesc_en": "",
"dDesc_en": "",
"oriUnitId": 38887,
"dualUnitId": 3937,
"sourceLot": "A",
"proId": 3972,
"bDesc_zh-CN": ""
}
],
"pdcoremainspick": [
{
"tDate": 1647964800000,
"lastModifyUid": 20,
"code": "SPICKTEST",
"cnDeptId": 0,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"iRev": 1,
"position_zh-CN": "",
"sysJson": "",
"viewCode": "pdcoreSpick",
"ce01Module": "pdcoreSpick",
"beId": 142,
"expired": false,
"printCount": 0,
"useAccessBl": false,
"id": 40,
"doctypeId": 0,
"statusModifyDate": 1648110695000,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648110695000,
"createUid": 20,
"locId": 15,
"createDate": 1648110695000,
"rev": "1",
"lastApproveUid": 20,
"expiredUid": 0,
"useAccessWl": false,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"\"}",
"position_ccn": "",
"position_haha1": "",
"manId": 0,
"position": "",
"useAccessAutoCalc": false,
"staffId": 785,
"status": "Y"
}
]
},
"messages": [],
"status": true
}
# 保存委外发料单
# 一、接口描述
用于新增或者更新【委外发料单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSpick |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpick |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSpick";
String param = "&menuCode=pdcoreSpick";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcorespickt": {
"values": [
{
"sourceId": 198,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSjob",
"plot": "A",
"pproId": 4634,
"proId": 3972,
"qty": 100,
"unitId": 38887,
"oriUnitId": 38887,
"locId": 15
}
]
},
"pdcoremainspick": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"code": "SPICKTEST",
"venId": 99,
"virDeptId": 7,
"staffId": 785,
"locId": 15
}
]
}
}
4、返回示例
{
"recordId": 40,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外发料单
# 一、接口描述
用于删除委外发料单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSpick |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpick |
id | long(Query) | 是 | 委外发料单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSpick";
String param = "&menuCode=pdcoreSpick&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 委外退料单
# 获取委外退料单列表
# 一、接口描述
用于获取委外退料单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSmr |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSmr&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSmr",
"size": 3,
"stSearchDisplay": "委外退料单",
"values": [
{
"tDate": "2021-01-27",
"code": "SMR20210001",
"st_id": 7,
"st_code": "SMR20210001",
"st_desc": "SMR20210001",
"iRev": 1,
"pdcoreMainSmr.lastModifyUid.simpleUser.desc__lang": "Milk",
"id": 7,
"lastModifyDate": "2021-01-27 11:24:30"
}
]
}
# 新增委外退料单(自动补全)
# 一、接口描述
1. 用于新增【委外退料单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 职员栏位未填时,自动使用个人选项中的默认职员
c. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSmr |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSmr";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"code": "SMRTEST2",
"venId": 99,
"virDeptId": 7,
"pdcoresmrt": [
{
"sourceId": 40,
"sjobId": 198,
"pproId": 4634,
"oriUnitId": 38887,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSpick",
"plot": "A",
"sjobType": "pdcoreSjob",
"proId": 3972,
"locId": 15,
"sjobLot": "A",
"lotNoId": 5388
}
],
"locId": 15
}
4、返回示例
{
"tranId": 40,
"tranCode": "SMRTEST2",
"message": "",
"status": true
}
# 读取委外退料单
# 一、接口描述
用于读取委外退料单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSmr |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSmr |
id | long(Query) | 是 | 委外退料单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSmr";
String param = "&menuCode=pdcoreSmr&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoremainsmr": [
{
"tDate": 1611676800000,
"lastModifyUid": 20,
"code": "SMR20210001",
"cnDeptId": 218,
"useAccess": false,
"virDeptId": 1,
"expiredDate": -2209017600000,
"iRev": 1,
"position_zh-CN": "",
"sysJson": "{\"autoGenCode\":{\"snId\":923,\"sn\":\"1\"}}",
"viewCode": "pdcoreSmr",
"ce01Module": "pdcoreSmr",
"beId": 142,
"expired": false,
"printCount": 0,
"useAccessBl": false,
"id": 7,
"doctypeId": 0,
"statusModifyDate": 1611717870000,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1611717870000,
"createUid": 20,
"locId": 2,
"createDate": 1611717870000,
"rev": "1",
"lastApproveUid": 20,
"expiredUid": 0,
"useAccessWl": false,
"position_en": "PIE",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_en\": \"PIE\"}",
"position_ccn": "",
"position_haha1": "",
"manId": 48,
"position": "PIE",
"useAccessAutoCalc": false,
"staffId": 21,
"status": "Y"
}
],
"pdcoreremsmr": [
{
"hId": 7,
"i18nField": "{\"remarks_en\": \"\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "",
"remarks_haha1": "",
"iRev": 1,
"id": 7,
"remarks_zh-TW": "",
"remarks": "",
"remarks_ctw": "",
"ce01Module": "pdcoreSmr"
}
],
"pdcoresmrt": [
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"pbDesc": "半成品",
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"oriQty": 20,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"bDesc_zh-TW": "",
"lotnoLookupAttr19": 0,
"newLotno": 0,
"lotnoLot": "A",
"id": 8,
"pbDesc_zh-TW": "半成品",
"dDesc_haha1": "",
"sjobLot": "A",
"lotnoNumAttr20": 0,
"pdDesc_ccn": "",
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"lotnoLookupAttr11": 0,
"i18nField": "{\"bDesc_en\": \"\", \"dDesc_en\": \"\", \"pbDesc_en\": \"半成品\", \"pdDesc_en\": \"\", \"pbDesc_haha1\": \"半成品\", \"pbDesc_zh-CN\": \"半成品\", \"pbDesc_zh-TW\": \"半成品\"}",
"pbDesc_zh-CN": "半成品",
"sourceType": "pdcoreSpick",
"costAmt": 600,
"pproId": 4536,
"iRev": 1,
"bDesc_ctw": "",
"ce01Module": "pdcoreSmr",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"bDesc_ccn": "",
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 39607,
"lotnoDateAttr9": -2209017600000,
"pbDesc_ctw": "",
"locId": 2,
"mjobId": 0,
"bDesc_en": "",
"sjobId": 130,
"pdDesc": "",
"pdDesc_haha1": "",
"pdDesc_en": "",
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"bDesc_zh-CN": "",
"sourceId": 29,
"dualQty": 40,
"itemNo": " 1",
"beId": 142,
"pdDesc_zh-CN": "",
"bDesc": "",
"hId": 7,
"pbDesc_ccn": "",
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"pdDesc_zh-TW": "",
"lotnoExpDate": 253402185600000,
"footerKey": " 1",
"dDesc": "",
"sjobType": "pdcoreSjob",
"qty": 40,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"refCode": "",
"lotNoId": 753,
"lotnoTextAttr16": "",
"dDesc_ctw": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"dDesc_zh-CN": "",
"lotnoTextAttr19": "",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"pdDesc_ctw": "",
"plot": "A",
"dDesc_ccn": "",
"pbDesc_haha1": "半成品",
"lotnoTextAttr10": "",
"pbDesc_en": "半成品",
"dDesc_en": "",
"oriUnitId": 41198,
"dualUnitId": 4396,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"sourceLot": "A",
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "************NE",
"lotnoLookupAttr9": 0,
"proId": 4538,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
},
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"pbDesc": "MRPPRO02",
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"oriQty": 22,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"bDesc_zh-TW": "",
"lotnoLookupAttr19": 0,
"newLotno": 0,
"lotnoLot": "A",
"id": 9,
"pbDesc_zh-TW": "",
"dDesc_haha1": "",
"sjobLot": "A",
"lotnoNumAttr20": 0,
"pdDesc_ccn": "",
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"lotnoLookupAttr11": 0,
"i18nField": "{\"bDesc_en\": \"MRPMAT02\", \"dDesc_en\": \"\", \"pbDesc_en\": \"MRPPRO02\", \"pdDesc_en\": \"<p>MRPPRO02<br></p>\"}",
"pbDesc_zh-CN": "",
"sourceType": "pdcoreSpick",
"costAmt": 22,
"pproId": 4231,
"iRev": 1,
"bDesc_ctw": "",
"ce01Module": "pdcoreSmr",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"bDesc_ccn": "",
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 39228,
"lotnoDateAttr9": -2209017600000,
"pbDesc_ctw": "",
"locId": 2,
"mjobId": 0,
"bDesc_en": "MRPMAT02",
"sjobId": 84,
"pdDesc": "<p>MRPPRO02<br></p>",
"pdDesc_haha1": "",
"pdDesc_en": "<p>MRPPRO02<br></p>",
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"bDesc_zh-CN": "",
"sourceId": 29,
"dualQty": 22,
"itemNo": " 2",
"beId": 142,
"pdDesc_zh-CN": "",
"bDesc": "MRPMAT02",
"hId": 7,
"pbDesc_ccn": "",
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"pdDesc_zh-TW": "",
"lotnoExpDate": 253402185600000,
"footerKey": " 2",
"dDesc": "",
"sjobType": "prodSpjob",
"qty": 22,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"refCode": "",
"lotNoId": 753,
"lotnoTextAttr16": "",
"dDesc_ctw": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"dDesc_zh-CN": "",
"lotnoTextAttr19": "",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"pdDesc_ctw": "",
"plot": "A",
"dDesc_ccn": "",
"pbDesc_haha1": "",
"lotnoTextAttr10": "",
"pbDesc_en": "MRPPRO02",
"dDesc_en": "",
"oriUnitId": 39228,
"dualUnitId": 4171,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"sourceLot": "A",
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "************NE",
"lotnoLookupAttr9": 0,
"proId": 4233,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
},
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"pbDesc": "MRPPRO02",
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"oriQty": 33,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"bDesc_zh-TW": "",
"lotnoLookupAttr19": 0,
"newLotno": 0,
"lotnoLot": "A",
"id": 10,
"pbDesc_zh-TW": "",
"dDesc_haha1": "",
"sjobLot": "A",
"lotnoNumAttr20": 0,
"pdDesc_ccn": "",
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"lotnoLookupAttr11": 0,
"i18nField": "{\"bDesc_en\": \"MRPMAT01\", \"dDesc_en\": \"\", \"pbDesc_en\": \"MRPPRO02\", \"pdDesc_en\": \"<p>MRPPRO02<br></p>\"}",
"pbDesc_zh-CN": "",
"sourceType": "pdcoreSpick",
"costAmt": 33,
"pproId": 4231,
"iRev": 1,
"bDesc_ctw": "",
"ce01Module": "pdcoreSmr",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"bDesc_ccn": "",
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 39227,
"lotnoDateAttr9": -2209017600000,
"pbDesc_ctw": "",
"locId": 2,
"mjobId": 0,
"bDesc_en": "MRPMAT01",
"sjobId": 84,
"pdDesc": "<p>MRPPRO02<br></p>",
"pdDesc_haha1": "",
"pdDesc_en": "<p>MRPPRO02<br></p>",
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"bDesc_zh-CN": "",
"sourceId": 29,
"dualQty": 33,
"itemNo": " 3",
"beId": 142,
"pdDesc_zh-CN": "",
"bDesc": "MRPMAT01",
"hId": 7,
"pbDesc_ccn": "",
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"pdDesc_zh-TW": "",
"lotnoExpDate": 253402185600000,
"footerKey": " 3",
"dDesc": "",
"sjobType": "prodSpjob",
"qty": 33,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"refCode": "",
"lotNoId": 753,
"lotnoTextAttr16": "",
"dDesc_ctw": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"dDesc_zh-CN": "",
"lotnoTextAttr19": "",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"pdDesc_ctw": "",
"plot": "A",
"dDesc_ccn": "",
"pbDesc_haha1": "",
"lotnoTextAttr10": "",
"pbDesc_en": "MRPPRO02",
"dDesc_en": "",
"oriUnitId": 39227,
"dualUnitId": 4170,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"sourceLot": "A",
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "************NE",
"lotnoLookupAttr9": 0,
"proId": 4232,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
}
]
},
"messages": [],
"status": true
}
# 保存委外退料单
# 一、接口描述
用于新增或者更新【委外退料单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSmr |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSmr |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSmr";
String param = "&menuCode=pdcoreSmr";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainsmr": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"code": "SMRTEST",
"venId": 99,
"virDeptId": 7,
"staffId": 785,
"locId": 15
}
]
},
"pdcoresmrt": {
"values": [
{
"sourceId": 40,
"sjobId": 198,
"pproId": 4634,
"oriUnitId": 38887,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSpick",
"plot": "A",
"sjobType": "pdcoreSjob",
"proId": 3972,
"qty": 100,
"unitId": 38887,
"locId": 15,
"sjobLot": "A",
"lotNoId": 5388
}
]
}
}
4、返回示例
{
"recordId": 40,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外退料单
# 一、接口描述
用于删除委外退料单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSmr |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSmr |
id | long(Query) | 是 | 委外退料单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSmr";
String param = "&menuCode=pdcoreSmr&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 委外发货单
# 获取委外发货单列表
# 一、接口描述
用于获取委外发货单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSsn |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSsn&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSsn",
"size": 9,
"stSearchDisplay": "委外发货单",
"values": [
{
"tDate": "2021-03-22",
"code": "SSN210009",
"st_id": 10,
"st_code": "SSN210009",
"pdcoreMainSsn.flowTypeId.flowtype.code": "MX-SUBCON",
"st_desc": "SSN210009",
"pdcoreMainSsn.flowTypeId.flowtype.desc": "Subcontract",
"iRev": 2,
"id": 10,
"lastModifyDate": "2021-03-22 16:48:30",
"pdcoreMainSsn.lastModifyUid.simpleUser.desc__lang": "Milk"
}
]
}
# 新增委外发货单(自动补全)
# 一、接口描述
1. 用于新增【委外发货单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSsn |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSsn";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"asnRefType": "ven",
"curId": 2,
"code": "SSNTEST2",
"asnRefId": 99,
"rate": 1,
"virDeptId": 7,
"pdcoressnt": [
{
"sourceId": 198,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"oriUnitId": 39720
}
],
"flowTypeId": 15450
}
4、返回示例
{
"tranId": 10,
"tranCode": "SSNTEST2",
"message": "",
"status": true
}
# 读取委外发货单
# 一、接口描述
用于读取委外发货单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSsn |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSsn |
id | long(Query) | 是 | 委外发货单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSsn";
String param = "&menuCode=pdcoreSsn&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoreremssn": [
{
"tradeTerm_ccn": "",
"tradeTerm_en": "",
"shipMark": "",
"heading_en": "",
"shipMark_zh-CN": "",
"tradeTerm_zh-CN": "",
"shipMark_ctw": "",
"remarks_en": "",
"payTerm_en": "",
"iRev": 2,
"packing_ccn": "",
"packing": "",
"heading_zh-CN": "",
"ce01Module": "pdcoreSsn",
"tradeTerm": "",
"heading_ccn": "",
"payTerm_haha1": "",
"packing_zh-TW": "",
"payTerm_zh-TW": "",
"packing_haha1": "",
"remarks_haha1": "",
"shipMark_en": "",
"id": 10,
"remarks_zh-TW": "",
"hId": 10,
"packing_ctw": "",
"heading_haha1": "",
"payTerm": "",
"heading_zh-TW": "",
"payTerm_ccn": "",
"heading": "",
"remarks_ccn": "",
"heading_ctw": "",
"tradeTerm_ctw": "",
"packing_zh-CN": "",
"tradeTerm_zh-TW": "",
"shipMark_ccn": "",
"tradeTerm_haha1": "",
"i18nField": "{\"heading_en\": \"\", \"packing_en\": \"\", \"payTerm_en\": \"\", \"remarks_en\": \"\", \"shipMark_en\": \"\", \"tradeTerm_en\": \"\"}",
"remarks_zh-CN": "",
"packing_en": "",
"shipMark_haha1": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"shipMark_zh-TW": "",
"remarks": "",
"remarks_ctw": ""
}
],
"pdcoremainssn": [
{
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "",
"sysJson": "{\"autoGenCode\":{\"snId\":567,\"sn\":\"9\"}}",
"viewCode": "pdcoreSsn",
"beId": 142,
"useAccessBl": false,
"id": 10,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1616402910000,
"createUid": 20,
"rev": "2",
"lastApproveUid": 20,
"ttlCharge": 0,
"completed": false,
"expiredUid": 0,
"freeQtyPer": 0,
"descOrigin": "SUBCONLAST",
"position_en": "PIE",
"position_zh-TW": "",
"i18nField": "{\"position_en\": \"PIE\"}",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"flowTypeId": 15450,
"status": "Y",
"tDate": 1616342400000,
"code": "SSN210009",
"cnDeptId": 218,
"amt": 0,
"iRev": 2,
"upOrigin": "SUBCONLAST",
"ce01Module": "pdcoreSsn",
"curId": 2,
"expired": false,
"asnRefId": 99,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1616402427000,
"createDate": 1616402427000,
"asnRefType": "ven",
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 21,
"domAmtDiff": 0
}
],
"pdcoressnt": [
{
"sourceId": 148,
"dualQty": 22.5,
"itemNo": " 1",
"beId": 142,
"oriQty": 45,
"bDesc": "多工艺产品",
"bDesc_zh-TW": "",
"id": 14,
"up": 0,
"qcRequired": false,
"dDesc_haha1": "",
"hId": 10,
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"completed": false,
"lotnoExpDate": 253402271999000,
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女)<br></p>\"}",
"sourceType": "pdcoreSjob",
"qty": 45,
"disc": 0,
"dDesc_ctw": "",
"amt": 0,
"iRev": 2,
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSsn",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"bDesc_haha1": "",
"lotnoDateAttr2": -2209017600000,
"dDesc_zh-TW": "",
"domAmt": 0,
"bDesc_ccn": "",
"unitId": 41203,
"dDesc_ccn": "",
"bDesc_en": "多工艺产品",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"oriUnitId": 41203,
"dualUnitId": 8308,
"oriUp": 0,
"lotnoTextAttr1": "",
"sourceLot": "A",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotno": "",
"lotnoTextAttr4": "",
"proId": 6063,
"lotnoLookupAttr1": 0,
"lotnoLookupAttr2": 0,
"lotnoLookupAttr3": 0,
"lotnoLookupAttr4": 0,
"bDesc_zh-CN": ""
}
]
},
"messages": [],
"status": true
}
# 保存委外发货单
# 一、接口描述
用于新增或者更新【委外发货单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSsn |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSsn |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSsn";
String param = "&menuCode=pdcoreSsn";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainssn": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"asnRefType": "ven",
"curId": 2,
"code": "SSNTEST",
"asnRefId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"staffId": 785
}
]
},
"pdcoressnt": {
"values": [
{
"sourceId": 198,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"oriUnitId": 39720
}
]
}
}
4、返回示例
{
"recordId": 10,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外发货单
# 一、接口描述
用于删除委外发货单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSsn |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSsn |
id | long(Query) | 是 | 委外发货单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSqu";
String param = "&menuCode=pdcoreSqu&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外发货单报告
# 一、接口描述
用于执行EBI[委外发货单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 14,
"rows": [
{
"aiM18ReservedCol_dataIndex": 1,
"MAIN_reportFinalAmt": "0.00",
"MAIN_sourceId": "72",
"MAIN_sourceCode": "SJOB180814",
"MAIN_reportTtlDisc": "0.00",
"MAIN_sourceType": "pdcoreSjob",
"MAIN_reportRate": "1.00000000",
"MAIN_lot": "A",
"MAIN_domFinalAmt": "0.00",
"MAIN_reportTtlCharge": "0.00",
"MAIN_domTtlDisc": "0.00",
"MAIN_domTtlCharge": "0.00",
"MAIN_domTtlAmt": "0.00",
"MAIN_basicDualQty": "0.00",
"MAIN_reportTtlAmt": "0.00"
}
]
}
# 委外入库单
# 获取委外入库单列表
# 一、接口描述
用于获取委外入库单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSpw |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSpw&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSpw",
"size": 29,
"stSearchDisplay": "委外入库单",
"values": [
{
"tDate": "2022-03-25",
"code": "SPWTEST2",
"st_id": 58,
"st_code": "SPWTEST2",
"st_desc": "SPWTEST2",
"iRev": 1,
"pdcoreMainSpw.lastModifyUid.simpleUser.desc__lang": "Milk",
"id": 58,
"lastModifyDate": "2022-03-25 15:20:09"
}
]
}
# 新增委外入库单(自动补全)
# 一、接口描述
1. 用于新增【委外入库单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSpw |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSpw";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"curId": 2,
"code": "SPWTEST2",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"locId": 15,
"pdcorespwt": [
{
"sourceId": 198,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sjobId": 198,
"sourceType": "pdcoreSjob",
"sjobType": "pdcoreSjob",
"proId": 4634,
"oriUnitId": 39720,
"locId": 15,
"sjobLot": "A"
}
]
}
4、返回示例
{
"tranId": 19,
"tranCode": "SPWTEST2",
"message": "",
"status": true
}
# 读取委外入库单
# 一、接口描述
用于读取委外入库单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSpw |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpw |
id | long(Query) | 是 | 委外入库单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSpw";
String param = "&menuCode=pdcoreSpw&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoreremspw": [
{
"hId": 58,
"i18nField": "{\"remarks_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "",
"remarks_haha1": "",
"iRev": 1,
"id": 58,
"remarks_zh-TW": "",
"remarks": "",
"remarks_ctw": "",
"ce01Module": "pdcoreSpw"
}
],
"pdcoremainspw": [
{
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "pdcoreSpw",
"beId": 142,
"useAccessBl": false,
"id": 58,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648192809000,
"createUid": 20,
"rev": "1",
"lastApproveUid": 20,
"ttlCharge": 0,
"completed": false,
"expiredUid": 0,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"PIE\"}",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"flowTypeId": 15450,
"status": "Y",
"tDate": 1648137600000,
"code": "SPWTEST2",
"cnDeptId": 0,
"amt": 0,
"iRev": 1,
"ce01Module": "pdcoreSpw",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1648192809000,
"locId": 15,
"createDate": 1648192809000,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 785,
"domAmtDiff": 0
}
],
"pdcorespwmatt": [
{
"dDesc_ctw": "",
"dualQty": 0,
"costAmt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "",
"spickId": 40,
"bDesc_ctw": "",
"ce01Module": "pdcoreSpw",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"unitId": 38887,
"dDesc_ccn": "",
"id": 173,
"dDesc_haha1": "",
"sjobLot": "A",
"hId": 58,
"bDesc_en": "",
"dDesc_en": "",
"oriUnitId": 38887,
"dualUnitId": 3937,
"spickLot": "A",
"footerKey": " 1",
"dDesc": "",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"lastSpw": false,
"proId": 3972,
"qty": 100,
"ndFooterKey": " 1",
"refCode": "",
"lotNoId": 5388,
"bDesc_zh-CN": ""
}
],
"pdcorespwstt": [
{
"dDesc_ctw": "",
"dualQty": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSpw",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"unitId": 39720,
"dDesc_ccn": "",
"id": 88,
"dDesc_haha1": "",
"sjobLot": "A",
"hId": 58,
"bDesc_en": "",
"sjobId": 198,
"stId": 198,
"dDesc_en": "",
"oriUnitId": 39720,
"dualUnitId": 0,
"footerKey": " 1",
"dDesc": "",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"ndFooterKey": " 1",
"stLot": "A",
"stType": "pdcoreSjob",
"stProId": 4634,
"refCode": "",
"bDesc_zh-CN": ""
}
],
"pdcorespwt": [
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"oriQty": 100,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"bDesc_zh-TW": "",
"lotnoLookupAttr19": 0,
"newLotno": 1,
"lotnoLot": "A",
"id": 67,
"dDesc_haha1": "",
"sjobLot": "A",
"matUc": 0,
"lotnoNumAttr20": 0,
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"passQty": 0,
"lotnoLookupAttr11": 0,
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"sourceType": "pdcoreSjob",
"costAmt": 0,
"iRev": 1,
"bDesc_ctw": "",
"ce01Module": "pdcoreSpw",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"bDesc_ccn": "",
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 39720,
"lotnoDateAttr9": -2209017600000,
"locId": 15,
"mjobId": 0,
"bDesc_en": "",
"sjobId": 198,
"scrapQty": 0,
"oriUp": 0,
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"bDesc_zh-CN": "",
"sourceId": 198,
"dualQty": 0,
"supMatUc": 0,
"itemNo": " 1",
"venDnNo": "",
"uc": 0,
"beId": 142,
"bDesc": "",
"up": 0,
"hId": 58,
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"lotnoExpDate": 253402271999000,
"footerKey": " 1",
"dDesc": "",
"sjobType": "pdcoreSjob",
"qty": 100,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"disc": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"refCode": "",
"lotNoId": 5488,
"lotnoTextAttr16": "",
"dDesc_ctw": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"amt": 0,
"dDesc_zh-CN": "",
"lotnoTextAttr19": "",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"domAmt": 0,
"dDesc_ccn": "",
"lotnoTextAttr10": "",
"dDesc_en": "",
"oriUnitId": 39720,
"dualUnitId": 4489,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"sourceLot": "A",
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "SPWTEST2000000000000",
"lotnoLookupAttr9": 0,
"proId": 4634,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
}
]
},
"messages": [],
"status": true
}
# 保存委外入库单
# 一、接口描述
用于新增或者更新【委外入库单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSpw |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpw |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSpw";
String param = "&menuCode=pdcoreSpw";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainspw": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SPWTEST2",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"staffId": 785,
"locId": 15
}
]
},
"pdcorespwstt": {
"values": [
{
"sjobId": 198,
"stId": 198,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"ndFooterKey": " 1",
"stLot": "A",
"stType": "pdcoreSjob",
"stProId": 4634,
"sjobLot": "A"
}
]
},
"pdcorespwmatt": {
"values": [
{
"lot": "A",
"oriQty": 100,
"footerKey": " 1",
"proId": 3972,
"qty": 100,
"unitId": 38887,
"ndFooterKey": " 1",
"spickId": 40,
"oriUnitId": 38887,
"spickLot": "A",
"sjobLot": "A",
"lotNoId": 5388
}
]
},
"pdcorespwt": {
"values": [
{
"sourceId": 198,
"sjobId": 198,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"footerKey": " 1",
"sourceType": "pdcoreSjob",
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"locId": 15,
"sjobLot": "A"
}
]
}
}
4、返回示例
{
"recordId": 20,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外入库单
# 一、接口描述
用于删除委外入库单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSpw |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpw |
id | long(Query) | 是 | 委外入库单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSpw";
String param = "&menuCode=pdcoreSpw&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外入库单列表
# 一、接口描述
用于执行EBI[委外入库单列表],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 36,
"rows": [
{
"MAIN_id": "1",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_ttlAmt": "55,000.00",
"MAIN_finalAmt": "57,750.00",
"MAIN_tDate": "2017.12.14",
"MAIN_code": "SPW20170002"
}
]
}
# 读取EBI数据:委外入库单报告
# 一、接口描述
用于执行EBI[委外入库单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"aiM18ReservedCol_dataIndex": 1,
"MAIN_oriQty": "1,000.0000",
"MAIN_tranTypeMess": "委外入库单",
"MAIN_code": "SPW20200003"
}
]
}
# 委外退货单
# 获取委外退货单列表
# 一、接口描述
用于获取委外退货单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSpr |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSpr&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSpr",
"size": 3,
"stSearchDisplay": "委外退货单",
"values": [
{
"tDate": "2021-01-13",
"code": "SPR20210001",
"st_id": 9,
"st_code": "SPR20210001",
"st_desc": "SPR20210001",
"iRev": 1,
"id": 9,
"lastModifyDate": "2021-01-13 18:07:15",
"pdcoreMainSpr.lastModifyUid.simpleUser.desc__lang": ""
}
]
}
# 新增委外退货单(自动补全)
# 一、接口描述
1. 用于新增【委外退货单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSpr |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSpr";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"pdcoresprt": [
{
"sourceId": 58,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sjobId": 198,
"sourceType": "pdcoreSpw",
"sjobType": "pdcoreSjob",
"proId": 4634,
"oriUnitId": 39720,
"locId": 15,
"sjobLot": "A"
}
],
"curId": 2,
"code": "SPRTEST2",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"locId": 15
}
4、返回示例
{
"tranId": 19,
"tranCode": "SPRTEST2",
"message": "",
"status": true
}
# 读取委外退货单
# 一、接口描述
用于读取委外退货单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSpr |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpr |
id | long(Query) | 是 | 委外退货单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSpr";
String param = "&menuCode=pdcoreSpr&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoremainspr": [
{
"lastModifyUid": 11,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "",
"sysJson": "{\"autoGenCode\":{\"snId\":918,\"sn\":\"1\"}}",
"viewCode": "pdcoreSpr",
"beId": 142,
"useAccessBl": false,
"id": 9,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1610532435000,
"createUid": 11,
"rev": "1",
"lastApproveUid": 11,
"ttlCharge": 0,
"completed": false,
"expiredUid": 0,
"position_en": "PIE",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_en\": \"PIE\"}",
"manId": 48,
"ttlAmt": 1325.25,
"position": "PIE",
"flowTypeId": 15450,
"status": "Y",
"tDate": 1610467200000,
"code": "SPR20210001",
"cnDeptId": 29,
"amt": 1325.25,
"iRev": 1,
"ce01Module": "pdcoreSpr",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 1325.25,
"printCount": 0,
"statusModifyDate": 1610532435000,
"locId": 15,
"createDate": 1610532435000,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 723,
"domAmtDiff": 0
}
],
"pdcoresprt": [
{
"lotnoNumAttr17": 0,
"lotnoNumAttr16": 0,
"lotnoNumAttr15": 0,
"lotnoNumAttr14": 0,
"lotnoNumAttr19": 0,
"lotnoNumAttr18": 0,
"lotnoLookupAttr20": 0,
"lotnoNumAttr13": 0,
"lotnoNumAttr12": 0,
"lotnoNumAttr11": 0,
"lotnoNumAttr10": 0,
"lotnoLookupAttr16": 0,
"oriQty": 5,
"lotnoLookupAttr17": 0,
"lotnoLookupAttr14": 0,
"lotnoLookupAttr15": 0,
"lotnoLookupAttr18": 0,
"bDesc_zh-TW": "多工艺产品 tc",
"lotnoLookupAttr19": 0,
"newLotno": 0,
"lotnoLot": "A",
"id": 10,
"dDesc_haha1": "",
"sjobLot": "A",
"lotnoNumAttr20": 0,
"lotnoLookupAttr12": 0,
"lotnoLookupAttr13": 0,
"lotnoLookupAttr10": 0,
"lotnoLookupAttr11": 0,
"i18nField": "{\"bDesc_en\": \"多工艺产品\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女)<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc\", \"bDesc_zh-TW\": \"多工艺产品 tc\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女)<br></p>\"}",
"sourceType": "pdcoreSpw",
"costAmt": 0,
"iRev": 1,
"bDesc_ctw": "",
"ce01Module": "pdcoreSpr",
"lot": "A",
"lotnoDateAttr3": -2209017600000,
"lotnoDateAttr4": -2209017600000,
"lotnoDateAttr1": -2209017600000,
"lotnoDateAttr2": -2209017600000,
"lotnoDateAttr7": -2209017600000,
"lotnoDateAttr8": -2209017600000,
"bDesc_ccn": "",
"lotnoDateAttr5": -2209017600000,
"lotnoDateAttr6": -2209017600000,
"unitId": 39720,
"lotnoDateAttr9": -2209017600000,
"locId": 15,
"mjobId": 0,
"bDesc_en": "多工艺产品",
"sjobId": 133,
"oriUp": 265.05,
"lotnoTextAttr1": "",
"lotnoTextAttr2": "",
"lotnoTextAttr3": "",
"lotnoTextAttr4": "",
"lotnoTextAttr5": "",
"lotnoTextAttr6": "",
"lotnoTextAttr7": "",
"lotnoTextAttr8": "",
"lotnoTextAttr9": "",
"bDesc_zh-CN": "多工艺产品 sc",
"sourceId": 33,
"dualQty": 0,
"itemNo": " 1",
"venDnNo": "DN20210113",
"beId": 142,
"bDesc": "多工艺产品",
"up": 265.05,
"hId": 9,
"lotnoNumAttr1": 0,
"lotnoNumAttr2": 0,
"lotnoNumAttr3": 0,
"lotnoNumAttr4": 0,
"lotnoExpDate": 253402271999000,
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"sjobType": "pdcoreSjob",
"qty": 5,
"lotnoNumAttr5": 0,
"lotnoNumAttr6": 0,
"disc": 0,
"lotnoNumAttr7": 0,
"lotnoNumAttr8": 0,
"lotnoNumAttr9": 0,
"refCode": "",
"lotNoId": 4437,
"lotnoTextAttr16": "",
"dDesc_ctw": "",
"lotnoTextAttr15": "",
"lotnoTextAttr18": "",
"lotnoTextAttr17": "",
"lotnoTextAttr12": "",
"lotnoTextAttr11": "",
"lotnoDateAttr20": -2209017600000,
"lotnoTextAttr14": "",
"lotnoTextAttr13": "",
"amt": 1325.25,
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"lotnoTextAttr19": "",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"domAmt": 1325.25,
"dDesc_ccn": "",
"lotnoTextAttr10": "",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"oriUnitId": 39720,
"dualUnitId": 4489,
"lotnoLookupAttr5": 0,
"lotnoLookupAttr6": 0,
"sourceLot": "A",
"lotnoLookupAttr7": 0,
"lotnoDateAttr18": -2209017600000,
"lotnoLookupAttr8": 0,
"lotnoDateAttr19": -2209017600000,
"lotno": "SPW20200008000000000",
"lotnoLookupAttr9": 0,
"proId": 4634,
"lotnoDateAttr12": -2209017600000,
"lotnoDateAttr13": -2209017600000,
"lotnoDateAttr10": -2209017600000,
"lotnoDateAttr11": -2209017600000,
"lotnoTextAttr20": "",
"lotnoLookupAttr1": 0,
"lotnoDateAttr16": -2209017600000,
"lotnoLookupAttr2": 0,
"lotnoDateAttr17": -2209017600000,
"lotnoLookupAttr3": 0,
"lotnoDateAttr14": -2209017600000,
"lotnoLookupAttr4": 0,
"lotnoDateAttr15": -2209017600000
}
],
"pdcoresprstt": [
{
"dDesc_ctw": "",
"dualQty": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"bDesc_ctw": "",
"ce01Module": "pdcoreSpr",
"beId": 142,
"lot": "A",
"oriQty": 5,
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"bDesc": "多工艺产品",
"bDesc_ccn": "",
"bDesc_zh-TW": "多工艺产品 tc",
"unitId": 39720,
"dDesc_ccn": "",
"id": 12,
"dDesc_haha1": "",
"sjobLot": "B",
"hId": 9,
"bDesc_en": "多工艺产品",
"sjobId": 133,
"spwLot": "A",
"stId": 133,
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"oriUnitId": 39720,
"dualUnitId": 0,
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女)<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女)<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc\", \"bDesc_zh-TW\": \"多工艺产品 tc\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女)<br></p>\"}",
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 5,
"ndFooterKey": " 1",
"stLot": "B",
"stType": "pdcoreSjob",
"stProId": 4634,
"spwId": 33,
"refCode": "",
"bDesc_zh-CN": "多工艺产品 sc"
}
],
"pdcoreremspr": [
{
"hId": 9,
"i18nField": "{\"remarks_en\": \"test\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "test",
"remarks_haha1": "",
"iRev": 1,
"id": 9,
"remarks_zh-TW": "",
"remarks": "test",
"remarks_ctw": "",
"ce01Module": "pdcoreSpr"
}
]
},
"messages": [],
"status": true
}
# 保存委外退货单
# 一、接口描述
用于新增或者更新【委外退货单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSpr |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpr |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSpr";
String param = "&menuCode=pdcoreSpr";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainspr": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SPRTEST2",
"venId": 99,
"rate": 1,
"virDeptId": 7,
"flowTypeId": 15450,
"staffId": 785,
"locId": 15
}
]
},
"pdcoresprt": {
"values": [
{
"sourceId": 59,
"sjobId": 198,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"footerKey": " 1",
"sourceType": "pdcoreSpw",
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"locId": 15,
"sjobLot": "A",
"lotNoId": 5501
}
]
},
"pdcoresprmatt": {
"values": [
{
"spwLot": "A",
"spickId": 40,
"oriUnitId": 38887,
"spickLot": "A",
"lot": "A",
"oriQty": 100,
"footerKey": " 1",
"proId": 3972,
"qty": 100,
"unitId": 38887,
"ndFooterKey": " 1",
"spwId": 59,
"sjobLot": "A",
"lotNoId": 5388
}
]
},
"pdcoresprstt": {
"values": [
{
"sjobId": 198,
"spwLot": "A",
"stId": 198,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sjobType": "pdcoreSjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"ndFooterKey": " 1",
"stLot": "A",
"stType": "pdcoreSjob",
"stProId": 4634,
"spwId": 59,
"sjobLot": "A"
}
]
}
}
4、返回示例
{
"recordId": 20,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外退货单
# 一、接口描述
用于删除委外退货单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSpr |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpr |
id | long(Query) | 是 | 委外退货单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSpr";
String param = "&menuCode=pdcoreSpr&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外退货单列表
# 一、接口描述
用于执行EBI[委外退货单列表],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 3,
"rows": [
{
"MAIN_reportRate": "1.00000000",
"MAIN_domFinalAmt": "47,500.00",
"MAIN_reportTtlCharge": "5,000.00",
"MAIN_domTtlDisc": "2,500.00",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_domTtlCharge": "5,000.00",
"MAIN_reportFinalAmt": "47,500.00",
"MAIN_domTtlAmt": "50,000.00",
"MAIN_reportTtlAmt": "50,000.00",
"MAIN_reportTtlDisc": "2,500.00"
}
]
}
# 读取EBI数据:委外退货单报告
# 一、接口描述
用于执行EBI[委外退货单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"MAIN_domFinalAmt": "47,500.00",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_oriQty": "1.0000",
"MAIN_domTtlAmt": "50,000.00"
}
]
}
# 委外加工发票
# 获取委外加工发票列表
# 一、接口描述
用于获取委外加工发票列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSpi |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSpi&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSpi",
"size": 1,
"stSearchDisplay": "委外加工发票",
"values": [
{
"tDate": "2021-05-24",
"code": "SPI20210003",
"st_code": "SPI20210003",
"st_desc": "SPI20210003",
"iRev": 1,
"pdcoreMainSpi.curId.cur.sym": "HK$",
"st_id": 7,
"pdcoreMainSpi.flowTypeId.flowtype.code": "MX-SUBCON",
"pdcoreMainSpi.lastModifyUid.simpleUser.desc__lang": "Milk",
"pdcoreMainSpi.flowTypeId.flowtype.desc": "Subcontract",
"id": 7,
"pdcoreMainSpi.venId.ven.desc__lang": "Accounts Payable Control Account (Raw Material) SC",
"lastModifyDate": "2021-05-24 10:57:53",
"pdcoreMainSpi.venId.ven.code": "2000"
}
]
}
# 新增委外加工发票(自动补全)
# 一、接口描述
1. 用于新增【委外加工发票】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSpi |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSpi";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SPITEST",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"pdcorespit": [
{
"sourceId": 58,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "pdcoreSpw",
"proId": 4634,
"oriUnitId": 39720
}
],
"flowTypeId": 15450
}
4、返回示例
{
"tranId": 10,
"tranCode": "SPITEST",
"message": "",
"status": true
}
# 读取委外加工发票
# 一、接口描述
用于读取委外加工发票数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSpi |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpi |
id | long(Query) | 是 | 委外加工发票的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSpi";
String param = "&menuCode=pdcoreSpi&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoreremspi": [
{
"tradeTerm_ccn": "",
"tradeTerm_en": "",
"shipMark": "",
"heading_en": "",
"shipMark_zh-CN": "",
"tradeTerm_zh-CN": "",
"shipMark_ctw": "",
"remarks_en": "",
"payTerm_en": "",
"iRev": 1,
"heading_zh-CN": "",
"ce01Module": "pdcoreSpi",
"tradeTerm": "",
"heading_ccn": "",
"payTerm_haha1": "",
"payTerm_zh-TW": "",
"remarks_haha1": "",
"shipMark_en": "",
"id": 10,
"remarks_zh-TW": "",
"particular_ccn": "",
"hId": 10,
"heading_haha1": "",
"payTerm": "",
"particular_en": "",
"heading_zh-TW": "",
"payTerm_ccn": "",
"heading": "",
"particular_haha1": "",
"remarks_ccn": "",
"particular_zh-TW": "",
"heading_ctw": "",
"tradeTerm_ctw": "",
"particular": "",
"tradeTerm_zh-TW": "",
"shipMark_ccn": "",
"tradeTerm_haha1": "",
"particular_zh-CN": "",
"i18nField": "{\"heading_zh-CN\": \"\", \"payTerm_zh-CN\": \"\", \"remarks_zh-CN\": \"\", \"shipMark_zh-CN\": \"\", \"tradeTerm_zh-CN\": \"\", \"particular_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"particular_ctw": "",
"shipMark_haha1": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"shipMark_zh-TW": "",
"remarks": "",
"remarks_ctw": ""
}
],
"pdcoremainspi": [
{
"cpDate": 1648828800000,
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"accDesc_ccn": "",
"expiredDate": -2209017600000,
"installNo": 0,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "pdcoreSpi",
"accDesc": "",
"accDesc_haha1": "",
"eDiscRate": 0,
"beId": 142,
"comRate": 0,
"useAccessBl": false,
"id": 10,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648880367000,
"createUid": 20,
"showEarlyPayDisc": false,
"accDesc_ctw": "",
"fromModule": "",
"rev": "1",
"lastApproveUid": 20,
"method": "cod",
"ttlCharge": 0,
"expiredUid": 0,
"descOrigin": "VENREF",
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"accDesc_zh-CN\": \"\", \"position_zh-CN\": \"PIE\"}",
"dayOfMonth": 0,
"monthEndDate": 0,
"accDesc_en": "",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"flowTypeId": 15450,
"venInvNo": "",
"status": "Y",
"hpSetting": "dayAfterInv",
"tDate": 1647964800000,
"code": "SPITEST",
"cnDeptId": 0,
"jlTypeId": 0,
"amt": 0,
"iRev": 1,
"accDesc_zh-TW": "",
"upOrigin": "SQU",
"aInvMonth": 0,
"depoAmt": 0,
"ce01Module": "pdcoreSpi",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1648880367000,
"domDepoAmt": 0,
"locId": 15,
"createDate": 1648880367000,
"loadNeed": true,
"accDesc_zh-CN": "",
"cp": 0,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 785,
"domAmtDiff": 0
}
],
"pdcorespit": [
{
"sourceId": 58,
"dDesc_ctw": "",
"dualQty": 0,
"costAmt": 0,
"amt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "",
"venDnNo": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSpi",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"domAmt": 0,
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"unitId": 39720,
"dDesc_ccn": "",
"id": 16,
"up": 0,
"locId": 0,
"dDesc_haha1": "",
"sjobLot": "",
"hId": 10,
"mjobId": 0,
"bDesc_en": "",
"sjobId": 0,
"dDesc_en": "",
"dualUnitId": 4489,
"oriUnitId": 39720,
"oriUp": 0,
"sourceLot": "A",
"dDesc": "",
"footerKey": " 1",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"sourceType": "pdcoreSpw",
"proId": 4634,
"qty": 100,
"disc": 0,
"refCode": "",
"lotNoId": 0,
"bDesc_zh-CN": ""
}
]
},
"messages": [],
"status": true
}
# 保存委外加工发票
# 一、接口描述
用于新增或者更新【委外加工发票】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSpi |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpi |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSpi";
String param = "&menuCode=pdcoreSpi";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainspi": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SPITEST2",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"flowTypeId": 15450,
"staffId": 785
}
]
},
"pdcorespit": {
"values": [
{
"sourceId": 58,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sjobId": 198,
"sourceType": "pdcoreSpw",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"oriUnitId": 39720,
"sjobLot": "A"
}
]
}
}
4、返回示例
{
"recordId": 19,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外加工发票
# 一、接口描述
用于删除委外加工发票
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSpi |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSpi |
id | long(Query) | 是 | 委外加工发票的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSpi";
String param = "&menuCode=pdcoreSpi&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外加工发票列表
# 一、接口描述
用于执行EBI[委外加工发票列表],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"SPI_A_code": "SPI20170002",
"MAIN_reportRate": "1.00000000",
"MAIN_domFinalAmt": "168,000.00",
"MAIN_reportTtlCharge": "16,000.00",
"MAIN_domTtlDisc": "8,000.00",
"SPI_A_id": "1",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_domTtlCharge": "16,000.00",
"MAIN_reportFinalAmt": "168,000.00",
"MAIN_domTtlAmt": "160,000.00",
"MAIN_reportTtlAmt": "160,000.00",
"MAIN_reportTtlDisc": "8,000.00"
}
]
}
# 读取EBI数据:委外加工发票报告
# 一、接口描述
用于执行EBI[委外加工发票报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"SPI_A_code": "SPI20170002",
"SPI_A_id": "1",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_oriQty": "1.0000",
"MAIN_domTtlAmt": "160,000.00"
}
]
}
# 委外拒收单
# 获取委外拒收单列表
# 一、接口描述
用于获取委外拒收单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | pdcoreSrj |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=pdcoreSrj&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "pdcoreSrj",
"size": 1,
"stSearchDisplay": "委外拒收单",
"values": [
{
"tDate": "2022-03-25",
"code": "SRJTEST2",
"st_id": 4,
"st_code": "SRJTEST2",
"pdcoreMainSrj.venId.ven.desc__lang": "Accounts Payable Control Account (Raw Material) SC",
"pdcoreMainSrj.staffId.staff.code": "A000-0019",
"st_desc": "SRJTEST2",
"pdcoreMainSrj.venId.ven.code": "2000",
"iRev": 1,
"pdcoreMainSrj.lastModifyUid.simpleUser.desc__lang": "Milk",
"id": 4,
"lastModifyDate": "2022-03-25 17:02:51"
}
]
}
# 新增委外拒收单(自动补全)
# 一、接口描述
1. 用于新增【委外拒收单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 职员栏位未填时,自动使用个人选项中的默认职员
c. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/pdcoreSrj |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/pdcoreSrj";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"code": "SRJTEST2",
"venId": 99,
"virDeptId": 1,
"pdcoresrjt": [
{
"sourceId": 28,
"lot": "A",
"sourceLot": "B",
"ssnId": 1,
"sourceType": "qc",
"ssnLot": "B",
"proId": 4170,
"qty": 3,
"unitId": 39094
}
]
}
4、返回示例
{
"tranId": 4,
"tranCode": "SRJTEST2",
"message": "",
"status": true
}
# 读取委外拒收单
# 一、接口描述
用于读取委外拒收单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/pdcoreSrj |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSrj |
id | long(Query) | 是 | 委外拒收单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/pdcoreSrj";
String param = "&menuCode=pdcoreSrj&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"pdcoremainsrj": [
{
"tDate": 1648137600000,
"lastModifyUid": 20,
"code": "SRJTEST2",
"cnDeptId": 0,
"useAccess": false,
"virDeptId": 1,
"expiredDate": -2209017600000,
"iRev": 1,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "pdcoreSrj",
"ce01Module": "pdcoreSrj",
"beId": 142,
"expired": false,
"printCount": 0,
"useAccessBl": false,
"id": 4,
"doctypeId": 0,
"statusModifyDate": 1648198971000,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648198971000,
"createUid": 20,
"createDate": 1648198971000,
"rev": "1",
"lastApproveUid": 20,
"loadGpCoData": false,
"expiredUid": 0,
"useAccessWl": false,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"PIE\"}",
"position_ccn": "",
"position_haha1": "",
"manId": 48,
"position": "PIE",
"useAccessAutoCalc": false,
"staffId": 21,
"status": "Y"
}
],
"pdcoresrjt": [
{
"sourceId": 28,
"dDesc_ctw": "",
"ssnId": 1,
"dualQty": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "",
"bDesc_ctw": "",
"ce01Module": "pdcoreSrj",
"beId": 142,
"lot": "A",
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"bDesc": "",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"unitId": 39094,
"dDesc_ccn": "",
"id": 4,
"dDesc_haha1": "",
"sjobLot": "",
"hId": 4,
"bDesc_en": "",
"sjobId": 0,
"sourceCliId": 0,
"ssnLot": "B",
"dDesc_en": "",
"dualUnitId": 4123,
"sourceLot": "B",
"footerKey": " 1",
"dDesc": "",
"i18nField": "{\"bDesc_zh-CN\": \"\", \"dDesc_zh-CN\": \"\"}",
"sourceType": "qc",
"proId": 4170,
"qty": 3,
"bDesc_zh-CN": ""
}
]
},
"messages": [],
"status": true
}
# 保存委外拒收单
# 一、接口描述
用于新增或者更新【委外拒收单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/pdcoreSrj |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSrj |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/pdcoreSrj";
String param = "&menuCode=pdcoreSrj";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"pdcoremainsrj": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"code": "SRJTEST",
"venId": 99,
"virDeptId": 1,
"staffId": 785
}
]
},
"pdcoresrjt": {
"values": [
{
"sourceId": 28,
"lot": "A",
"sourceLot": "B",
"ssnId": 1,
"sourceType": "qc",
"ssnLot": "B",
"proId": 4170,
"qty": 3,
"unitId": 39094
}
]
}
}
4、返回示例
{
"recordId": 4,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除委外拒收单
# 一、接口描述
用于删除委外拒收单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/pdcoreSrj |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | pdcoreSrj |
id | long(Query) | 是 | 委外拒收单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/pdcoreSrj";
String param = "&menuCode=pdcoreSrj&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 读取EBI数据:委外拒收单报告
# 一、接口描述
用于执行EBI[委外拒收单报告],返回EBI数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/ebiWidget/loadReport |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
formatId | long(Query) | 是 | 通过EBI接口获取到formatId |
beId | long(Query) | 否 | 企业法人的ID。若不传,则查询所有有权限的BE数据 |
offset | int(Query) | 否 | 返回结果的开始行 |
rows | int(Query) | 否 | 返回结果的结束行 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/ebiWidget/loadReport";
String param = "&formatId=" + formatId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"size": 1,
"rows": [
{
"MAIN_sourceType": "qc",
"aiM18ReservedCol_dataIndex": 1,
"MAIN_sourceId": "28",
"MAIN_sourceCode": "QC0180007"
}
]
}
# 工艺委外订单
# 获取工艺委外订单列表
# 一、接口描述
用于获取工艺委外订单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | prodSpjob |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=prodSpjob&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "prodSpjob",
"size": 1,
"stSearchDisplay": "工艺委外订单",
"values": [
{
"tDate": "2021-06-17",
"code": "WPSC210617-A",
"st_id": 90,
"st_code": "WPSC210617-A",
"st_desc": "WPSC210617-A",
"iRev": 1,
"id": 90,
"lastModifyDate": "2021-06-17 09:44:15",
"prodMainSpjob.lastModifyUid.simpleUser.desc__lang": "Milk"
}
]
}
# 新增工艺委外订单(自动补全)
# 一、接口描述
1. 用于新增【工艺委外订单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/prodSpjob |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/prodSpjob";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"tDate": "2022-03-23",
"prodspjobprot": [
{
"sourceId": 1651,
"lot": "A",
"jobId": 1651,
"oriQty": 100,
"sourceLot": "A",
"sourceType": "prodJob",
"proId": 4634,
"oriUnitId": 39720
}
],
"curId": 2,
"code": "SPJOBTEST",
"venId": 99,
"virDeptId": 7,
"rate": 1
}
4、返回示例
{
"tranId": 93,
"tranCode": "SPJOBTEST",
"message": "",
"status": true
}
# 读取工艺委外订单
# 一、接口描述
用于读取工艺委外订单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/prodSpjob |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSpjob |
id | long(Query) | 是 | 工艺委外订单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/prodSpjob";
String param = "&menuCode=prodSpjob&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"prodspjobprot": [
{
"sourceId": 1651,
"dualQty": 0,
"itemNo": " 1",
"beId": 142,
"oriQty": 100,
"bDesc": "多工艺产品 sc 1",
"bDesc_zh-TW": "多工艺产品 tc 1",
"id": 175,
"up": 0,
"dDesc_haha1": "",
"processRemarks_zh-TW": "",
"hId": 93,
"cDate": 1647964800000,
"level": " 1",
"completed": false,
"jobId": 1651,
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\", \"processRemarks_zh-CN\": \"<p>bbbbb</p>\"}",
"sourceType": "prodJob",
"qty": 100,
"disc": 0,
"refCode": "",
"startDate": 1647964800000,
"dDesc_ctw": "",
"endAccord": "latest",
"processRemarks_zh-CN": "<p>bbbbb</p>",
"amt": 0,
"iRev": 1,
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"confirmed": true,
"bDesc_ctw": "",
"ce01Module": "prodSpjob",
"lot": "A",
"bDesc_haha1": "",
"treeLevel": " 1- 2",
"dDesc_zh-TW": "<p> </p>",
"domAmt": 0,
"processId": 12,
"startAccord": "latest",
"bDesc_ccn": "",
"unitId": 39720,
"dDesc_ccn": "",
"processRemarks_ccn": "",
"bomId": 75,
"mjobId": 425,
"bDesc_en": "多工艺产品 1",
"processRemarks_ctw": "",
"processRemarks_haha1": "",
"processRemarks_en": "",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"oriUnitId": 39720,
"dualUnitId": 0,
"oriUp": 0,
"sourceLot": "A",
"mjobFooterKey": " 1",
"proId": 4634,
"processRemarks": "<p>bbbbb</p>",
"bDesc_zh-CN": "多工艺产品 sc 1"
}
],
"prodremspjob": [
{
"tradeTerm_ccn": "",
"shipMark": "",
"heading_en": "",
"shipMark_zh-CN": "",
"tradeTerm_zh-CN": "",
"remarks_en": "",
"packing_ccn": "",
"dest": "",
"tradeTerm": "",
"heading_ccn": "",
"payTerm_zh-TW": "",
"packing_haha1": "",
"shipMark_en": "",
"id": 93,
"remarks_zh-TW": "",
"hId": 93,
"payTerm": "",
"heading_zh-TW": "",
"payTerm_ccn": "",
"remarks_ccn": "",
"heading_ctw": "",
"tradeTerm_zh-TW": "",
"shipMark_ccn": "",
"i18nField": "{\"heading_zh-CN\": \"\", \"packing_zh-CN\": \"\", \"payTerm_zh-CN\": \"\", \"remarks_zh-CN\": \"\", \"shipMark_zh-CN\": \"\", \"tradeTerm_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"packing_en": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"shipMark_zh-TW": "",
"remarks_ctw": "",
"tradeTerm_en": "",
"shipMark_ctw": "",
"payTerm_en": "",
"iRev": 1,
"packing": "",
"heading_zh-CN": "",
"ce01Module": "prodSpjob",
"payTerm_haha1": "",
"packing_zh-TW": "",
"remarks_haha1": "",
"packing_ctw": "",
"heading_haha1": "",
"heading": "",
"tradeTerm_ctw": "",
"packing_zh-CN": "",
"tradeTerm_haha1": "",
"shipMark_haha1": "",
"smthId": 0,
"remarks": ""
}
],
"prodmainspjob": [
{
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "prodSpjob",
"beId": 142,
"useAccessBl": false,
"id": 93,
"doctypeId": 0,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648883972000,
"createUid": 20,
"rev": "1",
"lastApproveUid": 20,
"ttlCharge": 0,
"completed": false,
"expiredUid": 0,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"PIE\"}",
"manId": 48,
"deposit": 0,
"ttlAmt": 0,
"position": "PIE",
"status": "Y",
"tDate": 1647964800000,
"code": "SPJOBTEST",
"cnDeptId": 0,
"amt": 0,
"iRev": 1,
"ce01Module": "prodSpjob",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1648883972000,
"createDate": 1648883972000,
"depoRate": 0,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 21,
"domAmtDiff": 0
}
],
"prodspjobmatt": [
{
"tDate": 1647964800000,
"dDesc_ctw": "",
"jobModule": "prodJob",
"dualQty": 101,
"pproId": 4634,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>1</p>",
"bDesc_ctw": "",
"ce01Module": "prodSpjob",
"beId": 142,
"lot": "A",
"oriQty": 101,
"bDesc_haha1": "",
"treeLevel": " 1- 2- 1",
"dDesc_zh-TW": "",
"bomReqQty": 101,
"bDesc": "木材 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"unitId": 39233,
"dDesc_ccn": "",
"id": 353,
"dDesc_haha1": "",
"hId": 93,
"bomId": 75,
"bDesc_en": "",
"dDesc_en": "",
"completed": false,
"oriUnitId": 39233,
"dualUnitId": 4174,
"jobId": 1651,
"footerKey": " 1",
"dDesc": "<p>1</p>",
"i18nField": "{\"bDesc_zh-CN\": \"木材 sc 1\", \"dDesc_zh-CN\": \"<p>1</p>\"}",
"proId": 4236,
"qty": 101,
"refCode": "",
"jobLot": "A",
"bDesc_zh-CN": "木材 sc 1"
}
],
"prodspjobt": [
{
"sourceId": 425,
"dDesc_ctw": "",
"dualQty": 0,
"costAmt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSpjob",
"beId": 142,
"lot": "A",
"sourceDate": 1647964800000,
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "<p> </p>",
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "多工艺产品 tc 1",
"newLotno": 0,
"unitId": 39720,
"dDesc_ccn": "",
"id": 217,
"locId": 0,
"dDesc_haha1": "",
"hId": 93,
"bomId": 75,
"cDate": 1648656000000,
"bDesc_en": "多工艺产品 1",
"bomSource": "aiBom",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"completed": false,
"sourceProId": 4634,
"oriUnitId": 39720,
"dualUnitId": 4489,
"sourceLot": "A",
"sourceMjobLot": "A",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"footerKey": " 1",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\"}",
"sourceType": "prodMjob",
"sourceDDate": -2209017600000,
"proId": 4634,
"qty": 100,
"refCode": "",
"lotNoId": 0,
"bDesc_zh-CN": "多工艺产品 sc 1"
}
]
},
"messages": [],
"status": true
}
# 保存工艺委外订单
# 一、接口描述
用于新增或者更新【工艺委外订单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/prodSpjob |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSpjob |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/prodSpjob";
String param = "&menuCode=prodSpjob";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"prodspjobprot": {
"values": [
{
"sourceId": 1651,
"mjobId": 425,
"bomId": 75,
"cDate": "2022-03-31",
"level": " 1",
"confirmed": true,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"jobId": 1651,
"sourceLot": "A",
"treeLevel": " 1- 2",
"footerKey": " 1",
"sourceType": "prodJob",
"mjobFooterKey": " 1",
"processId": 12,
"proId": 4634,
"qty": 100,
"unitId": 39720,
"startDate": "2022-03-23"
}
]
},
"prodmainspjob": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SPJOBTEST2",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"staffId": 785
}
]
},
"prodspjobmatt": {
"values": [
{
"bomId": 75,
"pproId": 4634,
"oriUnitId": 39233,
"lot": "A",
"oriQty": 100,
"jobId": 1651,
"treeLevel": " 1- 2- 1",
"footerKey": " 1",
"bomReqQty": 101,
"proId": 4236,
"qty": 100,
"unitId": 39233,
"jobLot": "A"
}
]
},
"prodspjobt": {
"values": [
{
"sourceId": 425,
"bomId": 75,
"cDate": "2022-03-31",
"sourceProId": 4634,
"oriUnitId": 39720,
"sourceDate": "2022-03-23",
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceMjobLot": "A",
"footerKey": " 1",
"sourceType": "prodMjob",
"sourceDDate": "1900-01-01",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"startDate": "2022-03-23"
}
]
}
}
4、返回示例
{
"recordId": 94,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除工艺委外订单
# 一、接口描述
用于删除工艺委外订单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/prodSpjob |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSpjob |
id | long(Query) | 是 | 工艺委外订单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/prodSpjob";
String param = "&menuCode=prodSpjob&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 工艺委外派工单
# 获取工艺委外派工单列表
# 一、接口描述
用于获取工艺委外派工单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | prodSdisp |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=prodSdisp&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "prodSdisp",
"size": 1,
"stSearchDisplay": "工艺委外派工单",
"values": [
{
"tDate": "2020-12-03",
"code": "SDISP20200002",
"prodMainSdisp.lastModifyUid.simpleUser.desc__lang": "Milk",
"st_id": 15,
"st_code": "SDISP20200002",
"st_desc": "SDISP20200002",
"iRev": 1,
"id": 15,
"lastModifyDate": "2020-12-03 10:58:14"
}
]
}
# 新增工艺委外派工单(自动补全)
# 一、接口描述
1. 用于新增【工艺委外派工单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/prodSdisp |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/prodSdisp";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SDISPTEST",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"prodsdispt": [
{
"sourceId": 95,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "prodSpjob",
"proId": 4634,
"oriUnitId": 39720
}
]
}
4、返回示例
{
"tranId": 18,
"tranCode": "SDISPTEST",
"message": "",
"status": true
}
# 读取工艺委外派工单
# 一、接口描述
用于读取工艺委外派工单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/prodSdisp |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSdisp |
id | long(Query) | 是 | 工艺委外派工单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/prodSdisp";
String param = "&menuCode=prodSdisp&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"prodremsdisp": [
{
"hId": 18,
"i18nField": "{\"remarks_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "",
"remarks_haha1": "",
"iRev": 1,
"id": 18,
"remarks_zh-TW": "",
"remarks": "",
"remarks_ctw": "",
"ce01Module": "prodSdisp"
}
],
"prodmainsdisp": [
{
"tDate": 1647964800000,
"lastModifyUid": 20,
"code": "SDISPTEST",
"cnDeptId": 0,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"amt": 0,
"iRev": 1,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "prodSdisp",
"ce01Module": "prodSdisp",
"beId": 142,
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"useAccessBl": false,
"id": 18,
"doctypeId": 0,
"statusModifyDate": 1648885560000,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648885560000,
"createUid": 20,
"createDate": 1648885560000,
"rev": "1",
"lastApproveUid": 20,
"ttlCharge": 0,
"expiredUid": 0,
"useAccessWl": false,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"PIE\"}",
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"useAccessAutoCalc": false,
"staffId": 21,
"status": "Y",
"domAmtDiff": 0
}
],
"prodsdispt": [
{
"sourceId": 95,
"dDesc_ctw": "",
"dualQty": 0,
"amt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSdisp",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "<p> </p>",
"domAmt": 0,
"processId": 12,
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "多工艺产品 tc 1",
"unitId": 39720,
"dDesc_ccn": "",
"id": 25,
"up": 0,
"dDesc_haha1": "",
"hId": 18,
"mjobId": 425,
"bDesc_en": "多工艺产品 1",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"oriUnitId": 39720,
"dualUnitId": 4489,
"oriUp": 0,
"sourceLot": "A",
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\"}",
"sourceType": "prodSpjob",
"proId": 4634,
"qty": 100,
"disc": 0,
"refCode": "",
"bDesc_zh-CN": "多工艺产品 sc 1"
}
],
"prodsdispstt": [
{
"sourceId": 425,
"dDesc_ctw": "",
"dualQty": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSdisp",
"beId": 142,
"sourceDate": 1647964800000,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "<p> </p>",
"spjobType": "prodSpjob",
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "多工艺产品 tc 1",
"unitId": 39720,
"dDesc_ccn": "",
"id": 33,
"dDesc_haha1": "",
"hId": 18,
"cDate": 1648656000000,
"bDesc_en": "多工艺产品 1",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"sourceProId": 4634,
"spjobId": 95,
"oriUnitId": 39720,
"dualUnitId": 0,
"sourceLot": "A",
"sourceMjobLot": "A",
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\"}",
"sourceType": "prodMjob",
"sourceDDate": -2209017600000,
"proId": 4634,
"qty": 100,
"spjobLot": "A",
"bDesc_zh-CN": "多工艺产品 sc 1"
}
]
},
"messages": [],
"status": true
}
# 保存工艺委外派工单
# 一、接口描述
用于新增或者更新【工艺委外派工单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/prodSdisp |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSdisp |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/prodSdisp";
String param = "&menuCode=prodSdisp";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"prodmainsdisp": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SDISPTEST2",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"staffId": 785
}
]
},
"prodsdispt": {
"values": [
{
"sourceId": 95,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"mjobId": 425,
"footerKey": " 1",
"sourceType": "prodSpjob",
"processId": 12,
"proId": 4634,
"qty": 100,
"unitId": 39720,
"oriUnitId": 39720
}
]
},
"prodsdispstt": {
"values": [
{
"sourceId": 425,
"cDate": "2022-03-31",
"sourceProId": 4634,
"spjobId": 95,
"oriUnitId": 39720,
"sourceDate": "2022-03-23",
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceMjobLot": "A",
"footerKey": " 1",
"sourceType": "prodMjob",
"sourceDDate": "1900-01-01",
"spjobType": "prodSpjob",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"spjobLot": "A"
}
]
}
}
4、返回示例
{
"recordId": 19,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除工艺委外派工单
# 一、接口描述
用于删除工艺委外派工单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/prodSdisp |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSdisp |
id | long(Query) | 是 | 工艺委外派工单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/prodSdisp";
String param = "&menuCode=prodSdisp&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 工艺委外完工单
# 获取工艺委外完工单列表
# 一、接口描述
用于获取工艺委外完工单列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | prodSc |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=prodSc&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "prodSc",
"size": 1,
"stSearchDisplay": "工艺委外完工单",
"values": [
{
"tDate": "2021-03-17",
"code": "SC20210001",
"st_id": 19,
"st_code": "SC20210001",
"st_desc": "SC20210001",
"iRev": 5,
"id": 19,
"lastModifyDate": "2021-09-26 14:40:18",
"prodMainSc.lastModifyUid.simpleUser.desc__lang": "Milk"
}
]
}
# 新增工艺委外完工单(自动补全)
# 一、接口描述
1. 用于新增【工艺委外完工单】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/prodSc |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/prodSc";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"prodsct": [
{
"sourceId": 20,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "prodSdisp",
"proId": 4634,
"oriUnitId": 39720,
"passQty": 100
}
],
"tDate": "2022-03-23",
"curId": 2,
"code": "SCTEST",
"venId": 99,
"virDeptId": 7,
"rate": 1
}
4、返回示例
{
"tranId": 21,
"tranCode": "SCTEST",
"message": "",
"status": true
}
# 读取工艺委外完工单
# 一、接口描述
用于读取工艺委外完工单数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/prodSc |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSc |
id | long(Query) | 是 | 工艺委外完工单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/prodSc";
String param = "&menuCode=prodSc&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"prodsct": [
{
"sourceId": 20,
"dDesc_ctw": "",
"failQty": 0,
"dualQty": 0,
"amt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSc",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "<p> </p>",
"domAmt": 0,
"processId": 12,
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"scrapMQty": 0,
"bDesc_zh-TW": "多工艺产品 tc 1",
"unitId": 39720,
"dDesc_ccn": "",
"id": 25,
"up": 0,
"dDesc_haha1": "",
"hId": 21,
"mjobId": 425,
"bDesc_en": "多工艺产品 1",
"scrapQty": 0,
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"spjobId": 95,
"oriUnitId": 39720,
"dualUnitId": 4489,
"passQty": 100,
"oriUp": 0,
"sourceLot": "A",
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\"}",
"sourceType": "prodSdisp",
"proId": 4634,
"qty": 100,
"scrapMachineQty": 0,
"disc": 0,
"spjobLot": "A",
"refCode": "",
"bDesc_zh-CN": "多工艺产品 sc 1"
}
],
"prodmainsc": [
{
"tDate": 1647964800000,
"lastModifyUid": 20,
"code": "SCTEST",
"cnDeptId": 0,
"useAccess": false,
"virDeptId": 7,
"expiredDate": -2209017600000,
"amt": 0,
"iRev": 1,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "prodSc",
"ce01Module": "prodSc",
"beId": 142,
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"useAccessBl": false,
"id": 21,
"doctypeId": 0,
"statusModifyDate": 1648886818000,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648886818000,
"createUid": 20,
"createDate": 1648886818000,
"rev": "1",
"lastApproveUid": 20,
"ttlCharge": 0,
"expiredUid": 0,
"useAccessWl": false,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"position_zh-CN\": \"PIE\"}",
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"useAccessAutoCalc": false,
"staffId": 21,
"status": "Y",
"domAmtDiff": 0
}
],
"prodremsc": [
{
"hId": 21,
"i18nField": "{\"remarks_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"remarks_ccn": "",
"remarks_en": "",
"remarks_haha1": "",
"iRev": 1,
"id": 21,
"remarks_zh-TW": "",
"remarks": "",
"remarks_ctw": "",
"ce01Module": "prodSc"
}
],
"prodscstt": [
{
"sourceId": 425,
"dDesc_ctw": "",
"dualQty": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSc",
"beId": 142,
"sourceDate": 1647964800000,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "<p> </p>",
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "多工艺产品 tc 1",
"unitId": 39720,
"dDesc_ccn": "",
"id": 36,
"sdispType": "prodSdisp",
"sdispId": 20,
"dDesc_haha1": "",
"hId": 21,
"cDate": 1648656000000,
"bDesc_en": "多工艺产品 1",
"dDesc_en": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"sourceProId": 4634,
"spjobId": 95,
"oriUnitId": 39720,
"dualUnitId": 0,
"sourceLot": "A",
"sourceMjobLot": "A",
"footerKey": " 1",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"i18nField": "{\"bDesc_en\": \"多工艺产品 1\", \"dDesc_en\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"bDesc_zh-TW\": \"多工艺产品 tc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\", \"dDesc_zh-TW\": \"<p> </p>\"}",
"sourceType": "prodMjob",
"sourceDDate": -2209017600000,
"sdispLot": "A",
"proId": 4634,
"qty": 100,
"spjobLot": "A",
"bDesc_zh-CN": "多工艺产品 sc 1"
}
]
},
"messages": [],
"status": true
}
# 保存工艺委外完工单
# 一、接口描述
用于新增或者更新【工艺委外完工单】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/prodSc |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSc |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/prodSc";
String param = "&menuCode=prodSc";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"prodsct": {
"values": [
{
"sourceId": 20,
"mjobId": 425,
"spjobId": 95,
"oriUnitId": 39720,
"passQty": 100,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"footerKey": " 1",
"sourceType": "prodSdisp",
"processId": 12,
"proId": 4634,
"qty": 100,
"unitId": 39720,
"spjobLot": "A"
}
]
},
"prodmainsc": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SCTEST2",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"staffId": 785
}
]
},
"prodscstt": {
"values": [
{
"sourceId": 425,
"cDate": "2022-03-31",
"sourceProId": 4634,
"spjobId": 95,
"oriUnitId": 39720,
"sourceDate": "2022-03-23",
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceMjobLot": "A",
"footerKey": " 1",
"sourceType": "prodMjob",
"sourceDDate": "1900-01-01",
"sdispLot": "A",
"proId": 4634,
"qty": 100,
"unitId": 39720,
"spjobLot": "A",
"sdispType": "prodSdisp",
"sdispId": 20
}
]
}
}
4、返回示例
{
"recordId": 22,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除工艺委外完工单
# 一、接口描述
用于删除工艺委外完工单
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/prodSc |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSc |
id | long(Query) | 是 | 工艺委外完工单的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/prodSc";
String param = "&menuCode=prodSc&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}
# 工艺委外发票
# 获取工艺委外发票列表
# 一、接口描述
用于获取工艺委外发票列表(同UI界面左侧的Search List数据)
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/search/search |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
stSearch | String(Query) | 是 | prodSi |
beId | long(Query) | 是 | aiM18企业法人[部门]的ID |
formatId | long(Query) | 否 | aiM18[查询格式]的ID,用于获取[查询格式]步骤二中设定的栏位格式;若不使用此参数,则使用默认设置。 |
startRow | int(Query) | 否 | 返回结果的开始行 |
endRow | int(Query) | 否 | 返回结果的结束行 |
quickSearchStr | String(Query) | 否 | 用于设定关键字查找数据 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/search/search";
String param = "&stSearch=prodSi&beId=" + beId;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"stSearch": "prodSi",
"size": 1,
"stSearchDisplay": "工艺委外发票",
"values": [
{
"tDate": "2019-09-24",
"prodMainSi.lastModifyUid.simpleUser.desc__lang": "Milk",
"code": "SC20190003",
"prodMainSi.venId.ven.code": "V0002",
"st_id": 4,
"st_code": "SC20190003",
"st_desc": "SC20190003",
"prodMainSi.venId.ven.desc__lang": "Group Test 1",
"prodMainSi.curId.cur.sym": "HK$",
"iRev": 6,
"id": 4,
"lastModifyDate": "2020-05-13 16:02:01"
}
]
}
# 新增工艺委外发票(自动补全)
# 一、接口描述
1. 用于新增【工艺委外发票】
2. 此接口方法有如下特点:
a. 支持使用code 替代 id 栏位
b. 货币栏位未填时,自动使用本货币
c. 职员栏位未填时,自动使用个人选项中的默认职员
d. 单据日期未填时,根据贸易参数设定中的日期选项取值
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/erp/bsFlow/save/prodSi |
---|---|
http请求方式 | POST |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/erp/bsFlow/save/prodSi";
String param = "";
HttpPost post = new HttpPost(url + "?" + param);
post.addHeader("authorization", access_token);
post.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
post.setEntity(entity);
res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("tranId");
}
System.out.println(json);
}
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
data数据示例:
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SITEST",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"prodsit": [
{
"sourceId": 23,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"sourceType": "prodSc",
"proId": 4634,
"oriUnitId": 39720
}
]
}
4、返回示例
{
"tranId": 6,
"tranCode": "SITEST",
"message": "",
"status": true
}
# 读取工艺委外发票
# 一、接口描述
用于读取工艺委外发票数据
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/read/prodSi |
---|---|
http请求方式 | GET |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSi |
id | long(Query) | 是 | 工艺委外发票的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/read/prodSi";
String param = "&menuCode=prodSi&id=" + id;
HttpGet get = new HttpGet(url + "?" + param);
get.addHeader("authorization", access_token);
get.addHeader("client_id", ClientID);
res = client.execute(get);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
get.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"data": {},
"messages": [
{
"msgDetail": "找不到相关记录,记录可能已被删除或你没有访问权限",
"msgCode": "core_141019"
}
],
"status": false
}
{
"data": {
"prodmainsi": [
{
"cpDate": 1648828800000,
"lastModifyUid": 20,
"useAccess": false,
"virDeptId": 7,
"accDesc_ccn": "",
"expiredDate": -2209017600000,
"installNo": 0,
"position_zh-CN": "PIE",
"sysJson": "",
"viewCode": "prodSi",
"accDesc": "",
"accDesc_haha1": "",
"eDiscRate": 0,
"beId": 142,
"comRate": 0,
"useAccessBl": false,
"id": 6,
"locked": false,
"position_ctw": "",
"lastModifyDate": 1648887837000,
"createUid": 20,
"showEarlyPayDisc": false,
"accDesc_ctw": "",
"fromModule": "",
"rev": "1",
"lastApproveUid": 20,
"method": "cod",
"ttlCharge": 0,
"expiredUid": 0,
"position_en": "",
"position_zh-TW": "",
"venId": 99,
"i18nField": "{\"accDesc_zh-CN\": \"\", \"position_zh-CN\": \"PIE\"}",
"dayOfMonth": 0,
"monthEndDate": 0,
"accDesc_en": "",
"manId": 48,
"ttlAmt": 0,
"position": "PIE",
"venInvNo": "",
"status": "Y",
"hpSetting": "dayAfterInv",
"tDate": 1647964800000,
"code": "SITEST",
"cnDeptId": 0,
"jlTypeId": 0,
"amt": 0,
"iRev": 1,
"accDesc_zh-TW": "",
"aInvMonth": 0,
"depoAmt": 0,
"ce01Module": "prodSi",
"curId": 2,
"expired": false,
"rate": 1,
"domAmt": 0,
"printCount": 0,
"statusModifyDate": 1648887837000,
"domDepoAmt": 0,
"locId": 0,
"createDate": 1648887837000,
"loadNeed": true,
"accDesc_zh-CN": "",
"cp": 0,
"useAccessWl": false,
"position_ccn": "",
"ttlDisc": 0,
"position_haha1": "",
"useAccessAutoCalc": false,
"staffId": 21,
"domAmtDiff": 0
}
],
"prodsit": [
{
"sourceId": 23,
"dDesc_ctw": "",
"dualQty": 0,
"costAmt": 0,
"amt": 0,
"iRev": 1,
"itemNo": " 1",
"dDesc_zh-CN": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"bDesc_ctw": "",
"ce01Module": "prodSi",
"beId": 142,
"lot": "A",
"oriQty": 100,
"bDesc_haha1": "",
"dDesc_zh-TW": "",
"domAmt": 0,
"processId": 12,
"bDesc": "多工艺产品 sc 1",
"bDesc_ccn": "",
"bDesc_zh-TW": "",
"newLotno": 0,
"unitId": 39720,
"dDesc_ccn": "",
"id": 6,
"up": 0,
"locId": 0,
"dDesc_haha1": "",
"hId": 6,
"mjobId": 425,
"bDesc_en": "",
"dDesc_en": "",
"dualUnitId": 4489,
"spjobId": 95,
"oriUnitId": 39720,
"oriUp": 0,
"sourceLot": "A",
"dDesc": "<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>",
"footerKey": " 1",
"i18nField": "{\"bDesc_zh-CN\": \"多工艺产品 sc 1\", \"dDesc_zh-CN\": \"<p>钻石套装 -- 18K鑽戒 (女) 1<br></p>\"}",
"sourceType": "prodSc",
"proId": 4634,
"qty": 100,
"disc": 0,
"spjobLot": "A",
"refCode": "",
"lotNoId": 0,
"bDesc_zh-CN": "多工艺产品 sc 1"
}
],
"prodremsi": [
{
"tradeTerm_ccn": "",
"tradeTerm_en": "",
"shipMark": "",
"heading_en": "",
"shipMark_zh-CN": "",
"tradeTerm_zh-CN": "",
"shipMark_ctw": "",
"remarks_en": "",
"payTerm_en": "",
"iRev": 1,
"heading_zh-CN": "",
"ce01Module": "prodSi",
"tradeTerm": "",
"heading_ccn": "",
"payTerm_haha1": "",
"payTerm_zh-TW": "",
"remarks_haha1": "",
"shipMark_en": "",
"id": 6,
"remarks_zh-TW": "",
"particular_ccn": "",
"hId": 6,
"heading_haha1": "",
"payTerm": "",
"particular_en": "",
"heading_zh-TW": "",
"payTerm_ccn": "",
"heading": "",
"particular_haha1": "",
"remarks_ccn": "",
"particular_zh-TW": "",
"heading_ctw": "",
"tradeTerm_ctw": "",
"particular": "",
"tradeTerm_zh-TW": "",
"shipMark_ccn": "",
"tradeTerm_haha1": "",
"particular_zh-CN": "",
"i18nField": "{\"heading_zh-CN\": \"\", \"payTerm_zh-CN\": \"\", \"remarks_zh-CN\": \"\", \"shipMark_zh-CN\": \"\", \"tradeTerm_zh-CN\": \"\", \"particular_zh-CN\": \"\"}",
"remarks_zh-CN": "",
"particular_ctw": "",
"shipMark_haha1": "",
"payTerm_zh-CN": "",
"payTerm_ctw": "",
"shipMark_zh-TW": "",
"remarks": "",
"remarks_ctw": ""
}
]
},
"messages": [],
"status": true
}
# 保存工艺委外发票
# 一、接口描述
用于新增或者更新【工艺委外发票】
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/save/prodSi |
---|---|
http请求方式 | PUT |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSi |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/save/prodSi";
String param = "&menuCode=prodSi";
HttpPut put = new HttpPut(url + "?" + param);
put.addHeader("authorization", access_token);
put.addHeader("client_id", ClientID);
StringEntity entity = new StringEntity(data.toJSONString(), ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
put.setEntity(entity);
res = client.execute(put);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
if (json != null) {
recordId = json.getLongValue("recordId");
}
System.out.println(json);
}
put.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Entity的JSON格式数据如下:
{
"prodmainsi": {
"values": [
{
"beId": 142,
"tDate": "2022-03-23",
"curId": 2,
"code": "SITEST2",
"venId": 99,
"virDeptId": 7,
"rate": 1,
"staffId": 785
}
]
},
"prodsit": {
"values": [
{
"sourceId": 23,
"mjobId": 425,
"spjobId": 95,
"oriUnitId": 39720,
"lot": "A",
"oriQty": 100,
"sourceLot": "A",
"footerKey": " 1",
"sourceType": "prodSc",
"processId": 12,
"proId": 4634,
"qty": 100,
"unitId": 39720,
"spjobLot": "A"
}
]
}
}
4、返回示例
{
"recordId": 7,
"messages": [],
"status": true
}
{
"recordId": 0,
"messages": [
{
"msgDetail": "必填项为空",
"msgCode": "core_101905"
}
],
"status": false
}
# 删除工艺委外发票
# 一、接口描述
用于删除工艺委外发票
# 二、接口调用说明
1、请求说明
URL | http://[server]/jsf/rfws/root/api/delete/prodSi |
---|---|
http请求方式 | DELETE |
编码类型 | UTF-8 |
2、URL参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
authorization | String(Header) | 是 | OAuth获取的Access Token |
client_id | String(Header) | 是 | aiM18[授权应用列表]中的Client ID |
menuCode | String(Query) | 是 | prodSi |
id | long(Query) | 是 | 工艺委外发票的id |
param | String(Query) | 否 | 额外的系统参数;JSON字符串 |
3、请求示例
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse res = null;
try {
String url = "http://" + HostIP + ":" + HostPort + "/jsf/rfws/root/api/delete/prodSi";
String param = "&menuCode=prodSi&id=" + id;
HttpDelete delete = new HttpDelete(url + "?" + param);
delete.addHeader("authorization", access_token);
delete.addHeader("client_id", ClientID);
res = client.execute(delete);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
JSONObject json = JSON.parseObject(EntityUtils.toString(res.getEntity()));
System.out.println(json);
}
delete.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (res != null) {
res.close();
}
if (client != null) {
client.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
4、返回示例
{
"messages": [],
"status": true
}
{
"messages": [
{
"msgDetail": "单据已被删除",
"msgCode": "core_101017"
}
],
"status": false
}