diff --git a/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java
new file mode 100644
index 000000000..58986ccf6
--- /dev/null
+++ b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java
@@ -0,0 +1,26 @@
+package com.engine.salary.entity.auth.dto;
+
+import com.engine.salary.annotation.TableTitle;
+import com.engine.salary.enums.auth.DataTargetTypeEnum;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthDataDTO {
+
+ private Long id;
+
+ @TableTitle(title = "对象类型",dataIndex = "targetType",key = "targetType")
+ private String targetTypeName;
+ private DataTargetTypeEnum targetType;
+
+ @TableTitle(title = "对象",dataIndex = "targetName",key = "targetName")
+ private String targetName;
+ private String target;
+
+}
diff --git a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java
index c0ff5bc19..699e48db8 100644
--- a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java
+++ b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java
@@ -1,6 +1,7 @@
package com.engine.salary.entity.auth.dto;
import com.engine.salary.annotation.TableTitle;
+import com.engine.salary.enums.auth.MemberTargetTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -15,9 +16,11 @@ public class AuthMemberDTO {
private Long id;
@TableTitle(title = "对象类型",dataIndex = "targetType",key = "targetType")
- private String targetType;
+ private String targetTypeName;
+ private MemberTargetTypeEnum targetType;
@TableTitle(title = "对象",dataIndex = "targetName",key = "targetName")
private String targetName;
+ private String target;
}
diff --git a/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java
new file mode 100644
index 000000000..450d2fdc4
--- /dev/null
+++ b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java
@@ -0,0 +1,18 @@
+package com.engine.salary.entity.auth.param;
+
+import com.engine.salary.common.BaseQueryParam;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthDataQueryParam extends BaseQueryParam {
+
+ private Long roleId;
+
+}
diff --git a/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java
new file mode 100644
index 000000000..2e7e9e24e
--- /dev/null
+++ b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java
@@ -0,0 +1,36 @@
+package com.engine.salary.entity.auth.param;
+
+
+import com.engine.salary.enums.auth.DataLinkEnum;
+import com.engine.salary.enums.auth.DataTargetTypeEnum;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 数据
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthDataSaveParam {
+
+ private Long roleId;
+
+ private DataLinkEnum link;
+
+ private DataTargetTypeEnum targetType;
+
+ private String target;
+
+ private String targetName;
+
+ private Integer sortedIndex;
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java
index f6ef3815f..3c605391f 100644
--- a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java
+++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java
@@ -1,6 +1,7 @@
package com.engine.salary.entity.auth.param;
+import com.engine.salary.enums.auth.MemberTargetTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -14,7 +15,7 @@ public class AuthMemberSaveParam {
private Long roleId;
- private Integer targetType;
+ private MemberTargetTypeEnum targetType;
private String target;
diff --git a/src/com/engine/salary/entity/auth/po/AuthDataPO.java b/src/com/engine/salary/entity/auth/po/AuthDataPO.java
new file mode 100644
index 000000000..ff00e66a9
--- /dev/null
+++ b/src/com/engine/salary/entity/auth/po/AuthDataPO.java
@@ -0,0 +1,90 @@
+package com.engine.salary.entity.auth.po;
+
+import com.engine.hrmelog.annotation.ElogTransform;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Collection;
+import java.util.Date;
+
+/**
+ * 数据
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthDataPO {
+ @ElogTransform(name = "id")
+ private Long id;
+
+ /**
+ * 角色id
+ */
+ @ElogTransform(name = "角色id")
+ private Long roleId;
+
+ /**
+ * 连接符,交、并、补
+ */
+ @ElogTransform(name = "连接符,交、并、补")
+ private Integer link;
+
+ /**
+ * 数据类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:安全级别 、7:所有人 、8:登录人、9:账套、10:sql
+ */
+ @ElogTransform(name = "数据类型")
+ private Integer targetType;
+
+ /**
+ * 对象id
+ */
+ @ElogTransform(name = "对象id")
+ private String target;
+
+ /**
+ * 对象名称
+ */
+ @ElogTransform(name = "对象名称")
+ private String targetName;
+
+ @ElogTransform(name = "排序")
+ private Integer sortedIndex;
+
+ /**
+ * 创建人
+ */
+ @ElogTransform(name = "创建人")
+ private Long creator;
+
+ /**
+ * 创建时间
+ */
+ @ElogTransform(name = "创建时间")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @ElogTransform(name = "更新时间")
+ private Date updateTime;
+
+ /**
+ * 是否已删除。0:未删除、1:已删除
+ */
+ @ElogTransform(name = "是否已删除。0:未删除、1:已删除")
+ private Integer deleteType;
+
+ /**
+ * 租户ID
+ */
+ @ElogTransform(name = "租户ID")
+ private String tenantKey;
+
+
+ //主键id集合
+ private Collection ids;
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java b/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java
new file mode 100644
index 000000000..a28e5dbe1
--- /dev/null
+++ b/src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java
@@ -0,0 +1,69 @@
+package com.engine.salary.entity.auth.po;
+
+import com.engine.hrmelog.annotation.ElogTransform;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Collection;
+import java.util.Date;
+
+/**
+ * 角色数据明细
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthRoleDataPO {
+ @ElogTransform(name = "id")
+ private Long id;
+
+ /**
+ * 角色id
+ */
+ @ElogTransform(name = "角色id")
+ private Long roleId;
+
+ /**
+ * 人员id
+ */
+ @ElogTransform(name = "人员id")
+ private Long employeeId;
+
+ /**
+ * 创建人
+ */
+ @ElogTransform(name = "创建人")
+ private Long creator;
+
+ /**
+ * 创建时间
+ */
+ @ElogTransform(name = "创建时间")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @ElogTransform(name = "更新时间")
+ private Date updateTime;
+
+ /**
+ * 是否已删除。0:未删除、1:已删除
+ */
+ @ElogTransform(name = "是否已删除。0:未删除、1:已删除")
+ private Integer deleteType;
+
+ /**
+ * 租户ID
+ */
+ @ElogTransform(name = "租户ID")
+ private String tenantKey;
+
+
+ //主键id集合
+ private Collection ids;
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/enums/auth/DataLinkEnum.java b/src/com/engine/salary/enums/auth/DataLinkEnum.java
new file mode 100644
index 000000000..37982b037
--- /dev/null
+++ b/src/com/engine/salary/enums/auth/DataLinkEnum.java
@@ -0,0 +1,79 @@
+package com.engine.salary.enums.auth;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.engine.salary.enums.BaseEnum;
+import com.engine.salary.exception.SalaryRunTimeException;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * 或者、并且、排除
+ * Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public enum DataLinkEnum implements BaseEnum {
+
+
+ OR(1, "并", 87627) {
+ @Override
+ public Set calculation(Collection coll1, Collection coll2) {
+ return new HashSet<>(CollectionUtil.union(coll1, coll2));
+ }
+ },
+ AND(2, "交", 87626) {
+ @Override
+ public Set calculation(Collection coll1, Collection coll2) {
+ return new HashSet<>(CollectionUtil.intersection(coll1, coll2));
+ }
+ },
+ NOT_IN(3, "补", 87626) {
+ @Override
+ public Set calculation(Collection coll1, Collection coll2) {
+ return new HashSet<>(CollectionUtil.disjunction(coll1, coll2));
+ }
+ };
+
+
+ private Integer value;
+ private String defaultLabel;
+ private int labelId;
+
+ DataLinkEnum(Integer value, String defaultLabel, int labelId) {
+ this.value = value;
+ this.defaultLabel = defaultLabel;
+ this.labelId = labelId;
+ }
+
+ public abstract Set calculation(Collection coll1, Collection coll2);
+
+
+ @Override
+ public Integer getValue() {
+ return value;
+ }
+
+ @Override
+ public String getDefaultLabel() {
+ return defaultLabel;
+ }
+
+ @Override
+ public Integer getLabelId() {
+ return labelId;
+ }
+
+ public static DataLinkEnum parseByValue(int value) {
+ for (DataLinkEnum typeEnum : DataLinkEnum.values()) {
+ if (Objects.equals(typeEnum.getValue(), value)) {
+ return typeEnum;
+ }
+ }
+ throw new SalaryRunTimeException("未找到对应的枚举");
+ }
+}
diff --git a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java
new file mode 100644
index 000000000..7317d2931
--- /dev/null
+++ b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java
@@ -0,0 +1,164 @@
+package com.engine.salary.enums.auth;
+
+import com.engine.common.service.HrmCommonService;
+import com.engine.common.service.impl.HrmCommonServiceImpl;
+import com.engine.salary.entity.datacollection.DataCollectionEmployee;
+import com.engine.salary.enums.BaseEnum;
+import com.engine.salary.exception.SalaryRunTimeException;
+import com.engine.salary.service.impl.SalaryEmployeeServiceImpl;
+import com.engine.salary.util.SalaryEntityUtil;
+import weaver.conn.RecordSet;
+import weaver.general.Util;
+
+import java.util.*;
+
+/**
+ * 对象类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:安全级别 、7:所有人 、8:登录人、9:账套、10:sql
+ * Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public enum DataTargetTypeEnum implements BaseEnum {
+
+
+ EMP(1, "人员", 87627) {
+ @Override
+ public Set getEmpIds(String target, Object... param) {
+ Set list = new HashSet<>();
+ list.add(Long.valueOf(target));
+ return list;
+ }
+ },
+ DEPARTMENT(2, "部门", 87626) {
+ @Override
+ public Set getEmpIds(String target, Object... param) {
+ SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl();
+ return new HashSet<>(salaryEmployeeService.listByDepartment(Collections.singletonList(Long.valueOf(target))));
+ }
+ },
+ JOB(3, "岗位", 87626) {
+ @Override
+ public Set getEmpIds(String target, Object... param) {
+ SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl();
+ return new HashSet<>(salaryEmployeeService.listByJob(Collections.singletonList(Long.valueOf(target))));
+ }
+ },
+ SUB_COMPANY(4, "分部", 87626) {
+ @Override
+ public Set getEmpIds(String target, Object... param) {
+ SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl();
+ return new HashSet<>(salaryEmployeeService.listBySubCompany(Collections.singletonList(Long.valueOf(target))));
+ }
+ },
+ ROLE(5, "角色", 87626) {
+ @Override
+ public Set getEmpIds(String target, Object... param) {
+ HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
+ Set memberList = new HashSet<>();
+ List