Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Pangea-Agent
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
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
Gavin-Group
Pangea-Agent
Commits
34f2abd7
Commit
34f2abd7
authored
Dec 25, 2025
by
youxiaoji
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+ [针对日期控件增加format参数]
* [保存工具增加表单form的返回]
parent
3fe30569
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
24 deletions
+30
-24
VisitorAppointmentTool.java
...java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
+30
-24
No files found.
backend/src/main/java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
View file @
34f2abd7
...
@@ -226,6 +226,10 @@ public class VisitorAppointmentTool {
...
@@ -226,6 +226,10 @@ public class VisitorAppointmentTool {
saveScreenShot
(
page
.
screenshot
(),
"ipark"
);
saveScreenShot
(
page
.
screenshot
(),
"ipark"
);
page
.
getByRole
(
AriaRole
.
BUTTON
,
new
Page
.
GetByRoleOptions
().
setName
(
"提交"
))
page
.
getByRole
(
AriaRole
.
BUTTON
,
new
Page
.
GetByRoleOptions
().
setName
(
"提交"
))
.
click
();
.
click
();
page
.
waitForTimeout
(
3000
);
if
(
page
.
url
().
compareToIgnoreCase
(
destUrl
)
==
0
){
log
.
info
(
"有必填项未提供"
);
}
return
"提交成功"
;
return
"提交成功"
;
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
long
endTime
=
System
.
currentTimeMillis
();
long
endTime
=
System
.
currentTimeMillis
();
...
@@ -260,13 +264,24 @@ public class VisitorAppointmentTool {
...
@@ -260,13 +264,24 @@ public class VisitorAppointmentTool {
}
}
}
}
@Tool
(
description
=
"
保存用户提交的访客预约申请
信息"
)
@Tool
(
description
=
"
如果在用户信息中有任何与访客预约相关的信息,调用这个工具来保存访客预约
信息"
)
public
String
applyInfoSave
(
@ToolParam
(
required
=
true
)
JSONObject
infos
)
{
public
String
applyInfoSave
(
@ToolParam
(
required
=
true
)
JSONObject
infos
)
throws
IOException
{
log
.
info
(
"applyInfoSave(infos={})"
,
infos
);
log
.
info
(
"applyInfoSave(infos={})"
,
infos
);
infos
.
keySet
().
forEach
(
key
->
{
infos
.
keySet
().
forEach
(
key
->
{
infoCollectorService
.
saveValue
(
key
,
infos
.
get
(
key
));
infoCollectorService
.
saveValue
(
key
,
infos
.
get
(
key
));
});
});
Set
<
String
>
keys
=
infoCollectorService
.
findLackInfo
(
pageId
);
Set
<
String
>
keys
=
infoCollectorService
.
findLackInfo
(
pageId
);
JSONArray
jsonArray
=
infoCollectorService
.
getInfo
(
pageId
);
JSONArray
lackJson
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++){
JSONObject
tmp
=
jsonArray
.
getJSONObject
(
i
);
if
(
keys
.
contains
(
tmp
.
getString
(
"field_name"
))){
lackJson
.
add
(
tmp
.
getJSONObject
(
"pangea_json"
));
}
}
JSONObject
formMessage
=
new
JSONObject
();
formMessage
.
put
(
"coms"
,
lackJson
);
sendFormMessage
(
formMessage
);
StringBuilder
sb
=
new
StringBuilder
();
StringBuilder
sb
=
new
StringBuilder
();
if
(
keys
.
isEmpty
())
{
if
(
keys
.
isEmpty
())
{
sb
.
append
(
"用户已提交全部数据,提示用户提交申请"
);
sb
.
append
(
"用户已提交全部数据,提示用户提交申请"
);
...
@@ -282,6 +297,11 @@ public class VisitorAppointmentTool {
...
@@ -282,6 +297,11 @@ public class VisitorAppointmentTool {
}
}
return
sb
.
toString
();
return
sb
.
toString
();
}
}
private
void
sendFormMessage
(
JSONObject
formMessage
)
throws
IOException
{
SseEmitter
sseEmitter
=
userSseService
.
getEmitter
(
"worker1"
);
log
.
info
(
"Send Form Message {}"
,
formMessage
);
sseEmitter
.
send
(
SseEmitter
.
event
().
name
(
"form"
).
data
(
formMessage
));
}
/**
/**
* 工具方法:获取海信访客预约申请的网页内容
* 工具方法:获取海信访客预约申请的网页内容
...
@@ -326,31 +346,15 @@ public class VisitorAppointmentTool {
...
@@ -326,31 +346,15 @@ public class VisitorAppointmentTool {
jsonArray
=
infoCollectorService
.
getInfo
(
pageId
);
jsonArray
=
infoCollectorService
.
getInfo
(
pageId
);
}
}
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
// stringBuilder.append("用户需要提供的信息包括:");
// stringBuilder.append("\n");
// for(int i=0;i<jsonArray.size();i++){
// log.info("index {} ",i);
// JSONObject obj = jsonArray.getJSONObject(i);
// stringBuilder.append(obj.getString("field_name"));
// stringBuilder.append("\n");
// }
// stringBuilder.append("提示用户以json格式提交信息");
//stringBuilder.append("从FORMSTART开始到FORMEND结束是要返回给用户的数据,直接展示给用户就可以。FORM START:");
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"FORM"
,
jsonArray
);
//stringBuilder.append("FORM END");
// 提取页面内容
// 提取页面内容
String
content
=
stringBuilder
.
toString
();
String
content
=
stringBuilder
.
toString
();
SseEmitter
sseEmitter
=
userSseService
.
getEmitter
(
"worker1"
);
JSONObject
formMessage
=
generateJson
(
jsonArray
);
JSONObject
formMessage
=
generateJson
(
jsonArray
);
log
.
info
(
"Send Form Message {}"
,
formMessage
);
sendFormMessage
(
formMessage
);
sseEmitter
.
send
(
SseEmitter
.
event
().
name
(
"form"
).
data
(
formMessage
));
long
endTime
=
System
.
currentTimeMillis
();
long
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"成功获取海信出差申请页面内容,耗时: {} ms"
,
endTime
-
startTime
);
log
.
info
(
"成功获取海信出差申请页面内容,耗时: {} ms"
,
endTime
-
startTime
);
log
.
info
(
"用户需要提交的信息包括:{}"
,
content
);
log
.
info
(
"用户需要提交的信息包括:{}"
,
formMessage
);
stringBuilder
.
append
(
formMessage
.
toJSONString
());
stringBuilder
.
append
(
formMessage
.
toJSONString
());
stringBuilder
.
append
(
"提示用户以json格式提交信息"
);
stringBuilder
.
append
(
"提示用户以json格式提交信息
;如果用户已提供部分信息,需要将这些信息与`props.name`属性的值进行匹配,并将匹配之后的信息以json格式提交到`applyInfoSave`以保存信息
"
);
return
stringBuilder
.
toString
();
return
stringBuilder
.
toString
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -376,6 +380,7 @@ public class VisitorAppointmentTool {
...
@@ -376,6 +380,7 @@ public class VisitorAppointmentTool {
JSONObject
tmp
=
jsonArray
.
getJSONObject
(
i
);
JSONObject
tmp
=
jsonArray
.
getJSONObject
(
i
);
JSONObject
obj
=
buildComponents
(
tmp
);
JSONObject
obj
=
buildComponents
(
tmp
);
tmp
.
put
(
"code"
,
obj
.
getJSONObject
(
"props"
).
getString
(
"name"
));
tmp
.
put
(
"code"
,
obj
.
getJSONObject
(
"props"
).
getString
(
"name"
));
tmp
.
put
(
"pangea_json"
,
obj
);
components
.
add
(
obj
);
components
.
add
(
obj
);
}
}
JSONObject
obj
=
new
JSONObject
();
JSONObject
obj
=
new
JSONObject
();
...
@@ -388,15 +393,16 @@ public class VisitorAppointmentTool {
...
@@ -388,15 +393,16 @@ public class VisitorAppointmentTool {
obj
.
put
(
"key"
,
HybridUniqueLongGenerator
.
generateUnique13DigitNumber
());
obj
.
put
(
"key"
,
HybridUniqueLongGenerator
.
generateUnique13DigitNumber
());
obj
.
put
(
"name"
,
"输入框"
);
obj
.
put
(
"name"
,
"输入框"
);
String
name
=
InputCodeGenerator
.
generateUniqueInputCode
(
"INPUT_"
);
String
name
=
InputCodeGenerator
.
generateUniqueInputCode
(
"INPUT_"
);
JSONObject
props
=
new
JSONObject
();
props
.
put
(
"title"
,
source
.
getString
(
"field_name"
));
props
.
put
(
"status"
,
"default"
);
if
(
source
.
getString
(
"field_name"
).
contains
(
"日期"
))
{
if
(
source
.
getString
(
"field_name"
).
contains
(
"日期"
))
{
obj
.
put
(
"code"
,
"HiDatePicker"
);
obj
.
put
(
"code"
,
"HiDatePicker"
);
name
=
InputCodeGenerator
.
generateUniqueInputCode
(
"DATE_"
);
name
=
InputCodeGenerator
.
generateUniqueInputCode
(
"DATE_"
);
props
.
put
(
"format"
,
"YYYY-MM-DD"
);
}
else
{
}
else
{
obj
.
put
(
"code"
,
"HiInput"
);
obj
.
put
(
"code"
,
"HiInput"
);
}
}
JSONObject
props
=
new
JSONObject
();
props
.
put
(
"title"
,
source
.
getString
(
"field_name"
));
props
.
put
(
"status"
,
"default"
);
props
.
put
(
"name"
,
name
);
props
.
put
(
"name"
,
name
);
obj
.
put
(
"props"
,
props
);
obj
.
put
(
"props"
,
props
);
return
obj
;
return
obj
;
...
...
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