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
1
Merge Requests
1
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
You need to sign in or sign up before continuing.
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
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.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
;
...
...
@@ -47,4 +49,5 @@ public interface AIDialogueService {
* 调用CSV_CHAIN 接口
*/
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
;
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.entity.csvchain.CSVChainResponse
;
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
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
cn.com.yict.framemax.core.exception.BusinessException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.Header
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.RequestBuilder
;
...
...
@@ -115,6 +112,7 @@ public class AIDialogueServiceImpl implements AIDialogueService {
return
dgToolsAbstractHttpClient
.
doRequest
(
url
,
response
,
headers
);
}
private
BufferedReader
largeModelStream
(
LargeModelDemandResponse
request
)
throws
IOException
{
String
jsonBody
=
dgToolsAbstractHttpClient
.
buildJson
(
request
);
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 {
* CSV_CHAIN 调用
*/
String
CSV_CHAIN
=
"largeModelRest/csvChain.json"
;
/**
* 法律卷宗文件导出
*/
String
LEGAL_FILE
=
"largeModelRest/legalFile.json"
;
}
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;
public
interface
ChainService
{
DBChainResult
dbChain
(
DBChainResponse
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