|
@@ -51,7 +51,6 @@ public class YBJServiceImpl implements YBJService {
|
|
|
//pagesize设为1获取总数
|
|
|
ydParam.setPageSize(1);
|
|
|
long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
|
|
|
-
|
|
|
float pageSize = 50;
|
|
|
ydParam.setCurrentPage(1);
|
|
|
ydParam.setPageSize((int) pageSize);
|
|
@@ -146,6 +145,108 @@ public class YBJServiceImpl implements YBJService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ *定时任务每月25号创建下月的数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @SneakyThrows
|
|
|
+ public void syncCreatePlan() {
|
|
|
+
|
|
|
+ YDParam ydParam = new YDParam();
|
|
|
+ log.info("创建下月护理计划定时任务Start",new Date());
|
|
|
+
|
|
|
+ ydParam = YDParam.builder()
|
|
|
+ .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2") //获取护理计划
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo2b6bvf","正常")))//护理对象暂停和正常、月度计划创建只查询正常的护理计划
|
|
|
+ .build();
|
|
|
+ //pagesize设为1获取总数
|
|
|
+ ydParam.setPageSize(1);
|
|
|
+ long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
|
|
|
+ float pageSize = 50;
|
|
|
+ ydParam.setCurrentPage(1);
|
|
|
+ ydParam.setPageSize((int) pageSize);
|
|
|
+ List<Map> dataList = new ArrayList<>();
|
|
|
+ for (int page = 1; page <= Math.ceil(totalCount / pageSize); page++) {
|
|
|
+ ydParam.setCurrentPage(page);
|
|
|
+ //创建护理计划 1次获取50条
|
|
|
+ dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
|
|
|
+ log.info("dataList:{}-----page:"+page+"---",dataList.size());
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
+ //获取下月1号的日期
|
|
|
+ LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
|
|
|
+ //获取日期是几号
|
|
|
+ int dayOfMonth = firstDayOfNextMonth .getDayOfMonth();
|
|
|
+ //获取月天数
|
|
|
+ int daysInMonth = firstDayOfNextMonth.lengthOfMonth();
|
|
|
+ dataList.forEach(dataItem -> {
|
|
|
+ Map formMap = (Map) dataItem.get("formData");
|
|
|
+ List<Map> mapList = (List<Map>) formMap.get("tableField_lo3pmohx");
|
|
|
+ for (int i =0 ; i <=(daysInMonth-dayOfMonth) ; i++) {
|
|
|
+ //获取是周几
|
|
|
+ String dayOfWeek = firstDayOfNextMonth.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
|
|
|
+ //获取循环每天的日期
|
|
|
+ LocalDate nextDay = firstDayOfNextMonth.plusDays(i);
|
|
|
+ List<Map> maps = mapList.stream().filter(items -> items.get("selectField_lo3pmohy").equals(dayOfWeek.replace("星期","周"))).collect(Collectors.toList());
|
|
|
+ for (Map map : maps) {
|
|
|
+ Map hashMap = new HashMap();
|
|
|
+ try {
|
|
|
+ Thread.sleep(100);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ //通过护理时间 护理对象 护理人员验证数据是否已经存在
|
|
|
+ YDParam ydParam1 = YDParam.builder()
|
|
|
+ .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
|
|
|
+ .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lred6eoj, textField_lnyhv5tn, textField_lombve2g",Arrays.asList(UtilDateTime.parse( nextDay+ " 00:00:01","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( nextDay.with(TemporalAdjusters.lastDayOfMonth())+ " 23:59:59","yyyy-MM-dd HH:mm:ss")),formMap.get("textField_lnyhv5tn"),map.get("textField_lomchzi3"))))
|
|
|
+ .build();
|
|
|
+ List<Map> dataLists = (List<Map>) ydClient.queryData(ydParam1, YDConf.FORM_QUERY.retrieve_search_form).getData();
|
|
|
+ if (dataLists.size()<1){
|
|
|
+ hashMap.put("associationFormField_lo3pmohz",JSON.parse(map.get("associationFormField_lo3pmohz_id").toString())); //护理人员名称
|
|
|
+ hashMap.put("textField_lo3pmoi0",map.get("textField_lo3pmoi0")); //护理人员所属机构
|
|
|
+ hashMap.put("textField_lombve2g",map.get("textField_lomchzi3")); //护理人员身份证
|
|
|
+ hashMap.put("textField_lo3pmoi3",map.get("textField_lo3pmoi3")); //护理人员手机号
|
|
|
+ hashMap.put("associationFormField_lo3pmohw",JSON.parse(formMap.get("associationFormField_lo3pmohw_id").toString())); //护理对象姓名
|
|
|
+ hashMap.put("textField_lnyhv5tn",formMap.get("textField_lnyhv5tn")); //护理对象身份证
|
|
|
+ hashMap.put("selectField_lnyhv5tp",formMap.get("selectField_lnyhv5tp")); //护理对象等级
|
|
|
+ hashMap.put("textField_lnyhv5tr",formMap.get("textField_lnyhv5tr")); //护理对象住址
|
|
|
+ hashMap.put("selectField_lo3pmohy",dayOfWeek.replace("星期","周")); //护理时间 (星期几)
|
|
|
+ hashMap.put("dateField_lred6eoj", UtilDateTime.parse(String.valueOf(nextDay)+" "+map.get("selectField_lr1uxpu3"),"yyyy-MM-dd HH:mm")); //护理开始时间。 用当前日期+护理计划的 时分 转成时间戳
|
|
|
+ hashMap.put("dateField_lred6eok", UtilDateTime.parse(String.valueOf(nextDay)+" "+map.get("selectField_lr1uxpu4"),"yyyy-MM-dd HH:mm")); //护理结束时间。 用当前日期+护理计划的 时分 转成时间戳
|
|
|
+ hashMap.put("selectField_lqcgsbw2","未执行"); //执行情况
|
|
|
+ hashMap.put("selectField_lo56u5fn","待上报"); //任务状态
|
|
|
+
|
|
|
+ hashMap.put("textField_lvae7q5n",formMap.get("textField_lvae99fj")); //护理对象经度
|
|
|
+ hashMap.put("textField_lvae7q5o",formMap.get("textField_lvae99fk")); //护理对象纬度
|
|
|
+
|
|
|
+ hashMap.put("textField_lrx0r38x",String.valueOf(nextDay)); //护理日期-文本
|
|
|
+ hashMap.put("selectField_lr36z6hd","是"); //任务状态
|
|
|
+ hashMap.put("textField_lo55rupj",formMap.get("textField_lo55rupj")); //护理对象姓名-文本
|
|
|
+ hashMap.put("textField_lo3pmoi4",map.get("textField_lo3pmoi4")); //护理证书类型
|
|
|
+ hashMap.put("employeeField_lo3pmoi6",JSON.parse(map.get("employeeField_lo3pmoi6_id").toString())); //护理人员姓名-成员
|
|
|
+ hashMap.put("textField_lpgi8scj",map.get("textField_lo701pwy")); //计划明细id
|
|
|
+ hashMap.put("textField_lq9llmhl",formMap.get("textField_lop4v4qx")); //护理对象ID
|
|
|
+ try {
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
|
|
|
+ .formDataJson(JSON.toJSONString(hashMap))
|
|
|
+ .build(), YDConf.FORM_OPERATION.create);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("异常数据{}",hashMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ log.info("创建下月护理计划定时任务end",new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
*每天同步护理状态
|
|
|
*/
|
|
@@ -157,6 +258,9 @@ public class YBJServiceImpl implements YBJService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 不同上报状态 定时任务每天执行
|
|
|
+ */
|
|
|
@SneakyThrows
|
|
|
public void syncPlanStatus() {
|
|
|
|
|
@@ -472,101 +576,7 @@ public class YBJServiceImpl implements YBJService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- *定时任务每月25号创建下月的数据
|
|
|
- */
|
|
|
- @Override
|
|
|
- @SneakyThrows
|
|
|
- public void syncCreatePlan() {
|
|
|
-
|
|
|
- YDParam ydParam = new YDParam();
|
|
|
- log.info("创建护理计划定时任务Start",new Date());
|
|
|
|
|
|
- ydParam = YDParam.builder()
|
|
|
- .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2") //获取护理计划
|
|
|
- .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo2b6bvf","正常")))//护理对象暂停和正常、月度计划创建只查询正常的护理计划
|
|
|
- .build();
|
|
|
- //pagesize设为1获取总数
|
|
|
- ydParam.setPageSize(1);
|
|
|
- long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
|
|
|
- float pageSize = 50;
|
|
|
- ydParam.setCurrentPage(1);
|
|
|
- ydParam.setPageSize((int) pageSize);
|
|
|
- List<Map> dataList = new ArrayList<>();
|
|
|
- for (int page = 1; page <= Math.ceil(totalCount / pageSize); page++) {
|
|
|
- ydParam.setCurrentPage(page);
|
|
|
- //创建护理计划 1次获取50条
|
|
|
- dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
|
|
|
- log.info("dataList:{}-----page:"+page+"---",dataList.size());
|
|
|
- LocalDate currentDate = LocalDate.now();
|
|
|
- //获取下月1号的日期
|
|
|
- LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
|
|
|
- //获取当前日期是本月几号
|
|
|
- int dayOfMonth = firstDayOfNextMonth .getDayOfMonth();
|
|
|
- //获取本月天数
|
|
|
- int daysInMonth = firstDayOfNextMonth.lengthOfMonth();
|
|
|
- dataList.forEach(dataItem -> {
|
|
|
- Map formMap = (Map) dataItem.get("formData");
|
|
|
- List<Map> mapList = (List<Map>) formMap.get("tableField_lo3pmohx");
|
|
|
- for (int i =0 ; i <=(daysInMonth-dayOfMonth) ; i++) {
|
|
|
- //获取是周几
|
|
|
- String dayOfWeek = firstDayOfNextMonth.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
|
|
|
- //获取循环每天的日期
|
|
|
- LocalDate nextDay = firstDayOfNextMonth.plusDays(i);
|
|
|
- List<Map> maps = mapList.stream().filter(items -> items.get("selectField_lo3pmohy").equals(dayOfWeek.replace("星期","周"))).collect(Collectors.toList());
|
|
|
- for (Map map : maps) {
|
|
|
- Map hashMap = new HashMap();
|
|
|
- try {
|
|
|
- Thread.sleep(100);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- //通过护理时间 护理对象 护理人员验证数据是否已经存在
|
|
|
- YDParam ydParam1 = YDParam.builder()
|
|
|
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
|
|
|
- .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lred6eoj, textField_lnyhv5tn, textField_lombve2g",Arrays.asList(UtilDateTime.parse( nextDay+ " 00:00:01","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( nextDay.with(TemporalAdjusters.lastDayOfMonth())+ " 23:59:59","yyyy-MM-dd HH:mm:ss")),formMap.get("textField_lnyhv5tn"),map.get("textField_lomchzi3"))))
|
|
|
- .build();
|
|
|
- List<Map> dataLists = (List<Map>) ydClient.queryData(ydParam1, YDConf.FORM_QUERY.retrieve_search_form).getData();
|
|
|
- if (dataLists.size()<1){
|
|
|
- hashMap.put("associationFormField_lo3pmohz",JSON.parse(map.get("associationFormField_lo3pmohz_id").toString())); //护理人员名称
|
|
|
- hashMap.put("textField_lo3pmoi0",map.get("textField_lo3pmoi0")); //护理人员所属机构
|
|
|
- hashMap.put("textField_lombve2g",map.get("textField_lomchzi3")); //护理人员身份证
|
|
|
- hashMap.put("textField_lo3pmoi3",map.get("textField_lo3pmoi3")); //护理人员手机号
|
|
|
- hashMap.put("associationFormField_lo3pmohw",JSON.parse(formMap.get("associationFormField_lo3pmohw_id").toString())); //护理对象姓名
|
|
|
- hashMap.put("textField_lnyhv5tn",formMap.get("textField_lnyhv5tn")); //护理对象身份证
|
|
|
- hashMap.put("selectField_lnyhv5tp",formMap.get("selectField_lnyhv5tp")); //护理对象等级
|
|
|
- hashMap.put("textField_lnyhv5tr",formMap.get("textField_lnyhv5tr")); //护理对象住址
|
|
|
- hashMap.put("selectField_lo3pmohy",dayOfWeek.replace("星期","周")); //护理时间 (星期几)
|
|
|
- hashMap.put("dateField_lred6eoj", UtilDateTime.parse(String.valueOf(nextDay)+" "+map.get("selectField_lr1uxpu3"),"yyyy-MM-dd HH:mm")); //护理开始时间。 用当前日期+护理计划的 时分 转成时间戳
|
|
|
- hashMap.put("dateField_lred6eok", UtilDateTime.parse(String.valueOf(nextDay)+" "+map.get("selectField_lr1uxpu4"),"yyyy-MM-dd HH:mm")); //护理结束时间。 用当前日期+护理计划的 时分 转成时间戳
|
|
|
- hashMap.put("selectField_lqcgsbw2","未执行"); //执行情况
|
|
|
- hashMap.put("selectField_lo56u5fn","待上报"); //任务状态
|
|
|
-
|
|
|
- hashMap.put("textField_lvae7q5n",formMap.get("textField_lvae99fj")); //护理对象经度
|
|
|
- hashMap.put("textField_lvae7q5o",formMap.get("textField_lvae99fk")); //护理对象纬度
|
|
|
-
|
|
|
- hashMap.put("textField_lrx0r38x",String.valueOf(nextDay)); //护理日期-文本
|
|
|
- hashMap.put("selectField_lr36z6hd","是"); //任务状态
|
|
|
- hashMap.put("textField_lo55rupj",formMap.get("textField_lo55rupj")); //护理对象姓名-文本
|
|
|
- hashMap.put("textField_lo3pmoi4",map.get("textField_lo3pmoi4")); //护理证书类型
|
|
|
- hashMap.put("employeeField_lo3pmoi6",JSON.parse(map.get("employeeField_lo3pmoi6_id").toString())); //护理人员姓名-成员
|
|
|
- hashMap.put("textField_lpgi8scj",map.get("textField_lo701pwy")); //计划明细id
|
|
|
- hashMap.put("textField_lq9llmhl",formMap.get("textField_lop4v4qx")); //护理对象ID
|
|
|
- try {
|
|
|
- ydClient.operateData(YDParam.builder()
|
|
|
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
|
|
|
- .formDataJson(JSON.toJSONString(hashMap))
|
|
|
- .build(), YDConf.FORM_OPERATION.create);
|
|
|
- } catch (Exception e) {
|
|
|
- log.info("异常数据{}",hashMap);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- log.info("创建护理计划定时任务end",new Date());
|
|
|
- }
|
|
|
|
|
|
|
|
|
}
|