提交 82f6e4d5 作者: 洪东保

按照制定部门计算统计次数

父级 813e64fd
......@@ -93,7 +93,10 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
"/**/*.js", "/**/*.map")
.permitAll()
.antMatchers("/error").anonymous()
.antMatchers("/user/**").anonymous()
.antMatchers("/user/login").anonymous()
.antMatchers("/user/userAuth").anonymous()
.antMatchers("/user/tokenAuth").anonymous()
.antMatchers("/user/emailAuth").anonymous()
.antMatchers("/web/**").anonymous()
.antMatchers("/file/**")
.permitAll()
......
package com.cmeeting.constant;
import java.util.HashMap;
import java.util.Map;
public class DeptCollect {
public static Map<String, String> DEPT_MAP = new HashMap<>(12);
static {
DEPT_MAP.put("10340", "集团总部");
DEPT_MAP.put("11683", "中集车辆(集团)股份有限公司");
DEPT_MAP.put("11080", "中集安瑞科投资控股(深圳)有限公司");
DEPT_MAP.put("635364", "中集管理培训(深圳)有限公司");
DEPT_MAP.put("612702", "中集世联达集装箱物流(深圳)有限公司");
DEPT_MAP.put("661082", "柏坚货柜机械维修(深圳)有限公司");
DEPT_MAP.put("745168", "中集世联达国际物流有限公司");
DEPT_MAP.put("766268", "中铁集物流装备有限公司");
DEPT_MAP.put("698027", "深圳中集同创供应链有限公司");
DEPT_MAP.put("674199", "中集模块化建筑投资有限公司");
DEPT_MAP.put("698022", "深圳中集共享后勤服务有限公司");
DEPT_MAP.put("707436", "深圳市集家美寓公寓管理有限公司");
DEPT_MAP.put("640075", "财务公司");
}
}
......@@ -8,6 +8,7 @@ import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.annotation.OperLog;
import com.cmeeting.config.StatisticsEmailPushProperties;
import com.cmeeting.constant.DeptCollect;
import com.cmeeting.email.EmailSender;
import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper;
......@@ -337,7 +338,7 @@ public class MeetingInfoController {
@PostMapping("/statistics")
public void statisticsEmail(@RequestBody EmailStatisticsVo vo, HttpServletResponse response) {
meetingInfoService.statisticsEmail(vo.getType(), vo.getStartTime(), vo.getEndTime(), response);
meetingInfoService.statisticsEmail(vo.getType(), vo.getStartTime(), vo.getEndTime(), response, DeptCollect.DEPT_MAP);
}
......@@ -347,7 +348,7 @@ public class MeetingInfoController {
String fileName = String.format("%s.xlsx", title);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf8"));
meetingInfoService.statisticsEmail(title, vo.getStartTime(), vo.getEndTime(), response.getOutputStream());
meetingInfoService.statisticsEmail(title, vo.getStartTime(), vo.getEndTime(), response.getOutputStream(), DeptCollect.DEPT_MAP);
}
@Resource
......@@ -381,7 +382,7 @@ public class MeetingInfoController {
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
boolean b = meetingInfoService.statisticsEmail(subject, simpleDateFormat1.parse(simpleDateFormat.format(date) + " 00:00:00"),
simpleDateFormat1.parse(simpleDateFormat.format(date) + " 23:59:59"), new FileOutputStream(file));
simpleDateFormat1.parse(simpleDateFormat.format(date) + " 23:59:59"), new FileOutputStream(file), DeptCollect.DEPT_MAP);
if (b) {
content = "<p data-olk-copy-source=\\\"MessageBody\\\">Dear all:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;附件为今天Cmeeting会议纪要生成和发送情况,烦请查收。</p>";
StatisticsEmailPush.Attachment attachment = new StatisticsEmailPush.Attachment();
......
package com.cmeeting.controller;
import cn.hutool.core.util.StrUtil;
import com.azure.core.annotation.Post;
import com.cmeeting.annotation.OperLog;
import com.cmeeting.constant.DeptCollect;
import com.cmeeting.pojo.SysUserSyncCategory;
import com.cmeeting.service.MeetingInfoService;
import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.util.R;
import com.cmeeting.util.page.PageUtil;
import com.sun.javafx.binding.StringFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description
......@@ -26,10 +35,9 @@ import java.util.Map;
public class StatisticsController {
@Autowired
private MeetingRecordTemplateService meetingRecordTemplateService;
@Autowired
private MeetingInfoService meetingInfoService;
@Autowired
private SysUserSyncService sysUserSyncService;
/**
* 纪要模板使用情况的统计
......@@ -48,6 +56,39 @@ public class StatisticsController {
return PageUtil.getDataTable(list);
}
@PostMapping("/useInfoByCompany")
public R useInfoByCompany(@Validated @RequestBody UseInfoByCompanyVO vo) throws ParseException {
List<SysUserSyncCategory> tree = sysUserSyncService.getTree();
String search = vo.getSearch();
if (StrUtil.isNotBlank(search)) {
tree = tree.stream().filter(e -> search.equals(e.getDeptId()) || e.getPath().contains(search)).collect(Collectors.toList());
}
Map<String, String> collect = tree.stream().collect(Collectors.toMap(SysUserSyncCategory::getDeptId, SysUserSyncCategory::getPath));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Map<String, Object>> list = meetingInfoService.statisticsEmail(
simpleDateFormat1.parse(simpleDateFormat.format(vo.getStartTime()) + " 00:00:00"),
simpleDateFormat1.parse(simpleDateFormat.format(vo.getEndTime()) + " 23:59:59"), collect);
return PageUtil.getDataTable(list);
}
@PostMapping("/exportUseInfoByCompany")
public void exportUseInfoByCompany(@Validated @RequestBody UseInfoByCompanyVO vo, HttpServletResponse response) throws ParseException, IOException {
String search = vo.getSearch();
List<SysUserSyncCategory> tree = sysUserSyncService.getTree();
if (StrUtil.isNotBlank(search)) {
tree = tree.stream().filter(e -> search.equals(e.getDeptId()) || e.getPath().contains(search)).collect(Collectors.toList());
}
Map<String, String> collect = tree.stream().collect(Collectors.toMap(SysUserSyncCategory::getDeptId, SysUserSyncCategory::getPath));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String title = "会议纪要推送次数统计.docx";
meetingInfoService.statisticsEmail(title, simpleDateFormat1.parse(simpleDateFormat.format(vo.getStartTime()) + " 00:00:00"),
simpleDateFormat1.parse(simpleDateFormat.format(vo.getEndTime()) + " 23:59:59"), response.getOutputStream(), collect);
}
/**
* 纪要模板使用情况的统计
* @param searchValue 用户部门或工号
......
......@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@RestController
@RequestMapping("/user/sync")
......@@ -24,11 +25,21 @@ public class SysUseSyncController {
@GetMapping("/category/tree")
public R tree() {
return R.ok(iSysUserSyncCategoryService.tree(tenantId));
return R.ok(iSysUserSyncCategoryService.tree());
}
@GetMapping("/list")
public R list(@RequestParam String categoryId, @RequestParam Integer current, @RequestParam Integer size, String search) {
return R.ok(iSysUserSyncService.selectPage(current, size, categoryId, search));
}
@GetMapping("/getTree")
public R getTree(){
return R.ok(iSysUserSyncService.getTree());
}
@GetMapping("/downloadTree")
public void downloadTree(HttpServletResponse response){
iSysUserSyncService.downloadTree(iSysUserSyncService.getTree(), response);
}
}
package com.cmeeting.controller;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author a
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UseInfoByCompanyVO {
private String search;
@NotNull
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@NotNull
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
}
......@@ -3,10 +3,12 @@ package com.cmeeting.job;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cmeeting.config.StatisticsEmailPushProperties;
import com.cmeeting.constant.DeptCollect;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.email.EmailSender;
import com.cmeeting.mapper.primary.UserIdMapper;
import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.pojo.SysUserSyncCategory;
import com.cmeeting.pojo.UserId;
import com.cmeeting.pojo.WeComUser;
import com.cmeeting.service.*;
......@@ -29,9 +31,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -285,6 +285,8 @@ public class CmeetingJob {
@Resource
private StatisticsEmailPushProperties statisticsEmailPushProperties;
@Resource
private SysUserSyncService sysUserSyncService;
/**
* 每天两小时发送会议统计邮件
......@@ -320,9 +322,11 @@ public class CmeetingJob {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<SysUserSyncCategory> tree = sysUserSyncService.getTree();
try {
boolean b = meetingInfoService.statisticsEmail(subject, simpleDateFormat1.parse(simpleDateFormat.format(date) + " 00:00:00"),
simpleDateFormat1.parse(simpleDateFormat.format(date) + " 23:59:59"), new FileOutputStream(file));
simpleDateFormat1.parse(simpleDateFormat.format(date) + " 23:59:59"), new FileOutputStream(file), DeptCollect.DEPT_MAP);
if (b) {
content = "<p data-olk-copy-source=\\\"MessageBody\\\">Dear all:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;附件为今天Cmeeting会议纪要生成和发送情况,烦请查收。</p>";
StatisticsEmailPush.Attachment attachment = new StatisticsEmailPush.Attachment();
......
......@@ -17,7 +17,7 @@ public interface ISysUserSyncCategoryService extends IService<SysUserSyncCategor
String getPath(String deptId, Map<String, String> map);
List<Tree<String>> tree(String tenantId);
List<Tree<String>> tree();
List<SysUserSyncCategory> selectParentIdNoInId(String search);
......
......@@ -21,9 +21,10 @@ public interface MeetingInfoService extends IService<MeetingInfo> {
/**
* 统计邮件推送情况
*/
void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response);
boolean statisticsEmail(String title, Date startTime, Date endTime, OutputStream outputStream);
void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response, Map<String, String> map);
boolean statisticsEmail(String title, Date startTime, Date endTime, OutputStream outputStream, Map<String, String> map);
List<Map<String, Object>> statisticsEmail(Date startTime, Date endTime, Map<String, String> map);
/**
* 统计
......
......@@ -7,9 +7,11 @@ import com.cmeeting.dto.PermissionCheckedDTO;
import com.cmeeting.dto.SysUserSyncDTO;
import com.cmeeting.pojo.SysUserSyncCategory;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.List;
import java.util.Map;
public interface SysUserSyncService extends IService<SysUserSync> {
......@@ -44,4 +46,8 @@ public interface SysUserSyncService extends IService<SysUserSync> {
Page<SysUserSyncDTO> selectPage(Integer current, Integer size, String categoryId, String search);
List<SysUserSync> listByUserIds(List<String> userIdList, String search);
List<SysUserSyncCategory> getTree();
void downloadTree(List<SysUserSyncCategory> list, HttpServletResponse response);
}
......@@ -614,7 +614,7 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
* 统计邮件推送情况
*/
@Override
public void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response) {
public void statisticsEmail(Integer type, Date startTime, Date endTime, HttpServletResponse response, Map<String, String> deptMap) {
DateTime now = DateUtil.date();
if (ObjectUtils.isEmpty(startTime) || ObjectUtils.isEmpty(endTime)) {
if (1== type) {
......@@ -733,21 +733,40 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
}
}
private static Map<String, String> DEPT_MAP = new HashMap<>(12);
static {
DEPT_MAP.put("10340", "集团总部");
DEPT_MAP.put("11683", "中集车辆(集团)股份有限公司");
DEPT_MAP.put("11080", "中集安瑞科投资控股(深圳)有限公司");
DEPT_MAP.put("635364", "中集管理培训(深圳)有限公司");
DEPT_MAP.put("612702", "中集世联达集装箱物流(深圳)有限公司");
DEPT_MAP.put("661082", "柏坚货柜机械维修(深圳)有限公司");
DEPT_MAP.put("745168", "中集世联达国际物流有限公司");
DEPT_MAP.put("766268", "中铁集物流装备有限公司");
DEPT_MAP.put("698027", "深圳中集同创供应链有限公司");
DEPT_MAP.put("674199", "中集模块化建筑投资有限公司");
DEPT_MAP.put("698022", "深圳中集共享后勤服务有限公司");
DEPT_MAP.put("707436", "深圳市集家美寓公寓管理有限公司");
DEPT_MAP.put("640075", "财务公司");
/**
* 统计邮件推送情况
*/
@Override
public boolean statisticsEmail(String title, Date startTime, Date endTime, OutputStream outputStream, Map<String, String> DEPT_MAP) {
List<Map<String, Object>> mapList = statisticsEmail(startTime, endTime, DEPT_MAP);
// 导出
ExcelWriter writer = ExcelUtil.getWriter(true);
try {
writer.addHeaderAlias("host", "部门");
writer.addHeaderAlias("totalNum", "总会议");
writer.addHeaderAlias("avaliableNum", "有效会议");
writer.addHeaderAlias("emptyNum", "没有转录文件");
writer.addHeaderAlias("emailPushAccessNum", "需生成纪要的会议总数");
writer.addHeaderAlias("newNum", "待处理");
writer.addHeaderAlias("generatErrorNum", "纪要生成失败");
writer.addHeaderAlias("noteGeneratedNum", "纪要生成成功");
writer.addHeaderAlias("pushSuccessNum", "纪要推送成功");
writer.addHeaderAlias("pushErrorNum", "纪要推送失败");
// 合并单元格后的标题行,使用默认标题样式
writer.merge(writer.getHeaderAlias().size() - 1, title);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(mapList, true);
writer.flush(outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
writer.close();
IoUtil.close(outputStream);
}
return true;
}
......@@ -755,13 +774,13 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
* 统计邮件推送情况
*/
@Override
public boolean statisticsEmail(String title, Date startTime, Date endTime, OutputStream outputStream) {
public List<Map<String, Object>> statisticsEmail(Date startTime, Date endTime, Map<String, String> DEPT_MAP) {
List<MeetingInfo> meetingInfoList = meetingInfoMapper.selectList(new LambdaQueryWrapper<MeetingInfo>()
.between(MeetingInfo::getStartTime, startTime, endTime));
log.info("会议总量: {}", meetingInfoList.size());
if (meetingInfoList.size() == 0) {
log.info("时间段内没有会议");
return false;
return new ArrayList<>();
}
// 查询工号以及部门
......@@ -812,7 +831,7 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
List<MeetingInfo> meetingList = entry.getValue();
Integer totalNum = meetingList.size();
// 没有转录文件会议,需要生成会议纪要的会议, 待处理, 处理中, 纪要生成成功, 推送成功, 推送失败
Integer emptyNum=0, emailPushAccessNum=0, newNum=0, generatErrorNum=0, noteGeneratedNum=0, pushSuccessNum=0, pushErrorNum=0;
Integer emptyNum = 0, emailPushAccessNum = 0, newNum = 0, generatErrorNum = 0, noteGeneratedNum = 0, pushSuccessNum = 0, pushErrorNum = 0;
for (MeetingInfo meetingInfo : meetingList) {
if (meetingInfo.getStatus() == MeetingState.GENERATE_ERROR.getCode()) {
......@@ -860,30 +879,7 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
}
mapList.add(totalMap);
// 导出
ExcelWriter writer = ExcelUtil.getWriter(true);
try {
writer.addHeaderAlias("host", "部门");
writer.addHeaderAlias("totalNum", "总会议");
writer.addHeaderAlias("avaliableNum", "有效会议");
writer.addHeaderAlias("emptyNum", "没有转录文件");
writer.addHeaderAlias("emailPushAccessNum", "需生成纪要的会议总数");
writer.addHeaderAlias("newNum", "待处理");
writer.addHeaderAlias("generatErrorNum", "纪要生成失败");
writer.addHeaderAlias("noteGeneratedNum", "纪要生成成功");
writer.addHeaderAlias("pushSuccessNum", "纪要推送成功");
writer.addHeaderAlias("pushErrorNum", "纪要推送失败");
// 合并单元格后的标题行,使用默认标题样式
writer.merge(writer.getHeaderAlias().size() - 1, title);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(mapList, true);
writer.flush(outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
writer.close();
IoUtil.close(outputStream);
}
return true;
return mapList;
}
}
......@@ -34,7 +34,7 @@ public class SysUserSyncCategoryServiceImpl extends ServiceImpl<SysUserSyncCateg
}
@Override
public List<Tree<String>> tree(String tenantId) {
public List<Tree<String>> tree() {
List<SysUserSyncCategory> sysUserSyncCategories = baseMapper.selectList(new LambdaQueryWrapper<>());
if(CollUtil.isNotEmpty(sysUserSyncCategories)){
Set<String> set = sysUserSyncCategories.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toSet());
......@@ -70,3 +70,4 @@ public class SysUserSyncCategoryServiceImpl extends ServiceImpl<SysUserSyncCateg
return getPathName(parentIdMap.get(deptId), parentIdMap, nameMap) + CategoryConstant.ROOT_PATH + nameMap.get(deptId);
}
}
package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -26,20 +31,16 @@ import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Slf4j
public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSyncMapper, SysUserSync> implements SysUserSyncService {
// @Value(value = "${permission.tenantId}")
// private String perTenantId;
@Resource
private ISysUserSyncCategoryService iSysUserSyncCategoryService;
@Resource
......@@ -48,6 +49,7 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSyncMapper, SysUs
private ModulePermissionService modulePermissionService;
private static Map<String, String> DEPT_MAP = new HashMap<>(12);
static {
DEPT_MAP.put("10340", "集团总部");
DEPT_MAP.put("11683", "中集车辆(集团)股份有限公司");
......@@ -264,4 +266,60 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSyncMapper, SysUs
return ids;
}
@Override
public List<SysUserSyncCategory> getTree() {
int companyIndex = 2;
List<Tree<String>> list = iSysUserSyncCategoryService.tree();
Tree<String> tree = list.get(0);
List<SysUserSyncCategory> categoryList = new ArrayList<>();
getList(companyIndex, categoryList, tree.getChildren(), "");
return categoryList;
}
@Override
public void downloadTree(List<SysUserSyncCategory> list, HttpServletResponse response) {
List<String> headList = CollUtil.newArrayList("/版块/一级/二级");
ServletOutputStream outputStream = null;
// 导出
ExcelWriter writer = ExcelUtil.getWriter(true);
try {
List<List<String>> rows = new ArrayList<>();
for (SysUserSyncCategory sysUserSyncCategory : list) {
rows.add(CollUtil.newArrayList(sysUserSyncCategory.getPath()));
}
writer.setColumnWidth(0, 100);
writer.writeHeadRow(headList);
writer.write(rows, true);
String fileName = String.format("分级导出%s.xlsx", DateUtil.today());
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf8"));
outputStream = response.getOutputStream();
writer.flush(outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
writer.close();
IoUtil.close(outputStream);
}
}
private void getList(int companyIndex, List<SysUserSyncCategory> list, List<Tree<String>> children, String pre) {
if (CollUtil.isNotEmpty(children)) {
for (Tree<String> child : children) {
if (companyIndex == 0) {
if (CollUtil.isNotEmpty(child.getChildren())) {
for (Tree<String> childChild : child.getChildren()) {
SysUserSyncCategory cate = SysUserSyncCategory.builder().deptId(childChild.getId()).name(childChild.getName().toString()).path(pre + "/" + child.getName().toString() + "/" + childChild.getName().toString()).build();
list.add(cate);
}
} else {
SysUserSyncCategory cate = SysUserSyncCategory.builder().deptId(child.getId()).name(child.getName().toString()).path(pre + "/" + child.getName().toString()).build();
list.add(cate);
}
}
getList(companyIndex - 1, list, child.getChildren(), pre + "/" + child.getName());
}
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论