ZzwController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.malk.yzl.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.malk.server.aliwork.YDConf;
  5. import com.malk.server.aliwork.YDParam;
  6. import com.malk.server.common.McR;
  7. import com.malk.service.aliwork.YDClient;
  8. import com.malk.service.dingtalk.DDClient;
  9. import com.malk.service.dingtalk.DDClient_Schedule;
  10. import com.malk.utils.PublicUtil;
  11. import com.malk.utils.UtilMap;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.beans.factory.annotation.Autowired;
  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 java.util.*;
  19. import static com.malk.utils.ISO8601Converter.toISO8601;
  20. @RestController
  21. @Slf4j
  22. @RequestMapping("/zzw/")
  23. public class ZzwController {
  24. @Autowired
  25. private YDClient ydClient;
  26. @Autowired
  27. private YDConf ydConf;
  28. @Autowired
  29. private DDClient_Schedule ddClientSchedule;
  30. @Autowired
  31. private DDClient ddClient;
  32. @PostMapping("/schedule/create")
  33. public McR createSchedule(@RequestBody JSONObject jsonObject){
  34. log.info("创建日程接口:{}",jsonObject);
  35. if(!PublicUtil.isNull(jsonObject,"sId")){
  36. return McR.success("已创建日程");
  37. }
  38. if(PublicUtil.isNull(jsonObject,"summary","start","end","createUid","fid")){
  39. return McR.error("201","参数不能为空!");
  40. }
  41. List<String> userIds=new ArrayList<>();
  42. Map<String,Map> userSaveMap=new HashMap<>();
  43. Map formdata=ydClient.queryData(YDParam.builder().formInstId(jsonObject.getString("fid")).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
  44. List<Map> mapList=ydConf.associationForm(String.valueOf(formdata.get("associationFormField_mn774naw_id")));
  45. for (Map map : mapList) {
  46. String instanceId=UtilMap.getString(map, "instanceId");
  47. Map user=ydClient.queryData(YDParam.builder().formInstId(instanceId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
  48. if(user!=null&&user.containsKey("employeeField_mogigdaq_id")){
  49. userIds.addAll(UtilMap.getList(user, "employeeField_mogigdaq_id"));
  50. userSaveMap.put(UtilMap.getString(user,"textField_mn6syci3"),UtilMap.map("textField_mowiqmgq, associationFormField_mn774naw, textField_mowj9roq, selectField_mowiqmgr, dateField_mn6vz0hj",
  51. UtilMap.getString(formdata,"serialNumberField_mn6vz0ha"),Arrays.asList(map),UtilMap.getString(user,"textField_mn6syci3"),"未操作",jsonObject.getLong("end")));
  52. }
  53. }
  54. Map map=new HashMap();
  55. map.put("summary",jsonObject.getString("summary"));
  56. map.put("start",getDate(jsonObject.getLong("start")));
  57. map.put("end",getDate(jsonObject.getLong("end")));
  58. map.put("userIds", userIds);
  59. if(!PublicUtil.isNull(jsonObject,"location")){
  60. map.put("location", UtilMap.map("displayName",jsonObject.getString("location")));
  61. }
  62. String result=ddClientSchedule.eventsSchedule(ddClient.getAccessToken(),jsonObject.getString("createUid"),map);
  63. JSONObject obj=JSONObject.parseObject(result);
  64. if(obj.containsKey("id")&& !PublicUtil.isNull(obj.get("id"))){
  65. log.info("创建成功:{}",obj);
  66. ydClient.operateData(YDParam.builder().updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_mowj9rop, textField_moxsll4l",obj.getString("id"),"是"))).formInstId(jsonObject.getString("fid")).build(), YDConf.FORM_OPERATION.update);
  67. JSONArray attendees = obj.getJSONArray("attendees");
  68. for (int i = 0; i < attendees.size(); i++) {
  69. JSONObject attendee=attendees.getJSONObject(i);
  70. String name=attendee.getString("displayName");
  71. save(obj.getString("id"),name,getStatus(attendee.getString("responseStatus")),userSaveMap.get(name));
  72. }
  73. }else {
  74. log.info("请求失败!{}",obj.getString("message"));
  75. return McR.error("201",obj.getString("message"));
  76. }
  77. return McR.success("已创建日程");
  78. }
  79. private Map getDate(long time){
  80. return UtilMap.map("dateTime, timeZone",toISO8601(time, "Asia/Shanghai"),"Asia/Shanghai");
  81. }
  82. private String getStatus(String code){
  83. switch (code){
  84. case "needsAction": return "未操作";
  85. case "accepted": return "已接受";
  86. case "declined": return "已拒绝";
  87. case "tentative": return "暂定接受";
  88. }
  89. return "";
  90. }
  91. private void save(String sid,String uname,String status,Map saveMap){
  92. if(saveMap==null||saveMap.isEmpty()){
  93. saveMap=new HashMap();
  94. }
  95. if(PublicUtil.isNull(uname)){
  96. return;
  97. }
  98. saveMap.put("textField_mowj9rop", sid);
  99. saveMap.put("selectField_mowiqmgr", status);
  100. ydClient.operateData(YDParam.builder().formDataJson(JSONObject.toJSONString(saveMap)).formUuid("FORM-CD59959AAB334321A2542558A8285D5BMZ2K").searchCondition(JSONObject.toJSONString(Arrays.asList(
  101. ydConf.searchCondition_TextFiled("textField_mowj9rop",sid,"eq"),ydConf.searchCondition_TextFiled("textField_mowj9roq",uname,"eq")
  102. ))).build(), YDConf.FORM_OPERATION.upsert);
  103. }
  104. }