Commit 34f2abd7 authored by youxiaoji's avatar youxiaoji

+ [针对日期控件增加format参数]

* [保存工具增加表单form的返回]
parent 3fe30569
......@@ -226,6 +226,10 @@ public class VisitorAppointmentTool {
saveScreenShot(page.screenshot(),"ipark");
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("提交"))
.click();
page.waitForTimeout(3000);
if(page.url().compareToIgnoreCase(destUrl) == 0){
log.info("有必填项未提供");
}
return "提交成功";
}catch (Exception e){
long endTime = System.currentTimeMillis();
......@@ -260,13 +264,24 @@ public class VisitorAppointmentTool {
}
}
@Tool(description = "保存用户提交的访客预约申请信息")
public String applyInfoSave(@ToolParam(required = true) JSONObject infos) {
@Tool(description = "如果在用户信息中有任何与访客预约相关的信息,调用这个工具来保存访客预约信息")
public String applyInfoSave(@ToolParam(required = true) JSONObject infos) throws IOException {
log.info("applyInfoSave(infos={})", infos);
infos.keySet().forEach(key -> {
infoCollectorService.saveValue(key, infos.get(key));
});
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();
if (keys.isEmpty()) {
sb.append("用户已提交全部数据,提示用户提交申请");
......@@ -282,6 +297,11 @@ public class VisitorAppointmentTool {
}
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 {
jsonArray = infoCollectorService.getInfo(pageId);
}
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();
SseEmitter sseEmitter = userSseService.getEmitter("worker1");
JSONObject formMessage = generateJson(jsonArray);
log.info("Send Form Message {}", formMessage);
sseEmitter.send(SseEmitter.event().name("form").data(formMessage));
sendFormMessage(formMessage);
long endTime = System.currentTimeMillis();
log.info("成功获取海信出差申请页面内容,耗时: {} ms", endTime - startTime);
log.info("用户需要提交的信息包括:{}", content);
log.info("用户需要提交的信息包括:{}", formMessage);
stringBuilder.append(formMessage.toJSONString());
stringBuilder.append("提示用户以json格式提交信息");
stringBuilder.append("提示用户以json格式提交信息;如果用户已提供部分信息,需要将这些信息与`props.name`属性的值进行匹配,并将匹配之后的信息以json格式提交到`applyInfoSave`以保存信息");
return stringBuilder.toString();
} catch (Exception e) {
......@@ -376,6 +380,7 @@ public class VisitorAppointmentTool {
JSONObject tmp = jsonArray.getJSONObject(i);
JSONObject obj = buildComponents(tmp);
tmp.put("code", obj.getJSONObject("props").getString("name"));
tmp.put("pangea_json",obj);
components.add(obj);
}
JSONObject obj = new JSONObject();
......@@ -388,15 +393,16 @@ public class VisitorAppointmentTool {
obj.put("key", HybridUniqueLongGenerator.generateUnique13DigitNumber());
obj.put("name", "输入框");
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("日期")) {
obj.put("code", "HiDatePicker");
name = InputCodeGenerator.generateUniqueInputCode("DATE_");
props.put("format", "YYYY-MM-DD");
} else {
obj.put("code", "HiInput");
}
JSONObject props = new JSONObject();
props.put("title", source.getString("field_name"));
props.put("status", "default");
props.put("name", name);
obj.put("props", props);
return obj;
......
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