内部工作组左侧属性修改

This commit is contained in:
梁琦涛
2023-11-09 09:48:17 +08:00
parent c2505ad51d
commit 53b766ebb3
3 changed files with 118 additions and 79 deletions
@@ -237,68 +237,8 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
@AutoLog(value = "内部工作组人员关联表-导出")
@ApiOperation(value = "内部工作组人员关联表-导出", notes = "内部工作组人员关联表-导出")
@GetMapping(value = "/export")
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, HttpServletResponse response) {
if (StringUtils.isBlank(workingGroupId)) {
throw new JeroBootException(ResultCommon.PLEASE_SELECT_A_WORKGROUP_TO_EXPORT);
}
//获取数据,分为三种情况:1、选中ID;2、没选ID且选了姓名、工号、角色、岗位四个筛选框;3、没选ID且没选四个筛选框
List<LawsWorkingGroupUser> 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<LawsWorkingGroupUser> queryDataByUserId(String userId) {
LambdaQueryWrapper<LawsWorkingGroupUser> queryLawsWorkingGroupUser = new LambdaQueryWrapper<>();
queryLawsWorkingGroupUser.in(LawsWorkingGroupUser::getUserId,Arrays.asList(userId.split(",")));
queryLawsWorkingGroupUser.orderByDesc(LawsWorkingGroupUser::getCreateTime);
return lawsWorkingGroupUserService.list(queryLawsWorkingGroupUser);
}
private List<LawsWorkingGroupUser> queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) {
List<String> ids = lawsWorkingGroupUserService.lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName);
List<LawsWorkingGroupUser> list = new ArrayList<>();
if (!ids.isEmpty()) {
LambdaQueryWrapper<LawsWorkingGroupUser> 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<LawsWorkingGroupUser> queryDataByTree(String workingGroupId) {
LambdaQueryWrapper<LawsWorkingGroupUser> 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);
}
/**
@@ -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<LawsWorkingGroupU
* @return void
*/
void checkAuth(String workingGroupId);
/**
* 导出
* @author LQT
* @date 2023/11/9 9:26
* @param workingGroupId
* @param realname
* @param username
* @param userRoleName
* @param userPostName
* @param request
* @return org.springframework.web.servlet.ModelAndView
*/
ModelAndView export(String workingGroupId,String realname,String username,String userRoleName,String userPostName,HttpServletRequest request);
}
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.laws.common.constant.ResultCommon;
@@ -25,9 +26,15 @@ import com.jero.modules.system.service.ISysUserService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -69,6 +76,33 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
String userPostName = lawsWorkingGroupUser.getUserPostName();
String workingGroupId = lawsWorkingGroupUser.getWorkingGroupId();
QueryWrapper<LawsWorkingGroupUser> wrapper = getWrapper(realname, userName, userRoleName, userPostName, workingGroupId);
// 没选上面四个筛选条件时
return page(page, wrapper);
}
@NotNull
private QueryWrapper<LawsWorkingGroupUser> getWrapper(String realname, String userName, String userRoleName, String userPostName, String workingGroupId) {
List<String> workingGroupIds = getWorkingGroupIds(workingGroupId);
QueryWrapper<LawsWorkingGroupUser> 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<String> 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<String> getWorkingGroupIds(String workingGroupId) {
List<String> workingGroupIds = new ArrayList<>();
if(!StringUtils.isBlank(workingGroupId)){
LawsWorkingGroup lawsWorkingGroup = lawsWorkingGroupService.queryById(workingGroupId);
@@ -89,23 +123,8 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
workingGroupIds.add(workingGroupId);
}
}
LambdaQueryWrapper<LawsWorkingGroupUser> wrapper = new LambdaQueryWrapper<>();
if(!CollectionUtils.isEmpty(workingGroupIds)){
wrapper.in(LawsWorkingGroupUser::getWorkingGroupId, workingGroupIds);
}
if (!StringUtils.isAllBlank(realname, userName, userRoleName, userPostName)){
List<String> 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<LawsWorkingGrou
}
}
@Override
public ModelAndView export(String workingGroupId, String realname, String userName, String userRoleName, String userPostName, HttpServletRequest request) {
if (StringUtils.isBlank(workingGroupId)) {
throw new JeroBootException(ResultCommon.PLEASE_SELECT_A_WORKGROUP_TO_EXPORT);
}
//获取数据,分为三种情况:1、选中ID;2、没选ID且选了姓名、工号、角色、岗位四个筛选框;3、没选ID且没选四个筛选框
List<LawsWorkingGroupUser> dos;
QueryWrapper<LawsWorkingGroupUser> 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<LawsWorkingGroupUser> queryDataByUserId(String userId) {
LambdaQueryWrapper<LawsWorkingGroupUser> queryLawsWorkingGroupUser = new LambdaQueryWrapper<>();
queryLawsWorkingGroupUser.in(LawsWorkingGroupUser::getUserId,Arrays.asList(userId.split(",")));
queryLawsWorkingGroupUser.orderByDesc(LawsWorkingGroupUser::getCreateTime);
return list(queryLawsWorkingGroupUser);
}
private List<LawsWorkingGroupUser> queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) {
List<String> ids = lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName);
List<LawsWorkingGroupUser> list = new ArrayList<>();
if (!ids.isEmpty()) {
LambdaQueryWrapper<LawsWorkingGroupUser> 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<LawsWorkingGroupUser> queryDataByTree(String workingGroupId) {
LambdaQueryWrapper<LawsWorkingGroupUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LawsWorkingGroupUser::getWorkingGroupId, workingGroupId);
wrapper.eq(LawsWorkingGroupUser::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
wrapper.orderByDesc(LawsWorkingGroupUser::getCreateTime);
return list(wrapper);
}
/**
* 列表查询
*/