Преглед на файлове

企微员工全模糊查询,通话记录按部门统计

ct преди 3 дни
родител
ревизия
d545422c3d

+ 38 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwUserVoiceLogController.java

@@ -6,7 +6,10 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.domain.QwUserVoiceLog;
@@ -24,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 企微用户通话记录Controller
@@ -44,6 +48,9 @@ public class QwUserVoiceLogController extends BaseController
     @Autowired
     private IQwTagService iQwTagService;
 
+    @Autowired
+    private ICompanyUserService userService;
+
     /**
      * 查询企微用户通话记录列表
      */
@@ -66,6 +73,16 @@ public class QwUserVoiceLogController extends BaseController
     @PostMapping("/newList")
     public TableDataInfo newList(@RequestBody QwUserVoiceLogVo qwUserVoiceLog)
     {
+        if(qwUserVoiceLog.getCompanyUserId() == null && qwUserVoiceLog.getDeptId() != null){
+            //获取部门下的所有用户
+            CompanyUser usermap=new CompanyUser();
+            usermap.setDeptId(qwUserVoiceLog.getDeptId());
+            List<CompanyUser> users = userService.getUserListByDeptId(usermap);
+            List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
+            if (!userIds.isEmpty()) {
+                qwUserVoiceLog.setCompanyUserIds(userIds.toArray(new Long[0]));
+            }
+        }
         PageHelper.startPage(qwUserVoiceLog.getPageNum(), qwUserVoiceLog.getPageSize());
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwUserVoiceLog.setCompanyId(loginUser.getCompany().getCompanyId());
@@ -149,6 +166,17 @@ public class QwUserVoiceLogController extends BaseController
     @GetMapping("/sellTotalList")
     public TableDataInfo sellTotalList(QwUserVoiceLogTotalVo qwUserVoiceLog)
     {
+        if(qwUserVoiceLog.getCompanyUserId() == null && qwUserVoiceLog.getDeptId() != null){
+            //获取部门下的所有用户
+            CompanyUser usermap=new CompanyUser();
+            usermap.setDeptId(qwUserVoiceLog.getDeptId());
+            List<CompanyUser> users = userService.getUserListByDeptId(usermap);
+            List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
+            if (!userIds.isEmpty()) {
+                qwUserVoiceLog.setCompanyUserIds(userIds.toArray(new Long[0]));
+            }
+        }
+
         startPage();
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwUserVoiceLog.setCompanyId(loginUser.getCompany().getCompanyId());
@@ -161,6 +189,16 @@ public class QwUserVoiceLogController extends BaseController
     @GetMapping("/sellTotalExport")
     public AjaxResult sellTotalExport(QwUserVoiceLogTotalVo qwUserVoiceLog)
     {
+        if(qwUserVoiceLog.getCompanyUserId() == null && qwUserVoiceLog.getDeptId() != null){
+            //获取部门下的所有用户
+            CompanyUser usermap=new CompanyUser();
+            usermap.setDeptId(qwUserVoiceLog.getDeptId());
+            List<CompanyUser> users = userService.getUserListByDeptId(usermap);
+            List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
+            if (!userIds.isEmpty()) {
+                qwUserVoiceLog.setCompanyUserIds(userIds.toArray(new Long[0]));
+            }
+        }
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwUserVoiceLog.setCompanyId(loginUser.getCompany().getCompanyId());
         List<QwUserVoiceLogTotalVo> list = qwUserVoiceLogService.selectQwUserVoiceLogTotalList(qwUserVoiceLog);

+ 1 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -154,7 +154,7 @@ public interface QwUserMapper extends BaseMapper<QwUser>
             "            <if test=\"qwUserId != null  and qwUserId != ''\"> and qu.qw_user_id = #{qwUserId}</if>\n" +
             "            <if test=\"appKey != null  and appKey != ''\"> and qu.app_key = #{appKey}</if>\n" +
             "            <if test=\"nickName != null  and nickName != ''\"> and cu.nick_name like concat( #{nickName}, '%') </if>\n" +
-            "            <if test=\"qwUserName != null  and qwUserName != ''\"> and qu.qw_user_name like concat( #{qwUserName}, '%') </if> " +
+            "            <if test=\"qwUserName != null  and qwUserName != ''\"> and qu.qw_user_name like concat('%', #{qwUserName}, '%') </if> " +
             "            <if test=\"corpId != null \"> and qu.corp_id = #{corpId}</if>\n" +
             "            <if test=\"companyId != null \"> and qu.company_id = #{companyId}</if>\n " +
             "            <if test=\"cuDeptIdList != null and !cuDeptIdList.isEmpty() and  userType != '00' \">" +

+ 26 - 0
fs-service/src/main/java/com/fs/qw/vo/QwUserVoiceLogTotalVo.java

@@ -14,6 +14,9 @@ public class QwUserVoiceLogTotalVo extends BaseEntity {
     /** id */
     private Long id;
 
+
+
+
     @Excel(name = "客服名称")
     private String companyUserName;
 
@@ -63,6 +66,9 @@ public class QwUserVoiceLogTotalVo extends BaseEntity {
     //@Excel(name = "客服用户id")
     private Long companyUserId;
 
+
+    private Long[] companyUserIds;
+
     //接通数量
     @Excel(name = "接通数量")
     private Long connectCount;
@@ -78,6 +84,9 @@ public class QwUserVoiceLogTotalVo extends BaseEntity {
 
     private QwUser qwUser;
 
+
+    private Long deptId;
+
     public String getCorpName() {
         return corpName;
     }
@@ -198,6 +207,15 @@ public class QwUserVoiceLogTotalVo extends BaseEntity {
         this.companyUserId = companyUserId;
     }
 
+
+    public Long[] getCompanyUserIds() {
+        return companyUserIds;
+    }
+
+    public void setCompanyUserIds(Long[] companyUserIds) {
+        this.companyUserIds = companyUserIds;
+    }
+
     public String getCompanyUserName() {
         return companyUserName;
     }
@@ -237,4 +255,12 @@ public class QwUserVoiceLogTotalVo extends BaseEntity {
     public void setQwUser(QwUser qwUser) {
         this.qwUser = qwUser;
     }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
 }

+ 5 - 0
fs-service/src/main/java/com/fs/qw/vo/QwUserVoiceLogVo.java

@@ -44,6 +44,9 @@ public class QwUserVoiceLogVo extends BaseEntity {
     @Excel(name = "接听状态,1接听 2未接")
     private Integer status;
 
+    /** 部门id */
+    private Long deptId;
+
     /** 企微id */
     @Excel(name = "企微id")
     private String corpId;
@@ -59,6 +62,8 @@ public class QwUserVoiceLogVo extends BaseEntity {
     //@Excel(name = "销售用户id")
     private Long companyUserId;
 
+    private Long[] companyUserIds;
+
     @Excel(name = "销售用户名称")
     private String companyUserName;
 

+ 10 - 0
fs-service/src/main/resources/mapper/qw/QwUserVoiceLogMapper.xml

@@ -79,6 +79,11 @@
             <if test="companyId != null "> and c.company_id = #{companyId}</if>
             <if test="companyName != null "> and c.company_name like concat(#{companyName}, '%')</if>
             <if test="companyUserId != null "> and cu.user_id = #{companyUserId}</if>
+            <if test="companyUserId == null and companyUserIds != null and companyUserIds.length > 0"> and cu.user_id in
+                <foreach collection="companyUserIds" item="userId" open="(" separator="," close=")">
+                    #{userId}
+                </foreach>
+            </if>
             <if test="companyUserName != null  and companyUserName != ''"> and cu.user_name like concat(#{companyUserName}, '%')</if>
             <if test="beginTime != null and endTime != null">
                 AND date_format(uvl.create_time,'%Y-%m-%d') &gt;= #{beginTime}
@@ -102,6 +107,11 @@
         <where>
             <if test="companyId != null ">and uvl.company_id = #{companyId}</if>
             <if test="companyUserId != null ">and uvl.company_user_id = #{companyUserId}</if>
+            <if test="companyUserId == null and companyUserIds != null and companyUserIds.length > 0"> and uvl.company_user_id in
+                <foreach collection="companyUserIds" item="userId" open="(" separator="," close=")">
+                    #{userId}
+                </foreach>
+            </if>
             <if test="qwUserName != null ">and qu.qw_user_name like concat(#{qwUserName}, '%')</if>
             <if test="beginTime != null and endTime != null">
                 AND date_format(uvl.create_time,'%Y-%m-%d') &gt;= #{beginTime}