Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
5d055934
Commit
5d055934
authored
Jul 28, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:法律文件导出
parent
745fdd9a
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
296 additions
and
3 deletions
+296
-3
LegalFileDto.java
src/main/java/cn/com/poc/law/dto/LegalFileDto.java
+32
-0
LegalRest.java
src/main/java/cn/com/poc/law/rest/LegalRest.java
+25
-0
LegalRestImpl.java
src/main/java/cn/com/poc/law/rest/impl/LegalRestImpl.java
+40
-0
AIDialogueService.java
...party/resource/demand/ai/aggregate/AIDialogueService.java
+3
-0
LegalService.java
...thirdparty/resource/demand/ai/aggregate/LegalService.java
+19
-0
AIDialogueServiceImpl.java
...ource/demand/ai/aggregate/impl/AIDialogueServiceImpl.java
+1
-3
LegalServiceImpl.java
...y/resource/demand/ai/aggregate/impl/LegalServiceImpl.java
+40
-0
Item.java
.../poc/thirdparty/resource/demand/ai/entity/legal/Item.java
+72
-0
LegalFileResponse.java
...ty/resource/demand/ai/entity/legal/LegalFileResponse.java
+38
-0
LegalFileResult.java
...arty/resource/demand/ai/entity/legal/LegalFileResult.java
+20
-0
DgtoolsApiRoute.java
.../thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
+5
-0
ChainService.java
...main/java/cn/com/poc/thirdparty/service/ChainService.java
+1
-0
No files found.
src/main/java/cn/com/poc/law/dto/LegalFileDto.java
0 → 100644
View file @
5d055934
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
;
}
}
src/main/java/cn/com/poc/law/rest/LegalRest.java
0 → 100644
View file @
5d055934
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
);
}
src/main/java/cn/com/poc/law/rest/impl/LegalRestImpl.java
0 → 100644
View file @
5d055934
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
();
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/AIDialogueService.java
View file @
5d055934
...
@@ -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
);
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/LegalService.java
0 → 100644
View file @
5d055934
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
);
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/impl/AIDialogueServiceImpl.java
View file @
5d055934
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
();
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/impl/LegalServiceImpl.java
0 → 100644
View file @
5d055934
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
);
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/legal/Item.java
0 → 100644
View file @
5d055934
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
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/legal/LegalFileResponse.java
0 → 100644
View file @
5d055934
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
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/legal/LegalFileResult.java
0 → 100644
View file @
5d055934
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
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
View file @
5d055934
...
@@ -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
{
...
...
src/main/java/cn/com/poc/thirdparty/service/ChainService.java
View file @
5d055934
...
@@ -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
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment