浏览代码

转接增加清空标签配置

Long 1 周之前
父节点
当前提交
88b551546b

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

@@ -57,4 +57,7 @@ public class QwExternalContactTransferCompanyAuditUser {
 
     @ApiModelProperty("接替时间")
     private LocalDateTime replaceTime;
+
+    @ApiModelProperty("是否需要清除标签")
+    private Integer needClearTag;
 }

+ 4 - 0
fs-service/src/main/java/com/fs/qw/domain/QwExternalContactTransferLog.java

@@ -51,4 +51,8 @@ public class QwExternalContactTransferLog extends BaseEntity
     private Long qwUserId;
     private Long handoverQwUserId;
     private Long fsUserId;
+    /**
+     * 是否需要清除标签
+     */
+    private Integer needClearTag;
 }

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

@@ -29,4 +29,7 @@ public class CompanyTransferDTO {
 
     @ApiModelProperty("原员工企微ID")
     private Long oldQwUserId;
+
+    @ApiModelProperty("是否需要清除标签")
+    private Integer needClearTag = 0;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/qw/param/ResignedTransferParam.java

@@ -11,4 +11,6 @@ public class ResignedTransferParam {
     String corpId;
     String  qwUserName;
     String type;
+    // 是否需要清除标签
+    private Integer needClearTag = 0;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/qw/param/TransferParam.java

@@ -12,4 +12,6 @@ public class TransferParam {
     String corpId;
     String content;
     String type;
+    // 是否需要清除标签
+    private Integer needClearTag = 0;
 }

+ 23 - 7
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -1138,6 +1138,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                                     qwExternalContactTransferLog.setTakeoverUserId(qwUser.getQwUserId());
                                     qwExternalContactTransferLog.setCorpId(param.getCorpId());
                                     qwExternalContactTransferLog.setExternalUserId(qwCustomer.getExternal_userid());
+                                    qwExternalContactTransferLog.setNeedClearTag(param.getNeedClearTag());
                                     qwExternalContactTransferLogMapper.insertQwExternalContactTransferLog(qwExternalContactTransferLog);
                                     QwExternalContact qwExternal = new QwExternalContact();
                                     qwExternal.setStatus(2);
@@ -1204,6 +1205,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                                     qwExternalContactTransferLog.setExternalUserId(qwCustomer.getExternal_userid());
                                     qwExternalContactTransferLog.setHandoverQwUserId(qwExternalContact.getQwUserId());
                                     qwExternalContactTransferLog.setFsUserId(qwExternalContact.getFsUserId());
+                                    qwExternalContactTransferLog.setNeedClearTag(param.getNeedClearTag());
                                     qwExternalContactTransferLogMapper.insertQwExternalContactTransferLog(qwExternalContactTransferLog);
                                     QwExternalContact qwExternal = new QwExternalContact();
                                     qwExternal.setStatus(2);
@@ -2466,6 +2468,26 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                 }
             }
         }
+
+        // 判断是否需要清除标签
+        boolean needClearTag = false;
+
+        //更新在职继承(可能有 可能没有)
+        QwExternalContactTransferLog transferLog=new QwExternalContactTransferLog();
+        transferLog.setCorpId(corpId);
+        transferLog.setTakeoverUserId(userID);
+        transferLog.setExternalUserId(externalUserID);
+        QwExternalContactTransferLog transferLogListByCheck = qwExternalContactTransferLogMapper.selectQwExternalContactTransferLogListByCheck(transferLog);
+        if (Objects.nonNull(transferLogListByCheck)) {
+            needClearTag = transferLogListByCheck.getNeedClearTag() == 1;
+        }
+
+        // 跨公司接替回调处理
+        List<QwExternalContactTransferCompanyAuditUser> auditUserList = transferCompanyAuditUserMapper.selectListByExtIdAndTakeoverUserIdAndCorpId(externalUserID, userID, corpId);
+        if (!auditUserList.isEmpty()) {
+            needClearTag = auditUserList.stream().anyMatch(t -> t.getNeedClearTag() == 1);
+        }
+
         for (FollowUser followUser : followUsers) {
             if (followUser.getUserid().equals(userID)) {
                 qwExternalContact.setUserId(followUser.getUserid()); // 设置属于用户ID
@@ -2485,7 +2507,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                 List<Tag> tags = followUser.getTags();
                 Set<String> combinedTagsSet = new HashSet<>();
 
-                if (tags != null && tags.size() > 0) {
+                if (tags != null && tags.size() > 0 && !needClearTag) {
                     List<String> tagArr = new ArrayList<>();
                     for (Tag tag : tags) {
                         tagArr.add(tag.getTag_id());
@@ -2742,11 +2764,6 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         }
 
         //更新在职继承(可能有 可能没有)
-        QwExternalContactTransferLog transferLog=new QwExternalContactTransferLog();
-        transferLog.setCorpId(corpId);
-        transferLog.setTakeoverUserId(userID);
-        transferLog.setExternalUserId(externalUserID);
-        QwExternalContactTransferLog transferLogListByCheck = qwExternalContactTransferLogMapper.selectQwExternalContactTransferLogListByCheck(transferLog);
         if (transferLogListByCheck!=null){
             transferLogListByCheck.setStatus(1);
             qwExternalContactTransferLogMapper.updateQwExternalContactTransferLog(transferLogListByCheck);
@@ -2761,7 +2778,6 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         }
 
         // 跨公司接替回调处理
-        List<QwExternalContactTransferCompanyAuditUser> auditUserList = transferCompanyAuditUserMapper.selectListByExtIdAndTakeoverUserIdAndCorpId(externalUserID, userID, corpId);
         if (!auditUserList.isEmpty()) {
             for (QwExternalContactTransferCompanyAuditUser auditUser : auditUserList) {
                 auditUser.setStatus(1);

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

@@ -145,6 +145,7 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
                 auditUser.setQwUserExtId(userQwUser.getQwUserId());
                 auditUser.setQwUserName(userQwUser.getQwUserName());
                 auditUser.setCreateTime(LocalDateTime.now());
+                auditUser.setNeedClearTag(param.getNeedClearTag());
 
                 return auditUser;
             }).collect(Collectors.toList());

+ 5 - 0
fs-service/src/main/resources/db/20251011-转接增加清空标签配置.sql

@@ -0,0 +1,5 @@
+alter table qw_external_contact_transfer_log
+    add column need_clear_tag tinyint default 0 comment '是否需要清空标签 0否 1是';
+
+alter table qw_external_contact_transfer_company_audit_user
+    add column need_clear_tag tinyint default 0 comment '是否需要清空标签 0否 1是';

+ 5 - 1
fs-service/src/main/resources/mapper/qw/QwExternalContactTransferLogMapper.xml

@@ -19,10 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="qwUserId"    column="qw_user_id"    />
         <result property="handoverQwUserId"    column="handover_qw_user_id"    />
         <result property="fsUserId"    column="fs_user_id"    />
+        <result property="needClearTag"    column="need_clear_tag"    />
     </resultMap>
 
     <sql id="selectQwExternalContactTransferLogVo">
-        select id, corp_id, qw_user_id,handover_qw_user_id,company_id,takeover_user_id,handover_user_id, company_user_id, external_user_id, customer_id, external_contact_id, status, create_time,fs_user_id from qw_external_contact_transfer_log
+        select id, corp_id, qw_user_id,handover_qw_user_id,company_id,takeover_user_id,handover_user_id, company_user_id, external_user_id, customer_id, external_contact_id, status, create_time,fs_user_id, need_clear_tag from qw_external_contact_transfer_log
     </sql>
 
     <select id="selectQwExternalContactTransferLogList" parameterType="QwExternalContactTransferLog" resultMap="QwExternalContactTransferLogResult">
@@ -83,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="qwUserId != null">qw_user_id,</if>
             <if test="handoverQwUserId != null">handover_qw_user_id,</if>
             <if test="fsUserId != null">fs_user_id,</if>
+            <if test="needClearTag != null">need_clear_tag,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -99,6 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="qwUserId != null">#{qwUserId},</if>
             <if test="handoverQwUserId != null">#{handoverQwUserId},</if>
             <if test="fsUserId != null">#{fsUserId},</if>
+            <if test="needClearTag != null">#{needClearTag},</if>
          </trim>
     </insert>
 
@@ -117,6 +120,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="handoverUserId != null">handover_user_id = #{handoverUserId},</if>
             <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
             <if test="handoverQwUserId != null">handover_qw_user_id = #{handoverQwUserId},</if>
+            <if test="needClearTag != null">need_clear_tag = #{needClearTag},</if>
         </trim>
         where id = #{id}
     </update>