YDController.java 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.malk.ruisi.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.service.aliwork.YDClient;
  11. import com.malk.utils.UtilMap;
  12. import com.malk.utils.UtilServlet;
  13. import lombok.Synchronized;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.GetMapping;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import javax.servlet.http.HttpServletRequest;
  21. import java.util.List;
  22. import java.util.Map;
  23. @Slf4j
  24. @RestController
  25. @RequestMapping("yd")
  26. public class YDController {
  27. @Autowired
  28. private YDClient ydClient;
  29. // 接口校验通用逻辑
  30. @Synchronized
  31. @PostMapping("/invokeThird")
  32. McR invokeThird(HttpServletRequest request) {
  33. Map data = UtilServlet.getParamMap(request);
  34. log.info("接口校验通用逻辑, {}", JSON.toJSONString(data));
  35. McException.assertParamException_Null(data, "instanceId");
  36. // 多人审批场景下, 避免重复推送
  37. if ("成功".equals(UtilMap.getString(data, "radioField_m1hmte37"))) {
  38. return McR.success();
  39. }
  40. boolean isSuccess = true;
  41. String message = "";
  42. try {
  43. /// 调用服务, 若也存在异常, 抛出
  44. } catch (McException exception) {
  45. isSuccess = true;
  46. message = exception.getMessage();
  47. log.error(exception.getMessage(), exception);
  48. }
  49. ydClient.operateData(YDParam.builder()
  50. .formInstId(UtilMap.getString(data, "instanceId"))
  51. .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m1hmte37, textareaField_lntocd8u", isSuccess ? "成功" : "失败", message)))
  52. .build(), YDConf.FORM_OPERATION.update);
  53. McException.assertAccessException(!isSuccess, message); // 抛出异常
  54. return McR.success();
  55. }
  56. // 重新发起请假流程
  57. @GetMapping("/test21")
  58. McR test21() {
  59. String formInstanceId = "35c8ba1b-2c5b-4581-bf75-a53f9f3b4657";
  60. String userId = "1007054";
  61. Map formData = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
  62. .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
  63. List employeeField_lts1mg30_id = (List) formData.get("employeeField_lts1mg30_id");
  64. List departmentSelectField_lts1mg2z_id = (List) formData.get("departmentSelectField_lts1mg2z_id");
  65. List departmentSelectField_lys0k6qb_id = (List) formData.get("departmentSelectField_lys0k6qb_id");
  66. System.out.println("==" + employeeField_lts1mg30_id);
  67. formData.put("employeeField_lts1mg30", employeeField_lts1mg30_id);
  68. formData.put("departmentSelectField_lts1mg2z", departmentSelectField_lts1mg2z_id);
  69. formData.put("departmentSelectField_lys0k6qb", departmentSelectField_lys0k6qb_id);
  70. System.out.println(formData);
  71. ydClient.operateData(YDParam.builder()
  72. .formUuid("FORM-A02F7EA3AD6548E59B8E1692AD729C77C5LD")
  73. .userId(userId)
  74. .formDataJson(JSON.toJSONString(formData))
  75. .build(), YDConf.FORM_OPERATION.start).toString();
  76. return McR.success(formData);
  77. }
  78. }