Commit 5d055934 authored by alex yao's avatar alex yao

feat:法律文件导出

parent 745fdd9a
package cn.com.poc.law.dto;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.Item;
import java.util.List;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class LegalFileDto {
private List<Item> items;
private String filePath;
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
package cn.com.poc.law.rest;
import cn.com.poc.law.dto.LegalFileDto;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author alex.yao
* @date 2025/7/28
*/
@Permission(Access.Anonymous)
public interface LegalRest extends BaseRest {
/**
* 法律卷宗导出
*
* @param legalFileDto
* @return 文件地址
*/
String legalFileQuery(@RequestBody LegalFileDto legalFileDto);
}
package cn.com.poc.law.rest.impl;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.law.dto.LegalFileDto;
import cn.com.poc.law.rest.LegalRest;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.LegalService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResult;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @author alex.yao
* @date 2025/7/28
*/
@Component
public class LegalRestImpl implements LegalRest {
@Resource
private LegalService legalService;
@Override
public String legalFileQuery(LegalFileDto legalFileDto) {
Assert.notNull(legalFileDto, "法律文件查询参数不能为空");
Assert.notBlank(legalFileDto.getFilePath(), "文件路径不能为空");
Assert.notEmpty(legalFileDto.getItems(), "文件项不能为空");
LegalFileResponse response = new LegalFileResponse();
response.setFilePath(legalFileDto.getFilePath());
response.setItems(legalFileDto.getItems());
LegalFileResult legalFileResult = legalService.legalFile(response);
if (legalFileResult == null) {
throw new BusinessException("法律文件查询失败");
}
return legalFileResult.getFilePath();
}
}
...@@ -9,6 +9,8 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResp ...@@ -9,6 +9,8 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResp
import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.function.FunctionCallResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResult;
import java.io.BufferedReader; import java.io.BufferedReader;
...@@ -47,4 +49,5 @@ public interface AIDialogueService { ...@@ -47,4 +49,5 @@ public interface AIDialogueService {
* 调用CSV_CHAIN 接口 * 调用CSV_CHAIN 接口
*/ */
CSVChainResult csvChain(CSVChainResponse response); CSVChainResult csvChain(CSVChainResponse response);
} }
package cn.com.poc.thirdparty.resource.demand.ai.aggregate;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResult;
/**
* @author alex.yao
* @date 2025/7/28
*/
public interface LegalService {
/**
* 调用法律卷宗文件导出接口
*
* @param response
* @return
*/
LegalFileResult legalFile(LegalFileResponse response);
}
package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl; package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.AIDialogueService; import cn.com.poc.thirdparty.resource.demand.ai.aggregate.AIDialogueService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResult;
...@@ -14,8 +13,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResp ...@@ -14,8 +13,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResp
import cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute; import cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute;
import cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient; import cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient;
import cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService; import cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.Header; import org.apache.http.Header;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.RequestBuilder; import org.apache.http.client.methods.RequestBuilder;
...@@ -115,6 +112,7 @@ public class AIDialogueServiceImpl implements AIDialogueService { ...@@ -115,6 +112,7 @@ public class AIDialogueServiceImpl implements AIDialogueService {
return dgToolsAbstractHttpClient.doRequest(url, response, headers); return dgToolsAbstractHttpClient.doRequest(url, response, headers);
} }
private BufferedReader largeModelStream(LargeModelDemandResponse request) throws IOException { private BufferedReader largeModelStream(LargeModelDemandResponse request) throws IOException {
String jsonBody = dgToolsAbstractHttpClient.buildJson(request); String jsonBody = dgToolsAbstractHttpClient.buildJson(request);
CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpClient httpClient = HttpClients.createDefault();
......
package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.LegalService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResult;
import cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute;
import cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient;
import cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author alex.yao
* @date 2025/7/28
*/
@Service
public class LegalServiceImpl implements LegalService {
@Resource
private DgtoolsAbstractHttpClient dgToolsAbstractHttpClient;
@Resource
private DemandAuthService demandAuthService;
@Override
public LegalFileResult legalFile(LegalFileResponse response) {
String url = DgtoolsApiRoute.DgtoolsAI.LEGAL_FILE;
List<Header> headers = new ArrayList<Header>() {{
add(DgtoolsApiRoute.JSON_HEADER);
add(DgtoolsApiRoute.AI_HEADER);
add(new BasicHeader(DgtoolsApiRoute.HEADER_X_PLATFORM_AUTHORIZATION, demandAuthService.getToken()));
}};
return dgToolsAbstractHttpClient.doRequest(url, response, headers);
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.legal;
import java.util.List;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class Item {
/**
* 替换键
* 例如:
* 1. 姓名 ${name}
* 2. 性别 ${gender}
*/
private String key;
/**
* 替换值
*/
private List<String> value;
/**
* 替换类型
* 1. text - 纯文本替换
* 2. checkbox - 复选框替换
*/
private String type;
/**
* 替换选项 - 仅在 type 为 checkbox 时有效
* 例如:
* 1. 是
* 2. 否
* <p>
* 当替换值中存在 “是” 时,则在生成的合同中勾选 “是”,否则不勾选。
*/
private List<String> options;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public List<String> getValue() {
return value;
}
public void setValue(List<String> value) {
this.value = value;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public List<String> getOptions() {
return options;
}
public void setOptions(List<String> options) {
this.options = options;
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.legal;
import cn.com.poc.thirdparty.resource.demand.dgTools.request.AbstractRequest;
import java.io.Serializable;
import java.util.List;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class LegalFileResponse extends AbstractRequest<LegalFileResult> implements Serializable {
private List<Item> items;
private String filePath;
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
@Override
public String getMethod() throws Exception {
return null;
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.legal;
import cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class LegalFileResult extends AbstractResult {
private String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
...@@ -296,6 +296,11 @@ public interface DgtoolsApiRoute { ...@@ -296,6 +296,11 @@ public interface DgtoolsApiRoute {
* CSV_CHAIN 调用 * CSV_CHAIN 调用
*/ */
String CSV_CHAIN = "largeModelRest/csvChain.json"; String CSV_CHAIN = "largeModelRest/csvChain.json";
/**
* 法律卷宗文件导出
*/
String LEGAL_FILE = "largeModelRest/legalFile.json";
} }
interface ClickHouse { interface ClickHouse {
......
...@@ -12,6 +12,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult; ...@@ -12,6 +12,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult;
public interface ChainService { public interface ChainService {
DBChainResult dbChain(DBChainResponse response); DBChainResult dbChain(DBChainResponse response);
CSVChainResult csvChain(CSVChainResponse response); CSVChainResult csvChain(CSVChainResponse response);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment