Forráskód Böngészése

fix: 缺失计算代码优化

chenjianhua 7 hónapja
szülő
commit
dfd460a976

+ 2 - 1
service-base/src/main/java/com/simuwang/base/common/enums/TaskType.java

@@ -12,7 +12,8 @@ import lombok.Getter;
 public enum TaskType {
     EMAIL_PARSE(1, "邮件解析"),
     DELETION_COMPUTE(2, "缺失计算"),
-    DELETION_NOTIFICATIONS(3, "缺失明细通知");
+    DELETION_NOTIFICATIONS(3, "缺失明细通知"),
+    DATA_TRANSFER(4, "数据同步");
 
     private final int type;
     private final String info;

+ 49 - 1
service-manage/src/main/java/com/simuwang/manage/task/DataSynchronizationTask.java

@@ -1,18 +1,24 @@
 package com.simuwang.manage.task;
 
 import cn.hutool.core.date.DateUtil;
+import com.simuwang.base.common.enums.TaskType;
 import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.common.util.StringUtil;
 import com.simuwang.base.mapper.core.CoreDistributionMapper;
 import com.simuwang.base.mapper.core.SrcNavMapper;
 import com.simuwang.base.mapper.daq.DistributionMapper;
+import com.simuwang.base.mapper.daq.EmailTaskInfoMapper;
 import com.simuwang.base.mapper.daq.NavMapper;
 import com.simuwang.base.mapper.daq.system.SysConfigMapper;
 import com.simuwang.base.pojo.dos.DistributionDO;
+import com.simuwang.base.pojo.dos.EmailTaskInfoDO;
 import com.simuwang.base.pojo.dos.NavDO;
 import com.simuwang.base.pojo.dos.SysConfigDO;
 import com.simuwang.base.pojo.dos.core.CoreDistributionDO;
 import com.simuwang.base.pojo.dos.core.SrcNavDO;
+import com.simuwang.shiro.utils.UserUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -42,10 +48,13 @@ public class DataSynchronizationTask {
     private DistributionMapper distributionMapper;
     @Autowired
     private CoreDistributionMapper coreDistributionMapper;
-
+    @Autowired
+    private EmailTaskInfoMapper emailTaskInfoMapper;
+    private static final Logger log = LoggerFactory.getLogger(DataSynchronizationTask.class);
     private static final Integer maxNum = 100000;
 
     public void synchronization() {
+        EmailTaskInfoDO emailTaskInfoDO = startEmailTask(null, 1);
         String startDate = sysConfigMapper.selectConfigByKey("last_data_synchronization_time");
         if (StringUtil.isNull(startDate)) {
             //沒有配置就新增一个
@@ -101,6 +110,7 @@ public class DataSynchronizationTask {
         saveDistribute(distributionDOList);
         //更新最后任务时间
         updateConfig(endDate);
+        endEmailTask(emailTaskInfoDO.getId(),2);
     }
 
     private void saveDistribute(List<DistributionDO> distributionDOList) {
@@ -188,4 +198,42 @@ public class DataSynchronizationTask {
             srcNavDOList.clear();
         }
     }
+
+    private EmailTaskInfoDO startEmailTask(String email, Integer taskStatus) {
+        EmailTaskInfoDO  emailTaskInfoDO = new EmailTaskInfoDO();
+        try{
+            emailTaskInfoDO.setTaskName(TaskType.DATA_TRANSFER.getInfo());
+            emailTaskInfoDO.setTaskType(TaskType.DATA_TRANSFER.getType());
+            emailTaskInfoDO.setTaskStatus(taskStatus);
+            emailTaskInfoDO.setStartTime(DateUtils.getNowDate());
+            emailTaskInfoDO.setIsvalid(1);
+            emailTaskInfoDO.setEmail(email);
+            emailTaskInfoDO.setCreateTime(DateUtils.getNowDate());
+            emailTaskInfoDO.setUpdateTime(DateUtils.getNowDate());
+            try{
+                emailTaskInfoDO.setCreatorId(UserUtils.getLoginUser().getUserId());
+                emailTaskInfoDO.setUpdaterId(UserUtils.getLoginUser().getUserId());
+            }catch (Exception e){
+                emailTaskInfoDO.setCreatorId(1);
+                emailTaskInfoDO.setUpdaterId(1);
+            }
+            emailTaskInfoMapper.insert(emailTaskInfoDO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+        return emailTaskInfoDO;
+    }
+
+    private void endEmailTask(Integer id, Integer taskStatus) {
+        try{
+            EmailTaskInfoDO emailTaskInfoDO = new EmailTaskInfoDO();
+            emailTaskInfoDO.setId(id);
+            emailTaskInfoDO.setTaskStatus(taskStatus);
+            emailTaskInfoDO.setUpdateTime(DateUtils.getNowDate());
+            emailTaskInfoDO.setEndTime(DateUtils.getNowDate());
+            emailTaskInfoMapper.updateTaskStatusById(emailTaskInfoDO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
 }