Zimo 6 dni temu
rodzic
commit
b04330ea21

+ 7 - 0
yudao-server/src/main/java/cn/iocoder/yudao/server/controller/admin/TodoController.java

@@ -63,6 +63,13 @@ public class TodoController {
         }
         ImmutableMap<String, Object> oaTodo = portalOaFlow.getOaTodo(workcode1.get(0).getOaId());
         return CommonResult.success(oaTodo);
+
+//        List<IotOaPersonRespVO> iotOaPersonRespVOS = pmsMapper.selectOaPersonByCode(workcode);
+//        if (CollUtil.isEmpty(iotOaPersonRespVOS)) {
+//            throw new ServiceException(new ErrorCode(1,"不存在OA用户"));
+//        }
+//        ImmutableMap<String, Object> oaTodo = portalOaFlow.getOaTodo(iotOaPersonRespVOS.get(0).getOaId());
+//        return CommonResult.success(oaTodo);
     }
 
     @GetMapping("/crm")

+ 2 - 0
yudao-server/src/main/java/cn/iocoder/yudao/server/controller/admin/vo/crm/CrmNoticePageReqVO.java

@@ -52,4 +52,6 @@ public class CrmNoticePageReqVO extends PageParam {
     private LocalDateTime[] createTime;
 
     private String workCode;
+
+    private String crmNoticeId;
 }

+ 2 - 0
yudao-server/src/main/java/cn/iocoder/yudao/server/controller/admin/vo/crm/CrmNoticeRespVO.java

@@ -65,4 +65,6 @@ public class CrmNoticeRespVO {
     private LocalDateTime createTime;
 
     private String workCode;
+
+    private String crmNoticeId;
 }

+ 2 - 0
yudao-server/src/main/java/cn/iocoder/yudao/server/controller/admin/vo/crm/CrmNoticeSaveReqVO.java

@@ -44,4 +44,6 @@ public class CrmNoticeSaveReqVO {
     private String status;
 
     private String workCode;
+
+    private String crmNoticeId;
 }

+ 2 - 0
yudao-server/src/main/java/cn/iocoder/yudao/server/dal/dataobject/CrmNoticeDO.java

@@ -70,4 +70,6 @@ public class CrmNoticeDO extends BaseDO {
     private String status;
 
     private String workCode;
+
+    private String crmNoticeId;
 }

+ 29 - 13
yudao-server/src/main/java/cn/iocoder/yudao/server/rest/CrmRest.java

@@ -20,9 +20,11 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 @Component
 public class CrmRest {
@@ -115,22 +117,36 @@ public class CrmRest {
         //todo 异步逻辑处理
 //        CompletableFuture.runAsync(()->{
             //先删除
-           crmNoticeMapper.deleteByMap(ImmutableMap.of("work_code",workcode));
-           //再添加到消息表里面
-           crmNotices.forEach(e ->{
-               CrmNoticeDO crmNoticeDO = new CrmNoticeDO();
-               CrmNoticeDetail notice = e.getNotice();
-               BeanUtils.copyProperties(notice,crmNoticeDO);
-               crmNoticeDO.setContentMajor(e.getContent());
-               crmNoticeDO.setDeleted(false);
-               crmNoticeDO.setWorkCode(workcode);
-               crmNoticeMapper.insert(crmNoticeDO);
-           });
-//        });
-
+           //crmNoticeMapper.deleteByMap(ImmutableMap.of("work_code",workcode));
+        //取最近的那条纪录
+        CrmNoticeDO crmNoticeDO1 = crmNoticeMapper.selectList("work_code", workcode).stream()
+                .max(Comparator.comparing(CrmNoticeDO::getCreatedAt))
+                .orElse(null);
+        if (crmNoticeDO1 == null) {
+            insertBatchNotice(crmNotices, workcode);
+        }else {
+            List<CrmNotice> collect = crmNotices.stream().filter(e -> {
+                CrmNoticeDetail notice = e.getNotice();
+                if (notice == null) {return false;}
+                return notice.getStatus() != 1&&notice.getCreatedAt()>Long.parseLong(crmNoticeDO1.getCreatedAt());
+            }).collect(Collectors.toList());
+            insertBatchNotice(collect, workcode);
+        }
         return crmNotices;
     }
 
+    public void insertBatchNotice(List<CrmNotice> crmNotices, String workcode) {
+        crmNotices.forEach(e ->{
+            CrmNoticeDO crmNoticeDO = new CrmNoticeDO();
+            CrmNoticeDetail notice = e.getNotice();
+            BeanUtils.copyProperties(notice,crmNoticeDO);
+            crmNoticeDO.setContentMajor(e.getContent());
+            crmNoticeDO.setDeleted(false);
+            crmNoticeDO.setWorkCode(workcode);
+            crmNoticeMapper.insert(crmNoticeDO);
+        });
+    }
+
     @Data
     static class CrmUser{
         private String id;