Commit 34f2abd7 authored by youxiaoji's avatar youxiaoji

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

* [保存工具增加表单form的返回]
parent 3fe30569
...@@ -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;
......
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