Commit 601cb24a authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发间开优化结果统计功能,创建间开优化效果统计表,生成对应代码;
2.修改15天,10天,3天,1天间开优化功能,修改代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent e58e0ace
......@@ -6,32 +6,30 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import pps.cloud.system.service.SystemDictionaryService;
import pps.cloud.system.service.data.sys_dictionary.CreateSysDictionaryInput;
import pps.cloud.system.service.data.sys_dictionary.QuerySysDictionaryViewOutput;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.session.PpsUserSession;
import pps.core.system.config.LoginConfig;
import pps.core.system.entity.*;
import pps.core.system.mapper.*;
import pps.core.system.entity.SysRoleEnt;
import pps.core.system.entity.SysRoleView;
import pps.core.system.entity.SysUserRoleRelEnt;
import pps.core.system.mapper.SysRoleMapper;
import pps.core.system.mapper.SysRoleViewMapper;
import pps.core.system.mapper.SysUserRoleRelMapper;
import pps.core.system.service.data.sys_role.*;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.exception.XServiceException;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@XText("角色管理")
......@@ -41,135 +39,7 @@ public class SysRoleService {
@XText("查询角色列表")
@XApiPost
public XPageResult<QuerySysRoleViewOutput> selectSysRoleViewPage(XContext context, QuerySysRoleViewInput input) {
SysRoleViewMapper viewMapper = context.getBean(SysRoleViewMapper.class);
SystemDictionaryService dictService = context.getBean(SystemDictionaryService.class);
SysRoleView record = new SysRoleView();
XCopyUtils.copyObject(input, record);
List<String> mediaTypeList = new ArrayList<>();
PpsUserSession session = context.getSession(PpsUserSession.class);
//如果不是超级管理员只查询当前用户的组织机构下的角色以及上级可继承的角色
if (BusinessConstant.ZERO.equals(session.getIsSuperAdmin())) {
if (CharSequenceUtil.isBlank(input.getOuId())) {
record.setOuId(session.getOuId());
input.setOuId(session.getOuId());
}
if (CharSequenceUtil.isBlank(input.getMediaType())) {
mediaTypeList.add("ALL");
//普通角色只查询所属企业的介质类型
SysOrganizationPropertyViewMapper mapper = context.getBean(SysOrganizationPropertyViewMapper.class);
SysOrganizationPropertyView propertyView = new SysOrganizationPropertyView();
propertyView.setOuId(session.getOuId());
propertyView.setEndTime(new Date());
List<SysOrganizationPropertyView> propertyViews = mapper.selectList(propertyView);
if (CollUtil.isNotEmpty(propertyViews)) {
for (SysOrganizationPropertyView propertyEnt : propertyViews) {
mediaTypeList.add(propertyEnt.getPropertyValue());
}
record.setMediaTypes(mediaTypeList);
}
}
}
List<SysRoleView> list = viewMapper.selectSysRoleListByOuId(record);
long total;
//查询上级可继承的角色
if (CharSequenceUtil.isNotBlank(input.getOuId())) {
Date date = new Date();
SysOrganizationRelMapper organizationRelMapper = context.getBean(SysOrganizationRelMapper.class);
List<SysOrganizationRelEnt> ouRelEnts = organizationRelMapper.selectList(new QueryWrapper<SysOrganizationRelEnt>()
.lambda()
.eq(SysOrganizationRelEnt::getOuId, input.getOuId())
.le(SysOrganizationRelEnt::getEffectTime, date)
.ge(SysOrganizationRelEnt::getEndTime, date));
if (CollUtil.isNotEmpty(ouRelEnts)) {
SysOrganizationRelEnt relEnt = ouRelEnts.get(0);
String ouIdPath = relEnt.getOuIdPath();
if (CharSequenceUtil.isNotBlank(ouIdPath)) {
List<String> ouIds = CharSequenceUtil.split(ouIdPath, Pattern.quote("/")).stream()
.filter(id -> !CharSequenceUtil.equals(id, input.getOuId()))
.collect(Collectors.toList());
record.setOuIds(ouIds);
//下级单位是否可继承:0->否;1->是;
if (CollUtil.isNotEmpty(ouIds)) {
if (CharSequenceUtil.isNotBlank(input.getMediaType())) {
record.setMediaType(input.getMediaType());
} else {
if (BusinessConstant.ZERO.equals(session.getIsSuperAdmin())) {
if (CollUtil.isNotEmpty(mediaTypeList)) {
record.setMediaTypes(mediaTypeList);
}
}
}
record.setIsInheritable(1);
List<SysRoleView> sysRoleViews = viewMapper.selectExtendsSysRoleListByOuIds(record);
list.addAll(sysRoleViews);
}
}
}
}
List<String> ouIds = new ArrayList<>();
for (SysRoleView roleView : list) {
if (CharSequenceUtil.isNotBlank(roleView.getOuId())) {
ouIds.add(roleView.getOuId());
}
}
//介质类型
CreateSysDictionaryInput mediaTypesInput = new CreateSysDictionaryInput();
mediaTypesInput.setAlias("MEDIUM_TYPE");
XListResult<QuerySysDictionaryViewOutput> mediaTypes = dictService.querySysDictionarysByAlias(context, mediaTypesInput);
Date date = new Date();
List<SysOrganizationRelEnt> ouRelEnts = new ArrayList<>();
if (CollUtil.isNotEmpty(ouIds)) {
SysOrganizationRelMapper organizationRelMapper = context.getBean(SysOrganizationRelMapper.class);
ouRelEnts = organizationRelMapper.selectList(new QueryWrapper<SysOrganizationRelEnt>()
.lambda()
.in(SysOrganizationRelEnt::getOuId, ouIds)
.le(SysOrganizationRelEnt::getEffectTime, date)
.ge(SysOrganizationRelEnt::getEndTime, date));
}
total = list.size();
Integer page = input.getPage() - 1;
if (list.size() > input.getPage() * input.getLimit()) {
list = list.subList(page * input.getLimit(), input.getPage() * input.getLimit());
} else {
list = list.subList(page * input.getLimit(), list.size());
}
List<QuerySysRoleViewOutput> outputs = XCopyUtils.copyNewList(list, QuerySysRoleViewOutput.class);
for (QuerySysRoleViewOutput view : outputs) {
if (CollUtil.isNotEmpty(ouRelEnts)) {
for (SysOrganizationRelEnt ouRelEnt : ouRelEnts) {
if (CharSequenceUtil.equals(ouRelEnt.getOuId(), view.getOuId())) {
view.setParentOuId(ouRelEnt.getParentOuId());
}
}
}
//查询系统管理员角色,如果true的话不可以删除
String value = LoginConfig.adminRoles.findValue(context);
if (CharSequenceUtil.isNotBlank(value) && CharSequenceUtil.contains(value, view.getId())) {
view.setSysAdmin(true);
} else {
view.setSysAdmin(false);
}
//介质类型
if (CharSequenceUtil.isNotBlank(view.getMediaType())) {
if (CollUtil.isNotEmpty(mediaTypes.getResult())) {
StringBuilder buffer = new StringBuilder();
for (String mediaType : CharSequenceUtil.splitToArray(view.getMediaType(), ',')) {
for (QuerySysDictionaryViewOutput item : mediaTypes.getResult()) {
if (mediaType.equals(item.getDicKey())) {
buffer.append(",").append(item.getDicName());
}
}
}
if (buffer.length() > 0) {
view.setMediaTypeName(buffer.substring(1));
}
}
if (CharSequenceUtil.isBlank(view.getMediaTypeName())) {
view.setMediaTypeName(view.getMediaType());
}
}
}
return XPageResult.success(outputs, input, total);
return XPageResult.success(Collections.emptyList(), 1, 1, 0);
}
@XText("新增角色")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment