123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524 |
- package com.malk.yibaoju.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.service.aliwork.YDClient;
- import com.malk.service.aliwork.YDService;
- import com.malk.utils.UtilDateTime;
- import com.malk.utils.UtilMap;
- import com.malk.yibaoju.service.YBJService;
- import lombok.SneakyThrows;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- import java.time.LocalDate;
- import java.time.format.TextStyle;
- import java.time.temporal.TemporalAdjusters;
- import java.util.*;
- import java.util.concurrent.ExecutionException;
- import java.util.stream.Collectors;
- @Service
- @Slf4j
- public class YBJServiceImpl implements YBJService {
- @Autowired
- private YDClient ydClient;
- @Autowired
- private YDService ydService;
- /**
- * 每月创建护理计划
- */
- @Override
- @SneakyThrows
- public void syncNursePlan() {
- 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);
- log.info("totalCount:----{}----",totalCount);
- 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();
- //获取当前日期是本月几号
- int dayOfMonth = currentDate.getDayOfMonth();
- //获取本月天数
- int daysInMonth = currentDate.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++) {
- //获取当前日期是本月几号
- LocalDate currentDay = LocalDate.now();
- //获取是周几
- String dayOfWeek = currentDay.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
- //获取循环每天的日期
- LocalDate nextDay = currentDate.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();
- 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
- if (formMap.get("departmentSelectField_lxztlnnx_id")!=null){
- hashMap.put("departmentSelectField_lxzto1e1",String.valueOf(formMap.get("departmentSelectField_lxztlnnx_id"))); //部门
- }
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- try {
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .searchCondition(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+ " 23:59:59","yyyy-MM-dd HH:mm:ss")),formMap.get("textField_lnyhv5tn"),map.get("textField_lomchzi3"))))
- .formDataJson(JSON.toJSONString(hashMap))
- .build(), YDConf.FORM_OPERATION.upsert);
- } catch (Exception e) {
- log.info("异常数据{}",hashMap);
- }
- }
- }
- });
- }
- log.info("创建护理计划定时任务end",new Date());
- }
- /**
- *定时任务每月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<>();
- LocalDate currentDate = LocalDate.now();
- //获取下月1号的日期
- LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
- //获取日期是几号
- int dayOfMonth = firstDayOfNextMonth .getDayOfMonth();
- //获取月天数
- int daysInMonth = firstDayOfNextMonth.lengthOfMonth();
- 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());
- 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();
- 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
- if (formMap.get("departmentSelectField_lxztlnnx_id")!=null){
- hashMap.put("departmentSelectField_lxzto1e1",String.valueOf(formMap.get("departmentSelectField_lxztlnnx_id"))); //部门
- }
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- log.info("睡眠异常");
- }
- try {
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- // .searchCondition(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+ " 23:59:59","yyyy-MM-dd HH:mm:ss")),formMap.get("textField_lnyhv5tn"),map.get("textField_lomchzi3"))))
- .formDataJson(JSON.toJSONString(hashMap))
- .build(), YDConf.FORM_OPERATION.create);
- } catch (Exception e) {
- log.info("异常数据{}",hashMap);
- }
- }
- }
- });
- }
- log.info("创建下月护理计划定时任务end",new Date());
- }
- /**
- *每天同步护理状态
- */
- @Override
- public void syncUpdatePlanStatus() {
- log.info("每天同步护理状态开始{}",new Date());
- syncPlanStatus();
- log.info("每天同步护理状态结束{}",new Date());
- }
- /**
- * 不同上报状态 定时任务每天执行
- */
- @SneakyThrows
- public void syncPlanStatus() {
- LocalDate currentDate = LocalDate.now();
- //获取需要更新的护理任务 护理日期是当天 且状态为未上报
- YDParam ydParam = YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo56u5fn, dateField_lred6eoj","待上报",Arrays.asList(UtilDateTime.parse( currentDate+ " 00:00:59","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( currentDate+ " 23:59:59","yyyy-MM-dd HH:mm:ss")))))
- .build();
- //pagesize设为1获取总数
- ydParam.setPageSize(1);
- long totalCount = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getTotalCount();
- log.info("totalCount{}",totalCount);
- //如果条数不为0 就一直递归
- if (totalCount>0){
- ydParam.setPageSize(50);
- List<Map> dataList = new ArrayList<>();
- dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
- log.info("dataList:{}",dataList.size());
- //循环处理修改状态为已上报
- dataList.forEach(item -> {
- //修改状态为已上报
- try {
- ydClient.operateData(YDParam.builder()
- .formInstanceId(item.get("formInstanceId").toString())
- .updateFormDataJson(JSON.toJSONString(UtilMap.map("selectField_lo56u5fn","已上报")))
- .build(), YDConf.FORM_OPERATION.update);
- } catch (Exception e) {
- log.info("异常流程ID为:{}",item.get("formInstanceId").toString());
- throw new RuntimeException(e);
- }
- });
- Thread.sleep(5000);
- syncUpdatePlanStatus();
- }
- }
- /**
- * 新增护理计划1条 生成本月护理数据
- * @param formInstId
- */
- @Override
- public void creatInfo(String formInstId) {
- log.info("新增护理计划",new Date());
- //根据实例ID 查询护理计划
- YDParam ydParam = YDParam.builder()
- .formInstId(formInstId)
- .build();
- Map formData = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
- log.info("formData{}",formData);
- List<Map> mapList = (List<Map>) formData.get("tableField_lo3pmohx");
- LocalDate currentDate = LocalDate.now();
- //获取当前日期是本月几号
- int dayOfMonth = currentDate.getDayOfMonth();
- //获取本月天数
- int daysInMonth = currentDate.lengthOfMonth();
- for (int i = 0; i <=daysInMonth-dayOfMonth ; i++) {
- //获取当前日期是本月几号
- LocalDate currentDay = LocalDate.now();
- //获取是周几
- String dayOfWeek = currentDay.plusDays(i).getDayOfWeek().getDisplayName(TextStyle.FULL, new Locale("zh", "CN"));
- //获取循环每天的日期
- LocalDate nextDay = currentDate.plusDays(i);
- List<Map> maps = mapList.stream().filter(item -> item.get("selectField_lo3pmohy").equals(dayOfWeek.replace("星期","周"))).collect(Collectors.toList());
- for (Map map : maps) {
- //通过护理时间 护理对象ID 证数据是否已经存在
- 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+ " 23:59:59","yyyy-MM-dd HH:mm:ss")),formData.get("textField_lnyhv5tn"),map.get("textField_lomchzi3"))))
- .build();
- List<Map> dataList = (List<Map>) ydClient.queryData(ydParam1, YDConf.FORM_QUERY.retrieve_search_form).getData();
- //如果已存在数据 则不新增
- if (1>dataList.size()){
- Map hashMap = new HashMap();
- 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(formData.get("associationFormField_lo3pmohw_id").toString())); //护理对象姓名
- hashMap.put("textField_lnyhv5tn",formData.get("textField_lnyhv5tn")); //护理对象身份证
- hashMap.put("selectField_lnyhv5tp",formData.get("selectField_lnyhv5tp")); //护理对象等级
- hashMap.put("textField_lnyhv5tr",formData.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",formData.get("textField_lvae99fj")); //护理对象经度
- hashMap.put("textField_lvae7q5o",formData.get("textField_lvae99fk")); //护理对象纬度
- hashMap.put("textField_lrx0r38x",String.valueOf(nextDay)); //护理日期-文本
- hashMap.put("selectField_lr36z6hd","是"); //任务状态
- hashMap.put("textField_lo55rupj",formData.get("textField_lo55rupj")); //护理对象姓名-文本
- hashMap.put("textField_lo3pmoi4",map.get("textField_lo3pmoi4")); //护理证书类型
- hashMap.put("employeeField_lo3pmoi6",map.get("employeeField_lo3pmoi6_id")); //护理人员姓名-成员
- hashMap.put("textField_lpgi8scj",map.get("textField_lo701pwy")); //计划明细id
- hashMap.put("textField_lq9llmhl",formData.get("textField_lop4v4qx")); //护理对象ID
- if (formData.get("departmentSelectField_lxztlnnx_id")!=null){
- hashMap.put("departmentSelectField_lxzto1e1",String.valueOf(formData.get("departmentSelectField_lxztlnnx_id"))); //部门
- }
- try {
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .formDataJson(JSON.toJSONString(hashMap))
- .build(), YDConf.FORM_OPERATION.create);
- } catch (Exception e) {
- log.info("定时任务创建计划失败:{}",e);
- }
- }
- }
- }
- }
- /**
- * 新增护理计划下月月数据
- * @param formInstId
- */
- @Override
- public void creatNextInfo(String formInstId) {
- log.info("新增护理计划下月数据",new Date());
- //根据实例ID 查询护理计划
- YDParam ydParam = YDParam.builder()
- .formInstId(formInstId)
- .build();
- Map formData = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
- List<Map> mapList = (List<Map>) formData.get("tableField_lo3pmohx");
- LocalDate currentDate = LocalDate.now();
- //获取下月1号的日期
- LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
- //获取下月1号
- int dayOfMonth = firstDayOfNextMonth.getDayOfMonth();
- //获取下月月天数
- int daysInMonth = firstDayOfNextMonth.lengthOfMonth();
- 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(item -> item.get("selectField_lo3pmohy").equals(dayOfWeek.replace("星期","周"))).collect(Collectors.toList());
- for (Map map : maps) {
- Map hashMap = new HashMap();
- 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(formData.get("associationFormField_lo3pmohw_id").toString())); //护理对象姓名
- hashMap.put("textField_lnyhv5tn",formData.get("textField_lnyhv5tn")); //护理对象身份证
- hashMap.put("selectField_lnyhv5tp",formData.get("selectField_lnyhv5tp")); //护理对象等级
- hashMap.put("textField_lnyhv5tr",formData.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",formData.get("textField_lvae99fj")); //护理对象经度
- hashMap.put("textField_lvae7q5o",formData.get("textField_lvae99fk")); //护理对象纬度
- hashMap.put("textField_lrx0r38x",String.valueOf(nextDay)); //护理日期-文本
- hashMap.put("selectField_lr36z6hd","是"); //任务状态
- hashMap.put("textField_lo55rupj",formData.get("textField_lo55rupj")); //护理对象姓名-文本
- hashMap.put("textField_lo3pmoi4",map.get("textField_lo3pmoi4")); //护理证书类型
- hashMap.put("employeeField_lo3pmoi6",map.get("employeeField_lo3pmoi6_id")); //护理人员姓名-成员
- hashMap.put("textField_lpgi8scj",map.get("textField_lo701pwy")); //计划明细id
- hashMap.put("textField_lq9llmhl",formData.get("textField_lop4v4qx")); //护理对象ID
- if (formData.get("departmentSelectField_lxztlnnx_id")!=null){
- hashMap.put("departmentSelectField_lxzto1e1",String.valueOf(formData.get("departmentSelectField_lxztlnnx_id"))); //部门
- }
- try {
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .formDataJson(JSON.toJSONString(hashMap))
- .build(), YDConf.FORM_OPERATION.create);
- } catch (Exception e) {
- log.info("定时任务创建计划失败:{}",e);
- }
- }
- }
- }
- /**
- * 编辑功能只做删除操作
- * @param formInstId
- */
- @SneakyThrows
- @Override
- @Async
- public void updateInfo(String formInstId) {
- //根据实例ID 查询护理计划
- YDParam ydParam = YDParam.builder()
- .formInstId(formInstId)
- .build();
- Map formData = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
- LocalDate currentDate = LocalDate.now();
- //获取下月1号的日期
- LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
- //删除当前时间节点以后得数据
- //获取需要更新的护理任务 状态为待上报 护理对象身份证 护理日期是当天
- YDParam ydParamDelete = YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lo56u5fn, textField_lnyhv5tn, dateField_lred6eoj","待上报",formData.get("textField_lnyhv5tn"),Arrays.asList(UtilDateTime.parse( currentDate+ " 00:00:01","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( firstDayOfNextMonth.with(TemporalAdjusters.lastDayOfMonth())+ " 23:59:59","yyyy-MM-dd HH:mm:ss")))))
- .build();
- List<Map> queryAllFormData = ydService.queryAllFormData(ydParamDelete);
- queryAllFormData.forEach(item -> {
- //删除
- ydClient.operateData(YDParam.builder()
- .formInstanceId(item.get("formInstanceId").toString())
- .build(), YDConf.FORM_OPERATION.delete);
- });
- }
- /**
- * 删除护理任务
- * @param cId 护理对象身份证
- */
- @Override
- public void deletePlan(String cId) {
- LocalDate currentDate = LocalDate.now();
- //获取下月1号的日期
- LocalDate firstDayOfNextMonth = currentDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
- //获取需要删除护理任务 执行状态为未执行 护理对象身份证 护理日期是当天以后
- YDParam ydParamDelete = YDParam.builder()
- .formUuid("FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lqcgsbw2, textField_lnyhv5tn, dateField_lred6eoj","未执行",cId,Arrays.asList(UtilDateTime.parse( currentDate+ " 00:00:01","yyyy-MM-dd HH:mm:ss"),UtilDateTime.parse( firstDayOfNextMonth.with(TemporalAdjusters.lastDayOfMonth())+ " 23:59:59","yyyy-MM-dd HH:mm:ss")))))
- .build();
- List<Map> mapList = ydService.queryAllFormData(ydParamDelete);
- //删除当前时间节点以后得数据
- mapList.forEach(item -> {
- //删除
- ydClient.operateData(YDParam.builder()
- .formInstanceId(item.get("formInstanceId").toString())
- .build(), YDConf.FORM_OPERATION.delete);
- });
- }
- }
|