Quellcode durchsuchen

跨公司客户接替

Long vor 3 Wochen
Ursprung
Commit
4bd5a11a17

+ 7 - 1
fs-admin/src/main/java/com/fs/qw/controller/QwExternalContactTransferCompanyAuditController.java

@@ -2,14 +2,18 @@ package com.fs.qw.controller;
 
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.utils.SecurityUtils;
 import com.fs.qw.domain.QwExternalContactTransferCompanyAudit;
+import com.fs.qw.dto.CompanyTransferAuditDTO;
 import com.fs.qw.service.IQwExternalContactTransferCompanyAuditService;
 import com.fs.qw.service.IQwExternalContactTransferCompanyAuditUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 @RestController
@@ -37,7 +41,9 @@ public class QwExternalContactTransferCompanyAuditController extends BaseControl
 
     @PreAuthorize("@ss.hasPermi('qw:externalContactTransferCompanyAudit:audit')")
     @PostMapping("/audit")
-    public AjaxResult audit() {
+    public AjaxResult audit(@Valid @RequestBody CompanyTransferAuditDTO param) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        auditService.audit(param, loginUser.getUser().getUserName());
         return AjaxResult.success();
     }
 

+ 56 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactTransferCompanyAuditController.java

@@ -0,0 +1,56 @@
+package com.fs.company.controller.qw;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
+import com.fs.framework.security.LoginUser;
+import com.fs.framework.service.TokenService;
+import com.fs.qw.domain.QwExternalContactTransferCompanyAudit;
+import com.fs.qw.service.IQwExternalContactTransferCompanyAuditService;
+import com.fs.qw.service.IQwExternalContactTransferCompanyAuditUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/qw/externalContactTransferCompanyAudit")
+public class QwExternalContactTransferCompanyAuditController extends BaseController {
+
+    @Autowired
+    private IQwExternalContactTransferCompanyAuditService auditService;
+    @Autowired
+    private IQwExternalContactTransferCompanyAuditUserService auditUserService;
+    @Autowired
+    private TokenService tokenService;
+
+    @PreAuthorize("@ss.hasPermi('qw:externalContactTransferCompanyAudit:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(QwExternalContactTransferCompanyAudit param) {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long companyId = loginUser.getCompany().getCompanyId();
+        param.setOperCompanyId(companyId);
+        List<QwExternalContactTransferCompanyAudit> list = auditService.selectQwExternalContactTransferCompanyAuditList(param);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('qw:externalContactTransferCompanyAudit:sync')")
+    @Log(title = "公司转接同步", businessType = BusinessType.INSERT)
+    @PostMapping("/sync/{auditId}")
+    public R sync(@PathVariable("auditId") Long auditId) {
+        auditService.syncTransfer(auditId);
+        return R.ok();
+    }
+
+    @PreAuthorize("@ss.hasPermi('qw:externalContactTransferCompanyAudit:detail')")
+    @GetMapping("/detail/{auditId}")
+    public AjaxResult detail(@PathVariable Long auditId) {
+        return AjaxResult.success(auditUserService.getListByAuditId(auditId));
+    }
+}

+ 6 - 0
fs-service/src/main/java/com/fs/qw/domain/QwExternalContactTransferCompanyAudit.java

@@ -49,6 +49,9 @@ public class QwExternalContactTransferCompanyAudit {
     @ApiModelProperty("消息内容")
     private String content;
 
+    @ApiModelProperty("转接类型 1在职转接 2离职转接")
+    private Integer transferType;
+
     @ApiModelProperty("状态 1待审核 2审核通过 3审核被拒")
     private Integer status;
 
@@ -69,4 +72,7 @@ public class QwExternalContactTransferCompanyAudit {
 
     @ApiModelProperty("创建人")
     private String createBy;
+
+    @ApiModelProperty("提审公司")
+    private Long operCompanyId;
 }

+ 21 - 0
fs-service/src/main/java/com/fs/qw/dto/CompanyTransferAuditDTO.java

@@ -0,0 +1,21 @@
+package com.fs.qw.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class CompanyTransferAuditDTO {
+
+    @NotNull(message = "审核记录不能为空")
+    @ApiModelProperty("审核记录ID")
+    private Long auditId;
+
+    @ApiModelProperty("审核类型 1通过 2拒绝")
+    @NotNull(message = "审核类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty("拒绝理由")
+    private String reason;
+}

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

@@ -23,6 +23,10 @@ public class CompanyTransferDTO {
     @ApiModelProperty("转移类型 0.转移ids外部联系人 1.转移qwUserName员工下外部联系人")
     private Integer type = 0;
 
+    @NotNull(message = "转接类型不能为空")
+    @ApiModelProperty("转接类型 1在职转接 2离职转接")
+    private Integer transferType;
+
     @ApiModelProperty("原员工企微ID")
     private Long oldQwUserId;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactTransferCompanyAuditUserMapper.java

@@ -12,4 +12,9 @@ public interface QwExternalContactTransferCompanyAuditUserMapper extends BaseMap
      * 根据ID集合查询已提交的记录
      */
     List<QwExternalContactTransferCompanyAuditUser> getExistAuditByExtIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 查询接替记录
+     */
+    List<QwExternalContactTransferCompanyAuditUser> selectListByExtIdAndTakeoverUserIdAndCorpId(@Param("externalUserID") String externalUserID, @Param("takeoverUserId") String takeoverUserId, @Param("corpId") String corpId);
 }

+ 14 - 0
fs-service/src/main/java/com/fs/qw/service/IQwExternalContactTransferCompanyAuditService.java

@@ -2,8 +2,12 @@ package com.fs.qw.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.qw.domain.QwExternalContactTransferCompanyAudit;
+import com.fs.qw.dto.CompanyTransferAuditDTO;
 import com.fs.qw.dto.CompanyTransferDTO;
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 import java.util.List;
 
 
@@ -18,4 +22,14 @@ public interface IQwExternalContactTransferCompanyAuditService extends IService<
      * 查询审核记录列表
      */
     List<QwExternalContactTransferCompanyAudit> selectQwExternalContactTransferCompanyAuditList(QwExternalContactTransferCompanyAudit param);
+
+    /**
+     * 记录审核
+     */
+    void audit(CompanyTransferAuditDTO param, String userName);
+
+    /**
+     * 同步最新状态
+     */
+    void syncTransfer(Long auditId);
 }

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

@@ -2,7 +2,9 @@ package com.fs.qw.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.qw.domain.QwExternalContactTransferCompanyAuditUser;
+import com.fs.qw.dto.CompanyTransferAuditDTO;
 
+import javax.validation.Valid;
 import java.util.List;
 
 public interface IQwExternalContactTransferCompanyAuditUserService extends IService<QwExternalContactTransferCompanyAuditUser> {

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

@@ -201,6 +201,8 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
 
     @Autowired
     private ISysDictTypeService dictTypeService;
+    @Autowired
+    private QwExternalContactTransferCompanyAuditUserMapper transferCompanyAuditUserMapper;
 
 
     Logger logger = LoggerFactory.getLogger(getClass());
@@ -4212,6 +4214,14 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
                 qwExternalContactTransferLogMapper.updateQwExternalContactTransferLog(externalContactTransferLog);
             }
 
+        // 跨公司接替回调处理
+        List<QwExternalContactTransferCompanyAuditUser> auditUserList = transferCompanyAuditUserMapper.selectListByExtIdAndTakeoverUserIdAndCorpId(externalUserID, userID, corpId);
+        for (QwExternalContactTransferCompanyAuditUser auditUser : auditUserList) {
+            auditUser.setStatus(status);
+            auditUser.setRemark(failReason);
+            transferCompanyAuditUserMapper.updateById(auditUser);
+        }
+
     }
 
     @Override

+ 199 - 8
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactTransferCompanyAuditServiceImpl.java

@@ -2,28 +2,35 @@ package com.fs.qw.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.exception.ServiceException;
+import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyMapper;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.qw.domain.*;
+import com.fs.qw.dto.CompanyTransferAuditDTO;
 import com.fs.qw.dto.CompanyTransferDTO;
 import com.fs.qw.mapper.QwCompanyMapper;
 import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.mapper.QwExternalContactTransferCompanyAuditMapper;
 import com.fs.qw.mapper.QwUserMapper;
-import com.fs.qw.param.QwExternalContactParam;
 import com.fs.qw.service.IQwExternalContactTransferCompanyAuditService;
 import com.fs.qw.service.IQwExternalContactTransferCompanyAuditUserService;
+import com.fs.qwApi.domain.QwGetTransferResult;
+import com.fs.qwApi.domain.QwTransferCustomerResignedResult;
+import com.fs.qwApi.domain.QwTransferCustomerResult;
+import com.fs.qwApi.domain.inner.QwCustomer;
+import com.fs.qwApi.param.QwGetTransferParam;
+import com.fs.qwApi.param.QwTransferCustomerParam;
+import com.fs.qwApi.param.QwTransferCustomerResignedParam;
+import com.fs.qwApi.service.QwApiService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -42,6 +49,8 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
     private CompanyUserMapper companyUserMapper;
     @Resource
     private IQwExternalContactTransferCompanyAuditUserService auditUserService;
+    @Autowired
+    private QwApiService qwApiService;
 
     /**
      * 添加待审核记录
@@ -49,15 +58,19 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void addAudit(CompanyTransferDTO param, Long companyId, String userName) {
+        if (param.getTransferType() != 1 && param.getTransferType() != 2) {
+            throw new ServiceException("转接类型错误");
+        }
+
         QwUser qwUser = qwUserMapper.selectQwUserById(param.getQwUserId());
 
         if (Objects.isNull(qwUser)) {
             throw new ServiceException("接替员工不存在");
         }
 
-//        if (qwUser.getCompanyId().equals(companyId)) {
-//            throw new ServiceException("接替员工不能为本公司员工");
-//        }
+        if (qwUser.getCompanyId().equals(companyId)) {
+            throw new ServiceException("接替员工不能为本公司员工");
+        }
 
         List<QwExternalContact> qwExternalContacts = new ArrayList<>();
         // 为1转移员工下客户 其余转移转递的客户
@@ -93,6 +106,7 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(qwUser.getCompanyUserId());
 
         QwExternalContactTransferCompanyAudit audit = new QwExternalContactTransferCompanyAudit();
+        audit.setTransferType(param.getType());
         audit.setQwCompanyId(qwCompany.getId());
         audit.setCorpId(qwCompany.getCorpId());
         audit.setCorpName(qwCompany.getCorpName());
@@ -106,6 +120,7 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
         audit.setContent(param.getContent());
         audit.setCreateTime(LocalDateTime.now());
         audit.setCreateBy(userName);
+        audit.setOperCompanyId(companyId);
         baseMapper.insert(audit);
 
         List<QwExternalContactTransferCompanyAuditUser> auditUserList = qwExternalContacts
@@ -144,4 +159,180 @@ public class QwExternalContactTransferCompanyAuditServiceImpl extends ServiceImp
     public List<QwExternalContactTransferCompanyAudit> selectQwExternalContactTransferCompanyAuditList(QwExternalContactTransferCompanyAudit param) {
         return baseMapper.selectQwExternalContactTransferCompanyAuditList(param);
     }
+
+    /**
+     * 记录审核
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void audit(CompanyTransferAuditDTO param, String userName) {
+        QwExternalContactTransferCompanyAudit auditInfo = baseMapper.selectById(param.getAuditId());
+        if (Objects.isNull(auditInfo)) {
+            throw new ServiceException("记录不存在");
+        }
+
+        if (auditInfo.getStatus() != 1) {
+            throw new ServiceException("请勿重复审核");
+        }
+
+        // 审核通过
+        if (param.getType() == 1) {
+            auditInfo.setStatus(2);
+            // 转接
+            transferCustomer(auditInfo);
+        }
+        // 拒绝
+        else {
+            auditInfo.setStatus(3);
+            auditInfo.setReason(param.getReason());
+        }
+        auditInfo.setAuditBy(userName);
+        auditInfo.setAuditTime(LocalDateTime.now());
+        baseMapper.updateById(auditInfo);
+    }
+
+    /**
+     * 转接用户
+     */
+    private void transferCustomer(QwExternalContactTransferCompanyAudit auditInfo) {
+        List<QwExternalContactTransferCompanyAuditUser> auditUserList = auditUserService.getListByAuditId(auditInfo.getId());
+        outer:
+        for (QwExternalContactTransferCompanyAuditUser auditUser : auditUserList) {
+            try {
+                // 已提交的不再处理
+                if (auditUser.getStatus() != 0) {
+                    continue;
+                }
+
+                // 在职
+                if (auditInfo.getTransferType() == 1) {
+                    QwTransferCustomerParam qwTransferCustomerParam = new QwTransferCustomerParam();
+                    String content = auditInfo.getContent();
+                    if(StringUtils.isBlank(content)){
+                        content = "您好,您的服务已升级,后续将由我的同事接替我的工作,继续为您服务。";
+                    }
+                    qwTransferCustomerParam.setTransfer_success_msg(content);
+                    qwTransferCustomerParam.setHandover_userid(auditUser.getQwUserExtId());
+                    qwTransferCustomerParam.setTakeover_userid(auditInfo.getQwUserExtId());
+                    qwTransferCustomerParam.setExternal_userid(Collections.singletonList(auditUser.getExternalUserId()));
+                    QwTransferCustomerResult qwTransferCustomerResult = qwApiService.transferCustomer(qwTransferCustomerParam, auditInfo.getCorpId());
+
+                    if (qwTransferCustomerResult.getErrcode() != 0) {
+                        auditUser.setRemark("接替失败: " + qwTransferCustomerResult.getErrmsg());
+                        auditUserService.updateById(auditUser);
+                        continue;
+                    }
+
+                    List<QwCustomer> customer = qwTransferCustomerResult.getCustomer();
+                    if (Objects.isNull(customer) || customer.isEmpty()) {
+                        auditUser.setRemark("接替失败: 未获取到数据");
+                        auditUserService.updateById(auditUser);
+                        continue;
+                    }
+
+                    for (QwCustomer qwCustomer : customer) {
+                        if (qwCustomer.getErrcode() != 0) {
+                            auditUser.setRemark("接替失败: " + qwCustomer.getErrcode());
+                            auditUserService.updateById(auditUser);
+                            continue outer;
+                        }
+
+                        QwExternalContact qwExternal = new QwExternalContact();
+                        qwExternal.setStatus(2);
+                        qwExternal.setTransferStatus(2);
+                        qwExternal.setId(auditUser.getExternalId());
+                        contactMapper.updateQwExternalContact(qwExternal);
+
+                        auditUser.setStatus(2);
+                        auditUser.setReplaceTime(LocalDateTime.now());
+                        auditUserService.updateById(auditUser);
+                    }
+                }
+                // 离职
+                else if (auditInfo.getTransferType() == 2) {
+                    QwTransferCustomerResignedParam qwTransferCustomerParam = new QwTransferCustomerResignedParam();
+                    qwTransferCustomerParam.setHandover_userid(auditUser.getQwUserExtId());
+                    qwTransferCustomerParam.setTakeover_userid(auditInfo.getQwUserExtId());
+                    qwTransferCustomerParam.setExternal_userid(Collections.singletonList(auditUser.getExternalUserId()));
+                    QwTransferCustomerResignedResult qwTransferCustomerResignedParam = qwApiService.resignedTransferCustomer(qwTransferCustomerParam, auditInfo.getCorpId());
+
+                    if (qwTransferCustomerResignedParam.getErrcode() != 0) {
+                        auditUser.setRemark("接替失败: " + qwTransferCustomerResignedParam.getErrmsg());
+                        auditUserService.updateById(auditUser);
+                        continue;
+                    }
+
+                    List<QwCustomer> customer = qwTransferCustomerResignedParam.getCustomer();
+                    if (Objects.isNull(customer) || customer.isEmpty()) {
+                        auditUser.setRemark("接替失败: 未获取到数据");
+                        auditUserService.updateById(auditUser);
+                        continue;
+                    }
+
+                    for (QwCustomer qwCustomer : customer) {
+                        if (qwCustomer.getErrcode() != 0) {
+                            auditUser.setRemark("接替失败: " + qwCustomer.getErrcode());
+                            auditUserService.updateById(auditUser);
+                            continue outer;
+                        }
+
+                        QwExternalContact qwExternal = new QwExternalContact();
+                        qwExternal.setStatus(2);
+                        qwExternal.setTransferStatus(2);
+                        qwExternal.setId(auditUser.getExternalId());
+                        contactMapper.updateQwExternalContact(qwExternal);
+
+                        auditUser.setStatus(2);
+                        auditUser.setReplaceTime(LocalDateTime.now());
+                        auditUserService.updateById(auditUser);
+                    }
+                }
+            } catch (Exception e) {
+                auditUser.setRemark("接替失败: " + e.getMessage());
+                auditUserService.updateById(auditUser);
+            }
+        }
+    }
+
+    /**
+     * 同步最新状态
+     */
+    @Override
+    public void syncTransfer(Long auditId) {
+        QwExternalContactTransferCompanyAudit auditInfo = baseMapper.selectById(auditId);
+        if (Objects.isNull(auditInfo) || auditInfo.getStatus() != 2) {
+            return;
+        }
+
+        List<QwExternalContactTransferCompanyAuditUser> auditUserList = auditUserService.getListByAuditId(auditId);
+        for (QwExternalContactTransferCompanyAuditUser auditUser : auditUserList) {
+            // 仅处理等待接替状态
+            if (auditUser.getStatus() != 2) {
+                continue;
+            }
+
+            QwGetTransferParam getTransferParam = new QwGetTransferParam();
+            getTransferParam.setTakeover_userid(auditInfo.getQwUserExtId());
+            getTransferParam.setHandover_userid(auditUser.getQwUserExtId());
+            QwGetTransferResult transfer = qwApiService.getTransfer(getTransferParam, auditInfo.getCorpId());
+            for (QwGetTransferResult.Customer customer: transfer.getCustomer()) {
+                if (customer.getExternal_userid().equals(auditUser.getExternalUserId())){
+                    if (customer.getStatus() != 2){
+                        auditUser.setStatus(customer.getStatus());
+                        auditUserService.updateById(auditUser);
+
+                        QwExternalContact qwExternalContact = new QwExternalContact();
+                        qwExternalContact.setId(auditUser.getExternalId());
+                        qwExternalContact.setTransferStatus(customer.getStatus());
+                        if (customer.getStatus()==1){
+                            qwExternalContact.setUserId(auditInfo.getQwUserExtId());
+                            qwExternalContact.setQwUserId(auditInfo.getQwUserId());
+                            qwExternalContact.setCompanyUserId(auditInfo.getCompanyUserId());
+                        }
+                        contactMapper.updateQwExternalContact(qwExternalContact);
+                    }
+                }
+            }
+        }
+    }
 }

+ 4 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactTransferCompanyAuditUserServiceImpl.java

@@ -3,13 +3,17 @@ package com.fs.qw.service.impl;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.common.exception.ServiceException;
 import com.fs.qw.domain.QwExternalContactTransferCompanyAuditUser;
+import com.fs.qw.dto.CompanyTransferAuditDTO;
 import com.fs.qw.mapper.QwExternalContactTransferCompanyAuditUserMapper;
 import com.fs.qw.service.IQwExternalContactTransferCompanyAuditUserService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 
 @Service

+ 3 - 1
fs-service/src/main/resources/db/20250928-企微客户公司转接.sql

@@ -13,13 +13,15 @@ create table `qw_external_contact_transfer_company_audit` (
     `qw_user_ext_id`        varchar(255) not null                comment '接替企微用户ID(企微)',
     `qw_user_name`          varchar(255) not null                comment '接替企微用户名称',
     `content`               varchar(255)                         comment '消息内容',
+    `transfer_type`         tinyint(1) not null                  comment '转接类型 1在职转接 2离职转接',
     `status`                tinyint(1) default 1                 comment '状态 1待审核 2审核通过 3审核被拒',
     `reason`                varchar(500)                         comment '被拒原因',
     `remark`                varchar(500)                         comment '备注',
     `audit_time`            datetime                             comment '审核时间',
     `audit_by`              varchar(255)                         comment '审核人',
     `create_time`           datetime                             comment '创建时间',
-    `create_by`             varchar(255)                         comment '创建人',
+    `create_by`             varchar(255)                         comment '提审人',
+    `oper_company_id`       bigint not null                      comment '提审公司',
     primary key (`id`) using btree
 ) engine = Innodb comment '企微客户转移审核记录表';
 

+ 3 - 0
fs-service/src/main/resources/mapper/qw/QwExternalContactTransferCompanyAuditMapper.xml

@@ -20,6 +20,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="status != null">
                 and `status` = #{status}
             </if>
+            <if test="operCompanyId != null">
+                and oper_company_id = #{operCompanyId}
+            </if>
         </where>
         order by create_time desc,id desc
     </select>

+ 11 - 0
fs-service/src/main/resources/mapper/qw/QwExternalContactTransferCompanyAuditUserMapper.xml

@@ -14,4 +14,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </select>
+
+    <select id="selectListByExtIdAndTakeoverUserIdAndCorpId" resultType="com.fs.qw.domain.QwExternalContactTransferCompanyAuditUser">
+        select
+            au.*
+        from qw_external_contact_transfer_company_audit_user au
+        inner join qw_external_contact_transfer_company_audit ca on au.audit_id = ca.id and ca.status = 2
+        where au.status = 2
+          and au.external_user_id = #{externalUserID}
+          and ca.corp_id = #{corpId}
+          and ca.qw_user_ext_id = #{takeoverUserId}
+    </select>
 </mapper>