LYController.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.malk.luyi.controller;
  2. /**
  3. * 错误抛出与拦截详见 CatchException
  4. */
  5. import com.alibaba.fastjson.JSON;
  6. import com.malk.server.aliwork.YDConf;
  7. import com.malk.server.aliwork.YDParam;
  8. import com.malk.server.common.McException;
  9. import com.malk.server.common.McR;
  10. import com.malk.server.dingtalk.DDR_New;
  11. import com.malk.service.aliwork.YDClient;
  12. import com.malk.utils.UtilMap;
  13. import com.malk.utils.UtilServlet;
  14. import lombok.SneakyThrows;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import javax.servlet.http.HttpServletRequest;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. import java.util.Map;
  25. import java.util.Optional;
  26. @Slf4j
  27. @RestController
  28. @RequestMapping()
  29. public class LYController {
  30. @Autowired
  31. private YDClient ydClient;
  32. /**
  33. * 报告查询
  34. */
  35. @PostMapping("report/query")
  36. McR query(@RequestBody Map data) {
  37. log.info("报告查询, {}", data);
  38. McException.assertParamException_Null(data, "cardNo, phoneNo, page, size");
  39. // 更新客户档案
  40. DDR_New ddr_new = ydClient.queryData(YDParam.builder()
  41. .formUuid("FORM-MFA66S91KKJDA2708OHTW6RBOJRK3SVWO7KLL1")
  42. .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_llvq2dqf", data.get("cardNo"))))
  43. .build(), YDConf.FORM_QUERY.retrieve_search_form);
  44. McException.assertAccessException(ddr_new.getTotalCount() == 0, "信息未登记! ");
  45. Map formData = (Map) ((List<Map>) ddr_new.getData()).get(0).get("formData");
  46. List<Map> details = (List<Map>) formData.get("tableField_llk8hw38");
  47. Optional optional = details.stream().filter(item -> data.get("phoneNo").equals(item.get("textField_llvq2dqr"))).findAny();
  48. if (!optional.isPresent()) {
  49. details.add(UtilMap.map("textField_llvq2dqr, textField_llk8hw39, radioField_lndtpa2c", data.get("phoneNo"), "报告回写", "报告回写"));
  50. formData.put("tableField_llk8hw38", details);
  51. ydClient.operateData(YDParam.builder()
  52. .formInstId(String.valueOf(((List<Map>) ddr_new.getData()).get(0).get("formInstanceId")))
  53. .updateFormDataJson(JSON.toJSONString(formData))
  54. .build(), YDConf.FORM_OPERATION.update);
  55. // 写入联系人记录表
  56. ydClient.operateData(YDParam.builder()
  57. .formUuid("FORM-XHA6688148UDAB8RCH4TO7T0CBGF3NWHGI4ML8")
  58. .formDataJson(JSON.toJSONString(UtilMap.map("selectField_lm4kbce2, textField_lm4igzq0, textField_lm4igzq2, textField_lm4igzq4, radioField_lndtpa2c",
  59. formData.get("textField_llk8hw32"), formData.get("serialNumberField_llkb8w7t"), "报告回写", data.get("phoneNo"), "报告回写")))
  60. .build(), YDConf.FORM_OPERATION.create);
  61. }
  62. // 查询报告结果
  63. DDR_New ddr_new2 = ydClient.queryData(YDParam.builder()
  64. .formUuid("FORM-XHA66881E3ODR7EKBGK9XBXECRML267EIQVLL5")
  65. .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lm0653jv", data.get("cardNo"))))
  66. .pageNumber(UtilMap.getInt(data, "page"))
  67. .pageSize(UtilMap.getInt(data, "size"))
  68. .dynamicOrder(JSON.toJSONString(UtilMap.map("dateField_lpjim03p", "-")))
  69. .build(), YDConf.FORM_QUERY.retrieve_search_form);
  70. return McR.success(ddr_new2);
  71. }
  72. /**
  73. * 细胞查询
  74. */
  75. @PostMapping("cell/query")
  76. McR cell(@RequestBody Map data) {
  77. log.info("细胞查询, {}", data);
  78. McException.assertParamException_Null(data, "cardNo, name, page, size");
  79. // 查询细胞结果
  80. DDR_New ddr_new2 = ydClient.queryData(YDParam.builder()
  81. .formUuid("FORM-FDA66N818YLEFETQ694XF5GV8CN73D6NFMFNLE")
  82. .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lnspbi7w, textField_lnfmfzth", data.get("cardNo"), data.get("name"))))
  83. .pageNumber(UtilMap.getInt(data, "page"))
  84. .pageSize(UtilMap.getInt(data, "size"))
  85. .dynamicOrder(JSON.toJSONString(UtilMap.map("dateField_lnsva9el", "-")))
  86. .build(), YDConf.FORM_QUERY.retrieve_search_form);
  87. return McR.success(ddr_new2);
  88. }
  89. /**
  90. * 免登地址
  91. */
  92. @PostMapping("report/temporary")
  93. McR temporary(@RequestBody Map data) {
  94. McException.assertParamException_Null(data, "urls");
  95. List<String> images = new ArrayList<>();
  96. for (String url : (List<String>) UtilMap.getList(data, "urls")) {
  97. images.add(ydClient.convertTemporaryUrl(url));
  98. }
  99. log.info("免登地址, {}", images);
  100. return McR.success(images);
  101. }
  102. /**
  103. * 客户关联渠道
  104. */
  105. @PostMapping("relation")
  106. @SneakyThrows
  107. McR relation(HttpServletRequest request) {
  108. Map data = UtilServlet.getParamMap(request);
  109. log.info("细胞查询, {}", data);
  110. if ("否".equals(data.get("type"))) {
  111. return McR.success();
  112. }
  113. Thread.sleep(3000); // todo: 公共延迟方法
  114. List<Map> dataList = (List<Map>) ydClient.queryData(YDParam.builder()
  115. .formUuid("FORM-6YA66WB1BATD2ZPWA2Z2S813SFFC3EGRBHYLLH")
  116. .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lozlyqpb", data.get("code"))))
  117. .build(), YDConf.FORM_QUERY.retrieve_search_form).getData();
  118. if (dataList.size() == 1) {
  119. Map formData = (Map) dataList.get(0).get("formData");
  120. String title = String.valueOf(formData.get("textField_llyhc8ca"));
  121. List<Map> associations = YDConf.associationForm("APP_I45JU7MQMRRVZ472GS1U", "FORM-6YA66WB1BATD2ZPWA2Z2S813SFFC3EGRBHYLLH", String.valueOf(dataList.get(0).get("formInstanceId")), title, title, false);
  122. ydClient.operateData(YDParam.builder()
  123. .formInstanceId(String.valueOf(data.get("instanceId")))
  124. .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_llkbx3ob, associationFormField_lm4hoevr, textField_lm4hoevs", formData.get("serialNumberField_llyhc8ck"), associations, title)))
  125. .build(), YDConf.FORM_OPERATION.update);
  126. }
  127. return McR.success();
  128. }
  129. @PostMapping("test")
  130. McR test() {
  131. return McR.success();
  132. }
  133. }