Browse Source

导出修改

yusm 5 months ago
parent
commit
258a4c9449

+ 5 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/DepartmentController.java

@@ -56,6 +56,11 @@ public class DepartmentController {
         return departmentService.listAllMemb(request,keyword,cursor);
     }
 
+    @RequestMapping("/listAllMembNew")
+    public HttpRespMsg listAllMembNew(HttpServletRequest request,String keyword,String cursor) throws Exception {
+        return departmentService.listAllMembNew(request,keyword,cursor);
+    }
+
     //获取我可以管辖到的人员列表,进行代填时选择的人员列表用到
     @RequestMapping("/listMyMembs")
     public HttpRespMsg listMyMembs(HttpServletRequest request) {

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/UserMapper.java

@@ -65,4 +65,6 @@ public interface UserMapper extends BaseMapper<User> {
     List<UserVO> getCustomerTransferRate(String startDate, String endDate, String userId, Integer companyId);
 
     List<Map<String, Object>> getSimpleActiveUserList(@Param("map") HashMap<String, Object> map);
+
+    List<Map<String, Object>> selectListSimple(@Param("users")List users);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/DepartmentService.java

@@ -61,4 +61,6 @@ public interface DepartmentService extends IService<Department> {
     String exportWxDepartment(Department department,List<Department> departmentList);
 
     HttpRespMsg sortList(HttpServletRequest request,List<DepartmentVO> list);
+
+    HttpRespMsg listAllMembNew(HttpServletRequest request, String keyword, String cursor) throws Exception;
 }

+ 89 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -1636,6 +1636,95 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         return msg;
     }
 
+    @Override
+    public HttpRespMsg listAllMembNew(HttpServletRequest request, String keyword, String cursor) throws Exception {
+        Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
+        HttpRespMsg msg = new HttpRespMsg();
+        List<HashMap> userMapList = new ArrayList<>();
+        //通讯录查询人员
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        if (StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
+            HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,0,20);
+            List users = result.get("user");
+            List depts = result.get("dept");
+            if (users.size()!=0){
+                List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
+                if (realUser.size()!=0){
+                    List<DepartmentVO> listById = new ArrayList<>();
+                    for (User item : realUser) {
+                        HttpRespMsg departmentListById = getDepartmentListById(item);
+                        listById = (List<DepartmentVO>) departmentListById.data;
+                        if (listById.size()==0){
+                            //加上未分配的部门
+                            DepartmentVO unAssignedDeptById = new DepartmentVO();
+                            unAssignedDeptById.setId(0);
+                            //unAssignedDept.setLabel("未分配");
+                            unAssignedDeptById.setLabel(MessageUtils.message("department.noDistribution"));
+                            listById.add(unAssignedDeptById);
+                        }
+                        //封装员工信息
+                        HashMap<String, Object> user = new HashMap<String, Object>();
+                        user.put("id", item.getId());
+                        user.put("name", item.getName());
+                        user.put("departmentId", item.getDepartmentId());
+                        userMapList.add(user);
+                        fillDeptUser(listById, userMapList);
+                    }
+//                    HashMap<String, Object> data = new HashMap<>();
+//                    data.put("data",listById);
+//                    data.put("nextCursor","");
+                    msg.data = listById;
+                    return msg;
+                }
+            }
+            if (depts.size()!=0){
+                List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().in("corpwx_deptid", depts).eq("company_id",companyId));
+                List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active",1));
+                List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("company_id", companyId));
+                //结果列表
+                List<DepartmentVO> list = new ArrayList<>();
+                List<Department> rootDepartments = departmentList.stream().filter(dept -> dept.getSuperiorId() == null).collect(Collectors.toList());
+                rootDepartments.forEach(root->{
+                    DepartmentVO rootDeptVO = formatDepartmentToVO(root, departmentOtherManagerList);
+                    list.add(rootDeptVO);
+                    fillSubDepartmentList(allDepartmentList, rootDeptVO, departmentOtherManagerList);
+                });
+                //处理部门下人员列表
+                List<DepartmentVO> userListWithDept = getUserListWithDept(userList, list);
+//                HashMap<String, Object> data = new HashMap<>();
+//                data.put("data",userListWithDept);
+//                data.put("nextCursor","");
+                msg.data = userListWithDept;
+                return msg;
+            }
+            ArrayList<Object> emptyList = new ArrayList<>();
+            msg.data = emptyList;
+            return msg;
+        }else {
+            HttpRespMsg departmentList = departmentService.getDepartmentList(request);
+            List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
+            //加上未分配的部门
+            DepartmentVO unAssignedDept = new DepartmentVO();
+            unAssignedDept.setId(0);
+            //unAssignedDept.setLabel("未分配");
+            unAssignedDept.setLabel(MessageUtils.message("department.noDistribution"));
+            list.add(unAssignedDept);
+            //获取公司全部人员
+            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active", 1));
+            for (User u : userList) {
+                HashMap<String, Object> user = new HashMap<String, Object>();
+                user.put("id", u.getId());
+                user.put("name", u.getName());
+                user.put("departmentId", u.getDepartmentId());
+                userMapList.add(user);
+            }
+            fillDeptUser(list, userMapList);
+            msg.data = list;
+            return msg;
+        }
+    }
+
     /**
      * 递归对返回的部门数据进行排序
      * @param list

+ 9 - 18
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ExcelExportServiceImpl.java

@@ -94,28 +94,19 @@ public class ExcelExportServiceImpl implements ExcelExportService {
                 }
                 System.out.println("i=="+i+", "+LocalDateTime.now());
                 CorpwxJobResult corpwxJobResult = corpwxJobCenter.get(jobId);
-                if (corpwxJobResult != null) {
-                    if (corpwxJobResult.getErrCode() == 0) {
-                        syncTranslationResult = wxCorpInfoService.getSyncTranslationResult(jobId);
-                        corpwxJobCenter.remove(jobId);
-                    } else {
-                        long t2 = System.currentTimeMillis();
-                        System.out.println("222企业微信转译报错:"+corpwxJobResult.getErrMsg()+",耗时:" + (t2 - t) + "ms");
-                        httpRespMsg.setError(corpwxJobResult.getErrMsg());
-                        return httpRespMsg;
-                    }
-                    break;
+
+
+                syncTranslationResult = wxCorpInfoService.getSyncTranslationResult(jobId);
+                if (syncTranslationResult != null) {
+                    long t2 = System.currentTimeMillis();
+                    System.out.println("企业微信转译文件后地址是:"+syncTranslationResult+",耗时:" + (t2 - t) + "ms");
+                    httpRespMsg.data = syncTranslationResult;
+                    return httpRespMsg;
                 }
                 i++;
             }
-            if (syncTranslationResult != null) {
-                long t2 = System.currentTimeMillis();
-                System.out.println("企业微信转译文件后地址是:"+syncTranslationResult+",耗时:" + (t2 - t) + "ms");
-                httpRespMsg.data = syncTranslationResult;
-            } else {
                 //httpRespMsg.setError("处理超时...");
-                httpRespMsg.setError(MessageUtils.message("request.outTime"));
-            }
+            httpRespMsg.setError(MessageUtils.message("request.outTime"));
         }else {
             httpRespMsg.data = resp;
         }

+ 2 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -1933,7 +1933,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 //            msgResult.put("nextCursor",nextCursor);
 
             if (users.size()!=0){
-                List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
+//                List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
+                List<Map<String,Object>> realUser = userMapper.selectListSimple(users);
                 msg.data = realUser;
                 return msg;
             }else {

+ 11 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/UserMapper.xml

@@ -353,6 +353,17 @@
                 </if>
             </where>
     </select>
+    <select id="selectListSimple" resultType="java.util.Map">
+        select id as value, name as label,job_number as jobNumber from user u
+        <where>
+            <if test="users !=null">
+                and u.corpwx_userid in
+                <foreach collection="users" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 
     <update id="updateActiveByIds">
         update user set is_active=1 WHERE id IN