wzy 1 year ago
parent
commit
d79764d797

+ 18 - 0
mjava-mc/src/main/java/com/malk/mc/entity/PocTbWeekly.java

@@ -0,0 +1,18 @@
+package com.malk.mc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("poc_tb_weekly")
+public class PocTbWeekly {
+    @TableId(value = "id", type = IdType.INPUT)
+    String id;
+    String taskId;
+    String content;
+    String creatorId;
+    String createDate;
+    String updateDate;
+}

+ 11 - 0
mjava-mc/src/main/java/com/malk/mc/event/McTbEventImpl.java

@@ -10,6 +10,8 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.util.Map;
+
 @Primary
 @Service
 @Slf4j
@@ -21,6 +23,15 @@ public class McTbEventImpl implements TBEvent {
 
     @Override
     public void callBackTask(JSONObject eventJson) {
+        Map data = (Map) eventJson.get("data");
+        String activityId = String.valueOf(data.get("activityId"));
+        Map content = (Map) data.get("content");
+        String creatorId = String.valueOf(data.get("creatorId"));
+        String taskId = String.valueOf(data.get("taskId"));
+        String createDate = String.valueOf(data.get("created"));
+        String updateDate = String.valueOf(data.get("updated"));
+
+        mcPocTbService.saveWeekly(activityId, content, creatorId, taskId, createDate, updateDate);
 
     }
 

+ 9 - 0
mjava-mc/src/main/java/com/malk/mc/mapper/PocTbWeeklyMapper.java

@@ -0,0 +1,9 @@
+package com.malk.mc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.malk.mc.entity.PocTbWeekly;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PocTbWeeklyMapper extends BaseMapper<PocTbWeekly> {
+}

+ 11 - 0
mjava-mc/src/main/java/com/malk/mc/service/McPocTbService.java

@@ -1,9 +1,20 @@
 package com.malk.mc.service;
 
 import java.util.List;
+import java.util.Map;
 
 public interface McPocTbService {
 
     void saveWorkTimes(String taskId,String userId,List<String> ids);
 
+    /**
+     * 保存周报
+     * @param activityId
+     * @param content
+     * @param creatorId
+     * @param taskId
+     * @param createDate
+     * @param updateDate
+     */
+    void saveWeekly(String activityId, Map content, String creatorId, String taskId, String createDate, String updateDate);
 }

+ 50 - 0
mjava-mc/src/main/java/com/malk/mc/service/impl/McPocTbServiceImpl.java

@@ -1,11 +1,16 @@
 package com.malk.mc.service.impl;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.malk.mc.entity.PocTbTask;
+import com.malk.mc.entity.PocTbWeekly;
 import com.malk.mc.entity.PocTbWorkTime;
 import com.malk.mc.mapper.PocTbTaskMapper;
 import com.malk.mc.mapper.PocTbUserMapper;
+import com.malk.mc.mapper.PocTbWeeklyMapper;
 import com.malk.mc.mapper.PocTbWorkTimeMapper;
 import com.malk.mc.service.McPocTbService;
 import com.malk.server.aliwork.YDConf;
@@ -18,6 +23,7 @@ import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -36,6 +42,8 @@ public class McPocTbServiceImpl implements McPocTbService {
     private PocTbUserMapper pocTbUserMapper;
     @Autowired
     private YDClient ydClient;
+    @Autowired
+    private PocTbWeeklyMapper pocTbWeeklyMapper;
 
     private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
     private SimpleDateFormat defaultFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -77,6 +85,48 @@ public class McPocTbServiceImpl implements McPocTbService {
         }
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveWeekly(String activityId, Map content, String creatorId, String taskId, String createDate, String updateDate) {
+        Map task=tbClient.queryTaskDetail(taskId,"","").get(0);
+        String projectId=UtilMap.getString(task,"projectId");
+        if(!projectId.equals("66124f3f6f4d77e0259b40d5")){
+            return;
+        }
+        //若任务不存在则创建
+        PocTbTask pocTbTask=pocTbTaskMapper.selectById(taskId);
+        if(pocTbTask==null){
+            pocTbTask=new PocTbTask();
+            pocTbTask.setTaskId(taskId);
+            pocTbTask.setTaskName(UtilMap.getString(task,"content"));
+            pocTbTaskMapper.insert(pocTbTask);
+        }
+        String ddUserId = pocTbUserMapper.selectById(creatorId).getDdUserId();
+        //创建周报
+        PocTbWeekly pocTbWeekly = pocTbWeeklyMapper.selectById(activityId);
+        if (Objects.isNull(pocTbWeekly)){
+            pocTbWeekly = new PocTbWeekly();
+            pocTbWeekly.setId(activityId);
+            pocTbWeekly.setContent(String.valueOf(content.get("text")));
+            pocTbWeekly.setTaskId(taskId);
+            pocTbWeekly.setCreatorId(creatorId);
+            pocTbWeekly.setCreateDate(createDate);
+            pocTbWeekly.setUpdateDate(updateDate);
+            pocTbWeeklyMapper.insert(pocTbWeekly);
+
+            //在宜搭周报表中新增数据
+            Map data=new HashMap();
+            data.put("employeeField_lxu7g60o", Arrays.asList(ddUserId));//员工
+            data.put("textField_lxu7g60r", pocTbTask.getTaskName());//项目名称
+            data.put("textareaField_lxu7g60p",String.valueOf(content.get("text")));//周报内容
+            data.put("dateField_lxu7g60q",DateUtil.parse(createDate));//周报创建日期
+
+            ydClient.operateData(YDParam.builder().formUuid("FORM-4EFCFB6F0E3D4187BCDEBEEA60F4F555RTIK").formDataJson(JSONObject.toJSONString(data)).build(), YDConf.FORM_OPERATION.create);
+        }
+
+
+    }
+
     private String timeFormat(String startDate){
         String result = "";
         Date rwStateTime = null;

+ 13 - 3
mjava-mc/src/test/java/com/malk/mc/PocTbTest.java

@@ -1,5 +1,7 @@
 package com.malk.mc;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.malk.mc.entity.PocTbUser;
 import com.malk.mc.mapper.PocTbUserMapper;
 import com.malk.mc.service.McPocTbService;
@@ -13,9 +15,9 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.util.*;
 
 @Slf4j
 @SpringBootTest
@@ -35,4 +37,12 @@ public class PocTbTest {
         mcPocTbService.saveWorkTimes("665ee80a57df029b4375c6de","616fb6f78ad4104a10515809", Arrays.asList("6671330b546ad300120e4c5c"));
     }
 
+    @Test
+    public void test2() {
+        Map content = new HashMap<>();
+        content.put("attachments",new Array[]{});
+        content.put("text","已经完成,在协助客户测试,解决客>户提出的问题");
+        mcPocTbService.saveWeekly("667a8acecb1f84f76e4e1b4e",content,"61e6614bd80be3b12f0ba72d","665c9db8ae4a37f6c0fc5be4","2024-06-25T09:15:58.230Z","2024-06-25T09:15:58.230Z" );
+    }
+
 }