| | |
| | | package com.panzhihua.westcommittee.api; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.panzhihua.common.controller.BaseController; |
| | | import com.panzhihua.common.interfaces.OperLog; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; |
| | | import com.panzhihua.common.model.vos.west.SystemUserVo; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.westcommittee.model.dto.UpdateStatusDeptDto; |
| | | import com.panzhihua.westcommittee.model.entity.ComAct; |
| | | import com.panzhihua.westcommittee.model.entity.Department; |
| | | import com.panzhihua.westcommittee.model.entity.SystemUser; |
| | | import com.panzhihua.westcommittee.service.*; |
| | |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | @RestController |
| | | @RequestMapping("/department") |
| | | public class DepartmentController extends BaseController { |
| | | |
| | | |
| | | @Resource |
| | | private IDepartmentService departmentService; |
| | | |
| | | |
| | | @Resource |
| | | private ISystemUserService systemUserService; |
| | | |
| | |
| | | @GetMapping("/getList") |
| | | @ApiOperation(value = "获取单位列表", tags = {"西区纪委后台-单位管理"}) |
| | | @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表") |
| | | public R<List<Department>> getList(String name){ |
| | | List<Department> list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 4)); |
| | | Set<String> collect3 = list4.stream().map(Department::getStreetId).collect(Collectors.toSet()); |
| | | |
| | | List<Department> list3 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 3) |
| | | .or().in(collect3.size() > 0, Department::getStreet, collect3)); |
| | | |
| | | Set<String> collect2 = list3.stream().map(Department::getDistrictsCode).collect(Collectors.toSet()); |
| | | List<Department> list2 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 2) |
| | | .or().in(collect2.size() > 0, Department::getDistrictsCode, collect2)); |
| | | for (Department department : list2) { |
| | | List<Department> departmentList2 = list3.stream().filter(s -> s.getDistrictsCode().equals(department.getDistrictsCode())).collect(Collectors.toList()); |
| | | for (Department department1 : departmentList2) { |
| | | List<Department> departmentList3 = list4.stream().filter(s -> s.getStreetId().equals(department1.getStreetId())).collect(Collectors.toList()); |
| | | department1.setChild(departmentList3); |
| | | public R<List<Department>> getList(String name,Integer level,String code,int type){ |
| | | SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); |
| | | if(level==null){ |
| | | if(loginUserInfoWest.getSystemRoleId()!=1){ |
| | | return R.ok(new ArrayList<>()); |
| | | } |
| | | level=loginUserInfoWest.getAccountLevel(); |
| | | type=2; |
| | | } |
| | | List<Department> list4=new ArrayList<>(); |
| | | if(level==2 && type==1){ |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 2)); |
| | | }else if(level==2 && type==2){ |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).ge( Department::getTier, 2)); |
| | | }else if(level==3 && type==1){ |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, loginUserInfoWest.getStreetId())); |
| | | }else if(level==3 && type==2){ |
| | | List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, loginUserInfoWest.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 3).eq(Department::getStreetId, loginUserInfoWest.getStreetId()) |
| | | .or(w->w.eq(Department::getTier,4).in(Department::getCommunityId,ids))); |
| | | }else if(level==4 && type==1){ |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq( Department::getTier, 4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId())); |
| | | }else if(level==4 && type==2){ |
| | | list4 = departmentService.list(new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).eq(Department::getTier, 4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId())); |
| | | } |
| | | department.setChild(departmentList2); |
| | | return R.ok(list4); |
| | | |
| | | } |
| | | |
| | | |
| | | @GetMapping("/getDeptList") |
| | | @ApiOperation(value = "获取单位列表1", tags = {"西区纪委后台-单位管理"}) |
| | | @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表") |
| | | public R<Page<Department>> getDeptList(String name,int pageNum,int pageSize){ |
| | | SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); |
| | | if(loginUserInfoWest.getSystemRoleId()!=1){ |
| | | return R.ok(new Page<>()); |
| | | } |
| | | Integer accountLevel = loginUserInfoWest.getAccountLevel(); |
| | | Page<Department> list4 = null; |
| | | if(accountLevel==2 ){ |
| | | list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).ge(Department::getTier,accountLevel)); |
| | | }else if(accountLevel==3){ |
| | | String streetId = loginUserInfoWest.getStreetId(); |
| | | List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); |
| | | list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,accountLevel).eq(Department::getStreetId,streetId) |
| | | .or(department -> department.and(department1 -> department1.eq(Department::getTier, 4).in(Department::getCommunityId, ids)))); |
| | | }else if(accountLevel==4){ |
| | | list4 = departmentService.page(new Page<Department>(pageNum,pageSize),new LambdaQueryWrapper<Department>().like(StringUtils.isNotEmpty(name), Department::getName, name).or().eq(StringUtils.isNotEmpty(name),Department::getId,name).eq(Department::getTier,4).eq(Department::getCommunityId,loginUserInfoWest.getCommunityId())); |
| | | } |
| | | for (Department department : list4.getRecords()) { |
| | | int count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId())); |
| | | department.setUserCount(count); |
| | | |
| | | } |
| | | return R.ok(list2); |
| | | return R.ok(list4); |
| | | } |
| | | |
| | | |
| | |
| | | if(0 < count){ |
| | | return R.fail("单位名称重复。"); |
| | | } |
| | | long count1 = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getDeptId, department.getDeptId())); |
| | | if(0 < count1){ |
| | | return R.fail("单位ID重复。"); |
| | | } |
| | | departmentService.save(department); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @PostMapping("/edit") |
| | | @ApiOperation(value = "编辑单位信息", tags = {"西区纪委后台-单位管理"}) |
| | | public R edit(@RequestBody Department department){ |
| | |
| | | if(0 < count){ |
| | | return R.fail("单位名称重复。"); |
| | | } |
| | | long count1 = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getDeptId, department.getDeptId()) |
| | | .ne(Department::getId, department.getId())); |
| | | if(0 < count1){ |
| | | return R.fail("单位ID重复。"); |
| | | } |
| | | departmentService.updateById(department); |
| | | |
| | | List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, department.getId())); |
| | | if(!list.isEmpty()) { |
| | | if (department.getTier() == 2) { |
| | | list.stream().forEach(e -> { |
| | | e.setAccountLevel(department.getTier()); |
| | | e.setCommunity(null); |
| | | e.setCommunityId(null); |
| | | e.setStreet(null); |
| | | e.setStreetId(null); |
| | | }); |
| | | } else if (department.getTier() == 3) { |
| | | list.stream().forEach(e -> { |
| | | e.setAccountLevel(department.getTier()); |
| | | e.setCommunity(null); |
| | | e.setCommunityId(null); |
| | | }); |
| | | } else if (department.getTier() == 4) { |
| | | list.stream().forEach(e -> { |
| | | e.setAccountLevel(department.getTier()); |
| | | }); |
| | | } |
| | | systemUserService.updateBatchById(list); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @DeleteMapping("/delete/{id}") |
| | | @ApiOperation(value = "删除单位信息", tags = {"西区纪委后台-单位管理"}) |
| | | public R delete(@PathVariable("id") Integer id){ |
| | |
| | | public R updateStatus(@RequestBody UpdateStatusDeptDto dto){ |
| | | Department department = departmentService.getById(dto.getId()); |
| | | department.setStatus(dto.getStatus()); |
| | | department.setRemark(dto.getRemark()); |
| | | department.setReason(dto.getReason()); |
| | | if(dto.getStatus()==2){ |
| | | SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); |
| | | department.setOperId(loginUserInfoWest.getId()); |
| | |
| | | departmentService.updateById(department); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @GetMapping("/getDepartmentList/{tier}") |
| | | @ApiOperation(value = "根据单位层级查询单位数据", tags = {"西区纪委后台-用户管理"}) |
| | | @ApiImplicitParams({ |
| | |
| | | List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, tier)); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/importDepartment") |
| | | @ApiOperation(value = "单位导入", tags = {"西区纪委后台-单位管理"}) |
| | | public R<?> importDepartment(MultipartFile file) { |
| | | String s = file.getOriginalFilename(); |
| | | if (s == null || !("xls".equals(s.substring(s.lastIndexOf(".") + 1)) || "xlsx".equals(s.substring(s.lastIndexOf(".") + 1)))) { |
| | | return R.fail("只能上传.xls或.xlsx格式的文件"); |
| | | } |
| | | SystemUserVo loginUserInfoWest = getLoginUserInfoWest(); |
| | | String name = loginUserInfoWest.getName(); |
| | | Integer id = loginUserInfoWest.getId(); |
| | | try { |
| | | return departmentService.importDepartment(s, file,name,id); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |