Forráskód Böngészése

新增,我的sop模板 和 部门sop模板

三七 6 napja
szülő
commit
e204630a14

+ 70 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyUserController.java

@@ -122,6 +122,37 @@ public class CompanyUserController extends BaseController {
         List<CompanyUser> list = companyUserService.selectCompanyUserList(user);
         return getDataTable(list);
     }
+
+
+    /**
+     * 获取用户列表
+     */
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(CompanyUser user)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        user.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        List<Long> combinedDpetList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedDpetList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedDpetList.addAll(deptList);
+        }
+
+        user.setDeptList(combinedDpetList);
+
+        startPage();
+        List<CompanyUser> list = companyUserService.selectCompanyUserList(user);
+        return getDataTable(list);
+    }
+
+
     @GetMapping("/getUserList")
     public R getUserList()
     {
@@ -563,6 +594,45 @@ public class CompanyUserController extends BaseController {
         return R.ok().put("data", new PageInfo<>(companyUserList));
     }
 
+    /**
+     * 根据销售名称模糊查询+部门
+     * @param name  名称
+     * @return  list
+     */
+    @GetMapping("/getCompanyUserListLikeNameDept")
+    public R getCompanyUserListLikeNameDept(@RequestParam(required = false) String name,
+                                        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                        @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        Map<String,Object> params = new HashMap<>();
+        params.put("nickName", name);
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        //查询多条数据传入公司
+        if (pageSize>=200){
+
+            params.put("companyId", loginUser.getCompany().getCompanyId());
+        }
+        List<Long> combinedDeptList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedDeptList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedDeptList.addAll(deptList);
+        }
+
+        params.put("combinedDeptList",combinedDeptList);
+
+
+        PageHelper.startPage(pageNum, pageSize);
+        List<OptionsVO> companyUserList = companyUserService.selectCompanyUserListByMap(params);
+        return R.ok().put("data", new PageInfo<>(companyUserList));
+    }
+
 
     /**
      * 获取用户列表

+ 2 - 2
fs-company/src/main/java/com/fs/company/controller/course/FsCourseFinishTempParentController.java

@@ -97,7 +97,7 @@ public class FsCourseFinishTempParentController extends BaseController
             combinedList.addAll(deptList);
         }
 
-        List<Long> userIds = companyUserService.selectCompanyQwUserByDept(deptList, loginUser.getUser().getUserType());
+        List<Long> userIds = companyUserService.selectCompanyQwUserByDept(combinedList, loginUser.getUser().getUserType());
         if (userIds.isEmpty()){
             return getDataTable(new ArrayList<>());
         }
@@ -162,7 +162,7 @@ public class FsCourseFinishTempParentController extends BaseController
             combinedList.addAll(deptList);
         }
 
-        List<Long> userIds = companyUserService.selectCompanyQwUserByDept(deptList, loginUser.getUser().getUserType());
+        List<Long> userIds = companyUserService.selectCompanyQwUserByDept(combinedList, loginUser.getUser().getUserType());
         if (userIds.isEmpty()){
             return AjaxResult.error();
         }

+ 52 - 6
fs-company/src/main/java/com/fs/company/controller/qw/QwSopTempController.java

@@ -10,22 +10,26 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.service.impl.CompanyDeptServiceImpl;
+import com.fs.company.service.impl.CompanyUserServiceImpl;
+import com.fs.company.vo.DocCompanyUserVO;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
+import com.fs.qw.service.IQwUserService;
 import com.fs.qw.vo.SortDayVo;
+import com.fs.sop.domain.QwSop;
 import com.fs.sop.domain.QwSopTemp;
 import com.fs.sop.domain.QwSopTempDay;
 import com.fs.sop.params.QwSopShareTempParam;
 import com.fs.sop.service.IQwSopTempService;
 import com.fs.sop.vo.UpdateRedVo;
+import com.fs.voice.utils.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -43,10 +47,16 @@ public class QwSopTempController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IQwUserService iQwUserService;
+
 
     @Autowired
     private CompanyDeptServiceImpl companyDeptService;
 
+    @Autowired
+    private CompanyUserServiceImpl companyUserService;
+
     /**
      * 查询sop模板列表
      */
@@ -58,8 +68,37 @@ public class QwSopTempController extends BaseController
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         qwSopTemp.setCompanyId(loginUser.getCompany().getCompanyId());
 
-//        List<QwSopTemp> list = qwSopTempService.selectQwSopTempList(qwSopTemp);
         List<QwSopTemp> list = qwSopTempService.selectQwSopTempListNew(qwSopTemp);
+
+        // 收集所有需要查询的用户ID
+        Set<Long> userIds = list.stream()
+                .map(QwSopTemp::getCreateBy)
+                .filter(StringUtil::strIsNullOrEmpty)
+                .map(Long::valueOf)
+                .collect(Collectors.toSet());
+
+        if (!userIds.isEmpty()){
+            // 批量查询用户信息
+            Map<Long, DocCompanyUserVO> userMap = companyUserService
+                    .selectDocCompanyUserListByUserIds(userIds)
+                    .stream()
+                    .collect(Collectors.toMap(DocCompanyUserVO::getUserId, Function.identity()));
+
+
+            list.forEach(item->{
+
+                if (!StringUtil.strIsNullOrEmpty(item.getCreateBy())) {
+                    DocCompanyUserVO user = userMap.get(Long.valueOf(item.getCreateBy()));
+                    if (user != null) {
+                        item.setCreateByName(user.getNickName());
+                        item.setCreateByDeptName(user.getDeptName());
+                    }
+                }
+
+            });
+        }
+
+
         return getDataTable(list);
     }
 
@@ -90,7 +129,6 @@ public class QwSopTempController extends BaseController
         qwSopTemp.setCompanyId(loginUser.getCompany().getCompanyId());
         qwSopTemp.setCreateBy(String.valueOf(loginUser.getUser().getUserId()));
         startPage();
-//        List<QwSopTemp> list = qwSopTempService.selectQwSopTempList(qwSopTemp);
         List<QwSopTemp> list = qwSopTempService.selectQwSopTempListNew(qwSopTemp);
         return getDataTable(list);
     }
@@ -118,7 +156,13 @@ public class QwSopTempController extends BaseController
         if (!deptList.isEmpty()){
             combinedDpetList.addAll(deptList);
         }
-        qwSopTemp.setCuDeptIdList(combinedDpetList);
+
+        List<Long> userIds = companyUserService.selectCompanyQwUserByDept(combinedDpetList, loginUser.getUser().getUserType());
+        if (userIds.isEmpty()){
+            return getDataTable(new ArrayList<>());
+        }
+
+        qwSopTemp.setUserIds(userIds);
 
         startPage();
 //        List<QwSopTemp> list = qwSopTempService.selectQwSopTempList(qwSopTemp);
@@ -236,6 +280,8 @@ public class QwSopTempController extends BaseController
     @PreAuthorize("@ss.hasPermi('qw:sopTemp:edit') or @ss.hasPermi('qw:sopTemp:myEdit') or @ss.hasPermi('qw:sopTemp:deptEdit')")
     @PostMapping("/copyTemplate")
     public AjaxResult copyTemplate(@RequestBody QwSopTemp qwSopTemp){
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwSopTemp.setCreateBy(loginUser.getUser().getUserId().toString());
         qwSopTempService.copyTemplate(qwSopTemp);
         return toAjax(1);
     }

+ 4 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyUser.java

@@ -1,5 +1,6 @@
 package com.fs.company.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import com.fs.common.core.domain.BaseEntity;
@@ -177,6 +178,9 @@ public class CompanyUser extends BaseEntity
     /** 是否允许所有方式注册会员,1-是,0-否,默认1(用于个微注册会员) */
     private Integer isAllowedAllRegister;
 
+    @TableField(exist = false)
+    private List<Long> deptList;
+
     public String getMaOpenId() {
         return maOpenId;
     }

+ 21 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -95,16 +95,37 @@ public interface CompanyUserMapper
     List<CompanyUser> selectAllUsersList(CompanyUser user);
 
     List<CompanyUserVO> selectMyUserList(CompanyUser user);
+
     @Select("select u.* from company_user u where u.dept_id in ( SELECT dept_id FROM company_dept WHERE dept_id = #{maps.deptId} or find_in_set( #{maps.deptId} , ancestors ) ) ${maps.params.dataScope}")
     List<CompanyUser> getUserListByDeptId(@Param("maps") CompanyUser user);
+
     @Select("select count(1) from company_user  where company_id=#{companyId} and del_flag=0  ")
     Integer selectCompanyUserCountByCompanyId(Long companyId);
+
     @Select("select count(1) from company_user  where user_name=#{userName} and del_flag=0  ")
     Integer checkUserNameUnique(String userName);
+
     @Select("select u.*,d.dept_name from company_user u left join company_dept d on d.dept_id=u.dept_id  where u.user_id in (select )  ")
     List<DocCompanyUserVO> selectDocCompanyUserList(Long docId);
+
     @Select("select u.*,d.dept_name from company_user u left join company_dept d on d.dept_id=u.dept_id  where find_in_set(u.user_id,#{companyUserIds})  ")
     List<DocCompanyUserVO> selectDocCompanyUserListByIds(String companyUserIds);
+
+    @Select("<script>"+
+            "    SELECT u.*, d.dept_name \n" +
+            "    FROM company_user u \n" +
+            "    LEFT JOIN company_dept d ON d.dept_id = u.dept_id \n" +
+            "    <where>\n" +
+            "        <if test=\"userIds != null and userIds.size() > 0\">\n" +
+            "            u.user_id IN\n" +
+            "            <foreach collection=\"userIds\" item=\"userId\" open=\"(\" separator=\",\" close=\")\">\n" +
+            "                #{userId}\n" +
+            "            </foreach>\n" +
+            "        </if>\n" +
+            "    </where>"+
+            "</script>")
+    List<DocCompanyUserVO> selectDocCompanyUserListByUserIds(@Param("userIds") Set<Long> userIds);
+
     @Select("select u.* from company_user u   where u.company_id=#{companyId} and u.nick_name=#{nickName} limit 1 ")
     CompanyUser selectCompanyUserByCompanyIdAndNickName(@Param("companyId")long companyId,@Param("nickName") String nickName);
 

+ 1 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -117,6 +117,7 @@ public interface ICompanyUserService {
 
 
     List<DocCompanyUserVO> selectDocCompanyUserListByIds(String companyUserIds);
+    List<DocCompanyUserVO> selectDocCompanyUserListByUserIds(Set<Long> userIds);
 
     CompanyUser selectCompanyUserByCompanyIdAndNickName(long companyId, String nickName);
 

+ 6 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -639,6 +639,12 @@ public class CompanyUserServiceImpl implements ICompanyUserService
         return companyUserMapper.selectDocCompanyUserListByIds(companyUserIds);
     }
 
+
+    @Override
+    public List<DocCompanyUserVO> selectDocCompanyUserListByUserIds(Set<Long> userIds) {
+        return companyUserMapper.selectDocCompanyUserListByUserIds(userIds);
+    }
+
     @Override
     public CompanyUser selectCompanyUserByCompanyIdAndNickName(long companyId, String nickName) {
         return companyUserMapper.selectCompanyUserByCompanyIdAndNickName(companyId,nickName);

+ 14 - 0
fs-service/src/main/java/com/fs/sop/domain/QwSopTemp.java

@@ -108,4 +108,18 @@ public class QwSopTemp implements Serializable
     @TableField(exist = false)
     private List<Long> cuDeptIdList;
 
+    @TableField(exist = false)
+    private List<Long> userIds;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    @TableField(exist = false)
+    private String userType;
+
+    @TableField(exist = false)
+    private String createByName;
+
+    @TableField(exist = false)
+    private String createByDeptName;
 }

+ 7 - 0
fs-service/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

@@ -7,6 +7,9 @@ import com.fs.common.annotation.DataSource;
 import com.fs.common.enums.DataSourceType;
 import com.fs.common.exception.base.BaseException;
 import com.fs.common.utils.PubFun;
+import com.fs.company.domain.Company;
+import com.fs.company.service.ICompanyService;
+import com.fs.company.service.impl.CompanyServiceImpl;
 import com.fs.config.cloud.CloudHostProper;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsUserCourse;
@@ -75,6 +78,7 @@ public class QwSopTempServiceImpl implements IQwSopTempService
     private final FsUserCourseMapper fsUserCourseMapper;
     private final IQwSopService qwSopService;
     private final IQwUserService qwUserService;
+    private final ICompanyService companyService;
 
     /**
      * 查询sop模板
@@ -171,6 +175,9 @@ public class QwSopTempServiceImpl implements IQwSopTempService
     public int shareQwSopTemp(QwSopShareTempParam param) {
         QwSopTemp qwSopTemp = qwSopTempMapper.selectQwSopTempById(param.getTempleId());
         Arrays.stream(param.getCompanyIds()).forEach(companyId -> {
+
+            Company company = companyService.selectCompanyById(companyId);
+            qwSopTemp.setCreateBy(company.getUserId().toString());
             qwSopTemp.setCompanyId(companyId);
             copyTemplate(qwSopTemp);
         });

+ 12 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -185,6 +185,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="deptId != null and deptId != 0">
             AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM company_dept t WHERE find_in_set(#{deptId}, ancestors) ))
         </if>
+        <if test="deptList != null and !deptList.isEmpty()">
+           AND u.dept_id IN
+              <foreach collection='deptList' item='item' open='(' separator=',' close=')'>
+                  #{item}
+              </foreach>
+        </if>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
     </select>
@@ -463,6 +469,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="params.companyId != null">
                 and cu.company_id = #{params.companyId}
             </if>
+            <if test="params.combinedDeptList != null and !params.combinedDeptList.isEmpty() ">
+                AND cu.dept_id IN
+                     <foreach collection='params.combinedDeptList' item='item' open='(' separator=',' close=')'>
+                      #{item}
+                     </foreach>
+            </if>
         </where>
     </select>
 

+ 6 - 0
fs-service/src/main/resources/mapper/sop/QwSopTempMapper.xml

@@ -50,6 +50,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     #{item}
                 </foreach>
             </if>
+            <if test="userIds != null and !userIds.isEmpty()">
+                AND create_by IN
+                <foreach collection='userIds' item='item' open='(' separator=',' close=')'>
+                    #{item}
+                </foreach>
+            </if>
         </where>
         order by sort,create_time desc
     </select>