联查合同接口开发;
This commit is contained in:
+23
-67
@@ -1433,82 +1433,49 @@ public class ContractManageApplicationService {
|
|||||||
|
|
||||||
private static final String WEBSERVICE_URL = "http://10.33.0.116:8080/sys/webservice/ngLegalByFindWebserviceService";
|
private static final String WEBSERVICE_URL = "http://10.33.0.116:8080/sys/webservice/ngLegalByFindWebserviceService";
|
||||||
|
|
||||||
public List<String> getContractNosByCompanyName(String companyName) {
|
public List<com.alibaba.fastjson.JSONObject> getContractNosByCompanyName(String companyName, int pageNum, int pageSize) {
|
||||||
List<String> contractNos = new ArrayList<>();
|
List<com.alibaba.fastjson.JSONObject> contractList = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
log.info("=== 开始查询合同编号 ===");
|
log.info("=== 开始查询合同列表 ===");
|
||||||
log.info("查询公司: {}", companyName);
|
log.info("查询公司: {}, 页码: {}, 每页数量: {}", companyName, pageNum, pageSize);
|
||||||
|
|
||||||
// 1. 构建JSON参数 - 使用绝对正确的格式
|
String httpRequest = buildXmlRequest(companyName, pageNum, pageSize);
|
||||||
String fdRelativePersonJson = "{\"fdName\":\"" + companyName + "\"}";
|
|
||||||
log.info("JSON参数: {}", fdRelativePersonJson);
|
|
||||||
|
|
||||||
// 2. 构建XML请求 - 使用和Postman完全相同的格式
|
|
||||||
String httpRequest = buildXmlRequest(companyName);
|
|
||||||
log.info("XML请求: {}", httpRequest);
|
log.info("XML请求: {}", httpRequest);
|
||||||
log.info("XML请求生成完成,长度: {} 字符", httpRequest.length());
|
log.info("XML请求生成完成,长度: {} 字符", httpRequest.length());
|
||||||
|
|
||||||
// 3. 调用WebService
|
|
||||||
log.info("正在调用WebService...");
|
log.info("正在调用WebService...");
|
||||||
String httpResponse = HttpWebServiceUtil.callWebService(httpRequest, WEBSERVICE_URL);
|
String httpResponse = HttpWebServiceUtil.callWebService(httpRequest, WEBSERVICE_URL);
|
||||||
|
|
||||||
// 4. 提取JSON - 使用更可靠的提取方法
|
|
||||||
String jsonData = extractJsonFromResponse(httpResponse);
|
String jsonData = extractJsonFromResponse(httpResponse);
|
||||||
|
|
||||||
log.info("正在解析JSON..."+jsonData);
|
log.info("正在解析JSON..."+jsonData);
|
||||||
//jsonData内容
|
|
||||||
// {
|
|
||||||
// "returnState": "2",
|
|
||||||
// "data": [
|
|
||||||
// {
|
|
||||||
// "contract_Id": "16f830763e15793f5aafab14b309075c",
|
|
||||||
// "contract_Name": "档案保管服务协议",
|
|
||||||
// "contract_No": "HT20200108130",
|
|
||||||
// "contract_Total": 134323.36,
|
|
||||||
// "contract_Star": "20181101",
|
|
||||||
// "contract_End": "20231101",
|
|
||||||
// "contract_relative": [
|
|
||||||
// {
|
|
||||||
// "relativeName": "珠海通宇物流有限公司"
|
|
||||||
// }
|
|
||||||
// ],
|
|
||||||
// "contract_Operator": "蔡振燕",
|
|
||||||
// "contract_capitalFlows": "支出",
|
|
||||||
// "contract_SigningName": "南光置业有限公司-本部",
|
|
||||||
// "contract_pay": [],
|
|
||||||
// "contract_purchases": []
|
|
||||||
// }
|
|
||||||
// ]
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (jsonData == null || jsonData.trim().isEmpty()) {
|
if (jsonData == null || jsonData.trim().isEmpty()) {
|
||||||
log.warn("未提取到JSON数据,返回空列表");
|
log.warn("未提取到JSON数据,返回空列表");
|
||||||
return contractNos;
|
return contractList;
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("提取到JSON数据,长度: {} 字符", jsonData.length());
|
log.info("提取到JSON数据,长度: {} 字符", jsonData.length());
|
||||||
|
|
||||||
// 5. 解析JSON
|
List<com.alibaba.fastjson.JSONObject> result = parseContractListFromJson(jsonData);
|
||||||
List<String> result = parseContractNosFromJson(jsonData);
|
contractList.addAll(result);
|
||||||
contractNos.addAll(result);
|
|
||||||
|
|
||||||
log.info("=== 查询完成 ===");
|
log.info("=== 查询完成 ===");
|
||||||
log.info("找到 {} 个合同编号", contractNos.size());
|
log.info("找到 {} 个合同", contractList.size());
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询合同编号失败", e);
|
log.error("查询合同列表失败", e);
|
||||||
throw new RuntimeException("查询合同编号失败: " + e.getMessage(), e);
|
throw new RuntimeException("查询合同列表失败: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return contractNos;
|
return contractList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建XML请求 - 硬编码确保和Postman完全一致
|
* 构建XML请求 - 动态分页
|
||||||
*/
|
*/
|
||||||
private String buildXmlRequest(String companyName) {
|
private String buildXmlRequest(String companyName, int pageNum, int pageSize) {
|
||||||
// 使用和Postman完全相同的格式
|
|
||||||
String jsonParam = "{\"fdName\":\"" + companyName + "\"}";
|
String jsonParam = "{\"fdName\":\"" + companyName + "\"}";
|
||||||
|
|
||||||
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||||
@@ -1517,8 +1484,8 @@ public class ContractManageApplicationService {
|
|||||||
"<soapenv:Body>" +
|
"<soapenv:Body>" +
|
||||||
"<web:findNgLegal>" +
|
"<web:findNgLegal>" +
|
||||||
"<arg0 xmlns=\"\">" +
|
"<arg0 xmlns=\"\">" +
|
||||||
"<fdPageNo>1</fdPageNo>" +
|
"<fdPageNo>" + pageNum + "</fdPageNo>" +
|
||||||
"<fdRowSize>10</fdRowSize>" +
|
"<fdRowSize>" + pageSize + "</fdRowSize>" +
|
||||||
"<fdRelativePerson><![CDATA[" + jsonParam + "]]></fdRelativePerson>" +
|
"<fdRelativePerson><![CDATA[" + jsonParam + "]]></fdRelativePerson>" +
|
||||||
"<fdContractNo></fdContractNo>" +
|
"<fdContractNo></fdContractNo>" +
|
||||||
"<fdPersonNo>NA0301</fdPersonNo>" +
|
"<fdPersonNo>NA0301</fdPersonNo>" +
|
||||||
@@ -1576,42 +1543,31 @@ public class ContractManageApplicationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析JSON获取合同编号
|
* 解析JSON获取完整合同列表
|
||||||
*/
|
*/
|
||||||
private List<String> parseContractNosFromJson(String jsonData) {
|
private List<com.alibaba.fastjson.JSONObject> parseContractListFromJson(String jsonData) {
|
||||||
List<String> contractNos = new ArrayList<>();
|
List<com.alibaba.fastjson.JSONObject> contractList = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(jsonData);
|
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(jsonData);
|
||||||
|
|
||||||
// 检查返回状态
|
|
||||||
String returnState = jsonObject.getString("returnState");
|
String returnState = jsonObject.getString("returnState");
|
||||||
if (!"2".equals(returnState)) {
|
if (!"2".equals(returnState)) {
|
||||||
log.warn("返回状态异常: {}", returnState);
|
log.warn("返回状态异常: {}", returnState);
|
||||||
return contractNos;
|
return contractList;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取data数组
|
|
||||||
JSONArray dataArray = jsonObject.getJSONArray("data");
|
JSONArray dataArray = jsonObject.getJSONArray("data");
|
||||||
if (dataArray == null || dataArray.isEmpty()) {
|
if (dataArray == null || dataArray.isEmpty()) {
|
||||||
log.info("查询成功,但未找到合同数据");
|
log.info("查询成功,但未找到合同数据");
|
||||||
return contractNos;
|
return contractList;
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("找到 {} 个合同", dataArray.size());
|
log.info("找到 {} 个合同", dataArray.size());
|
||||||
|
|
||||||
// 遍历提取合同编号
|
|
||||||
for (int i = 0; i < dataArray.size(); i++) {
|
for (int i = 0; i < dataArray.size(); i++) {
|
||||||
com.alibaba.fastjson.JSONObject contract = dataArray.getJSONObject(i);
|
com.alibaba.fastjson.JSONObject contract = dataArray.getJSONObject(i);
|
||||||
String contractNo = contract.getString("contract_No");
|
contractList.add(contract);
|
||||||
String contractName = contract.getString("contract_Name");
|
|
||||||
|
|
||||||
if (contractNo != null && !contractNo.trim().isEmpty()) {
|
|
||||||
contractNos.add(contractNo.trim() + " " + contractName.trim());
|
|
||||||
log.info("合同 {}: {}", i + 1, contractNo);
|
|
||||||
} else {
|
|
||||||
log.warn("第 {} 个合同没有编号", i + 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -1619,6 +1575,6 @@ public class ContractManageApplicationService {
|
|||||||
log.error("原始JSON: {}", jsonData);
|
log.error("原始JSON: {}", jsonData);
|
||||||
}
|
}
|
||||||
|
|
||||||
return contractNos;
|
return contractList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+15
-5
@@ -1,5 +1,7 @@
|
|||||||
package com.mhd.basic.interfaces.facade.contractManage;
|
package com.mhd.basic.interfaces.facade.contractManage;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -276,14 +278,22 @@ public class ContractManageApi extends BaseController{
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据公司名称获取合同编号列表
|
* 根据公司名称获取合同列表(完整合同内容,支持分页)
|
||||||
* @param companyName 公司名称
|
* @param companyName 公司名称
|
||||||
* @return 合同编号列表
|
* @param pageNum 页码
|
||||||
|
* @param pageSize 每页数量
|
||||||
|
* @return 合同列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/contractNos")
|
@GetMapping("/contractNos")
|
||||||
public AjaxResult getContractNosByCompanyName(@RequestParam String companyName) {
|
public TableDataInfo getContractNosByCompanyName(
|
||||||
contractManageApplicationService.getContractNosByCompanyName(companyName);
|
@RequestParam String companyName,
|
||||||
return AjaxResult.success();
|
@RequestParam(defaultValue = "1") int pageNum,
|
||||||
|
@RequestParam(defaultValue = "10") int pageSize) {
|
||||||
|
List<JSONObject> list = contractManageApplicationService.getContractNosByCompanyName(companyName, pageNum, pageSize);
|
||||||
|
TableDataInfo tableDataInfo = new TableDataInfo(list, list.size());
|
||||||
|
tableDataInfo.setCode(200);
|
||||||
|
tableDataInfo.setMsg("查询成功");
|
||||||
|
return tableDataInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user