SuoDiSiController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.malk.xinwei.controller;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.alibaba.fastjson.JSON;
  4. import com.malk.Util.UtilServlet;
  5. import com.malk.server.aliwork.YDConf;
  6. import com.malk.server.aliwork.YDParam;
  7. import com.malk.server.common.McException;
  8. import com.malk.server.common.McR;
  9. import com.malk.service.aliwork.YDClient;
  10. import com.malk.service.aliwork.YDService;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.scheduling.annotation.EnableAsync;
  14. import org.springframework.web.bind.annotation.PostMapping;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. import java.util.stream.Collectors;
  24. /**
  25. * 错误抛出与拦截详见 CatchException
  26. */
  27. @Slf4j
  28. @RestController
  29. @RequestMapping("/chuoqi")
  30. @EnableAsync
  31. public class SuoDiSiController {
  32. /**** 索迪斯服务 ****/
  33. @Autowired
  34. private YDClient ydClient;
  35. /**
  36. * 动态审批人
  37. */
  38. @PostMapping("sds/test")
  39. List<String> sdsTest(HttpServletRequest request) {
  40. Map param = UtilServlet.getParamMap(request);
  41. McException.assertParamException_Null(param, "finance");
  42. Map condition = new HashMap();
  43. condition.put("textField_lg52q035", param.get("finance"));
  44. YDParam ydParam = YDParam.builder()
  45. .appType("APP_Y75CEY3YR30YOLEWETJJ")
  46. .systemToken("BY866R813JM8XVLGD7YELCPDH9IL29Z5BQQEL48")
  47. .formUuid("FORM-8Y866XB1AXM9DFV3AW6D7AV2WWEK2F3OP25GLD")
  48. .searchFieldJson(JSON.toJSONString(condition))
  49. .build();
  50. List<Map> list = (List<Map>) ydClient.queryData(YDConf.API_FORM_QUERY_DATA, ydParam).get("data");
  51. Map formData = (Map) list.get(0).get("formData");
  52. log.info("索迪斯动态审批人, {}, {}", param, formData);
  53. return (List<String>) formData.get("employeeField_lg52q036_id");
  54. }
  55. /**
  56. * 回写招聘子表
  57. */
  58. @PostMapping("sds/update")
  59. Map sdsUpdate(HttpServletRequest request) {
  60. // 查询招聘申请
  61. Map param = UtilServlet.getParamMap(request);
  62. McException.assertParamException_Null(param, "formInstId");
  63. YDParam ydParam = YDParam.builder()
  64. .appType("APP_Y75CEY3YR30YOLEWETJJ")
  65. .systemToken("BY866R813JM8XVLGD7YELCPDH9IL29Z5BQQEL48")
  66. .formInstId(String.valueOf(param.get("formInstId")))
  67. .build();
  68. Map rsp = (Map) ydClient.operateData(YDConf.API_FORM_DETAIL, ydParam);
  69. Map formData = (Map) rsp.get("formData");
  70. log.info("索迪斯回写子表, {}, {}", param, formData);
  71. // 组装分发子表数据
  72. Map detail = new HashMap();
  73. detail.put("associationFormField_lf7pkag4", JSON.parse(String.valueOf(formData.get("associationFormField_lg54gbt9_id")))); // 职位组
  74. detail.put("textField_lf7pkag5", formData.get("textField_lg54gbta")); // 新员工姓名
  75. detail.put("dateField_lf7pkag6", formData.get("dateField_lg54gbtf")); // 入职日期
  76. // todo: 成员, 附件, 关联表单
  77. List<Map> association = JSON.parseArray(String.valueOf(JSON.parse(String.valueOf(formData.get("associationFormField_lg0gmbi8_id")))), Map.class);
  78. String formInstId = String.valueOf(association.get(0).get("instanceId"));
  79. ydParam.setFormInstId(formInstId);
  80. Map rspSrc = (Map) ydClient.operateData(YDConf.API_FORM_DETAIL, ydParam);
  81. Map formDataSrc = (Map) rspSrc.get("formData");
  82. List<Map> list = new ArrayList<>();
  83. if (ObjectUtil.isNotNull(formDataSrc.get("tableField_lf7pkag3"))) {
  84. list = (List<Map>) formDataSrc.get("tableField_lf7pkag3");
  85. }
  86. // 更新流程数据
  87. Map form = new HashMap();
  88. list.add(detail);
  89. form.put("tableField_lf7pkag3", list);
  90. form.put("numberField_lfj9d501", 2);
  91. ydParam.setUpdateFormDataJson(JSON.toJSONString(form));
  92. ydClient.operateData(YDConf.API_FORM_UPDATE, ydParam);
  93. log.info("更新, {}, {}", formInstId, form);
  94. Map r = new HashMap();
  95. r.put("success", true);
  96. return r;
  97. }
  98. @Autowired
  99. private YDService ydService;
  100. /**
  101. * GXG基础档案
  102. */
  103. @PostMapping("gxg/data-list")
  104. McR gxgDataList(@RequestBody Map data) {
  105. Map condition = new HashMap();
  106. YDParam ydParam = YDParam.builder()
  107. .appType("APP_YGFK3PFENGL4E7RMLZEV")
  108. .systemToken("L5666S81WTM9LWRB9POYW974EWBA3ISV5WBGLDA")
  109. .formUuid("FORM-4H666KB1FVP9UEXX8UQBT7GBB5CR20UV5WBGLGJ")
  110. .searchFieldJson(JSON.toJSONString(condition))
  111. .currentPage(1)
  112. .pageSize(100)
  113. .build();
  114. List<Map> list = new ArrayList();
  115. ydService.queryLimitData(YDConf.API_FORM_QUERY_DATA, ydParam, YDService.INVOKE_TYPE.AWAIT_CONCURRENCE, list::addAll);
  116. log.info("GXG基础档案, {}, {}", data, list.size());
  117. return McR.success(list.stream().map(item -> {
  118. Map record = new HashMap();
  119. record.put("name", ((Map) item.get("formData")).get("textField_lg62a86d"));
  120. record.put("code", ((Map) item.get("formData")).get("textField_lg62ksb8"));
  121. record.put("area", ((Map) item.get("formData")).get("textField_lg62a86e"));
  122. return record;
  123. }).collect(Collectors.toList()));
  124. }
  125. }