zyp il y a 1 semaine
Parent
commit
f145779734
20 fichiers modifiés avec 296 ajouts et 26 suppressions
  1. 23 2
      fs-company/src/main/java/com/fs/company/controller/qw/QwAutoTagsController.java
  2. 24 0
      fs-company/src/main/java/com/fs/company/controller/qw/QwAutoTagsLogsController.java
  3. 43 0
      fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactController.java
  4. 12 0
      fs-company/src/main/java/com/fs/company/controller/qw/QwSopLogsController.java
  5. 8 0
      fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsController.java
  6. 111 21
      fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsInfoController.java
  7. 10 0
      fs-service/src/main/java/com/fs/qw/mapper/QwTagMapper.java
  8. 10 0
      fs-service/src/main/java/com/fs/qw/param/QwTagSearchParam.java
  9. 1 0
      fs-service/src/main/java/com/fs/qw/param/SopUserLogsVO.java
  10. 3 0
      fs-service/src/main/java/com/fs/qw/service/IQwTagService.java
  11. 0 1
      fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java
  12. 6 0
      fs-service/src/main/java/com/fs/qw/service/impl/QwTagServiceImpl.java
  13. 2 0
      fs-service/src/main/java/com/fs/qw/vo/QwAutoTagsLogsVO.java
  14. 3 0
      fs-service/src/main/java/com/fs/qw/vo/QwAutoTagsVO.java
  15. 3 0
      fs-service/src/main/java/com/fs/qw/vo/QwExternalContactVO.java
  16. 4 0
      fs-service/src/main/java/com/fs/sop/domain/SopUserLogsInfo.java
  17. 10 0
      fs-service/src/main/java/com/fs/sop/mapper/QwSopLogsMapper.java
  18. 9 0
      fs-service/src/main/java/com/fs/sop/service/IQwSopLogsService.java
  19. 6 1
      fs-service/src/main/java/com/fs/sop/service/impl/QwSopLogsServiceImpl.java
  20. 8 1
      fs-service/src/main/resources/mapper/sop/QwSopLogsMapper.xml

+ 23 - 2
fs-company/src/main/java/com/fs/company/controller/qw/QwAutoTagsController.java

@@ -1,6 +1,7 @@
 package com.fs.company.controller.qw;
 
 
+import com.alibaba.fastjson.JSON;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -13,14 +14,16 @@ import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.domain.QwAutoTags;
 import com.fs.qw.param.QwAutoTagsParam;
+import com.fs.qw.param.QwAutoTagsRulesTags;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.service.IQwAutoTagsService;
+import com.fs.qw.service.IQwTagService;
 import com.fs.qw.vo.QwAutoTagsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * 自动打标签主Controller
@@ -38,6 +41,8 @@ public class QwAutoTagsController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IQwTagService iQwTagService;
     /**
      * 查询自动打标签主列表
      */
@@ -49,6 +54,22 @@ public class QwAutoTagsController extends BaseController
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwAutoTags.setCompanyId( loginUser.getCompany().getCompanyId());
         List<QwAutoTagsVO> list = qwAutoTagsService.selectQwAutoTagsListVO(qwAutoTags);
+        list.forEach(item->{
+
+            QwTagSearchParam param = new QwTagSearchParam();
+
+            Set<String> combinedTagsSet = new HashSet<>();
+            List<QwAutoTagsRulesTags> qwAutoTagsRulesTagsList = JSON.parseArray(item.getRulesTags(), QwAutoTagsRulesTags.class);
+            for (QwAutoTagsRulesTags rulesTags : qwAutoTagsRulesTagsList) {
+                List<String> tagsItem = rulesTags.getTags();
+
+                combinedTagsSet.addAll(tagsItem);
+            }
+
+            param.setTagIds(new ArrayList<>(combinedTagsSet));
+            item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+
+        });
         return getDataTable(list);
     }
 

+ 24 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwAutoTagsLogsController.java

@@ -11,13 +11,18 @@ import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.domain.QwAutoTagsLogs;
 import com.fs.qw.param.QwAutoTagsLogsParams;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.service.IQwAutoTagsLogsService;
+import com.fs.qw.service.IQwTagService;
 import com.fs.qw.vo.QwAutoTagsLogsVO;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 自动打标签的日志Controller
@@ -36,6 +41,9 @@ public class QwAutoTagsLogsController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IQwTagService iQwTagService;
+
     /**
      * 查询自动打标签的日志列表
      */
@@ -47,6 +55,22 @@ public class QwAutoTagsLogsController extends BaseController
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         params.setCompanyId( loginUser.getCompany().getCompanyId());
         List<QwAutoTagsLogsVO> list = qwAutoTagsLogsService.selectQwAutoTagsLogsListVO(params);
+        list.forEach(item->{
+
+            if (!Objects.equals(item.getEffectiveRules(), "[]") && item.getEffectiveRules()!=null) {
+                QwTagSearchParam param = new QwTagSearchParam();
+                Gson gson = new Gson();
+                List<String> tagIds = gson.fromJson(
+                        item.getEffectiveRules(),
+                        new TypeToken<List<String>>() {
+                        }.getType()
+                );
+
+                param.setTagIds(tagIds);
+
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
         return getDataTable(list);
     }
 

+ 43 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactController.java

@@ -19,12 +19,16 @@ import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.his.service.IFsUserService;
 import com.fs.qw.domain.QwExternalContact;
+import com.fs.qw.domain.QwTag;
 import com.fs.qw.param.*;
 import com.fs.qw.service.IQwExternalContactInfoService;
 import com.fs.qw.service.IQwExternalContactService;
+import com.fs.qw.service.IQwTagService;
 import com.fs.qw.vo.QwExternalContactVO;
 import com.fs.qw.vo.QwFsUserVO;
 import com.github.pagehelper.PageHelper;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import io.swagger.annotations.ApiOperation;
 import org.codehaus.jettison.json.JSONException;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +36,9 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import static com.fs.his.utils.PhoneUtil.decryptAutoPhoneMk;
 import static com.fs.his.utils.PhoneUtil.encryptPhone;
@@ -58,6 +64,9 @@ public class QwExternalContactController extends BaseController
     @Autowired
     private ICrmCustomerService crmCustomerService;
 
+    @Autowired
+    private IQwTagService iQwTagService;
+
     @Autowired
     private IQwExternalContactInfoService qwExternalContactInfoService;
     /**
@@ -71,6 +80,23 @@ public class QwExternalContactController extends BaseController
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwExternalContact.setCompanyId(loginUser.getCompany().getCompanyId());
         List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
+        list.forEach(item->{
+
+            if (!Objects.equals(item.getTagIds(), "[]") && item.getTagIds()!=null) {
+                QwTagSearchParam param = new QwTagSearchParam();
+                Gson gson = new Gson();
+                List<String> tagIds = gson.fromJson(
+                        item.getTagIds(),
+                        new TypeToken<List<String>>() {
+                        }.getType()
+                );
+
+                param.setTagIds(tagIds);
+
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
+
         return getDataTable(list);
     }
 
@@ -104,6 +130,23 @@ public class QwExternalContactController extends BaseController
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwExternalContact.setCompanyId(loginUser.getCompany().getCompanyId());
         List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
+        list.forEach(item->{
+
+            if (!Objects.equals(item.getTagIds(), "[]") && item.getTagIds()!=null) {
+                QwTagSearchParam param = new QwTagSearchParam();
+                Gson gson = new Gson();
+                List<String> tagIds = gson.fromJson(
+                        item.getTagIds(),
+                        new TypeToken<List<String>>() {
+                        }.getType()
+                );
+
+                param.setTagIds(tagIds);
+
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
+
         return getDataTable(list);
     }
 

+ 12 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwSopLogsController.java

@@ -120,6 +120,18 @@ public class QwSopLogsController extends BaseController
         return toAjax(iQwSopLogsService.updateQwSopLogs(QwSopLogs));
     }
 
+
+    /**
+     * 修改企业微信SOP  定时任务补发
+     */
+    @PreAuthorize("@ss.hasPermi('qw:sopLogs:editCourse')")
+    @Log(title = "修改企业微信SOP记录补发", businessType = BusinessType.UPDATE)
+    @PutMapping("/editCourseQwSopLogs/{ids}")
+    public AjaxResult editCourseQwSopLogs(@PathVariable String[] ids)
+    {
+        return toAjax(iQwSopLogsService.editCourseQwSopLogs(ids));
+    }
+
     /**
      * 删除企业微信SOP
      */

+ 8 - 0
fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsController.java

@@ -8,7 +8,9 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.framework.service.TokenService;
+import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.param.SopUserLogsVO;
+import com.fs.qw.service.IQwUserService;
 import com.fs.sop.domain.SopUserLogs;
 import com.fs.sop.params.SopUserLogsParam;
 import com.fs.sop.service.ISopUserLogsService;
@@ -33,6 +35,9 @@ public class SopUserLogsController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private QwUserMapper qwUserMapper;
+
     /**
      * 查询sopUserLogs列表
      */
@@ -42,6 +47,9 @@ public class SopUserLogsController extends BaseController
     {
         startPage();
         List<SopUserLogsVO> list = sopUserLogsService.selectSopUserLogsList(sopUserLogs);
+        list.forEach(item->{
+            item.setQwUserName(qwUserMapper.selectQwUserByQwUserIdAndCorpId(item.getQwUserId(), item.getCorpId()));
+        });
         return getDataTable(list);
     }
 

+ 111 - 21
fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsInfoController.java

@@ -9,13 +9,18 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.qw.param.QwExternalContactVOTime;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.param.SopExternalContactInfo;
 import com.fs.qw.service.IQwExternalContactService;
+import com.fs.qw.service.IQwTagService;
 import com.fs.sop.domain.SopUserLogsInfo;
 import com.fs.sop.params.BatchSopUserLogsInfoParam;
 import com.fs.sop.params.SendUserLogsInfoMsgParam;
 import com.fs.sop.service.ISopUserLogsInfoService;
 import com.fs.voice.utils.StringUtil;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+import com.google.gson.reflect.TypeToken;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -23,6 +28,8 @@ import org.springframework.web.bind.annotation.*;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -41,56 +48,139 @@ public class SopUserLogsInfoController extends BaseController
     @Autowired
     private IQwExternalContactService iQwExternalContactService;
 
+    @Autowired
+    private IQwTagService iQwTagService;
+
+    private static final Gson GSON = new Gson();
+
     /**
      * 查询sopUserLogsInfo列表
      */
     @PreAuthorize("@ss.hasPermi('qw:sop:list')")
     @GetMapping("/list")
     public TableDataInfo list(SopUserLogsInfo sopUserLogsInfo)
-    {
-        startPage();
+    {startPage();
         List<SopUserLogsInfo> list = sopUserLogsInfoService.selectSopUserLogsInfoList(sopUserLogsInfo);
 
-        if (!list.isEmpty()){
-
-            List<Long> externalIdList = list.stream()
-                    .map(SopUserLogsInfo::getExternalId) // 提取 externalId
-                    .filter(Objects::nonNull) // 过滤掉 null 值,防止 NullPointerException
-                    .collect(Collectors.toList()); // 收集到 List
-
-            List<QwExternalContactVOTime> qwExternalContactVOTimes = iQwExternalContactService.selectQwExternalContactListVOByIds(externalIdList);
+        if (!list.isEmpty()) {
+            // 使用并行流提取externalId
+            List<Long> externalIdList = list.parallelStream()
+                    .map(SopUserLogsInfo::getExternalId)
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.toList());
 
+            List<QwExternalContactVOTime> qwExternalContactVOTimes =
+                    iQwExternalContactService.selectQwExternalContactListVOByIds(externalIdList);
 
-            // 先将 qwExternalContactVOTimes 转换为 Map,key 为 id,value 为 ExternalContactInfo(包含 createTime 和 tagIds)
+            // 构建联系人信息映射
             Map<Long, SopExternalContactInfo> externalContactInfoMap = qwExternalContactVOTimes.stream()
                     .collect(Collectors.toMap(
                             QwExternalContactVOTime::getId,
-                            item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIds(),item.getRemark())
+                            item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIds(), item.getRemark())
                     ));
 
-            // 遍历 list,赋值 inComTime 和 tagIds
+            // 设置联系信息
             list.forEach(item -> {
-                SopExternalContactInfo info = externalContactInfoMap.getOrDefault(item.getExternalId(), new SopExternalContactInfo("无进线时间", "无标签","无备注"));
+                SopExternalContactInfo info = externalContactInfoMap.getOrDefault(
+                        item.getExternalId(),
+                        new SopExternalContactInfo("无进线时间", "无标签", "无备注"));
                 item.setInComTime(info.getCreateTime());
                 item.setTagIds(info.getTagIds());
                 item.setRemark(info.getRemark());
             });
-
         }
 
-        if ((sopUserLogsInfo.getTagIds() != null && !sopUserLogsInfo.getTagIds().isEmpty())
-                || !StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark())) {
+        // 优化过滤条件
+        boolean isRemarkEmpty = StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark());
+        Predicate<SopUserLogsInfo> tagFilter = item ->
+                sopUserLogsInfo.getTagIds() == null ||
+                        sopUserLogsInfo.getTagIds().isEmpty() ||
+                        item.getTagIds().contains(sopUserLogsInfo.getTagIds());
+
+        Predicate<SopUserLogsInfo> remarkFilter = item ->
+                isRemarkEmpty ||
+                        item.getRemark().contains(sopUserLogsInfo.getRemark());
+
+        if (sopUserLogsInfo.getTagIds() != null || !isRemarkEmpty) {
             list = list.stream()
-                    .filter(item ->
-                            (sopUserLogsInfo.getTagIds() == null || sopUserLogsInfo.getTagIds().isEmpty() || item.getTagIds().contains(sopUserLogsInfo.getTagIds()))
-                                    && (StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark()) || item.getRemark().contains(sopUserLogsInfo.getRemark()))
-                    )
+                    .filter(tagFilter.and(remarkFilter))
                     .collect(Collectors.toList());
         }
 
+        // 处理标签名称
+        list.parallelStream().forEach(item -> {
+            if (item.getTagIds() != null && !item.getTagIds().equals("[]") && !item.getTagIds().equals("无标签")) {
+                List<String> tagIds = GSON.fromJson(item.getTagIds(), new TypeToken<List<String>>() {}.getType());
+                QwTagSearchParam param = new QwTagSearchParam();
+                param.setTagIds(tagIds);
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
+
         return getDataTable(list);
+//        startPage();
+//        List<SopUserLogsInfo> list = sopUserLogsInfoService.selectSopUserLogsInfoList(sopUserLogsInfo);
+//
+//
+//        if (!list.isEmpty()){
+//
+//            List<Long> externalIdList = list.stream()
+//                    .map(SopUserLogsInfo::getExternalId) // 提取 externalId
+//                    .filter(Objects::nonNull) // 过滤掉 null 值,防止 NullPointerException
+//                    .collect(Collectors.toList()); // 收集到 List
+//
+//            List<QwExternalContactVOTime> qwExternalContactVOTimes = iQwExternalContactService.selectQwExternalContactListVOByIds(externalIdList);
+//
+//
+//            // 先将 qwExternalContactVOTimes 转换为 Map,key 为 id,value 为 ExternalContactInfo(包含 createTime 和 tagIds)
+//            Map<Long, SopExternalContactInfo> externalContactInfoMap = qwExternalContactVOTimes.stream()
+//                    .collect(Collectors.toMap(
+//                            QwExternalContactVOTime::getId,
+//                            item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIds(),item.getRemark())
+//                    ));
+//
+//            // 遍历 list,赋值 inComTime 和 tagIds
+//            list.forEach(item -> {
+//                SopExternalContactInfo info = externalContactInfoMap.getOrDefault(item.getExternalId(), new SopExternalContactInfo("无进线时间", "无标签","无备注"));
+//                item.setInComTime(info.getCreateTime());
+//                item.setTagIds(info.getTagIds());
+//                item.setRemark(info.getRemark());
+//            });
+//
+//        }
+//
+//        if ((sopUserLogsInfo.getTagIds() != null && !sopUserLogsInfo.getTagIds().isEmpty())
+//                || !StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark())) {
+//            list = list.stream()
+//                    .filter(item ->
+//                            (sopUserLogsInfo.getTagIds() == null || sopUserLogsInfo.getTagIds().isEmpty() || item.getTagIds().contains(sopUserLogsInfo.getTagIds()))
+//                                    && (StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark()) || item.getRemark().contains(sopUserLogsInfo.getRemark()))
+//                    )
+//                    .collect(Collectors.toList());
+//        }
+//
+//
+//        list.forEach(item->{
+//
+//            if (!Objects.equals(item.getTagIds(), "[]") && !Objects.equals(item.getTagIds(), "无标签") && item.getTagIds()!=null) {
+//                QwTagSearchParam param = new QwTagSearchParam();
+//                Gson gson = new Gson();
+//                List<String> tagIds = gson.fromJson(
+//                        item.getTagIds(),
+//                        new TypeToken<List<String>>() {
+//                        }.getType()
+//                );
+//
+//                param.setTagIds(tagIds);
+//
+//                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+//            }
+//        });
+//
+//        return getDataTable(list);
     }
 
+
 //    /**
 //     * 导出sopUserLogsInfo列表
 //     */

+ 10 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwTagMapper.java

@@ -1,6 +1,7 @@
 package com.fs.qw.mapper;
 
 import com.fs.qw.domain.QwTag;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.vo.QwTagVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -78,6 +79,15 @@ public interface QwTagMapper
             "</where>"+
             "</script>"})
     List<QwTagVO> selectQwTagListVO(QwTag qwTag);
+
     @Select("select * from qw_tag where name=#{trimTag} and corp_id=#{corpId} limit 1" )
     QwTagVO selectQwTagByName(@Param("trimTag") String trimTag, @Param("corpId")String corpId );
+
+    @Select("<script>" +
+            "SELECT name FROM qw_tag WHERE tag_id IN " +
+            "<foreach collection='date.tagIds' item='tagId' open='(' separator=',' close=')'>" +
+            "#{tagId}" +
+            "</foreach>" +
+            "</script>")
+    List<String> selectQwTagListByTagIds(@Param("date") QwTagSearchParam param);
 }

+ 10 - 0
fs-service/src/main/java/com/fs/qw/param/QwTagSearchParam.java

@@ -0,0 +1,10 @@
+package com.fs.qw.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QwTagSearchParam {
+    List<String> tagIds;
+}

+ 1 - 0
fs-service/src/main/java/com/fs/qw/param/SopUserLogsVO.java

@@ -11,6 +11,7 @@ public class SopUserLogsVO {
     *  企业微信账号
     */
     private String qwUserId;
+    private String qwUserName;
 
     /**
     * 营期时间

+ 3 - 0
fs-service/src/main/java/com/fs/qw/service/IQwTagService.java

@@ -3,6 +3,7 @@ package com.fs.qw.service;
 import com.fs.qw.domain.QwTag;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.param.QwTagParam;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.vo.QwTagGroupListVO;
 
 import java.util.List;
@@ -65,4 +66,6 @@ public interface IQwTagService
     public int deleteQwTagById(Long id);
 
     void AddCourseTag(QwUser user);
+
+    public List<String> selectQwTagListByTagIds(QwTagSearchParam param);
 }

+ 0 - 1
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -732,7 +732,6 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                     qwExternal.setTagIds(JSON.toJSONString(uniqueIds));
 
 
-
                     if (qwExternal.getTagIds() != null && !qwExternal.getTagIds().isEmpty()) {
                         tagIdsList = JSON.parseArray(qwExternal.getTagIds(), String.class);
                     }

+ 6 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwTagServiceImpl.java

@@ -8,6 +8,7 @@ import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.mapper.QwTagGroupMapper;
 import com.fs.qw.mapper.QwTagMapper;
 import com.fs.qw.param.QwTagParam;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.service.IQwTagService;
 import com.fs.qw.vo.QwTagGroupListVO;
 import com.fs.qw.vo.QwTagVO;
@@ -189,4 +190,9 @@ public class QwTagServiceImpl implements IQwTagService
 
 
     }
+
+    @Override
+    public List<String> selectQwTagListByTagIds(QwTagSearchParam param) {
+        return qwTagMapper.selectQwTagListByTagIds(param);
+    }
 }

+ 2 - 0
fs-service/src/main/java/com/fs/qw/vo/QwAutoTagsLogsVO.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class QwAutoTagsLogsVO {
@@ -41,6 +42,7 @@ public class QwAutoTagsLogsVO {
     /** 生效规则 */
     @Excel(name = "生效规则")
     private String effectiveRules;
+    private List<String> tagIdsName;
 
     /** 添加好友时间/加入群聊时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 3 - 0
fs-service/src/main/java/com/fs/qw/vo/QwAutoTagsVO.java

@@ -35,6 +35,9 @@ public class QwAutoTagsVO {
     @Excel(name = "选择的规则及标签")
     private String rulesTags;
 
+
+    private List<String> tagIdsName;
+
     /** 打标签总数 */
     @Excel(name = "打标签总数")
     private Long totalNumTags;

+ 3 - 0
fs-service/src/main/java/com/fs/qw/vo/QwExternalContactVO.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class QwExternalContactVO {
@@ -65,6 +66,8 @@ public class QwExternalContactVO {
     @Excel(name = "标签id")
     private String tagIds;
 
+    private List<String> tagIdsName;
+
     /** 备注电话号码 */
     @Excel(name = "备注电话号码")
     private String remarkMobiles;

+ 4 - 0
fs-service/src/main/java/com/fs/sop/domain/SopUserLogsInfo.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class SopUserLogsInfo implements Serializable {
@@ -37,4 +38,7 @@ public class SopUserLogsInfo implements Serializable {
     @TableField(exist = false)
     private String remark;
 
+    @TableField(exist = false)
+    private List<String> tagIdsName;
+
 }

+ 10 - 0
fs-service/src/main/java/com/fs/sop/mapper/QwSopLogsMapper.java

@@ -97,6 +97,16 @@ public interface QwSopLogsMapper extends BaseMapper<QwSopLogs> {
     @DataSource(DataSourceType.SOP)
     public int updateQwSopLogs(@Param("data") QwSopLogs qwSopLogs);
 
+    /**
+     * 批量删除企业微信SOP  定时任务
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    @DataSource(DataSourceType.SOP)
+    public int editCourseQwSopLogs(String[] ids);
+
+
     /**
      * 批量删除企业微信SOP  定时任务
      *

+ 9 - 0
fs-service/src/main/java/com/fs/sop/service/IQwSopLogsService.java

@@ -57,6 +57,15 @@ public interface IQwSopLogsService
      */
     public int updateQwSopLogs(QwSopLogs QwSopLogs);
 
+
+    /**
+     * 批量删除企业微信SOP  定时任务
+     *
+     * @param ids 需要删除的企业微信SOP  定时任务主键集合
+     * @return 结果
+     */
+    public int editCourseQwSopLogs(String[] ids);
+
     /**
      * 批量删除企业微信SOP  定时任务
      *

+ 6 - 1
fs-service/src/main/java/com/fs/sop/service/impl/QwSopLogsServiceImpl.java

@@ -163,6 +163,11 @@ public class QwSopLogsServiceImpl implements IQwSopLogsService
         return qwSopLogsMapper.updateQwSopLogs(QwSopLogs);
     }
 
+    @Override
+    public int editCourseQwSopLogs(String[] ids) {
+        return qwSopLogsMapper.editCourseQwSopLogs(ids);
+    }
+
     /**
      * 批量删除企业微信SOP  定时任务
      *
@@ -566,7 +571,7 @@ public class QwSopLogsServiceImpl implements IQwSopLogsService
 
         //写入企业微信 在线状态 10分钟 通过订阅方式,如果10分钟没有请求此接口,调用一个LOGIN方法
         redisCache.setCacheObject("qwActive:"+param.getCorpId()+":"+param.getQwUserId(),1,10 ,TimeUnit.MINUTES);
-        
+
         logger.info("主动获取发送信息:"+param);
 
         // 封装消息体

+ 8 - 1
fs-service/src/main/resources/mapper/sop/QwSopLogsMapper.xml

@@ -268,7 +268,14 @@
         </foreach>
     </update>
 
-
+    <update id="editCourseQwSopLogs" parameterType="String">
+        update qw_sop_logs
+        SET send_status = 3,  receiving_status = 0 , remark='再次补发记录', send_time = NOW(),real_send_time =null
+        where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 
     <delete id="deleteQwSopLogsById" parameterType="String">
         delete from qw_sop_logs  where id = #{id}