Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -61,7 +61,8 @@ public class QmsPermissionAspect {
|
||||
QmsPermission annotation = getAnnotationByJoinPoint(joinPoint);
|
||||
if(annotation == null)
|
||||
return;
|
||||
QMSPermissionContextHolder.setContext(true, annotation.deptDataRoleCodes(), annotation.moduleDataRoleCodes(), annotation.deptIdColumn(), annotation.userIdColumn(), annotation.custom());
|
||||
QMSPermissionContextHolder.setContext(true, annotation.deptDataRoleCodes(), annotation.moduleDataRoleCodes(),
|
||||
annotation.deptIdColumn(), annotation.userIdColumn(), annotation.self(), annotation.custom());
|
||||
}
|
||||
|
||||
private QmsPermission getAnnotationByJoinPoint(JoinPoint joinPoint) {
|
||||
|
||||
@@ -21,6 +21,8 @@ public @interface QmsPermission {
|
||||
|
||||
String userIdColumn() default "CREATOR"; //人员id列
|
||||
|
||||
boolean self() default false; //是否可查看自己创建的数据
|
||||
|
||||
//todo 考虑支持模块自定义扩展。参数传入表达式,通过表达式计算权限
|
||||
String custom() default "";
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,7 @@ public class QMSPermissionContextHolder {
|
||||
private static final ThreadLocal<String> moduleDataRoleCodes = new TransmittableThreadLocal<>(); //模块数据权限
|
||||
private static final ThreadLocal<String> deptIdColumn = new TransmittableThreadLocal<>(); //部门id列
|
||||
private static final ThreadLocal<String> userIdColumn = new TransmittableThreadLocal<>(); //人员id列
|
||||
private static final ThreadLocal<Boolean> self = new TransmittableThreadLocal<>();
|
||||
private static final ThreadLocal<String> custom = new TransmittableThreadLocal<>(); //人员id列
|
||||
|
||||
public static void setEnable(Boolean ignore) {
|
||||
@@ -21,12 +22,14 @@ public class QMSPermissionContextHolder {
|
||||
return Boolean.TRUE.equals(enable.get());
|
||||
}
|
||||
|
||||
public static void setContext(boolean enable, String deptDataRoleCode, String moduleDataRoleCode, String deptIdColumn, String userIdColumn, String custom){
|
||||
public static void setContext(boolean enable, String deptDataRoleCode, String moduleDataRoleCode,
|
||||
String deptIdColumn, String userIdColumn, Boolean self, String custom){
|
||||
QMSPermissionContextHolder.setEnable(enable);
|
||||
QMSPermissionContextHolder.deptDataRoleCodes.set(deptDataRoleCode);
|
||||
QMSPermissionContextHolder.moduleDataRoleCodes.set(moduleDataRoleCode);
|
||||
QMSPermissionContextHolder.deptIdColumn.set(deptIdColumn);
|
||||
QMSPermissionContextHolder.userIdColumn.set(userIdColumn);
|
||||
QMSPermissionContextHolder.self.set(self);
|
||||
QMSPermissionContextHolder.custom.set(custom);
|
||||
}
|
||||
|
||||
@@ -62,6 +65,15 @@ public class QMSPermissionContextHolder {
|
||||
return userIdColumn.get();
|
||||
}
|
||||
|
||||
// 新增 self 的 getter 和 setter
|
||||
public static void setSelf(Boolean self) {
|
||||
QMSPermissionContextHolder.self.set(self);
|
||||
}
|
||||
|
||||
public static Boolean getSelf() {
|
||||
return self.get();
|
||||
}
|
||||
|
||||
public static void setCustom(String custom) {
|
||||
QMSPermissionContextHolder.custom.set(custom);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public interface MaterialBatchMapper extends BaseMapperX<MaterialBatchDO> {
|
||||
.orderByDesc(MaterialBatchDO::getId));
|
||||
}
|
||||
|
||||
// @QmsPermission(deptDataRoleCodes = "ytjyDeptAndSub", moduleDataRoleCodes = "qms_material_manager")
|
||||
@QmsPermission(moduleDataRoleCodes = "ytjyAdmin", deptIdColumn = "ASN_DEPT_ID")
|
||||
default PageResult<MaterialBatchRespVO> selectPageWithPdtInfo(MaterialBatchPageReqVO reqVO, List<Long> pdtIds) {
|
||||
|
||||
MPJLambdaWrapper<MaterialBatchDO> wrapper = new MPJLambdaWrapperX<MaterialBatchDO>()
|
||||
|
||||
@@ -392,21 +392,7 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
||||
pageResult = materialBatchMapper.selectPageWithPdtInfo(pageReqVO, List.of());
|
||||
}
|
||||
|
||||
// 查全部
|
||||
if (StrUtil.isEmpty(pageReqVO.getDataType())) {
|
||||
List<MaterialBatchRespVO> respVOS = pageResult.getList();
|
||||
if (CollUtil.isNotEmpty(respVOS)) {
|
||||
List<Long> batIds = respVOS.stream().map(MaterialBatchRespVO::getId).toList();
|
||||
List<MaterialBatchDO> gongs = materialBatchMapper.selectList(Wrappers.lambdaQuery(MaterialBatchDO.class)
|
||||
.in(MaterialBatchDO::getParentId, batIds));
|
||||
if (CollUtil.isNotEmpty(gongs)) {
|
||||
List<MaterialBatchRespVO> gongRespVOs = gongs.stream().map(gong -> BeanUtils.toBean(gong, MaterialBatchRespVO.class)).toList();
|
||||
respVOS.addAll(gongRespVOs);
|
||||
pageResult.setList(respVOS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 给批次设置顶级分类的json配置
|
||||
if (StrUtil.isEmpty(pageReqVO.getDataType()) || MaterialBatchGongType.batch.name().equals(pageReqVO.getDataType())) {
|
||||
List<MaterialBatchRespVO> batches = pageResult.getList();
|
||||
if (CollUtil.isNotEmpty(batches)) {
|
||||
@@ -428,6 +414,21 @@ public class MaterialBatchServiceImpl implements MaterialBatchService {
|
||||
}
|
||||
}
|
||||
|
||||
// 查全部
|
||||
if (StrUtil.isEmpty(pageReqVO.getDataType())) {
|
||||
List<MaterialBatchRespVO> respVOS = pageResult.getList();
|
||||
if (CollUtil.isNotEmpty(respVOS)) {
|
||||
List<Long> batIds = respVOS.stream().map(MaterialBatchRespVO::getId).toList();
|
||||
List<MaterialBatchDO> gongs = materialBatchMapper.selectList(Wrappers.lambdaQuery(MaterialBatchDO.class)
|
||||
.in(MaterialBatchDO::getParentId, batIds));
|
||||
if (CollUtil.isNotEmpty(gongs)) {
|
||||
List<MaterialBatchRespVO> gongRespVOs = gongs.stream().map(gong -> BeanUtils.toBean(gong, MaterialBatchRespVO.class)).toList();
|
||||
respVOS.addAll(gongRespVOs);
|
||||
pageResult.setList(respVOS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 需要组装children
|
||||
if (!MaterialBatchGongType.gong.name().equals(pageReqVO.getDataType()) && pageReqVO.getChildren()) {
|
||||
List<MaterialBatchRespVO> voList = pageResult.getList();
|
||||
|
||||
Reference in New Issue
Block a user