上线版本-3.12
This commit is contained in:
parent
291c7abda2
commit
ffb85b85d6
@ -128,9 +128,11 @@ public class DataEntryEngineModelController {
|
|||||||
* @return 分页查询结果
|
* @return 分页查询结果
|
||||||
*/
|
*/
|
||||||
@GetMapping("/selectVersionByPage")
|
@GetMapping("/selectVersionByPage")
|
||||||
public Response selectVersionByConditionPage() {
|
public Response selectVersionByConditionPage(
|
||||||
|
@NotBlank(message = "用户不能为空") @RequestParam String userId
|
||||||
|
) {
|
||||||
PageResultDTO<DataEntryEngineModelDto> tPageResultDTO =
|
PageResultDTO<DataEntryEngineModelDto> tPageResultDTO =
|
||||||
entryEngineModelService.selectVersionByConditionPage();
|
entryEngineModelService.selectVersionByConditionPage(userId);
|
||||||
return Response.ok().data(tPageResultDTO);
|
return Response.ok().data(tPageResultDTO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,11 +3,14 @@ package com.xdap.self_development.controller;
|
|||||||
|
|
||||||
import com.definesys.mpaas.common.http.Response;
|
import com.definesys.mpaas.common.http.Response;
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
|
import com.xdap.self_development.controller.request.PreAndRolePageRequest;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
||||||
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
||||||
|
import com.xdap.self_development.domain.dto.PageResultDTO;
|
||||||
import com.xdap.self_development.domain.pojo.ModelRolesPojo;
|
import com.xdap.self_development.domain.pojo.ModelRolesPojo;
|
||||||
import com.xdap.self_development.domain.view.MenuListView;
|
import com.xdap.self_development.domain.view.MenuListView;
|
||||||
import com.xdap.self_development.domain.view.MenuParamView;
|
import com.xdap.self_development.domain.view.MenuParamView;
|
||||||
|
import com.xdap.self_development.domain.view.RoleInfoView;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
import com.xdap.self_development.service.ModelMenuPermissionService;
|
import com.xdap.self_development.service.ModelMenuPermissionService;
|
||||||
import com.xdap.self_development.service.ModelRoleService;
|
import com.xdap.self_development.service.ModelRoleService;
|
||||||
@ -15,6 +18,7 @@ import org.apache.commons.lang3.ObjectUtils;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -191,4 +195,24 @@ public class PermissionController {
|
|||||||
return Response.ok().data(map);
|
return Response.ok().data(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据条件获取权限和角色
|
||||||
|
*
|
||||||
|
* @param request 条件
|
||||||
|
* @return 前置角色和当前角色映射
|
||||||
|
*/
|
||||||
|
@PostMapping("/getPreAndRoleByCondition")
|
||||||
|
public Response getPreAndRoleByCondition(
|
||||||
|
@RequestBody PreAndRolePageRequest request
|
||||||
|
) {
|
||||||
|
PageResultDTO<RoleInfoView> result = modelRoleService.getPreAndRoleByCondition(request);
|
||||||
|
return Response.ok().data(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/exportPreAndRole")
|
||||||
|
public void exportPreAndRole(
|
||||||
|
HttpServletResponse response
|
||||||
|
) {
|
||||||
|
modelRoleService.writePreAndRole(response);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,7 +66,6 @@ public class ParameterForm {
|
|||||||
/**
|
/**
|
||||||
* 部门
|
* 部门
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "部门不能为空")
|
|
||||||
private String department;
|
private String department;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.xdap.self_development.controller.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PreAndRolePageRequest {
|
||||||
|
@Min(message = "页码最小为1", value = 1)
|
||||||
|
private Integer pageNum;
|
||||||
|
@Min(message = "页大小最小为1", value = 1)
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
|
private String username = "";
|
||||||
|
private String department = "";
|
||||||
|
private String roleName = "";
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.xdap.self_development.controller.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserRoleBindingItem {
|
||||||
|
// 用户或部门id
|
||||||
|
private String userOrDeptId;
|
||||||
|
// 是否为部门id
|
||||||
|
private Integer isDept;
|
||||||
|
}
|
||||||
@ -8,6 +8,5 @@ import java.util.List;
|
|||||||
public class UserRoleBindingRequest {
|
public class UserRoleBindingRequest {
|
||||||
//角色ID 用户ID 用户是否是部门0:用户 1部门
|
//角色ID 用户ID 用户是否是部门0:用户 1部门
|
||||||
private String roleId;
|
private String roleId;
|
||||||
private List<String> userOrDeptIds;
|
private List<UserRoleBindingItem> userOrDept;
|
||||||
private Integer isDept;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.xdap.self_development.domain.view;
|
||||||
|
|
||||||
|
import com.definesys.mpaas.query.annotation.SQL;
|
||||||
|
import com.definesys.mpaas.query.annotation.SQLQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@SQLQuery(value = {
|
||||||
|
@SQL(view = "selectRoleAndPerInfo",
|
||||||
|
sql = "SELECT r.id AS roleId, r.role_name AS roleName, r.role_name AS role_Name, r.role_code AS roleCode, r.role_description AS roleDescription, dur.user_or_dep AS userOrDep, dur.user_or_dep AS user_Or_Dep , dur.is_dep AS isDep, mp.permission_path AS permissionPath, mp.parameter_per as parameterPer FROM yfsjglpt_model_roles r LEFT JOIN yfsjglpt_model_dep_user_role dur ON r.id = dur.role_id LEFT JOIN yfsjglpt_model_role_permission rp ON dur.role_id = rp.role_id LEFT JOIN yfsjglpt_model_menu_parameter mp ON mp.id = rp.per_id WHERE r.is_enabled = 1 and dur.is_enable = 1 and (rp.is_enable is null or rp.is_enable = 1)")
|
||||||
|
})
|
||||||
|
@Data
|
||||||
|
public class RoleAndPreView {
|
||||||
|
// 角色相关
|
||||||
|
// 角色Id
|
||||||
|
private String roleId;
|
||||||
|
// 角色名称
|
||||||
|
private String roleName;
|
||||||
|
// 角色描述
|
||||||
|
private String roleDescription;
|
||||||
|
|
||||||
|
// 关联相关
|
||||||
|
// 用户或部门ID
|
||||||
|
private String userOrDep;
|
||||||
|
// 是否是部门,0:个人;1:部门
|
||||||
|
private Integer isDep;
|
||||||
|
|
||||||
|
// 权限相关
|
||||||
|
// 参数权限
|
||||||
|
private Integer parameterPer;
|
||||||
|
// 权限路径
|
||||||
|
private String permissionPath;
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package com.xdap.self_development.domain.view;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RoleInfoView {
|
||||||
|
// 角色Id
|
||||||
|
@ExcelIgnore
|
||||||
|
private String roleId;
|
||||||
|
// 角色名称
|
||||||
|
@ExcelProperty("角色名称")
|
||||||
|
private String roleName;
|
||||||
|
// 成员姓名
|
||||||
|
@ExcelProperty("成员姓名")
|
||||||
|
private String username;
|
||||||
|
// 成员工号
|
||||||
|
@ExcelProperty("成员工号")
|
||||||
|
private String userNumber;
|
||||||
|
// 成员部门
|
||||||
|
@ExcelProperty("成员部门")
|
||||||
|
private String department;
|
||||||
|
// 角色描述
|
||||||
|
@ExcelProperty("角色描述")
|
||||||
|
private String roleDescription;
|
||||||
|
|
||||||
|
// 成员Id
|
||||||
|
@ExcelIgnore
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
// 成员部门Id
|
||||||
|
@ExcelIgnore
|
||||||
|
private String departmentId;
|
||||||
|
|
||||||
|
// 查询权限
|
||||||
|
@ExcelProperty("查询权限")
|
||||||
|
private String queryPerms;
|
||||||
|
// 编辑权限
|
||||||
|
@ExcelProperty("编辑权限")
|
||||||
|
private String editPerms;
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.xdap.self_development.domain.view;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserDeptItem {
|
||||||
|
private String username;
|
||||||
|
private List<String> departmentIds;
|
||||||
|
}
|
||||||
@ -40,7 +40,7 @@ public interface DataEntryEngineModelService {
|
|||||||
|
|
||||||
DataEntryEngineModelPojo selectBymodelId(String modelID);
|
DataEntryEngineModelPojo selectBymodelId(String modelID);
|
||||||
|
|
||||||
PageResultDTO<DataEntryEngineModelDto> selectVersionByConditionPage();
|
PageResultDTO<DataEntryEngineModelDto> selectVersionByConditionPage(String userId);
|
||||||
|
|
||||||
void delete(String modelId);
|
void delete(String modelId);
|
||||||
|
|
||||||
|
|||||||
@ -2,13 +2,17 @@ package com.xdap.self_development.service;
|
|||||||
|
|
||||||
|
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
|
import com.xdap.self_development.controller.request.PreAndRolePageRequest;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
||||||
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
||||||
|
import com.xdap.self_development.domain.dto.PageResultDTO;
|
||||||
import com.xdap.self_development.domain.pojo.EngineParamDetailPojo;
|
import com.xdap.self_development.domain.pojo.EngineParamDetailPojo;
|
||||||
import com.xdap.self_development.domain.pojo.ModelRolesPojo;
|
import com.xdap.self_development.domain.pojo.ModelRolesPojo;
|
||||||
import com.xdap.self_development.domain.pojo.ParameterPojo;
|
import com.xdap.self_development.domain.pojo.ParameterPojo;
|
||||||
import com.xdap.self_development.domain.view.MenuParamView;
|
import com.xdap.self_development.domain.view.MenuParamView;
|
||||||
|
import com.xdap.self_development.domain.view.RoleInfoView;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -56,4 +60,12 @@ public interface ModelRoleService {
|
|||||||
Map<String, Map<String, Set<String>>> buildPermissionIndex(
|
Map<String, Map<String, Set<String>>> buildPermissionIndex(
|
||||||
Set<String> permissions
|
Set<String> permissions
|
||||||
);
|
);
|
||||||
|
|
||||||
|
PageResultDTO<RoleInfoView> getPreAndRoleByCondition(PreAndRolePageRequest request);
|
||||||
|
|
||||||
|
void updateUserRole(UserRoleBindingRequest request, int isDept);
|
||||||
|
|
||||||
|
void writePreAndRole(HttpServletResponse response);
|
||||||
|
|
||||||
|
List<RoleInfoView> getPerAndRole(PreAndRolePageRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,13 +19,11 @@ import com.xdap.self_development.domain.dto.PageResultDTO;
|
|||||||
import com.xdap.self_development.domain.enums.DistributeStatusEnum;
|
import com.xdap.self_development.domain.enums.DistributeStatusEnum;
|
||||||
import com.xdap.self_development.domain.enums.ParamValueVersionEnum;
|
import com.xdap.self_development.domain.enums.ParamValueVersionEnum;
|
||||||
import com.xdap.self_development.domain.pojo.*;
|
import com.xdap.self_development.domain.pojo.*;
|
||||||
|
import com.xdap.self_development.domain.view.MenuParamView;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
import com.xdap.self_development.exception.ExcelImportException;
|
import com.xdap.self_development.exception.ExcelImportException;
|
||||||
import com.xdap.self_development.listener.EngineModelListener;
|
import com.xdap.self_development.listener.EngineModelListener;
|
||||||
import com.xdap.self_development.service.DataEntryEngineModelService;
|
import com.xdap.self_development.service.*;
|
||||||
import com.xdap.self_development.service.EngineParamDetailService;
|
|
||||||
import com.xdap.self_development.service.ResponsiblePerService;
|
|
||||||
import com.xdap.self_development.service.XdapDeptUsersService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
@ -65,6 +63,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
|
|||||||
private EngineParamDetailService engineParamDetailService;
|
private EngineParamDetailService engineParamDetailService;
|
||||||
@Resource
|
@Resource
|
||||||
private MpaasQueryFactory sw;
|
private MpaasQueryFactory sw;
|
||||||
|
@Resource
|
||||||
|
private ModelRoleService modelRoleService;
|
||||||
|
|
||||||
private int page = 1;
|
private int page = 1;
|
||||||
private int size = 10;
|
private int size = 10;
|
||||||
@ -303,10 +303,6 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
|
|||||||
engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2);
|
engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2);
|
||||||
engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2);
|
engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2);
|
||||||
//为每个参数生成默认责任人
|
|
||||||
List<ResponsiblePersonPojo> personPojos = responsiblePerService.selectByDepName(parameter.getDepartment());
|
|
||||||
if (ObjectUtils.isNotEmpty(personPojos)) {
|
|
||||||
}
|
|
||||||
engineParamDetailPojos.add(engineParamDetailPojo);
|
engineParamDetailPojos.add(engineParamDetailPojo);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -377,14 +373,45 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
|
|||||||
* @return 分页结果DTO
|
* @return 分页结果DTO
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PageResultDTO<DataEntryEngineModelDto> selectVersionByConditionPage() {
|
public PageResultDTO<DataEntryEngineModelDto> selectVersionByConditionPage(String userId) {
|
||||||
|
//todo
|
||||||
|
List<MenuParamView> menuParamViews = modelRoleService.selectPersByUser(userId);
|
||||||
|
boolean ycFlag = false;
|
||||||
|
boolean othFlag = false;
|
||||||
|
|
||||||
|
for (MenuParamView item : menuParamViews) {
|
||||||
|
if (item.getPermissionPath().startsWith("竞品发动机数据") && !item.getPermissionPath().equals("竞品发动机数据审批流程")) {
|
||||||
|
othFlag = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (item.getPermissionPath().startsWith("玉柴发动机数据") && !item.getPermissionPath().equals("玉柴发动机数据审批流程")) {
|
||||||
|
ycFlag = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (ycFlag && othFlag) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<DataEntryEngineModelDto> list = bd.getBusinessDatabase()
|
List<DataEntryEngineModelDto> list = bd.getBusinessDatabase()
|
||||||
.viewQueryMode(true)
|
.viewQueryMode(true)
|
||||||
.view("selectVersionByConditionPage")
|
.view("selectVersionByConditionPage")
|
||||||
.doQuery(DataEntryEngineModelDto.class);
|
.doQuery(DataEntryEngineModelDto.class);
|
||||||
PageResultDTO<DataEntryEngineModelDto> pageResultDTO = new PageResultDTO<>();
|
PageResultDTO<DataEntryEngineModelDto> pageResultDTO = new PageResultDTO<>();
|
||||||
pageResultDTO.setList(list);
|
|
||||||
pageResultDTO.setTotalCount(list.size());
|
boolean finalYcFlag = ycFlag;
|
||||||
|
boolean finalOthFlag = othFlag;
|
||||||
|
List<DataEntryEngineModelDto> collect = list.stream().filter(x -> {
|
||||||
|
if (finalYcFlag && Objects.equals(x.getYcOrOth(), "玉柴")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return finalOthFlag && Objects.equals(x.getYcOrOth(), "竞品");
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
pageResultDTO.setList(collect);
|
||||||
|
pageResultDTO.setTotalCount(collect.size());
|
||||||
return pageResultDTO;
|
return pageResultDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -189,6 +189,10 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String nvl(Object obj) {
|
||||||
|
return obj == null ? "" : obj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, Set<String>> selectParamListByDetails(String modelID, Integer parameterVersion, String userId) {
|
public Map<String, Set<String>> selectParamListByDetails(String modelID, Integer parameterVersion, String userId) {
|
||||||
if (parameterVersion == null) {
|
if (parameterVersion == null) {
|
||||||
DataEntryEngineModelPojo engineModel = bd.getBusinessDatabase()
|
DataEntryEngineModelPojo engineModel = bd.getBusinessDatabase()
|
||||||
@ -199,6 +203,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
|||||||
}
|
}
|
||||||
parameterVersion = engineModel.getVersionNumber();
|
parameterVersion = engineModel.getVersionNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<EngineParamDetailPojo> pojoList = selectByIsUserId(modelID, parameterVersion, userId);
|
List<EngineParamDetailPojo> pojoList = selectByIsUserId(modelID, parameterVersion, userId);
|
||||||
|
|
||||||
AtomicInteger seq = new AtomicInteger(1);
|
AtomicInteger seq = new AtomicInteger(1);
|
||||||
@ -229,29 +234,37 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
|||||||
DataEntryEngineModelPojo dataEntryEngineModelPojo = bd.getBusinessDatabase()
|
DataEntryEngineModelPojo dataEntryEngineModelPojo = bd.getBusinessDatabase()
|
||||||
.eq("id", modelID)
|
.eq("id", modelID)
|
||||||
.doQueryFirst(DataEntryEngineModelPojo.class);
|
.doQueryFirst(DataEntryEngineModelPojo.class);
|
||||||
|
if (dataEntryEngineModelPojo == null) {
|
||||||
|
throw new CommonException("未找到机型的数据");
|
||||||
|
}
|
||||||
//状态代号
|
//状态代号
|
||||||
String productNumber = dataEntryEngineModelPojo.getProductNumber();
|
String productNumber = nvl(dataEntryEngineModelPojo.getProductNumber());
|
||||||
//板块
|
//板块
|
||||||
String plate = dataEntryEngineModelPojo.getPlate();
|
String plate = nvl(dataEntryEngineModelPojo.getPlate());
|
||||||
//平台
|
//平台
|
||||||
String platform = dataEntryEngineModelPojo.getPlatform();
|
String platform = nvl(dataEntryEngineModelPojo.getPlatform());
|
||||||
//系列
|
//系列
|
||||||
String series = dataEntryEngineModelPojo.getSeries();
|
String series = nvl(dataEntryEngineModelPojo.getSeries());
|
||||||
//细分市场
|
//细分市场
|
||||||
String marketSegment = dataEntryEngineModelPojo.getMarketSegment();
|
String marketSegment = nvl(dataEntryEngineModelPojo.getMarketSegment());
|
||||||
//项目名称
|
//项目名称
|
||||||
String projectName = dataEntryEngineModelPojo.getProjectName();
|
String projectName = nvl(dataEntryEngineModelPojo.getProjectName());
|
||||||
//项目编号
|
//项目编号
|
||||||
String projectNumber = dataEntryEngineModelPojo.getProjectNumber();
|
String projectNumber = nvl(dataEntryEngineModelPojo.getProjectNumber());
|
||||||
//品牌
|
//品牌
|
||||||
String brand = dataEntryEngineModelPojo.getBrand();
|
String brand = nvl(dataEntryEngineModelPojo.getBrand());
|
||||||
//排放
|
//排放
|
||||||
String emission = dataEntryEngineModelPojo.getEmission();
|
String emission = nvl(dataEntryEngineModelPojo.getEmission());
|
||||||
String burnType = dataEntryEngineModelPojo.getBurnType();
|
String burnType = nvl(dataEntryEngineModelPojo.getBurnType());
|
||||||
String engineCapacity = dataEntryEngineModelPojo.getEngineCapacity();
|
String engineCapacity = nvl(dataEntryEngineModelPojo.getEngineCapacity());
|
||||||
Date productionDate = dataEntryEngineModelPojo.getProductionDate();
|
String productionDateStr;
|
||||||
String manufacturerName = dataEntryEngineModelPojo.getManufacturerName();
|
if (dataEntryEngineModelPojo.getProductionDate() != null) {
|
||||||
String manufacturerAbbreviation = dataEntryEngineModelPojo.getManufacturerAbbreviation();
|
productionDateStr = new SimpleDateFormat("yyyy-MM-dd").format(dataEntryEngineModelPojo.getProductionDate());
|
||||||
|
} else {
|
||||||
|
productionDateStr = ""; // 或者设置一个默认值
|
||||||
|
}
|
||||||
|
String manufacturerName = nvl(dataEntryEngineModelPojo.getManufacturerName());
|
||||||
|
String manufacturerAbbreviation = nvl(dataEntryEngineModelPojo.getManufacturerAbbreviation());
|
||||||
Set<String> strings = new HashSet<>();
|
Set<String> strings = new HashSet<>();
|
||||||
if ("玉柴".equals(dataEntryEngineModelPojo.getYcOrOth())) {
|
if ("玉柴".equals(dataEntryEngineModelPojo.getYcOrOth())) {
|
||||||
strings.add("状态代号:" + productNumber);
|
strings.add("状态代号:" + productNumber);
|
||||||
@ -260,7 +273,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
|
|||||||
strings.add("品牌:" + brand);
|
strings.add("品牌:" + brand);
|
||||||
strings.add("厂家全称:" + manufacturerName);
|
strings.add("厂家全称:" + manufacturerName);
|
||||||
strings.add("厂家简称:" + manufacturerAbbreviation);
|
strings.add("厂家简称:" + manufacturerAbbreviation);
|
||||||
strings.add("生产日期:" + new SimpleDateFormat("yyyy-MM-dd").format(productionDate));
|
strings.add("生产日期:" + productionDateStr);
|
||||||
}
|
}
|
||||||
strings.add("产品型号:" + dataEntryEngineModelPojo.getModelName());
|
strings.add("产品型号:" + dataEntryEngineModelPojo.getModelName());
|
||||||
strings.add("板块:" + plate);
|
strings.add("板块:" + plate);
|
||||||
|
|||||||
@ -1,15 +1,21 @@
|
|||||||
package com.xdap.self_development.service.impl;
|
package com.xdap.self_development.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||||
|
import com.definesys.mpaas.query.MpaasQuery;
|
||||||
import com.xdap.api.moudle.department.pojo.entity.XdapDepartments;
|
import com.xdap.api.moudle.department.pojo.entity.XdapDepartments;
|
||||||
|
import com.xdap.api.moudle.department.pojo.entity.XdapDeptUsers;
|
||||||
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
||||||
import com.xdap.self_development.common.BusinessDatabase;
|
import com.xdap.self_development.common.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.*;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.domain.dto.PageResultDTO;
|
||||||
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
|
||||||
import com.xdap.self_development.domain.enums.ParamPermissionEnum;
|
import com.xdap.self_development.domain.enums.ParamPermissionEnum;
|
||||||
import com.xdap.self_development.domain.pojo.*;
|
import com.xdap.self_development.domain.pojo.*;
|
||||||
import com.xdap.self_development.domain.view.MenuParamView;
|
import com.xdap.self_development.domain.view.MenuParamView;
|
||||||
|
import com.xdap.self_development.domain.view.RoleAndPreView;
|
||||||
|
import com.xdap.self_development.domain.view.RoleInfoView;
|
||||||
|
import com.xdap.self_development.domain.view.UserDeptItem;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
import com.xdap.self_development.service.ModelRoleService;
|
import com.xdap.self_development.service.ModelRoleService;
|
||||||
import com.xdap.self_development.service.XdapDeptUsersService;
|
import com.xdap.self_development.service.XdapDeptUsersService;
|
||||||
@ -20,6 +26,11 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.text.Collator;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -40,6 +51,9 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
@Resource
|
@Resource
|
||||||
private XdapDeptUsersService xdapDeptUsersService;
|
private XdapDeptUsersService xdapDeptUsersService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ModelRoleService modelRoleService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加角色
|
* 添加角色
|
||||||
* 根据请求参数添加新角色
|
* 根据请求参数添加新角色
|
||||||
@ -274,38 +288,146 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<String> processPermissions(List<String> perms) {
|
||||||
|
if (perms == null || perms.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
class PathInfo {
|
||||||
|
final String pathWithoutTrailingSlash;
|
||||||
|
final boolean hasTrailingSlash;
|
||||||
|
|
||||||
|
PathInfo(String originalPath) {
|
||||||
|
this.hasTrailingSlash = originalPath.endsWith("/");
|
||||||
|
this.pathWithoutTrailingSlash = hasTrailingSlash ? originalPath.substring(0, originalPath.length() - 1) : originalPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
String getOriginalPath() {
|
||||||
|
return pathWithoutTrailingSlash + (hasTrailingSlash ? "/" : "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<PathInfo> pathInfos = perms.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.map(PathInfo::new)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Set<String> permSetWithoutTrailingSlash = pathInfos.stream()
|
||||||
|
.map(info -> info.pathWithoutTrailingSlash)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
List<PathInfo> filteredPathInfos = pathInfos.stream()
|
||||||
|
.filter(info -> {
|
||||||
|
String currentPath = info.pathWithoutTrailingSlash;
|
||||||
|
int lastSlashIndex = currentPath.lastIndexOf('/');
|
||||||
|
if (lastSlashIndex > 0) {
|
||||||
|
String parentPath = currentPath.substring(0, lastSlashIndex);
|
||||||
|
return !permSetWithoutTrailingSlash.contains(parentPath);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Map<String, List<PathInfo>> groupedByParent = filteredPathInfos.stream()
|
||||||
|
.filter(info -> info.pathWithoutTrailingSlash.indexOf('/') >= 0)
|
||||||
|
.collect(Collectors.groupingBy(info -> {
|
||||||
|
String path = info.pathWithoutTrailingSlash;
|
||||||
|
int lastSlashIndex = path.lastIndexOf('/');
|
||||||
|
return path.substring(0, lastSlashIndex);
|
||||||
|
}));
|
||||||
|
|
||||||
|
List<String> topLevelPerms = filteredPathInfos.stream()
|
||||||
|
.filter(info -> info.pathWithoutTrailingSlash.indexOf('/') < 0)
|
||||||
|
.map(info -> {
|
||||||
|
String formattedPath = info.pathWithoutTrailingSlash.replace('/', '-');
|
||||||
|
return formattedPath + (info.hasTrailingSlash ? "/" : "");
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> result = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Map.Entry<String, List<PathInfo>> groupEntry : groupedByParent.entrySet()) {
|
||||||
|
String parentPath = groupEntry.getKey();
|
||||||
|
List<PathInfo> childInfos = groupEntry.getValue();
|
||||||
|
|
||||||
|
boolean anyHasTrailingSlash = childInfos.stream().anyMatch(info -> info.hasTrailingSlash);
|
||||||
|
|
||||||
|
List<String> leafNames = childInfos.stream()
|
||||||
|
.filter(info -> !info.hasTrailingSlash)
|
||||||
|
.map(info -> {
|
||||||
|
String path = info.pathWithoutTrailingSlash;
|
||||||
|
int lastSlashIndex = path.lastIndexOf('/');
|
||||||
|
return path.substring(lastSlashIndex + 1);
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
String formattedParentPath = parentPath.replace('/', '-');
|
||||||
|
|
||||||
|
String finalPermString;
|
||||||
|
if (anyHasTrailingSlash) {
|
||||||
|
finalPermString = formattedParentPath + "/";
|
||||||
|
} else {
|
||||||
|
if (!leafNames.isEmpty()) {
|
||||||
|
String joinedLeafNames = String.join("、", leafNames);
|
||||||
|
finalPermString = formattedParentPath + "-" + joinedLeafNames;
|
||||||
|
} else {
|
||||||
|
finalPermString = formattedParentPath + "/";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.add(finalPermString);
|
||||||
|
}
|
||||||
|
|
||||||
|
result.addAll(topLevelPerms);
|
||||||
|
|
||||||
|
Collections.sort(result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static RoleInfoView getRoleInfoView(Map.Entry<String, List<RoleInfoView>> entry) {
|
||||||
|
List<RoleInfoView> views = entry.getValue();
|
||||||
|
|
||||||
|
if (views == null || views.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
RoleInfoView firstView = views.get(0);
|
||||||
|
|
||||||
|
List<String> allEditPerms = views.stream()
|
||||||
|
.map(RoleInfoView::getEditPerms)
|
||||||
|
.filter(p -> p != null && !p.isEmpty())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> allQueryPerms = views.stream()
|
||||||
|
.map(RoleInfoView::getQueryPerms)
|
||||||
|
.filter(p -> p != null && !p.isEmpty())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<String> processedEditPerms = processPermissions(allEditPerms);
|
||||||
|
List<String> processedQueryPerms = processPermissions(allQueryPerms);
|
||||||
|
|
||||||
|
String combinedEditPerms = String.join(",\n", processedEditPerms);
|
||||||
|
String combinedQueryPerms = String.join(",\n", processedQueryPerms);
|
||||||
|
|
||||||
|
firstView.setEditPerms(combinedEditPerms);
|
||||||
|
firstView.setQueryPerms(combinedQueryPerms);
|
||||||
|
|
||||||
|
return firstView;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户角色绑定
|
* 用户角色绑定
|
||||||
* 将用户或部门与角色进行绑定
|
* 将用户或部门与角色进行绑定
|
||||||
*
|
*
|
||||||
* @param userRoleBindingRequest 用户角色绑定请求
|
* @param request 用户角色绑定请求
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void userRoleBinding(UserRoleBindingRequest userRoleBindingRequest) {
|
public void userRoleBinding(UserRoleBindingRequest request) {
|
||||||
//将角色绑定的老版本人员置为未启用
|
// 更新用户
|
||||||
String roleId = userRoleBindingRequest.getRoleId();
|
modelRoleService.updateUserRole(request, 0);
|
||||||
Integer isDept = userRoleBindingRequest.getIsDept();
|
// 更新部门
|
||||||
if (ObjectUtils.isNotEmpty(roleId)) {
|
modelRoleService.updateUserRole(request, 1);
|
||||||
businessDatabase.getBusinessDatabase()
|
|
||||||
.update("is_enable", 0)
|
|
||||||
.eq("role_id", roleId)
|
|
||||||
.eq("is_dep", isDept)
|
|
||||||
.doUpdate(ModelDepUserRolePojo.class);
|
|
||||||
}
|
|
||||||
for (String userOrDeptId : userRoleBindingRequest.getUserOrDeptIds()) {
|
|
||||||
ModelDepUserRolePojo modelDepUserRolePojo = new ModelDepUserRolePojo();
|
|
||||||
modelDepUserRolePojo.setRoleId(roleId);
|
|
||||||
modelDepUserRolePojo.setUserOrDep(userOrDeptId);
|
|
||||||
modelDepUserRolePojo.setIsEnable(1);
|
|
||||||
if (isDept != 0 && isDept != 1) {
|
|
||||||
throw new CommonException("用户定位异常,非用户或部门");
|
|
||||||
}
|
|
||||||
modelDepUserRolePojo.setIsDep(isDept);
|
|
||||||
modelDepUserRolePojo.setCreationDate(new Date());
|
|
||||||
businessDatabase.getBusinessDatabase()
|
|
||||||
.doInsert(modelDepUserRolePojo);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,4 +608,274 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
}
|
}
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUserRole(UserRoleBindingRequest request, int isDept) {
|
||||||
|
String roleId = request.getRoleId();
|
||||||
|
// 获取目前已绑定的id
|
||||||
|
List<String> userOrDepartRoleIds = new ArrayList<>();
|
||||||
|
List<ModelDepUserRolePojo> userOrDepartRoles = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("is_enable", 1)
|
||||||
|
.eq("role_id", roleId)
|
||||||
|
.eq("is_dep", isDept)
|
||||||
|
.doQuery(ModelDepUserRolePojo.class);
|
||||||
|
if (!userOrDepartRoles.isEmpty()) {
|
||||||
|
userOrDepartRoleIds.addAll(userOrDepartRoles.stream().map(ModelDepUserRolePojo::getUserOrDep).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取传入的用户id
|
||||||
|
List<UserRoleBindingItem> userRolesReq = request.getUserOrDept().stream()
|
||||||
|
.filter(item -> item.getIsDept() == isDept)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 找出需要需要禁用和新增的用户id
|
||||||
|
List<String> userToAdd = new ArrayList<>();
|
||||||
|
for (UserRoleBindingItem item : userRolesReq) {
|
||||||
|
if (userOrDepartRoleIds.contains(item.getUserOrDeptId())) {
|
||||||
|
userOrDepartRoleIds.remove(item.getUserOrDeptId());
|
||||||
|
} else {
|
||||||
|
userToAdd.add(item.getUserOrDeptId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新用户
|
||||||
|
if (!userOrDepartRoleIds.isEmpty()) {
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.in("user_or_dep", userOrDepartRoleIds)
|
||||||
|
.eq("is_dep", isDept)
|
||||||
|
.update("is_enable", 0)
|
||||||
|
.eq("role_id", roleId)
|
||||||
|
.doUpdate(ModelDepUserRolePojo.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增用户
|
||||||
|
if (!userToAdd.isEmpty()) {
|
||||||
|
for (String userOrDeptId : userToAdd) {
|
||||||
|
// 检查当前用户是否已经被禁用
|
||||||
|
ModelDepUserRolePojo unableUser = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("user_or_dep", userOrDeptId)
|
||||||
|
.eq("is_enable", 0)
|
||||||
|
.eq("role_id", roleId)
|
||||||
|
.eq("is_dep", isDept)
|
||||||
|
.doQueryFirst(ModelDepUserRolePojo.class);
|
||||||
|
if (unableUser == null) {
|
||||||
|
ModelDepUserRolePojo modelDepUserRolePojo = new ModelDepUserRolePojo();
|
||||||
|
modelDepUserRolePojo.setRoleId(roleId);
|
||||||
|
modelDepUserRolePojo.setUserOrDep(userOrDeptId);
|
||||||
|
modelDepUserRolePojo.setIsEnable(1);
|
||||||
|
modelDepUserRolePojo.setIsDep(isDept);
|
||||||
|
modelDepUserRolePojo.setCreationDate(new Date());
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.doInsert(modelDepUserRolePojo);
|
||||||
|
} else {
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("id", unableUser.getId())
|
||||||
|
.update("is_enable", 1)
|
||||||
|
.doUpdate(ModelDepUserRolePojo.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writePreAndRole(HttpServletResponse response) {
|
||||||
|
String fileName = "系统权限导出_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"));
|
||||||
|
try {
|
||||||
|
String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + encodedFileName + ".xlsx");
|
||||||
|
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
|
response.setHeader("Pragma", "no-cache");
|
||||||
|
response.setDateHeader("Expires", 0);
|
||||||
|
|
||||||
|
PreAndRolePageRequest request = new PreAndRolePageRequest();
|
||||||
|
List<RoleInfoView> result = modelRoleService.getPerAndRole(request);
|
||||||
|
|
||||||
|
EasyExcel.write(response.getOutputStream(), RoleInfoView.class)
|
||||||
|
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||||
|
.sheet("系统权限")
|
||||||
|
.doWrite(result);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CommonException("导出Excel失败: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResultDTO<RoleInfoView> getPreAndRoleByCondition(PreAndRolePageRequest request) {
|
||||||
|
List<RoleInfoView> result = modelRoleService.getPerAndRole(request);
|
||||||
|
PageResultDTO<RoleInfoView> page = new PageResultDTO<>();
|
||||||
|
if (result.isEmpty()) {
|
||||||
|
page.setTotalCount(0);
|
||||||
|
page.setList(new ArrayList<>());
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
int totalElements = result.size();
|
||||||
|
int totalPages = (int) Math.ceil((double) totalElements / request.getPageSize());
|
||||||
|
if (request.getPageNum() > totalPages) {
|
||||||
|
request.setPageNum(totalPages);
|
||||||
|
}
|
||||||
|
int fromIndex = (request.getPageNum() - 1) * request.getPageSize();
|
||||||
|
int toIndex = Math.min(fromIndex + request.getPageSize(), totalElements);
|
||||||
|
|
||||||
|
List<RoleInfoView> finalResult = new ArrayList<>(result.subList(fromIndex, toIndex));
|
||||||
|
page.setList(finalResult);
|
||||||
|
page.setTotalCount(result.size());
|
||||||
|
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RoleInfoView> getPerAndRole(PreAndRolePageRequest request) {
|
||||||
|
Set<String> deptOrUsers = new HashSet<>();
|
||||||
|
List<UserDeptItem> userDeparts = new ArrayList<>();
|
||||||
|
// 按用户名查询
|
||||||
|
if (!request.getUsername().isEmpty()) {
|
||||||
|
List<XdapUsers> xdapUsers = businessDatabase.getSystemDatabase()
|
||||||
|
.like("username", request.getUsername())
|
||||||
|
.doQuery(XdapUsers.class);
|
||||||
|
if (!xdapUsers.isEmpty()) {
|
||||||
|
deptOrUsers.addAll(
|
||||||
|
xdapUsers.stream().map(XdapUsers::getId).collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
xdapUsers.forEach(user -> {
|
||||||
|
UserDeptItem item = new UserDeptItem();
|
||||||
|
item.setUsername(user.getUsername());
|
||||||
|
List<XdapDeptUsers> deptUsers = businessDatabase.getSystemDatabase()
|
||||||
|
.eq("user_id", user.getId())
|
||||||
|
.doQuery(XdapDeptUsers.class);
|
||||||
|
if (!deptUsers.isEmpty()) {
|
||||||
|
deptOrUsers.addAll(
|
||||||
|
deptUsers.stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
item.setDepartmentIds(deptUsers.stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
userDeparts.add(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按部门名查询
|
||||||
|
if (!request.getDepartment().isEmpty()) {
|
||||||
|
List<XdapDepartments> xdapDepartments = businessDatabase.getSystemDatabase()
|
||||||
|
.like("name", request.getDepartment())
|
||||||
|
.doQuery(XdapDepartments.class);
|
||||||
|
if (!xdapDepartments.isEmpty()) {
|
||||||
|
deptOrUsers.addAll(
|
||||||
|
xdapDepartments.stream().map(XdapDepartments::getId).collect(Collectors.toSet())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询所有用户的角色和权限
|
||||||
|
List<RoleAndPreView> roleAndPreViews = new ArrayList<>();
|
||||||
|
MpaasQuery query = businessDatabase.getBusinessDatabase()
|
||||||
|
.viewQueryMode(true)
|
||||||
|
.view("selectRoleAndPerInfo")
|
||||||
|
.like("role_name", request.getRoleName());
|
||||||
|
// 根据部门名和用户名查角色
|
||||||
|
if (!deptOrUsers.isEmpty()) {
|
||||||
|
query.in("userOrDep", deptOrUsers);
|
||||||
|
roleAndPreViews.addAll(
|
||||||
|
query.doQuery(RoleAndPreView.class)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
if (request.getUsername().isEmpty() && request.getDepartment().isEmpty()) {
|
||||||
|
roleAndPreViews.addAll(
|
||||||
|
query.doQuery(RoleAndPreView.class)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户和部门并构建临时返回
|
||||||
|
List<RoleInfoView> resultTemp = new ArrayList<>();
|
||||||
|
roleAndPreViews.forEach(roleAndPreView -> {
|
||||||
|
RoleInfoView view = new RoleInfoView();
|
||||||
|
if (roleAndPreView.getIsDep() == 0) {
|
||||||
|
XdapUsers user = businessDatabase.getSystemDatabase()
|
||||||
|
.eq("id", roleAndPreView.getUserOrDep())
|
||||||
|
.doQueryFirst(XdapUsers.class);
|
||||||
|
if (user == null) {
|
||||||
|
view.setUsername("未知用户-" + roleAndPreView.getUserOrDep());
|
||||||
|
} else {
|
||||||
|
view.setUsername(user.getUsername());
|
||||||
|
view.setUserNumber(user.getUserNumber());
|
||||||
|
view.setUserId(user.getId());
|
||||||
|
}
|
||||||
|
} else if (roleAndPreView.getIsDep() == 1) {
|
||||||
|
XdapDepartments department = businessDatabase.getSystemDatabase()
|
||||||
|
.eq("id", roleAndPreView.getUserOrDep())
|
||||||
|
.doQueryFirst(XdapDepartments.class);
|
||||||
|
if (department == null) {
|
||||||
|
view.setDepartment("未知部门-" + roleAndPreView.getUserOrDep());
|
||||||
|
} else {
|
||||||
|
view.setDepartment(department.getName());
|
||||||
|
view.setDepartmentId(department.getId());
|
||||||
|
if (!userDeparts.isEmpty()) {
|
||||||
|
String usernames = userDeparts.stream()
|
||||||
|
.filter(userDepart -> userDepart.getDepartmentIds() != null)
|
||||||
|
.filter(userDepart -> userDepart.getDepartmentIds().contains(department.getId()))
|
||||||
|
.map(UserDeptItem::getUsername)
|
||||||
|
.collect(Collectors.joining("、"));
|
||||||
|
view.setUsername(usernames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
view.setRoleId(roleAndPreView.getRoleId());
|
||||||
|
view.setRoleName(roleAndPreView.getRoleName());
|
||||||
|
view.setRoleDescription(roleAndPreView.getRoleDescription());
|
||||||
|
|
||||||
|
if (roleAndPreView.getParameterPer() != null) {
|
||||||
|
if (roleAndPreView.getParameterPer() == 1) {
|
||||||
|
view.setQueryPerms(roleAndPreView.getPermissionPath());
|
||||||
|
} else if (roleAndPreView.getParameterPer() == 2) {
|
||||||
|
view.setEditPerms(roleAndPreView.getPermissionPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resultTemp.add(view);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 构建聚合返回
|
||||||
|
List<RoleInfoView> result = new ArrayList<>();
|
||||||
|
Map<String, List<RoleInfoView>> userGroup = resultTemp.stream()
|
||||||
|
.filter(item ->
|
||||||
|
item.getUserId() != null && !item.getUserId().isEmpty())
|
||||||
|
.collect(Collectors.groupingBy(item -> item.getRoleId() + "_" + item.getUserId()));
|
||||||
|
|
||||||
|
Map<String, List<RoleInfoView>> deptGroup = resultTemp.stream()
|
||||||
|
.filter(item ->
|
||||||
|
item.getDepartmentId() != null && !item.getDepartmentId().isEmpty())
|
||||||
|
.collect(Collectors.groupingBy(item -> item.getRoleId() + "_" + item.getDepartmentId()));
|
||||||
|
|
||||||
|
for (Map.Entry<String, List<RoleInfoView>> entry : userGroup.entrySet()) {
|
||||||
|
RoleInfoView view = getRoleInfoView(entry);
|
||||||
|
result.add(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map.Entry<String, List<RoleInfoView>> entry : deptGroup.entrySet()) {
|
||||||
|
RoleInfoView view = getRoleInfoView(entry);
|
||||||
|
result.add(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
result.forEach(item -> {
|
||||||
|
if (Objects.equals(item.getRoleName(), "超级管理员")) {
|
||||||
|
item.setEditPerms("全部权限");
|
||||||
|
item.setQueryPerms("全部权限");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
result.sort(Comparator.comparing(RoleInfoView::getRoleName, Collator.getInstance(Locale.CHINESE)));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,8 +87,11 @@ public class ParameterServiceImpl implements ParameterService {
|
|||||||
public TemplateInfoView maintenanceParameters(UpdateParameterForm form) {
|
public TemplateInfoView maintenanceParameters(UpdateParameterForm form) {
|
||||||
// 公式格式检查
|
// 公式格式检查
|
||||||
for (ParameterForm parameter : form.getParameterForms()) {
|
for (ParameterForm parameter : form.getParameterForms()) {
|
||||||
|
if (parameter.getOperation() == null || parameter.getOperation().isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ("数据平台手工录入".equals(parameter.getParameterSource()) && parameter.getDepartment() == null) {
|
if ("数据平台手工录入".equals(parameter.getParameterSource()) && (parameter.getDepartment() == null || parameter.getDepartment().isEmpty())) {
|
||||||
throw new CommonException(String.format("参数'%s'部门不能为空", parameter.getParameterName()));
|
throw new CommonException(String.format("参数'%s'部门不能为空", parameter.getParameterName()));
|
||||||
}
|
}
|
||||||
if (parameter.getPartsName() == null || parameter.getPartsName().isEmpty()) {
|
if (parameter.getPartsName() == null || parameter.getPartsName().isEmpty()) {
|
||||||
|
|||||||
@ -217,8 +217,9 @@ public class XdapDeptUsersServiceImpl implements XdapDeptUsersService {
|
|||||||
if (depts.isEmpty() || commonDept == null) {
|
if (depts.isEmpty() || commonDept == null) {
|
||||||
return userInfoView;
|
return userInfoView;
|
||||||
}
|
}
|
||||||
|
List<String> deptIds = depts.stream().map(XdapDeptUsers::getDepartmentId).collect(Collectors.toList());
|
||||||
List<XdapDepartments> xdapDepartments = bd.getSystemDatabase()
|
List<XdapDepartments> xdapDepartments = bd.getSystemDatabase()
|
||||||
.in("id", depts)
|
.in("id", deptIds)
|
||||||
.eq("parent_id", commonDept.getId())
|
.eq("parent_id", commonDept.getId())
|
||||||
.doQuery(XdapDepartments.class);
|
.doQuery(XdapDepartments.class);
|
||||||
if (xdapDepartments.isEmpty()) {
|
if (xdapDepartments.isEmpty()) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user