| | |
| | | */ |
| | | package org.sxkj.system.controller; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import org.sxkj.system.entity.Region; |
| | | import org.sxkj.system.entity.User; |
| | | import org.sxkj.system.enums.DictEnum; |
| | | import org.sxkj.system.excel.DeptExcel; |
| | | import org.sxkj.system.excel.DeptImporter; |
| | | import org.sxkj.system.excel.RegionExcel; |
| | | import org.sxkj.system.excel.RegionImporter; |
| | | import org.sxkj.system.excel.*; |
| | | import org.sxkj.system.mapper.DeptMapper; |
| | | import org.sxkj.system.mapper.UserMapper; |
| | | import org.sxkj.system.param.DeptAddParam; |
| | | import org.sxkj.system.param.DeptExportParam; |
| | | import org.sxkj.system.param.DeptPageParam; |
| | | import org.sxkj.system.service.IDeptService; |
| | | import org.sxkj.system.util.excel.DeptSheetWriteHandler; |
| | | import org.sxkj.system.util.excel.RegionSheetWriteHandler; |
| | | import org.sxkj.system.vo.DeptVO; |
| | | import org.sxkj.system.wrapper.DeptWrapper; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; |
| | |
| | | @ApiOperationSupport(order = 1) |
| | | @ApiOperation(value = "详情", notes = "传入dept") |
| | | public R<DeptVO> detail(Dept dept) { |
| | | Dept detail = deptService.getOne(Condition.getQueryWrapper(dept)); |
| | | return R.data(DeptWrapper.build().entityVO(detail)); |
| | | DeptVO detail = deptService.getDetailWithAreaName(dept); |
| | | return R.data(detail); |
| | | } |
| | | |
| | | /** |
| | |
| | | @GetMapping("/tree") |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "树形结构", notes = "树形结构") |
| | | public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) { |
| | | List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); |
| | | public R<List<DeptVO>> tree(String tenantId, @RequestParam(value = "sysType", required = false) String sysType, BladeUser bladeUser) { |
| | | List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), sysType); |
| | | return R.data(tree); |
| | | } |
| | | |
| | |
| | | String times = OrderNumUtils.initOrderNum2(WordOrderConstant.ORG_CODE); |
| | | String deptCode = WordOrderConstant.ORG_PREFIX + times; |
| | | deptEntity.setDeptCode(deptCode); |
| | | deptEntity.setCreateTime(new Date()); |
| | | deptEntity.setUpdateTime(new Date()); |
| | | if (deptService.submit(deptEntity)) { |
| | | CacheUtil.clear(SYS_CACHE); |
| | | CacheUtil.clear(SYS_CACHE, Boolean.FALSE); |
| | | List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getDeptId, dept.getId())); |
| | | // 根据部门ID查询用户列表 |
| | | List<User> userList = userMapper.selectUsersByDeptId(String.valueOf(dept.getId())); |
| | | if (!userList.isEmpty()) { |
| | | List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList()); |
| | | userMapper.updateUserAreaCode(dept.getAreaCode(), userIds); |
| | |
| | | @ApiOperation(value = "导入机构", notes = "传入excel") |
| | | public R importRegion(MultipartFile file, Integer isCovered) { |
| | | DeptImporter deptImporter = new DeptImporter(deptService, isCovered == 1); |
| | | ExcelUtil.save(file, deptImporter, DeptExcel.class); |
| | | ExcelUtil.save(file, deptImporter, DeptImportExcel.class); |
| | | return R.success("操作成功"); |
| | | } |
| | | |
| | |
| | | @GetMapping("export-template") |
| | | @ApiOperationSupport(order = 16) |
| | | @ApiOperation(value = "导出模板") |
| | | public void exportUser(HttpServletResponse response) { |
| | | List<DeptExcel> list = new ArrayList<>(); |
| | | ExcelUtil.export(response, "机构模板", "机构表", list, DeptExcel.class); |
| | | public void exportUser(HttpServletResponse response) throws IOException { |
| | | // 设置响应头 |
| | | response.setContentType("application/vnd.ms-excel"); |
| | | response.setCharacterEncoding(StandardCharsets.UTF_8.name()); |
| | | String fileName = URLEncoder.encode("机构模板", StandardCharsets.UTF_8.name()); |
| | | response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); |
| | | |
| | | // 准备示例数据列表 |
| | | List<DeptImportExcel> list = new ArrayList<>(); |
| | | // 创建示例数据对象 |
| | | DeptImportExcel example = new DeptImportExcel(); |
| | | // 设置示例数据 |
| | | example.setDeptName("示例机构"); |
| | | example.setAreaCode("360800000000"); |
| | | example.setRemark("这是一个示例机构"); |
| | | example.setStatus("1"); // 假设1表示启用状态 |
| | | // 将示例数据添加到列表 |
| | | list.add(example); |
| | | |
| | | // 使用EasyExcel导出,并注册RegionSheetWriteHandler |
| | | EasyExcel.write(response.getOutputStream(), DeptImportExcel.class) |
| | | .registerWriteHandler(new DeptSheetWriteHandler()) |
| | | .sheet("机构表") |
| | | .doWrite(list); |
| | | } |
| | | |
| | | } |