package com.panzhihua.westcommittee.api;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.utlis.StringUtils;
|
import com.panzhihua.westcommittee.model.dto.UpdateStatusDeptDto;
|
import com.panzhihua.westcommittee.model.entity.Department;
|
import com.panzhihua.westcommittee.model.entity.SystemUser;
|
import com.panzhihua.westcommittee.service.*;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/2/19 17:44
|
*/
|
@Api
|
@RestController
|
@RequestMapping("/department")
|
public class DepartmentController extends BaseController {
|
|
@Resource
|
private IDepartmentService departmentService;
|
|
@Resource
|
private ISystemUserService systemUserService;
|
|
@Resource
|
private IBcRegionService bcRegionService;
|
|
@Resource
|
private IComStreetService comStreetService;
|
|
@Resource
|
private IComActService comActService;
|
|
|
// @GetMapping("/list")
|
// @ApiOperation(value = "获取单位列表2.0.1", tags = {"西区纪委后台-用户管理"})
|
// @OperLog(operModul = "西区纪委后台",operType = 0, businessType = "获取单位列表2.0.1")
|
// public R<List<RegionVO>> list(String name){
|
// // 社区
|
// List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getCityCode,510400).like(StringUtils.isNotEmpty(name), ComAct::getName, name));
|
// Set<Long> collect2 = list2.stream().map(ComAct::getStreetId).collect(Collectors.toSet());
|
//
|
// // 街道
|
// List<ComStreet> list3 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getCityCode,510400).like(StringUtils.isNotEmpty(name), ComStreet::getName, name)
|
// .or().in(collect2.size() > 0, ComStreet::getStreetId, collect2));
|
// Set<Integer> collect3 = list3.stream().map(ComStreet::getAreaCode).collect(Collectors.toSet());
|
//
|
// // 区
|
// List<BcRegion> list1 = bcRegionService.list(new LambdaQueryWrapper<BcRegion>().eq(BcRegion::getParentId,510400).like(StringUtils.isNotEmpty(name), BcRegion::getRegionName, name)
|
// .or().in(collect3.size() > 0, BcRegion::getRegionCode, collect3));
|
//
|
// List<RegionVO> dispatchVOList = new ArrayList<>();
|
// for (BcRegion bcRegion : list1) {
|
// RegionVO regionVO = new RegionVO();
|
// regionVO.setTier(2);
|
// regionVO.setId(bcRegion.getRegionCode());
|
// regionVO.setName(bcRegion.getRegionName());
|
// List<RegionVO> dispatchVOList1 = new ArrayList<>();
|
// List<ComStreet> collect = list3.stream().filter(e -> e.getAreaCode().toString().equals(bcRegion.getRegionCode())).collect(Collectors.toList());
|
// for (ComStreet street : collect) {
|
// List<RegionVO> dispatchVOList2 = new ArrayList<>();
|
// RegionVO regionVO1 = new RegionVO();
|
// regionVO1.setTier(3);
|
// regionVO1.setId(street.getStreetId());
|
// regionVO1.setName(street.getName());
|
// List<ComAct> collect1 = list2.stream().filter(e -> e.getStreetId().toString().equals(street.getStreetId())).collect(Collectors.toList());
|
// for (ComAct comAct : collect1) {
|
// RegionVO regionVO2 = new RegionVO();
|
// regionVO2.setTier(4);
|
// regionVO2.setId(comAct.getCommunityId().toString());
|
// regionVO2.setName(comAct.getName());
|
// dispatchVOList2.add(regionVO2);
|
// }
|
// regionVO1.setChildren(dispatchVOList2);
|
// dispatchVOList1.add(regionVO1);
|
// }
|
// regionVO.setChildren(dispatchVOList1);
|
// dispatchVOList.add(regionVO);
|
// }
|
//
|
// return R.ok(dispatchVOList);
|
// }
|
|
|
@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);
|
}
|
department.setChild(departmentList2);
|
}
|
return R.ok(list2);
|
}
|
|
|
@PostMapping("/add")
|
@ApiOperation(value = "添加单位信息", tags = {"西区纪委后台-单位管理"})
|
public R add(@RequestBody Department department){
|
long count = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getName, department.getName()));
|
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){
|
long count = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getName, department.getName())
|
.ne(Department::getId, department.getId()));
|
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);
|
return R.ok();
|
}
|
|
|
|
@DeleteMapping("/delete/{id}")
|
@ApiOperation(value = "删除单位信息", tags = {"西区纪委后台-单位管理"})
|
public R delete(@PathVariable("id") Integer id){
|
long count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, id).ne(SystemUser::getStatus, 3));
|
if(0 < count){
|
return R.fail("该单位已被使用,删除失败。");
|
}
|
departmentService.removeById(id);
|
return R.ok();
|
}
|
|
@PostMapping("/updateStatus")
|
@ApiOperation(value = "禁用启用单位 id=单位id status 1开启2关闭", tags = {"西区纪委后台-单位管理"})
|
public R updateStatus(@RequestBody UpdateStatusDeptDto dto){
|
Department department = departmentService.getById(dto.getId());
|
department.setStatus(dto.getStatus());
|
department.setRemark(dto.getRemark());
|
if(dto.getStatus()==2){
|
SystemUserVo loginUserInfoWest = getLoginUserInfoWest();
|
department.setOperId(loginUserInfoWest.getId());
|
department.setOperName(loginUserInfoWest.getName());
|
department.setUpdateTime(new Date());
|
}
|
departmentService.updateById(department);
|
return R.ok();
|
}
|
|
|
|
@GetMapping("/getDepartmentList/{tier}")
|
@ApiOperation(value = "根据单位层级查询单位数据", tags = {"西区纪委后台-用户管理"})
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "tier", value = "单位层级", required = true, dataType = "Integer")
|
})
|
@OperLog(operModul = "西区纪委后台",operType = 0, businessType = "根据单位层级查询单位数据")
|
public R<List<Department>> getDepartmentList(@PathVariable("tier") Integer tier){
|
List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, tier));
|
return R.ok(list);
|
}
|
}
|