diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 2d8034d60..f8d94a9d6 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -1433,82 +1433,49 @@ public class ContractManageApplicationService { private static final String WEBSERVICE_URL = "http://10.33.0.116:8080/sys/webservice/ngLegalByFindWebserviceService"; - public List getContractNosByCompanyName(String companyName) { - List contractNos = new ArrayList<>(); + public List getContractNosByCompanyName(String companyName, int pageNum, int pageSize) { + List contractList = new ArrayList<>(); try { - log.info("=== 开始查询合同编号 ==="); - log.info("查询公司: {}", companyName); + log.info("=== 开始查询合同列表 ==="); + log.info("查询公司: {}, 页码: {}, 每页数量: {}", companyName, pageNum, pageSize); - // 1. 构建JSON参数 - 使用绝对正确的格式 - String fdRelativePersonJson = "{\"fdName\":\"" + companyName + "\"}"; - log.info("JSON参数: {}", fdRelativePersonJson); - - // 2. 构建XML请求 - 使用和Postman完全相同的格式 - String httpRequest = buildXmlRequest(companyName); + String httpRequest = buildXmlRequest(companyName, pageNum, pageSize); log.info("XML请求: {}", httpRequest); log.info("XML请求生成完成,长度: {} 字符", httpRequest.length()); - // 3. 调用WebService log.info("正在调用WebService..."); String httpResponse = HttpWebServiceUtil.callWebService(httpRequest, WEBSERVICE_URL); - // 4. 提取JSON - 使用更可靠的提取方法 String jsonData = extractJsonFromResponse(httpResponse); 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()) { log.warn("未提取到JSON数据,返回空列表"); - return contractNos; + return contractList; } log.info("提取到JSON数据,长度: {} 字符", jsonData.length()); - // 5. 解析JSON - List result = parseContractNosFromJson(jsonData); - contractNos.addAll(result); + List result = parseContractListFromJson(jsonData); + contractList.addAll(result); log.info("=== 查询完成 ==="); - log.info("找到 {} 个合同编号", contractNos.size()); + log.info("找到 {} 个合同", contractList.size()); } catch (Exception e) { - log.error("查询合同编号失败", e); - throw new RuntimeException("查询合同编号失败: " + e.getMessage(), e); + log.error("查询合同列表失败", e); + throw new RuntimeException("查询合同列表失败: " + e.getMessage(), e); } - return contractNos; + return contractList; } /** - * 构建XML请求 - 硬编码确保和Postman完全一致 + * 构建XML请求 - 动态分页 */ - private String buildXmlRequest(String companyName) { - // 使用和Postman完全相同的格式 + private String buildXmlRequest(String companyName, int pageNum, int pageSize) { String jsonParam = "{\"fdName\":\"" + companyName + "\"}"; return "" + @@ -1517,8 +1484,8 @@ public class ContractManageApplicationService { "" + "" + "" + - "1" + - "10" + + "" + pageNum + "" + + "" + pageSize + "" + "" + "" + "NA0301" + @@ -1576,42 +1543,31 @@ public class ContractManageApplicationService { } /** - * 解析JSON获取合同编号 + * 解析JSON获取完整合同列表 */ - private List parseContractNosFromJson(String jsonData) { - List contractNos = new ArrayList<>(); + private List parseContractListFromJson(String jsonData) { + List contractList = new ArrayList<>(); try { com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(jsonData); - // 检查返回状态 String returnState = jsonObject.getString("returnState"); if (!"2".equals(returnState)) { log.warn("返回状态异常: {}", returnState); - return contractNos; + return contractList; } - // 获取data数组 JSONArray dataArray = jsonObject.getJSONArray("data"); if (dataArray == null || dataArray.isEmpty()) { log.info("查询成功,但未找到合同数据"); - return contractNos; + return contractList; } log.info("找到 {} 个合同", dataArray.size()); - // 遍历提取合同编号 for (int i = 0; i < dataArray.size(); i++) { com.alibaba.fastjson.JSONObject contract = dataArray.getJSONObject(i); - String contractNo = contract.getString("contract_No"); - 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); - } + contractList.add(contract); } } catch (Exception e) { @@ -1619,6 +1575,6 @@ public class ContractManageApplicationService { log.error("原始JSON: {}", jsonData); } - return contractNos; + return contractList; } } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java index 003ed148f..e1138dd51 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java @@ -1,5 +1,7 @@ package com.mhd.basic.interfaces.facade.contractManage; +import com.alibaba.fastjson.JSONObject; + import java.io.IOException; import java.net.URLEncoder; import java.util.List; @@ -276,14 +278,22 @@ public class ContractManageApi extends BaseController{ /** - * 根据公司名称获取合同编号列表 + * 根据公司名称获取合同列表(完整合同内容,支持分页) * @param companyName 公司名称 - * @return 合同编号列表 + * @param pageNum 页码 + * @param pageSize 每页数量 + * @return 合同列表 */ @GetMapping("/contractNos") - public AjaxResult getContractNosByCompanyName(@RequestParam String companyName) { - contractManageApplicationService.getContractNosByCompanyName(companyName); - return AjaxResult.success(); + public TableDataInfo getContractNosByCompanyName( + @RequestParam String companyName, + @RequestParam(defaultValue = "1") int pageNum, + @RequestParam(defaultValue = "10") int pageSize) { + List list = contractManageApplicationService.getContractNosByCompanyName(companyName, pageNum, pageSize); + TableDataInfo tableDataInfo = new TableDataInfo(list, list.size()); + tableDataInfo.setCode(200); + tableDataInfo.setMsg("查询成功"); + return tableDataInfo; } } \ No newline at end of file