McPocTbServiceImpl.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package com.malk.mc.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.NumberUtil;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.malk.mc.entity.PocTbTask;
  8. import com.malk.mc.entity.PocTbWeekly;
  9. import com.malk.mc.entity.PocTbWorkTime;
  10. import com.malk.mc.mapper.PocTbTaskMapper;
  11. import com.malk.mc.mapper.PocTbUserMapper;
  12. import com.malk.mc.mapper.PocTbWeeklyMapper;
  13. import com.malk.mc.mapper.PocTbWorkTimeMapper;
  14. import com.malk.mc.service.McPocTbService;
  15. import com.malk.server.aliwork.YDConf;
  16. import com.malk.server.aliwork.YDParam;
  17. import com.malk.service.aliwork.YDClient;
  18. import com.malk.service.aliwork.YDService;
  19. import com.malk.service.teambition.TBClient;
  20. import com.malk.utils.UtilDateTime;
  21. import com.malk.utils.UtilMap;
  22. import lombok.extern.slf4j.Slf4j;
  23. import org.apache.logging.log4j.util.Strings;
  24. import org.slf4j.MDC;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import java.text.SimpleDateFormat;
  29. import java.util.*;
  30. @Service
  31. @Slf4j
  32. public class McPocTbServiceImpl implements McPocTbService {
  33. @Autowired
  34. private TBClient tbClient;
  35. @Autowired
  36. private PocTbWorkTimeMapper pocTbWorkTimeMapper;
  37. @Autowired
  38. private PocTbTaskMapper pocTbTaskMapper;
  39. @Autowired
  40. private PocTbUserMapper pocTbUserMapper;
  41. @Autowired
  42. private YDClient ydClient;
  43. @Autowired
  44. private PocTbWeeklyMapper pocTbWeeklyMapper;
  45. private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
  46. private SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  47. @Override
  48. public void saveWorkTimes(String taskId, String userId, List<String> ids) {
  49. MDC.put("MDC_KEY_PID","1000");
  50. Map task=tbClient.queryTaskDetail(taskId,"","").get(0);
  51. String projectId=UtilMap.getString(task,"projectId");
  52. if(!projectId.equals("66124f3f6f4d77e0259b40d5")){
  53. return;
  54. }
  55. PocTbTask pocTbTask=pocTbTaskMapper.selectById(taskId);
  56. if(pocTbTask==null){
  57. pocTbTask=new PocTbTask();
  58. pocTbTask.setTaskId(taskId);
  59. pocTbTask.setTaskName(UtilMap.getString(task,"content"));
  60. pocTbTaskMapper.insert(pocTbTask);
  61. }
  62. String ddUserId = pocTbUserMapper.selectById(userId).getDdUserId();
  63. for(String id:ids){
  64. Map map=tbClient.queryWorktime(id);
  65. PocTbWorkTime pocTbWorkTime=new PocTbWorkTime();
  66. pocTbWorkTime.setId(id);
  67. pocTbWorkTime.setUserId(userId);
  68. pocTbWorkTime.setTaskId(taskId);
  69. pocTbWorkTime.setDescription(UtilMap.getString(map,"description"));
  70. pocTbWorkTime.setWorkTime(UtilMap.getString(map,"worktime"));
  71. pocTbWorkTime.setCreatedAt(timeFormat(UtilMap.getString(map,"createdAt")));
  72. String workData=timeFormat(UtilMap.getString(map,"date"));
  73. pocTbWorkTime.setWorkData(workData.split(" ")[0]);
  74. pocTbWorkTimeMapper.insert(pocTbWorkTime);
  75. Map data=new HashMap();
  76. data.put("employeeField_lxk6f7i2", Arrays.asList(ddUserId));//
  77. data.put("dateField_lxk6f7i3", UtilDateTime.getLocalDateTimeTimeStamp(UtilDateTime.parseLocalDateTime(workData)));//
  78. data.put("textField_lxk6f7i5",pocTbTask.getTaskName());//
  79. data.put("numberField_lxk6f7i4", NumberUtil.div(pocTbWorkTime.getWorkTime(),"3600000"));//
  80. data.put("textareaField_lxk6f7i6",pocTbWorkTime.getDescription());//
  81. if (Strings.isNotBlank(MDC.get("MDC_KEY_PID"))){
  82. log.info(MDC.get("MDC_KEY_PID"));
  83. }
  84. ydClient.operateData(YDParam.builder().formUuid("FORM-EDFDBFBE08F149AAB4FD7A9BA00FAFD8DQER").formDataJson(JSONObject.toJSONString(data)).build(), YDConf.FORM_OPERATION.create);
  85. }
  86. }
  87. @Override
  88. @Transactional(rollbackFor = Exception.class)
  89. public void saveWeekly(String activityId, Map content, String creatorId, String taskId, String createDate, String updateDate) {
  90. MDC.put("MDC_KEY_PID","1000");
  91. Map task=tbClient.queryTaskDetail(taskId,"","").get(0);
  92. String projectId=UtilMap.getString(task,"projectId");
  93. if(!projectId.equals("66124f3f6f4d77e0259b40d5")){
  94. return;
  95. }
  96. //若任务不存在则创建
  97. PocTbTask pocTbTask=pocTbTaskMapper.selectById(taskId);
  98. if(pocTbTask==null){
  99. pocTbTask=new PocTbTask();
  100. pocTbTask.setTaskId(taskId);
  101. pocTbTask.setTaskName(UtilMap.getString(task,"content"));
  102. pocTbTaskMapper.insert(pocTbTask);
  103. }
  104. String ddUserId = pocTbUserMapper.selectById(creatorId).getDdUserId();
  105. //创建周报
  106. PocTbWeekly pocTbWeekly = pocTbWeeklyMapper.selectById(activityId);
  107. if (Objects.isNull(pocTbWeekly)){
  108. pocTbWeekly = new PocTbWeekly();
  109. pocTbWeekly.setId(activityId);
  110. pocTbWeekly.setContent(String.valueOf(content.get("text")));
  111. pocTbWeekly.setTaskId(taskId);
  112. pocTbWeekly.setCreatorId(creatorId);
  113. pocTbWeekly.setCreateDate(createDate);
  114. pocTbWeekly.setUpdateDate(updateDate);
  115. pocTbWeeklyMapper.insert(pocTbWeekly);
  116. //在宜搭周报表中新增数据
  117. Map data=new HashMap();
  118. data.put("employeeField_lxu7g60o", Arrays.asList(ddUserId));//员工
  119. data.put("textField_lxu7g60r", pocTbTask.getTaskName());//项目名称
  120. data.put("textareaField_lxu7g60p",String.valueOf(content.get("text")));//周报内容
  121. data.put("dateField_lxu7g60q",DateUtil.parse(createDate));//周报创建日期
  122. if (Strings.isNotBlank(MDC.get("MDC_KEY_PID"))){
  123. log.info(MDC.get("MDC_KEY_PID"));
  124. }
  125. ydClient.operateData(YDParam.builder().formUuid("FORM-4EFCFB6F0E3D4187BCDEBEEA60F4F555RTIK").formDataJson(JSONObject.toJSONString(data)).build(), YDConf.FORM_OPERATION.create);
  126. }
  127. }
  128. private String timeFormat(String startDate){
  129. String result = "";
  130. Date rwStateTime = null;
  131. if (startDate == null) {
  132. System.out.println("该项目没有获取到任务开始时间!");
  133. } else {
  134. startDate = startDate.replace("Z", " UTC");
  135. try {
  136. rwStateTime = format.parse(startDate);
  137. result = defaultFormat.format(rwStateTime);
  138. } catch (Exception e) {
  139. e.printStackTrace();
  140. }
  141. }
  142. return result;
  143. }
  144. }