From 53b766ebb3eb6096b437be447ff889e146642d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 9 Nov 2023 09:48:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E9=83=A8=E5=B7=A5=E4=BD=9C=E7=BB=84?= =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E5=B1=9E=E6=80=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsWorkingGroupUserController.java | 64 +--------- .../service/ILawsWorkingGroupUserService.java | 16 +++ .../impl/LawsWorkingGroupUserServiceImpl.java | 117 +++++++++++++++--- 3 files changed, 118 insertions(+), 79 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java index d3286818..05245b2c 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java @@ -237,68 +237,8 @@ public class LawsWorkingGroupUserController extends JeroController dos = null; - //获取选中数据 - String selections = request.getParameter("selections"); - - if (StringUtils.isNotBlank(selections)) { - dos = this.queryDataByUserId(selections); - } - if (StringUtils.isBlank(selections) && !StringUtils.isAllBlank(realname, username, userRoleName, userPostName)) { - dos = this.queryDataByConditions(realname, username, userRoleName, userPostName, workingGroupId); - } - if (StringUtils.isBlank(selections) && StringUtils.isAllBlank(realname, username, userRoleName, userPostName)) { - dos = this.queryDataByTree(workingGroupId); - } - lawsWorkingGroupUserService.userAssignment(dos); - - // AutoPoi 导出Excel - ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); - String title = "内部工作组人员表"; - //此处设置的filename无效 ,前端会重更新设置一下 - mv.addObject(FILE_NAME, title); - mv.addObject(CLASS, LawsWorkingGroupUser.class); - ExportParams exportParams = new ExportParams(null, title); - // 导出xlsx - exportParams.setType(ExcelType.XSSF); - mv.addObject(PARAMS, exportParams); - mv.addObject(NormalExcelConstants.DATA_LIST, dos); - return mv; - } - - private List queryDataByUserId(String userId) { - LambdaQueryWrapper queryLawsWorkingGroupUser = new LambdaQueryWrapper<>(); - queryLawsWorkingGroupUser.in(LawsWorkingGroupUser::getUserId,Arrays.asList(userId.split(","))); - queryLawsWorkingGroupUser.orderByDesc(LawsWorkingGroupUser::getCreateTime); - return lawsWorkingGroupUserService.list(queryLawsWorkingGroupUser); - } - - private List queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) { - List ids = lawsWorkingGroupUserService.lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName); - List list = new ArrayList<>(); - if (!ids.isEmpty()) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(LawsWorkingGroupUser::getWorkingGroupId, workingGroupId); - wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); - wrapper.in(LawsWorkingGroupUser::getUserId, ids); - wrapper.orderByDesc(LawsWorkingGroupUser::getCreateTime); - list = lawsWorkingGroupUserService.list(wrapper); - } - return list; - } - - private List queryDataByTree(String workingGroupId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(LawsWorkingGroupUser::getWorkingGroupId, workingGroupId); - wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); - wrapper.orderByDesc(LawsWorkingGroupUser::getCreateTime); - return lawsWorkingGroupUserService.list(wrapper); + public ModelAndView template(@RequestParam(required = false) String workingGroupId, @RequestParam(required = false) String realname, @RequestParam(required = false) String username, @RequestParam(required = false) String userRoleName, @RequestParam(required = false) String userPostName, HttpServletRequest request) { + return lawsWorkingGroupUserService.export(workingGroupId,realname,username,userRoleName,userPostName, request); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java b/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java index d777b384..e865a49b 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java @@ -4,6 +4,8 @@ import com.jero.modules.sys.entity.LawsWorkingGroupUser; import com.baomidou.mybatisplus.extension.service.IService; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.web.servlet.ModelAndView; + import java.util.List; /** @@ -98,4 +100,18 @@ public interface ILawsWorkingGroupUserService extends IService wrapper = getWrapper(realname, userName, userRoleName, userPostName, workingGroupId); + // 没选上面四个筛选条件时 + return page(page, wrapper); + } + + @NotNull + private QueryWrapper getWrapper(String realname, String userName, String userRoleName, String userPostName, String workingGroupId) { + List workingGroupIds = getWorkingGroupIds(workingGroupId); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("user_id","max(working_group_id) as working_group_id","max(id) as id"); + if(!CollectionUtils.isEmpty(workingGroupIds)){ + wrapper.in("working_group_id", workingGroupIds); + } + if (!StringUtils.isAllBlank(realname, userName, userRoleName, userPostName)){ + List ids = lawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName); + if (CollectionUtils.isEmpty(ids)){ + ids.add("-1"); + } + ids = ids.stream().distinct().collect(Collectors.toList()); + wrapper.in("user_id", ids); + } + wrapper.groupBy("user_id"); + return wrapper; + } + + @NotNull + private List getWorkingGroupIds(String workingGroupId) { List workingGroupIds = new ArrayList<>(); if(!StringUtils.isBlank(workingGroupId)){ LawsWorkingGroup lawsWorkingGroup = lawsWorkingGroupService.queryById(workingGroupId); @@ -89,23 +123,8 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - if(!CollectionUtils.isEmpty(workingGroupIds)){ - wrapper.in(LawsWorkingGroupUser::getWorkingGroupId, workingGroupIds); - } - - if (!StringUtils.isAllBlank(realname, userName, userRoleName, userPostName)){ - List ids = lawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName); - if (ids.isEmpty()){ - return new Page<>(); - } - wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); - wrapper.in(LawsWorkingGroupUser::getUserId, ids); - return page(page, wrapper); - } - // 没选上面四个筛选条件时 - return page(page, wrapper); - } + return workingGroupIds; + } /** * 内部工作组模糊搜索获取满足条件的用户id集合 @@ -171,6 +190,70 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl dos; + + QueryWrapper wrapper = getWrapper(realname, userName, userRoleName, userPostName, workingGroupId); + + //获取选中数据 + String selections = request.getParameter("selections"); + if (StringUtils.isNotBlank(selections)) { + wrapper.in("user_id",Arrays.asList(selections.split(","))); + } + dos = list(wrapper); + + userAssignment(dos); + + // AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + String title = "内部工作组人员表"; + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(JeroController.FILE_NAME, title); + mv.addObject(JeroController.CLASS, LawsWorkingGroupUser.class); + ExportParams exportParams = new ExportParams(null, title); + // 导出xlsx + exportParams.setType(ExcelType.XSSF); + mv.addObject(JeroController.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, dos); + return mv; + } + + + private List queryDataByUserId(String userId) { + LambdaQueryWrapper queryLawsWorkingGroupUser = new LambdaQueryWrapper<>(); + queryLawsWorkingGroupUser.in(LawsWorkingGroupUser::getUserId,Arrays.asList(userId.split(","))); + queryLawsWorkingGroupUser.orderByDesc(LawsWorkingGroupUser::getCreateTime); + return list(queryLawsWorkingGroupUser); + } + + private List queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) { + List ids = lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName); + List list = new ArrayList<>(); + if (!ids.isEmpty()) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LawsWorkingGroupUser::getWorkingGroupId, workingGroupId); + wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + wrapper.in(LawsWorkingGroupUser::getUserId, ids); + wrapper.orderByDesc(LawsWorkingGroupUser::getCreateTime); + list = list(wrapper); + } + return list; + } + + private List queryDataByTree(String workingGroupId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LawsWorkingGroupUser::getWorkingGroupId, workingGroupId); + wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + wrapper.orderByDesc(LawsWorkingGroupUser::getCreateTime); + return list(wrapper); + } + /** * 列表查询 */