123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- package com.malk.yibaoju.controller;
- import com.alibaba.fastjson.JSON;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.common.McException;
- import com.malk.server.common.McR;
- import com.malk.service.aliwork.YDClient;
- import com.malk.service.aliwork.YDService;
- import com.malk.service.dingtalk.DDService;
- import com.malk.utils.UtilDateTime;
- import com.malk.utils.UtilMap;
- import com.malk.utils.UtilServlet;
- import com.malk.yibaoju.service.YBJService;
- import lombok.SneakyThrows;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import java.time.LocalDate;
- import java.time.format.TextStyle;
- import java.time.temporal.TemporalAdjusters;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * 错误抛出与拦截详见 CatchException
- */
- @Slf4j
- @RestController
- @RequestMapping()
- public class YBJController {
- @Autowired
- private YBJService ybjService;
- @Autowired
- private YDClient ydClient;
- /**
- * 图片免登
- */
- @PostMapping("temporaryUrl")
- McR temporaryUrl(@RequestBody Map data) {
- log.info("图片免登, {}", data);
- return McR.success(ydClient.convertTemporaryUrl(UtilMap.getString(data, "url")));
- }
- /**
- * 根据护理安排创建护理计划
- * 通过参数 1个护理安排创建多条护理计划
- */
- @SneakyThrows
- @PostMapping("createPlan")
- McR createPlan(HttpServletRequest request){
- Map data = UtilServlet.getParamMap(request);
- log.info("createPlan 护理计划{}",data);
- LocalDate currentDate = LocalDate.now();
- //获取当前日期是本月几号
- int dayOfMonth = currentDate.getDayOfMonth();
- if ("1".equals(data.get("status"))){
- ybjService.creatInfo(data.get("formInstId").toString());
- //删除睡眠两秒 在执行创建
- if (dayOfMonth>24){
- Thread.sleep(2000);
- ybjService.creatNextInfo(data.get("formInstId").toString());
- }
- }else{
- ybjService.updateInfo(data.get("formInstId").toString());
- if (dayOfMonth>24){
- Thread.sleep(2000);
- ybjService.creatNextInfo(data.get("formInstId").toString());
- }
- }
- return McR.success();
- }
- /**
- * 通过安排创建本月所有的护理计划
- * @param request
- * @return
- */
- @PostMapping("syncCreatePlan")
- McR syncCreatePlan(HttpServletRequest request) {
- ybjService.syncNursePlan();
- return McR.success();
- }
- /**
- * 通过安排创建下月所有的护理计划
- * @param request
- * @return
- */
- @PostMapping("syncCreateNextPlan")
- McR syncCreateNextPlan(HttpServletRequest request) {
- ybjService.syncCreatePlan();
- return McR.success();
- }
- /**
- * 暂停护理对象 删除所有未执行的护理计划
- * 恢复护理对象 新增所有护理任务 如果当前日期是25日 则需要生成下月的数据
- * 如果当前日期小于25日 则只生成本月的数据
- * @param request
- * @return
- */
- @SneakyThrows
- @PostMapping("deletePlan")
- McR deletePlan(HttpServletRequest request){
- Map data = UtilServlet.getParamMap(request);
- log.info("deletePlan 暂停/恢复护理对象 删除/创建护理计划{}",data);
- LocalDate currentDate = LocalDate.now();
- //获取当前日期是本月几号
- int dayOfMonth = currentDate.getDayOfMonth();
- if ("1".equals(data.get("code"))){
- //获取护理对象CID
- ybjService.deletePlan(data.get("cId").toString());
- }else if ("2".equals(data.get("code"))){
- //通过护理对象CID获取护理计划实例ID
- YDParam ydParam = YDParam.builder()
- .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lnyhv5tn",data.get("cId"))))
- .build();
- List<Map> dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
- if(dataList.size()>0){
- Map map = (Map) dataList.get(0);
- ybjService.creatInfo(map.get("formInstanceId").toString());
- if (dayOfMonth>24){
- Thread.sleep(2000);
- ybjService.creatNextInfo(map.get("formInstanceId").toString());
- }
- Thread.sleep(2000);
- ybjService.creatNextInfo(map.get("formInstanceId").toString());
- }
- }else{ //编辑护理对象信息
- //先删除
- ybjService.deletePlan(data.get("cId").toString());
- //删除睡眠两秒 在执行创建
- Thread.sleep(2000);
- //然后重新创建
- //通过护理对象CID获取护理计划实例ID
- YDParam ydParam = YDParam.builder()
- .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2")
- .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lnyhv5tn",data.get("cId"))))
- .build();
- List<Map> dataList = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
- if(dataList.size()>0){
- Map map = (Map) dataList.get(0);
- ybjService.creatInfo(map.get("formInstanceId").toString());
- if (dayOfMonth>24){
- Thread.sleep(2000);
- ybjService.creatNextInfo(map.get("formInstanceId").toString());
- }
- }
- }
- return McR.success();
- }
- @Autowired
- private YDService ydService;
- /**
- * 更新子表关联表单 fixme 1.28 子表单关联表单更新
- *
- * 更新护理安排中的成员组件信息
- */
- @GetMapping("update")
- McR update() {
- List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
- .formUuid("FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2")
- .build());
- for (Map formData: dataList) {
- List<Map> details = (List<Map>) formData.get("tableField_lo3pmohx");
- for (Map row: details) {
- row.put("employeeField_lo3pmoi6", "employeeField_lo3pmoi6_id");
- row.put("associationFormField_lo3pmohz", YDConf.associationForm("APP_YIDJ71B8QORD2YHNZ26Q", "FORM-RK966E7105DFD27FA7EQHAOH9IFS2RN6MP3OL2" ,UtilMap.getString(row,"textField_lrvtfzng"), UtilMap.getString(row, "textField_lrvtfznf"), "", false));
- }
- formData.put("tableField_lo3pmohx", details);
- try {
- ydClient.operateData(YDParam.builder()
- .formInstanceId(UtilMap.getString(formData, "instanceId"))
- .updateFormDataJson(JSON.toJSONString(formData))
- .build(), YDConf.FORM_OPERATION.update);
- } catch (McException e) {
- log.info("更新异常, {}",UtilMap.getString(formData, "instanceId") );
- }
- }
- log.info("更新子表关联表单, {}", dataList.size());
- return McR.success();
- }
- /**
- * 打卡列表传数据到打卡页面无法加载关联控件
- * 通过代码将关联控件信息写入到打卡页面
- * @param request
- * @return
- */
- @PostMapping("updatePlanName")
- McR updatePlanName(HttpServletRequest request) {
- Map data = UtilServlet.getParamMap(request);
- log.info("修改打卡数据中的护理计划名称{}",data);
- Map hashMap = new HashMap();
- hashMap.put("associationFormField_lpgi5wv5",YDConf.associationForm("APP_YIDJ71B8QORD2YHNZ26Q","FORM-IY966L71PJ8FV10D61M1HBHU6FB320M2765OLM",data.get("relevanceInstanceId").toString(),data.get("titleName").toString(),"",false));
- ydClient.operateData(YDParam.builder()
- .formInstanceId(data.get("currentInstanceId").toString())
- .updateFormDataJson(JSON.toJSONString(hashMap))
- .build(), YDConf.FORM_OPERATION.update);
- return McR.success();
- }
- @Autowired
- private DDService ddService;
- /**
- * 地图
- * jsApi 注册
- */
- @PostMapping("register")
- McR register(@RequestBody Map<String, String> data) {
- McException.assertParamException_Null(data, "url", "nonceStr");
- return McR.success(ddService.registerJsApi(data.get("url"), data.get("nonceStr")));
- }
- /**
- * 同步护理对象坐标地址
- * @param request
- * @return
- */
- @RequestMapping("synPointInfo")
- McR synPointInfo(HttpServletRequest request) {
- YDParam ydParam = new YDParam();
- 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());
- dataList.forEach(dataItem -> {
- Map formMap = (Map) dataItem.get("formData");
- YDParam hldxParam = YDParam.builder()
- .formUuid("FORM-OS566L91C91FO7LJ8V6AQ9O7CGB53OCVUHYNLH1") //获取护理对象
- .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lnyhv5tn",formMap.get("textField_lnyhv5tn"))))
- .build();
- List<Map> mapList = (List<Map>) ydClient.queryData(hldxParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
- Map fkmap = (Map) mapList.get(0).get("formData");
- // 更新
- ydClient.operateData(YDParam.builder()
- .formInstanceId((String) dataItem.get("formInstanceId"))
- .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_lvae99fj, textField_lvae99fk", fkmap.get("textField_ljghmc0e"),fkmap.get("textField_ljghmc0f"))))
- .build(), YDConf.FORM_OPERATION.update);
- });
- }
- return McR.success();
- }
- @RequestMapping("test")
- McR test(HttpServletRequest request) {
- return McR.success();
- }
- }
|