fix(标准化活动、资料中心): 79956

This commit is contained in:
yjz
2024-01-22 11:48:42 +08:00
parent f62bd3dcd0
commit b7ca65253d
5 changed files with 114 additions and 70 deletions
@@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* @author liJiaRao * @author liJiaRao
@@ -0,0 +1,48 @@
package com.jero.modules.laws.standardization.common;
/**
* @ClassName: LawsStandardizationCommon
* @Description:
* @Author: yjz
* @Date: 2024-01-22 09:36
* @Version: 1.0
**/
public class LawsStandardizationCommon {
private void LawsStandardization(){
}
/**
* 标准化活动节点类型 ROOT:总标委,WYH:委员会,FBW:委员会,GROUP:工作组
*/
public static final String ROOT = "ROOT";
/**
* 标准化活动节点类型 ROOT:总标委,WYH:委员会,FBW:委员会,GROUP:工作组
*/
public static final String WYH = "WYH";
/**
* 标准化活动节点类型 ROOT:总标委,WYH:委员会,FBW:委员会,GROUP:工作组
*/
public static final String FBW = "FBW";
/**
* 标准化活动节点类型 ROOT:总标委,WYH:委员会,FBW:委员会,GROUP:工作组
*/
public static final String GROUP = "GROUP";
/**
* 层级 0123
*/
public static final Long LEVEL_0 = 0L;
/**
* 层级 0123
*/
public static final Long LEVEL_1 = 1L;
/**
* 层级 0123
*/
public static final Long LEVEL_2 = 2L;
/**
* 层级 0123
*/
public static final Long LEVEL_3 = 3L;
}
@@ -50,6 +50,7 @@ public class LawsStandardizationController extends JeroController<LawsStandardiz
@ApiOperation(value="标准化活动-树结构查询", notes="标准化活动-树结构查询") @ApiOperation(value="标准化活动-树结构查询", notes="标准化活动-树结构查询")
@GetMapping(value = "/queryTreeList") @GetMapping(value = "/queryTreeList")
@RequiresPermissions("standardActivity:search") @RequiresPermissions("standardActivity:search")
@Translation
public Result<LawsStandardization> queryTreeList() { public Result<LawsStandardization> queryTreeList() {
return Result.OK(lawsStandardizationService.queryTreeList()); return Result.OK(lawsStandardizationService.queryTreeList());
} }
@@ -62,6 +63,7 @@ public class LawsStandardizationController extends JeroController<LawsStandardiz
@ApiOperation(value="标准化活动-统计列表", notes="标准化活动-统计列表") @ApiOperation(value="标准化活动-统计列表", notes="标准化活动-统计列表")
@GetMapping(value = "/queryStatistics") @GetMapping(value = "/queryStatistics")
@RequiresPermissions("standardActivity:statistical") @RequiresPermissions("standardActivity:statistical")
@Translation
public Result<List<LawsStandardization>> queryStatistics() { public Result<List<LawsStandardization>> queryStatistics() {
return Result.OK(lawsStandardizationService.queryStatistics()); return Result.OK(lawsStandardizationService.queryStatistics());
} }
@@ -2,6 +2,7 @@ package com.jero.modules.laws.standardization.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.documenttool.entity.BaseEntity; import com.jero.modules.laws.documenttool.entity.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@@ -36,9 +37,10 @@ public class LawsStandardization extends BaseEntity {
@ApiModelProperty(value = "上级节点名称") @ApiModelProperty(value = "上级节点名称")
@TableField(exist = false) @TableField(exist = false)
private java.lang.String supperName; private java.lang.String supperName;
/**节点类型(固定:分标委)*/ /**节点类型*/
@Excel(name = "节点类型", width = 15) @Excel(name = "节点类型", width = 15)
@ApiModelProperty(value = "节点类型(固定:分标委)") @ApiModelProperty(value = "节点类型")
@Dict(dicCode = "standardization_type")
private java.lang.String standardizationType; private java.lang.String standardizationType;
/**编号*/ /**编号*/
@Excel(name = "编号", width = 15) @Excel(name = "编号", width = 15)
@@ -60,10 +62,11 @@ public class LawsStandardization extends BaseEntity {
@Excel(name = "部门code", width = 15) @Excel(name = "部门code", width = 15)
@ApiModelProperty(value = "部门code") @ApiModelProperty(value = "部门code")
private java.lang.String orgCode; private java.lang.String orgCode;
/**层级*/ /**层级*/
@TableField(exist = false) @Excel(name = "层级", width = 15)
@ApiModelProperty(value = "层级")
private Long level; private Long level;
/**子节点*/ /**子节点*/
@TableField(exist = false) @TableField(exist = false)
private List<LawsStandardization> children; private List<LawsStandardization> children;
@@ -10,7 +10,10 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.SnowflakeUtils; import com.jero.common.util.SnowflakeUtils;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile; import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFolder;
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFileService; import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFileService;
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFolderService;
import com.jero.modules.laws.standardization.common.LawsStandardizationCommon;
import com.jero.modules.laws.standardization.entity.*; import com.jero.modules.laws.standardization.entity.*;
import com.jero.modules.laws.standardization.mapper.LawsStandardizationMapper; import com.jero.modules.laws.standardization.mapper.LawsStandardizationMapper;
import com.jero.modules.laws.standardization.service.*; import com.jero.modules.laws.standardization.service.*;
@@ -50,6 +53,7 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
private final ILawsStandardizationMeetingService lawsStandardizationMeetingService; private final ILawsStandardizationMeetingService lawsStandardizationMeetingService;
private final IOSSFileService ossFileService; private final IOSSFileService ossFileService;
private final ILawsDataCenterFileService lawsDataCenterFileService; private final ILawsDataCenterFileService lawsDataCenterFileService;
private final ILawsDataCenterFolderService lawsDataCenterFolderService;
private final ISysUserService sysUserService; private final ISysUserService sysUserService;
private final ISysDepartService sysDepartService; private final ISysDepartService sysDepartService;
@@ -60,6 +64,7 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
ILawsStandardizationMeetingService lawsStandardizationMeetingService, ILawsStandardizationMeetingService lawsStandardizationMeetingService,
IOSSFileService ossFileService, IOSSFileService ossFileService,
ILawsDataCenterFileService lawsDataCenterFileService, ILawsDataCenterFileService lawsDataCenterFileService,
ILawsDataCenterFolderService lawsDataCenterFolderService,
ISysUserService sysUserService, ISysUserService sysUserService,
ISysDepartService sysDepartService) { ISysDepartService sysDepartService) {
this.lawsStandardizationService = lawsStandardizationService; this.lawsStandardizationService = lawsStandardizationService;
@@ -69,6 +74,7 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
this.lawsStandardizationMeetingService = lawsStandardizationMeetingService; this.lawsStandardizationMeetingService = lawsStandardizationMeetingService;
this.ossFileService = ossFileService; this.ossFileService = ossFileService;
this.lawsDataCenterFileService = lawsDataCenterFileService; this.lawsDataCenterFileService = lawsDataCenterFileService;
this.lawsDataCenterFolderService = lawsDataCenterFolderService;
this.sysUserService = sysUserService; this.sysUserService = sysUserService;
this.sysDepartService = sysDepartService; this.sysDepartService = sysDepartService;
} }
@@ -194,8 +200,9 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
for (String meetingData : meetingDataList) { for (String meetingData : meetingDataList) {
LawsDataCenterFile lawsDataCenterFile = new LawsDataCenterFile(); LawsDataCenterFile lawsDataCenterFile = new LawsDataCenterFile();
lawsDataCenterFile.setFileId(meetingData); lawsDataCenterFile.setFileId(meetingData);
// XXX(分标委名称)- XXXX(工作组名称)-会议名称 // XXX(分标委名称)- XXX(工作组名称)-会议名称
lawsDataCenterFile.setFileDescription(getFileDescription(lawsStandardization, standardizationMeeting.getName())); String fileDescription = getAndSetFileDescription(lawsStandardization, standardizationMeeting.getName(), lawsDataCenterFile);
lawsDataCenterFile.setFileDescription(fileDescription);
lawsDataCenterFile.setCreateBy(standardizationMeeting.getCreateBy()); lawsDataCenterFile.setCreateBy(standardizationMeeting.getCreateBy());
List<SysDepart> sysDeparts = sysDepartService.queryDepartsByUsername(standardizationMeeting.getCreateBy()); List<SysDepart> sysDeparts = sysDepartService.queryDepartsByUsername(standardizationMeeting.getCreateBy());
SysUser sysUser = sysUserService.getUserByName(standardizationMeeting.getCreateBy()); SysUser sysUser = sysUserService.getUserByName(standardizationMeeting.getCreateBy());
@@ -204,63 +211,58 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
lawsDataCenterFile.setOwnerId(Objects.isNull(sysUser) ? loginUser.getId() : sysUser.getId()); lawsDataCenterFile.setOwnerId(Objects.isNull(sysUser) ? loginUser.getId() : sysUser.getId());
lawsDataCenterFile.setUploader(Objects.isNull(sysUser) ? loginUser.calcNameWorkNo() : sysUser.calcNameWorkNo()); lawsDataCenterFile.setUploader(Objects.isNull(sysUser) ? loginUser.calcNameWorkNo() : sysUser.calcNameWorkNo());
lawsDataCenterFile.setOrgCode(String.join(",", orgCodeList)); lawsDataCenterFile.setOrgCode(String.join(",", orgCodeList));
lawsDataCenterFileService.add(lawsDataCenterFile); String folderId = lawsDataCenterFile.getFolderId();
if (StringUtils.isNotBlank(folderId)){
for (String fId : folderId.split(",")) {
lawsDataCenterFile.setFolderId(fId);
lawsDataCenterFileService.add(lawsDataCenterFile);
}
}else {
lawsDataCenterFileService.add(lawsDataCenterFile);
}
} }
} }
private String getFileDescription(LawsStandardization lawsStandardization, String name) { private String getAndSetFileDescription(LawsStandardization lawsStandardization, String name, LawsDataCenterFile lawsDataCenterFile) {
// 树形结构
LawsStandardization treeList = queryTreeList();
// 拆开为list结构
List<LawsStandardization> list = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
treeToList(treeList, list); if (LawsStandardizationCommon.GROUP.equals(lawsStandardization.getStandardizationType())){
// 工作组层级:XXX(分标委名称)- XXX(工作组名称)-会议名称
LawsStandardization fatherNode = getOne(new LambdaQueryWrapper<LawsStandardization>()
.eq(LawsStandardization::getId, lawsStandardization.getPid()));
stringBuilder.append(fatherNode.getName()).append("-").append(lawsStandardization.getName());
// 绑定目录
// 获取一二级节点名称 // 先匹配分标委名称
Optional<LawsStandardization> optional = list.stream().filter(v -> v.getId().equals(lawsStandardization.getId())).findFirst(); List<LawsDataCenterFolder> fatherFolder = lawsDataCenterFolderService.list(
optional.ifPresent(v -> { new LambdaQueryWrapper<LawsDataCenterFolder>()
if (optional.get().getLevel().equals(2L)){ .eq(LawsDataCenterFolder::getFolderName, fatherNode.getName()));
Optional<LawsStandardization> optionalOne = list.stream().filter(o -> o.getId().equals(lawsStandardization.getPid())).findFirst(); if (!fatherFolder.isEmpty()){
optionalOne.ifPresent(l -> stringBuilder.append(l.getName()).append("-").append(v.getName())); List<String> idList = fatherFolder.stream().map(LawsDataCenterFolder::getId).collect(Collectors.toList());
}else if (optional.get().getLevel().equals(1L)){ // 查询子集, 再匹配工作组名称
stringBuilder.append(v.getName()); List<LawsDataCenterFolder> lawsDataCenterFolderList = lawsDataCenterFolderService.list(
} new LambdaQueryWrapper<LawsDataCenterFolder>()
}); .in(LawsDataCenterFolder::getParentId, idList)
if (stringBuilder.length() < 0){ .eq(LawsDataCenterFolder::getFolderName, lawsStandardization.getName()));
getNodeName(lawsStandardization, list, stringBuilder); if (!lawsDataCenterFolderList.isEmpty()){
} lawsDataCenterFile.setFolderId(lawsDataCenterFolderList.stream().map(LawsDataCenterFolder::getId).collect(Collectors.joining(",")));
}else {
if (stringBuilder.length() > 0){ // 工作组不存在则绑定到分标委目录
stringBuilder.append("-"); lawsDataCenterFile.setFolderId(String.join(",", idList));
}
return stringBuilder.append(name).toString();
}
private void getNodeName(LawsStandardization lawsStandardization, List<LawsStandardization> list, StringBuilder stringBuilder) {
Optional<LawsStandardization> first = list.stream().filter(v -> v.getId().equals(lawsStandardization.getPid())).findFirst();
first.ifPresent(v -> {
// 工作组
if (first.get().getLevel().equals(2L)){
stringBuilder.append(v.getName());
}
// 委员会
if (first.get().getLevel().equals(1L)){
stringBuilder.insert(0, v.getName() + "-");
}
getNodeName(v, list, stringBuilder);
});
}
private void treeToList(LawsStandardization treeList, List<LawsStandardization> list) {
if (!Objects.isNull(treeList)){
list.add(treeList);
if (!Objects.isNull(treeList.getChildren()) && !treeList.getChildren().isEmpty()) {
for (LawsStandardization tree : treeList.getChildren()) {
treeToList(tree, list);
} }
} }
}else {
// (分标委/委员会/总标委名称)-会议名称
stringBuilder.append(lawsStandardization.getName());
// 绑定目录
List<LawsDataCenterFolder> lawsDataCenterFolderList = lawsDataCenterFolderService.list(
new LambdaQueryWrapper<LawsDataCenterFolder>()
.eq(LawsDataCenterFolder::getFolderName, lawsStandardization.getName()));
if (!lawsDataCenterFolderList.isEmpty()){
lawsDataCenterFile.setFolderId(lawsDataCenterFolderList.stream().map(LawsDataCenterFolder::getId).collect(Collectors.joining(",")));
}
} }
return stringBuilder.append("-").append(name).toString();
} }
/** /**
@@ -326,7 +328,7 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
if (standardizationGroupList.isEmpty()){ if (standardizationGroupList.isEmpty()){
// 删除全部数据 // 删除全部数据
lawsStandardizationGroupService.remove(new LambdaQueryWrapper<LawsStandardizationGroup>() lawsStandardizationGroupService.remove(new LambdaQueryWrapper<LawsStandardizationGroup>()
.eq(LawsStandardizationGroup::getStandardizationId, lawsStandardization.getId())); .eq(LawsStandardizationGroup::getStandardizationId, lawsStandardization.getId()));
return; return;
} }
@@ -414,12 +416,10 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
public LawsStandardization queryTreeList() { public LawsStandardization queryTreeList() {
// 查询所有数据 // 查询所有数据
List<LawsStandardization> list = list(new LambdaQueryWrapper<LawsStandardization>().orderByAsc(LawsStandardization::getCreateTime)); List<LawsStandardization> list = list(new LambdaQueryWrapper<LawsStandardization>().orderByAsc(LawsStandardization::getCreateTime));
Long level = 0L;
return list.stream() return list.stream()
.filter(v -> "0".equals(v.getPid())) .filter(v -> "0".equals(v.getPid()))
.map(v ->{ .map(v ->{
v.setLevel(level); v.setChildren(createChildren(v, list));
v.setChildren(createChildren(v, list, level));
return v; return v;
}).collect(Collectors.toList()).get(0); }).collect(Collectors.toList()).get(0);
} }
@@ -590,21 +590,13 @@ public class LawsStandardizationServiceImpl extends ServiceImpl<LawsStandardizat
* *
* @param tree 当前树节点 * @param tree 当前树节点
* @param treeList 树节点列表 * @param treeList 树节点列表
* @param level 层级
* @return 子节点列表 * @return 子节点列表
*/ */
private List<LawsStandardization> createChildren(LawsStandardization tree, List<LawsStandardization> treeList, Long level){ private List<LawsStandardization> createChildren(LawsStandardization tree, List<LawsStandardization> treeList){
List<LawsStandardization> collect = treeList.stream().filter(v -> tree.getId().equals(v.getPid())).collect(Collectors.toList()); List<LawsStandardization> collect = treeList.stream().filter(v -> tree.getId().equals(v.getPid())).collect(Collectors.toList());
if (collect.isEmpty()){
level -= 1L;
}else {
level += 1L;
}
Long finalLevel = level;
return collect.stream() return collect.stream()
.map(v -> { .map(v -> {
v.setLevel(finalLevel); v.setChildren(createChildren(v, treeList));
v.setChildren(createChildren(v, treeList, finalLevel));
return v; return v;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());