From 45435392063752af6684b7385251d151253123d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 26 Jul 2024 11:35:17 +0800 Subject: [PATCH 001/184] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=92=8C=E6=88=90?= =?UTF-8?q?=E5=91=98=E5=9F=BA=E7=A1=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/authItem.xml | 35 +++ src/com/api/salary/web/AuthController.java | 8 + .../constant/SalaryDefaultTenantConstant.java | 13 +- .../salary/entity/auth/dto/RoleDTO.java | 33 +++ .../auth/param/AuthMemberSaveParam.java | 25 ++ .../entity/auth/param/AuthRoleSaveParam.java | 32 +++ .../salary/entity/auth/po/AuthMemberPO.java | 66 +++++ .../salary/entity/auth/po/AuthRolePO.java | 56 ++++ .../salary/mapper/auth/AuthMemberMapper.java | 78 ++++++ .../salary/mapper/auth/AuthMemberMapper.xml | 241 ++++++++++++++++++ .../salary/mapper/auth/AuthRoleMapper.java | 73 ++++++ .../salary/mapper/auth/AuthRoleMapper.xml | 208 +++++++++++++++ .../service/auth/AuthMemberService.java | 33 +++ .../service/auth/AuthMemberServiceImpl.java | 105 ++++++++ .../salary/service/auth/AuthRoleService.java | 28 ++ .../service/auth/AuthRoleServiceImpl.java | 120 +++++++++ src/com/engine/salary/web/AuthController.java | 77 ++++++ .../engine/salary/wrapper/AuthWrapper.java | 48 ++++ .../engine/salary/wrapper/RoleWrapper.java | 24 ++ 19 files changed, 1297 insertions(+), 6 deletions(-) create mode 100644 resource/WEB-INF/prop/authItem.xml create mode 100644 src/com/api/salary/web/AuthController.java create mode 100644 src/com/engine/salary/entity/auth/dto/RoleDTO.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthMemberPO.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthRolePO.java create mode 100644 src/com/engine/salary/mapper/auth/AuthMemberMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthMemberMapper.xml create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleMapper.xml create mode 100644 src/com/engine/salary/service/auth/AuthMemberService.java create mode 100644 src/com/engine/salary/service/auth/AuthMemberServiceImpl.java create mode 100644 src/com/engine/salary/service/auth/AuthRoleService.java create mode 100644 src/com/engine/salary/service/auth/AuthRoleServiceImpl.java create mode 100644 src/com/engine/salary/web/AuthController.java create mode 100644 src/com/engine/salary/wrapper/AuthWrapper.java create mode 100644 src/com/engine/salary/wrapper/RoleWrapper.java diff --git a/resource/WEB-INF/prop/authItem.xml b/resource/WEB-INF/prop/authItem.xml new file mode 100644 index 000000000..ab78ef9d4 --- /dev/null +++ b/resource/WEB-INF/prop/authItem.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/api/salary/web/AuthController.java b/src/com/api/salary/web/AuthController.java new file mode 100644 index 000000000..3a2c0374c --- /dev/null +++ b/src/com/api/salary/web/AuthController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/auth") +public class AuthController extends com.engine.salary.web.AuthController { + +} diff --git a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java index 184ccee40..2d5ca8a1b 100644 --- a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java +++ b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java @@ -1,12 +1,13 @@ package com.engine.salary.constant; /** - * @description: 默认的租户key - * @author: xiajun - * @modified By: xiajun - * @date: Created in 2/8/22 11:25 AM - * @version:v1.0 - */ + * 默认的租户key + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryDefaultTenantConstant { public static final String DEFAULT_TENANT_KEY = "all_teams"; diff --git a/src/com/engine/salary/entity/auth/dto/RoleDTO.java b/src/com/engine/salary/entity/auth/dto/RoleDTO.java new file mode 100644 index 000000000..ce10dbdd4 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/RoleDTO.java @@ -0,0 +1,33 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RoleDTO { + + @JsonSerialize(using = ToStringSerializer.class) + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id不允许为空") + private Long id; + + + @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") + private String name; + + /** + * 扣缴义务人id + */ + @DataCheck(require = true, message = "扣缴义务人不允许为空") + private Long taxAgentId; + + +} \ 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 new file mode 100644 index 000000000..4e8f67351 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -0,0 +1,25 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthMemberSaveParam { + + private Long roleId; + + private Integer targetType; + + private Long targetId; + + /** + * 表达式,为sql预留 + */ + private String formula; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java new file mode 100644 index 000000000..844453be1 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.auth.param; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.RuntimeTypeEnum; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleSaveParam { + + @JsonSerialize(using = ToStringSerializer.class) + @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id不允许为空") + private Long id; + + + @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") + private String name; + + /** + * 扣缴义务人id + */ + @DataCheck(require = true, message = "扣缴义务人不允许为空") + private Long taxAgentId; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java new file mode 100644 index 000000000..b7e6ed055 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java @@ -0,0 +1,66 @@ +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 +@ElogTransform( name="成员" ) +public class AuthMemberPO { + private Long id; + /** + * 角色id + */ + @ElogTransform( name="角色id" ) + private Long roleId; + /** + * 对象类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:sql + */ + @ElogTransform( name="对象类型" ) + private Integer targetType; + /** + * 对象id + */ + @ElogTransform( name="对象id" ) + private Long targetId; + /** + * 表达式 + */ + @ElogTransform( name="表达式" ) + private String formula; + /** + * 创建人 + */ + private Long creator; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + /** + * 租户ID + */ + private String tenantKey; + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java new file mode 100644 index 000000000..9ca15d1e5 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -0,0 +1,56 @@ +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 +@ElogTransform( name="角色" ) +public class AuthRolePO { + private Long id; + /** + * 名称 + */ + @ElogTransform( name="名称" ) + private String name; + /** + * 个税扣缴义务人id + */ + @ElogTransform( name="个税扣缴义务人id" ) + private Long taxAgentId; + /** + * 创建人 + */ + private Long creator; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + /** + * 租户ID + */ + private String tenantKey; + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.java b/src/com/engine/salary/mapper/auth/AuthMemberMapper.java new file mode 100644 index 000000000..a5cabd93f --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.java @@ -0,0 +1,78 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthMemberPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthMemberMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthMemberPO authMember); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthMemberPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authMember 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthMemberPO authMember); + + /** + * 修改,修改所有字段 + * + * @param authMember 修改的记录 + * @return 返回影响行数 + */ + int update(AuthMemberPO authMember); + + /** + * 修改,忽略null字段 + * + * @param authMember 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthMemberPO authMember); + + /** + * 删除记录 + * + * @param authMember 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthMemberPO authMember); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml new file mode 100644 index 000000000..24adb81ac --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + t.id + , t.role_id + , t.target_type + , t.target_id + , t.formula + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_member + + + + id, + + + role_id, + + + target_type, + + + target_id, + + + formula, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{targetType}, + + + #{targetId}, + + + #{formula}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_member + + role_id=#{roleId}, + target_type=#{targetType}, + target_id=#{targetId}, + formula=#{formula}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_member + + + role_id=#{roleId}, + + + target_type=#{targetType}, + + + target_id=#{targetId}, + + + formula=#{formula}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_member + SET delete_type=1 + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE hrsa_auth_member + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + UPDATE hrsa_auth_member + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java new file mode 100644 index 000000000..5a936de7e --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthRolePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthRolePO authRole); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthRolePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authRole 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthRolePO authRole); + + /** + * 修改,修改所有字段 + * + * @param authRole 修改的记录 + * @return 返回影响行数 + */ + int update(AuthRolePO authRole); + + /** + * 修改,忽略null字段 + * + * @param authRole 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthRolePO authRole); + + /** + * 删除记录 + * + * @param authRole 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthRolePO authRole); + + /** + * 批量删除记录 + * + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml new file mode 100644 index 000000000..6b7528d47 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.name + , t.tax_agent_id + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role + + + + id, + + + name, + + + tax_agent_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{name}, + + + #{taxAgentId}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_role + + name=#{name}, + tax_agent_id=#{taxAgentId}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role + + + name=#{name}, + + + tax_agent_id=#{taxAgentId}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_role + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java new file mode 100644 index 000000000..821fc0930 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -0,0 +1,33 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; + +/** + * 成员 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthMemberService { + + /** + * 添加成员 + * @param param + * @return + */ + Long saveMember(AuthMemberSaveParam param); + + /** + * 删除成员 + * @param id + */ + void deleteMember(Long id); + + /** + * 同步成员 + * @param roleId + */ + void syncMember(Long roleId); +} diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java new file mode 100644 index 000000000..5c68944ff --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -0,0 +1,105 @@ +package com.engine.salary.service.auth; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthMemberMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; + +import java.util.Collections; +import java.util.Date; + +public class AuthMemberServiceImpl extends Service implements AuthMemberService { + + + private AuthMemberMapper getAuthMemberMapper() { + return MapperProxyFactory.getProxy(AuthMemberMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + + @Override + public Long saveMember(AuthMemberSaveParam param) { + + AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId()); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + + Date now = new Date(); + AuthMemberPO po = AuthMemberPO.builder() + .id(IdGenerator.generate()) + .targetId(param.getTargetId()) + .targetType(param.getTargetType()) + .formula(param.getFormula()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthMemberMapper().insertIgnoreNull(po); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + + + return po.getId(); + } + + @Override + public void deleteMember(Long id) { + AuthMemberPO po = getAuthMemberMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("成员不存在!"); + } + + getAuthMemberMapper().deleteByIds(Collections.singleton(id)); + + AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + } + + @Override + public void syncMember(Long roleId) { + + } +} diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java new file mode 100644 index 000000000..30dbb3e98 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -0,0 +1,28 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; + +/** + * 角色 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthRoleService { + + /** + * 添加角色 + * @param param + * @return + */ + Long saveRole(AuthRoleSaveParam param); + + /** + * 删除角色 + * @param id + */ + void deleteRole(Long id); + +} diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java new file mode 100644 index 000000000..0efeba99e --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -0,0 +1,120 @@ +package com.engine.salary.service.auth; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthMemberMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; + +import java.util.Collections; +import java.util.Date; + +public class AuthRoleServiceImpl extends Service implements AuthRoleService { + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + private AuthMemberMapper getAuthMemberMapper() { + return MapperProxyFactory.getProxy(AuthMemberMapper.class); + } + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + + @Override + public Long saveRole(AuthRoleSaveParam param) { + Date now = new Date(); + Long id = param.getId(); + String name = param.getName(); + Long taxAgentId = param.getTaxAgentId(); + + AuthRolePO po; + if (id == null) { + po = AuthRolePO.builder() + .id(IdGenerator.generate()) + .name(name) + .taxAgentId(taxAgentId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthRoleMapper().insertIgnoreNull(po); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(taxAgentId + ""); + loggerContext.setTargetName("角色:" + name); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增角色")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增角色")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + + } else { + po = getAuthRoleMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + AuthRolePO newPo = AuthRolePO.builder() + .id(id) + .name(name) + .taxAgentId(po.getTaxAgentId()) + .updateTime(now) + .build(); + getAuthRoleMapper().updateIgnoreNull(newPo); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(taxAgentId + ""); + loggerContext.setTargetName("角色:" + name); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新角色")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新角色")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(newPo); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + } + + return po.getId(); + } + + @Override + public void deleteRole(Long id) { + AuthRolePO po = getAuthRoleMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + getAuthMemberMapper().deleteByRoleId(id); + getAuthRoleMapper().deleteByIds(Collections.singleton(id)); + + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getTaxAgentId() + ""); + loggerContext.setTargetName("角色:" + po.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + } +} diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java new file mode 100644 index 000000000..45549121f --- /dev/null +++ b/src/com/engine/salary/web/AuthController.java @@ -0,0 +1,77 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.wrapper.AuthWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 数据采集-其他免税扣除 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class AuthController { + + private AuthWrapper getAuthWrapper(User user) { + return ServiceUtil.getService(AuthWrapper.class, user); + } + + @POST + @Path("/role/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthRoleSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveRole, param); + } + + @POST + @Path("/role/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::deleteRole, id); + } + + @POST + @Path("/member/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveMember, param); + } + + @POST + @Path("/member/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::deleteMember, id); + } + + @POST + @Path("/member/sync") + @Produces(MediaType.APPLICATION_JSON) + public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, roleId); + } + + +} diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java new file mode 100644 index 000000000..e9dfb10e3 --- /dev/null +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -0,0 +1,48 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.service.auth.AuthMemberService; +import com.engine.salary.service.auth.AuthMemberServiceImpl; +import com.engine.salary.service.auth.AuthRoleService; +import com.engine.salary.service.auth.AuthRoleServiceImpl; +import com.engine.salary.util.valid.ValidUtil; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + + +@Slf4j +public class AuthWrapper extends Service { + private AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } + + private AuthMemberService getAuthMemberService(User user) { + return ServiceUtil.getService(AuthMemberServiceImpl.class, user); + } + + public Long saveRole(AuthRoleSaveParam param) { + ValidUtil.doValidator(param); + return getAuthRoleService(user).saveRole(param); + } + + + public void deleteRole(Long id) { + getAuthRoleService(user).deleteRole(id); + } + + public Long saveMember(AuthMemberSaveParam param) { + ValidUtil.doValidator(param); + return getAuthMemberService(user).saveMember(param); + } + + public void deleteMember(Long id) { + getAuthMemberService(user).deleteMember(id); + } + + public void syncMember(Long roleId) { + getAuthMemberService(user).syncMember(roleId); + } +} diff --git a/src/com/engine/salary/wrapper/RoleWrapper.java b/src/com/engine/salary/wrapper/RoleWrapper.java new file mode 100644 index 000000000..38f06dce0 --- /dev/null +++ b/src/com/engine/salary/wrapper/RoleWrapper.java @@ -0,0 +1,24 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.service.OtherDeductionService; +import com.engine.salary.service.impl.OtherDeductionServiceImpl; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.User; + +/** + * 角色 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class RoleWrapper extends Service { + private OtherDeductionService getOtherDeductionService(User user) { + return ServiceUtil.getService(OtherDeductionServiceImpl.class, user); + } + +} From e30ae5a2a1bddbf43b886b61745f26679b7d27eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 26 Jul 2024 14:30:14 +0800 Subject: [PATCH 002/184] =?UTF-8?q?=E6=88=90=E5=91=98=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/param/AuthMemberSaveParam.java | 7 +- .../salary/entity/auth/po/AuthMemberPO.java | 13 ++- .../salary/entity/auth/po/AuthRoleEmpPO.java | 61 +++++++++++++ .../salary/entity/auth/po/AuthRolePO.java | 17 +++- .../salary/mapper/auth/AuthMemberMapper.xml | 22 ++--- .../salary/mapper/auth/AuthRoleEmpMapper.java | 85 +++++++++++++++++++ .../service/auth/AuthMemberServiceImpl.java | 29 ++++++- 7 files changed, 209 insertions(+), 25 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java index 4e8f67351..feb0d2fde 100644 --- a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -16,10 +16,7 @@ public class AuthMemberSaveParam { private Integer targetType; - private Long targetId; + private String targetId; - /** - * 表达式,为sql预留 - */ - private String formula; + private String targetName; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java index b7e6ed055..a0c7b4a6d 100644 --- a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java +++ b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java @@ -33,31 +33,36 @@ public class AuthMemberPO { * 对象id */ @ElogTransform( name="对象id" ) - private Long targetId; + private String targetId; /** - * 表达式 + * 对象 */ - @ElogTransform( name="表达式" ) - private String formula; + @ElogTransform( name="对象显示名" ) + private String targetName; /** * 创建人 */ + @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集合 diff --git a/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java b/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java new file mode 100644 index 000000000..f3963f3f7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthRoleEmpPO.java @@ -0,0 +1,61 @@ +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 AuthRoleEmpPO { + @ElogTransform(name = "") + 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/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index 9ca15d1e5..e2c5cd39d 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -16,38 +16,49 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -@ElogTransform( name="角色" ) +@ElogTransform(name = "角色") public class AuthRolePO { private Long id; /** * 名称 */ - @ElogTransform( name="名称" ) + @ElogTransform(name = "名称") private String name; + /** * 个税扣缴义务人id */ - @ElogTransform( name="个税扣缴义务人id" ) + @ElogTransform(name = "个税扣缴义务人id") private Long taxAgentId; + /** * 创建人 */ + @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集合 diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml index 24adb81ac..c9ea254ce 100644 --- a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@ , t.role_id , t.target_type , t.target_id - , t.formula + , t.target_name , t.creator , t.create_time , t.update_time @@ -62,8 +62,8 @@ AND target_id = #{targetId} - - AND formula = #{formula} + + AND target_name = #{targetName} AND creator = #{creator} @@ -107,8 +107,8 @@ target_id, - - formula, + + target_name, creator, @@ -139,8 +139,8 @@ #{targetId}, - - #{formula}, + + #{targetName}, #{creator}, @@ -167,7 +167,7 @@ role_id=#{roleId}, target_type=#{targetType}, target_id=#{targetId}, - formula=#{formula}, + target_name=#{targetName}, creator=#{creator}, create_time=#{createTime}, update_time=#{updateTime}, @@ -191,8 +191,8 @@ target_id=#{targetId}, - - formula=#{formula}, + + target_name=#{targetName}, creator=#{creator}, diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java new file mode 100644 index 000000000..2bdb76754 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java @@ -0,0 +1,85 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthRoleEmpPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleEmpMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthRoleEmpPO authRoleEmp); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthRoleEmpPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authRoleEmp 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthRoleEmpPO authRoleEmp); + + /** + * 批量插入 + * + * @param authRoleEmp + */ + void batchInsert(@Param("collection") List authRoleEmp); + + /** + * 修改,修改所有字段 + * + * @param authRoleEmp 修改的记录 + * @return 返回影响行数 + */ + int update(AuthRoleEmpPO authRoleEmp); + + /** + * 修改,忽略null字段 + * + * @param authRoleEmp 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthRoleEmpPO authRoleEmp); + + /** + * 删除记录 + * + * @param authRoleEmp 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthRoleEmpPO authRoleEmp); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 5c68944ff..8a15ea290 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -12,6 +12,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; +import com.engine.salary.mapper.auth.AuthRoleEmpMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.TaxAgentServiceImpl; @@ -22,6 +23,7 @@ import weaver.hrm.User; import java.util.Collections; import java.util.Date; +import java.util.List; public class AuthMemberServiceImpl extends Service implements AuthMemberService { @@ -34,6 +36,10 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService return MapperProxyFactory.getProxy(AuthRoleMapper.class); } + private AuthRoleEmpMapper getAuthRoleEmpMapper() { + return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class); + } + private TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); @@ -48,13 +54,12 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService throw new SalaryRunTimeException("角色不存在!"); } - Date now = new Date(); AuthMemberPO po = AuthMemberPO.builder() .id(IdGenerator.generate()) .targetId(param.getTargetId()) .targetType(param.getTargetType()) - .formula(param.getFormula()) + .targetName(param.getTargetName()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -100,6 +105,26 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService @Override public void syncMember(Long roleId) { + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + //1、获取成员 + List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); + for (AuthMemberPO member : members) { + member.getTargetId(); + + + } + + + //2、获取人员 + + //3、更新成员关系 + + getAuthRoleEmpMapper().deleteByRoleId(roleId); + } } From 0b091eee12e72b405eb85fdfa134842546db2745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 26 Jul 2024 14:32:35 +0800 Subject: [PATCH 003/184] =?UTF-8?q?=E6=88=90=E5=91=98=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/param/AuthMemberSaveParam.java | 2 +- .../salary/entity/auth/po/AuthMemberPO.java | 6 ++--- .../salary/mapper/auth/AuthMemberMapper.xml | 22 +++++++++---------- .../service/auth/AuthMemberServiceImpl.java | 6 +++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java index feb0d2fde..f6ef3815f 100644 --- a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -16,7 +16,7 @@ public class AuthMemberSaveParam { private Integer targetType; - private String targetId; + private String target; private String targetName; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java index a0c7b4a6d..218c1b3ae 100644 --- a/src/com/engine/salary/entity/auth/po/AuthMemberPO.java +++ b/src/com/engine/salary/entity/auth/po/AuthMemberPO.java @@ -30,10 +30,10 @@ public class AuthMemberPO { @ElogTransform( name="对象类型" ) private Integer targetType; /** - * 对象id + * 对象 */ - @ElogTransform( name="对象id" ) - private String targetId; + @ElogTransform( name="对象" ) + private String target; /** * 对象 */ diff --git a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml index c9ea254ce..8bde81000 100644 --- a/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMemberMapper.xml @@ -5,7 +5,7 @@ - + @@ -19,7 +19,7 @@ t.id , t.role_id , t.target_type - , t.target_id + , t.target , t.target_name , t.creator , t.create_time @@ -59,8 +59,8 @@ AND target_type = #{targetType} - - AND target_id = #{targetId} + + AND target = #{target} AND target_name = #{targetName} @@ -104,8 +104,8 @@ target_type, - - target_id, + + target, target_name, @@ -136,8 +136,8 @@ #{targetType}, - - #{targetId}, + + #{target}, #{targetName}, @@ -166,7 +166,7 @@ role_id=#{roleId}, target_type=#{targetType}, - target_id=#{targetId}, + target=#{target}, target_name=#{targetName}, creator=#{creator}, create_time=#{createTime}, @@ -188,8 +188,8 @@ target_type=#{targetType}, - - target_id=#{targetId}, + + target=#{target}, target_name=#{targetName}, diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 8a15ea290..37b3bf70b 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -57,7 +57,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService Date now = new Date(); AuthMemberPO po = AuthMemberPO.builder() .id(IdGenerator.generate()) - .targetId(param.getTargetId()) + .target(param.getTarget()) .targetType(param.getTargetType()) .targetName(param.getTargetName()) .creator((long) user.getUID()) @@ -113,7 +113,9 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService //1、获取成员 List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); for (AuthMemberPO member : members) { - member.getTargetId(); + + + String targetId = member.getTarget(); } From 76543c6021acbebd78322ea7acc7801062f6ec63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 26 Jul 2024 16:35:51 +0800 Subject: [PATCH 004/184] =?UTF-8?q?=E6=88=90=E5=91=98=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/enums/auth/TargetTypeEnum.java | 79 +++++ .../salary/mapper/auth/AuthRoleEmpMapper.xml | 301 ++++++++++++++++++ .../mapper/datacollection/EmployMapper.java | 6 + .../mapper/datacollection/EmployMapper.xml | 73 +++-- .../salary/service/SalaryEmployeeService.java | 9 + .../service/auth/AuthMemberServiceImpl.java | 41 ++- .../impl/SalaryEmployeeServiceImpl.java | 12 + 7 files changed, 488 insertions(+), 33 deletions(-) create mode 100644 src/com/engine/salary/enums/auth/TargetTypeEnum.java create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml diff --git a/src/com/engine/salary/enums/auth/TargetTypeEnum.java b/src/com/engine/salary/enums/auth/TargetTypeEnum.java new file mode 100644 index 000000000..591c6b5f8 --- /dev/null +++ b/src/com/engine/salary/enums/auth/TargetTypeEnum.java @@ -0,0 +1,79 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; + +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 对象类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:sql + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum TargetTypeEnum implements BaseEnum { + + + emp(1, "人员", 87627) { + @Override + public List getEmpIds(Set targets) { + return targets.stream().map(Long::valueOf).collect(Collectors.toList()); + } + }, + department(2, "部门", 87626) { + @Override + public List getEmpIds(Set targets) { + List deptIds = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByDepartment(deptIds); + } + }; +// post(3, "岗位", 87626), +// branch(4, "分部", 87626), +// role(5, "角色", 87626), +// sql(6, "sql", 87626); + + + private Integer value; + private String defaultLabel; + private int labelId; + + TargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract List getEmpIds(Set targets); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static TargetTypeEnum parseByValue(int value) { + for (TargetTypeEnum typeEnum : TargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml new file mode 100644 index 000000000..ad9393cdc --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.employee_id + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role_emp + + + + id, + + + role_id, + + + employee_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{employeeId}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + + INSERT INTO hrsa_auth_role_emp + ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + + INSERT INTO hrsa_auth_role_emp ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.roleId,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + + + INSERT INTO hrsa_auth_role_emp ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_auth_role_emp + + role_id=#{roleId}, + employee_id=#{employeeId}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_emp + + + role_id=#{roleId}, + + + employee_id=#{employeeId}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_emp + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + + UPDATE hrsa_auth_role_emp + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + UPDATE hrsa_auth_role_emp + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index 238e8d74f..38a436c6b 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -158,4 +158,10 @@ public interface EmployMapper { * @return */ List listBySubCompanyOrDepartment(@Param("subCompanyIds") List subCompanyIds, @Param("departmentIds") List departmentIds); + + List listBySubCompany(@Param("subCompanyIds") List subCompanyIds); + + List listByDepartment(@Param("departmentIds") List departmentIds); + + List listByJob(@Param("jobIds") List jobIds); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index ad6b6b38c..6ce1d0635 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -10,7 +10,7 @@ e.mobile, e.workcode, e.certificatenum as idNo, - 'false' as extEmp + 'false' as extEmp from hrmresource e left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) @@ -36,7 +36,8 @@
- select e.id as employeeId, e.lastname as username, e.certificatenum as idNo, @@ -224,11 +225,11 @@ e.companystartdate as companystartdate, e.mobile as mobile, e.enddate as dismissdate, - sc.SUBCOMPANYNAME as subcompanyName, - sc.id as subcompanyid + sc.SUBCOMPANYNAME as subcompanyName, + sc.id as subcompanyid from hrmresource e left join hrmdepartment d on e.departmentid = d.id - left join HrmSubCompany sc on e.SUBCOMPANYID1=sc.id + left join HrmSubCompany sc on e.SUBCOMPANYID1 = sc.id left join hrmjobtitles c on e.jobtitle = c.id where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) @@ -296,7 +297,7 @@ d.DEPARTMENTNAME as departmentName, e.jobtitle as jobtitleId from hrmresource e - left join hrmdepartment d on e.departmentid = d.id + left join hrmdepartment d on e.departmentid = d.id where e.status not in (7) and (e.accounttype is null or e.accounttype = 0) @@ -438,23 +439,23 @@ @@ -468,7 +469,7 @@ e.mobile as mobile, e.enddate as dismissdate from hrmresource e - where e.status in (4,5,6) + where e.status in (4, 5, 6) AND e.enddate >= #{dismissDate} @@ -492,7 +493,8 @@
- select e.id as employeeId, e.username as username from hrsa_external_employee e @@ -564,9 +566,9 @@ select - e.RESOURCEID as employeeId, - e.SUBCOMPANYID as subcompanyid, - e.DEPARTMENTID as departmentId + e.RESOURCEID as employeeId, + e.SUBCOMPANYID as subcompanyid, + e.DEPARTMENTID as departmentId from hrmresourcevirtual e left join hrmresource h on e.RESOURCEID=h.id where h.status not in (7) @@ -594,4 +596,37 @@
+ + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index cd6be6db8..1def2435e 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -150,21 +150,30 @@ public interface SalaryEmployeeService { /** * 根据虚拟部门获取人员信息 + * * @param virtualDepartmentIds */ List getVirtualEmpByVirtualDepIds(List virtualDepartmentIds); /** * 根据虚拟分部获取人员信息 + * * @param virtualSubCompanyIds */ List getVirtualEmpByVirtualSubCompanyIds(List virtualSubCompanyIds); /** * 根据部门或者分部查询人员 + * * @param subCompanyIds * @param departmentIds * @return */ List listBySubCompanyOrDepartment(List subCompanyIds, List departmentIds); + + List listBySubCompany(List subCompanyIds); + + List listByDepartment(List departmentIds); + + List listByJob(List jobIds); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 37b3bf70b..2e57421e6 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -7,23 +7,25 @@ import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.TargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; import com.engine.salary.mapper.auth.AuthRoleEmpMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import weaver.hrm.User; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; public class AuthMemberServiceImpl extends Service implements AuthMemberService { @@ -57,6 +59,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService Date now = new Date(); AuthMemberPO po = AuthMemberPO.builder() .id(IdGenerator.generate()) + .roleId(param.getRoleId()) .target(param.getTarget()) .targetType(param.getTargetType()) .targetName(param.getTargetName()) @@ -112,21 +115,31 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService //1、获取成员 List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); - for (AuthMemberPO member : members) { - - - String targetId = member.getTarget(); - - - } - + Map> targetTypeMap = SalaryEntityUtil.group2Map(members, AuthMemberPO::getTargetType, AuthMemberPO::getTarget); //2、获取人员 + Set empIds = new HashSet<>(); + for (Integer targetType : targetTypeMap.keySet()) { + Set targetIds = targetTypeMap.get(targetType); + List ids = TargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); + empIds.addAll(ids); + } //3、更新成员关系 - getAuthRoleEmpMapper().deleteByRoleId(roleId); - - + Date now = new Date(); + List roleEmpPOS = empIds.stream() + .map(empId -> AuthRoleEmpPO.builder() + .id(IdGenerator.generate()) + .employeeId(empId) + .roleId(roleId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + getAuthRoleEmpMapper().batchInsert(roleEmpPOS); } } diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 5b3d21231..df10f3269 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -514,4 +514,16 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee } return SalaryI18nUtil.i18nList(employeeList); } + @Override + public List listBySubCompany(List subCompanyIds) { + return getEmployMapper().listBySubCompany(subCompanyIds); + } + @Override + public List listByDepartment(List departmentIds) { + return getEmployMapper().listByDepartment(departmentIds); + } + @Override + public List listByJob(List jobIds) { + return getEmployMapper().listByJob(jobIds); + } } From a976dbc9c5c92d77cbb827b1ee7f7bc4c8e8bae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 29 Jul 2024 09:46:01 +0800 Subject: [PATCH 005/184] =?UTF-8?q?=E6=88=90=E5=91=98=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/常用查询.md | 14 ++++- .../salary/enums/auth/TargetTypeEnum.java | 54 ++++++++++++++++--- .../service/auth/AuthMemberServiceImpl.java | 7 ++- 3 files changed, 67 insertions(+), 8 deletions(-) diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index 13ba2242f..b294488fd 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -18,4 +18,16 @@ left join hrmresource e on e.id= result.employee_id left join hrsa_tax_agent t on a.tax_agent_id=t.id where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 and a.employee_id=人员id and t.name=扣缴义务人名称 - c.name='基本工资' order by effective_time desc \ No newline at end of file + c.name='基本工资' order by effective_time desc + + +# 删除系统项目 +UPDATE set hrsa_sys_salary_item where delete_type =3 where delete_type =0; + +update hrsa_salary_sob_default_item set delete_type =3 where delete_type =0; + + +update hrsa_salary_sob_item set delete_type= 3 where delete_type =0 and salary_item_id in (select id from hrsa_salary_item where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal') +); + +UPDATE hrsa_salary_item set delete_type = 3 where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal'); \ No newline at end of file diff --git a/src/com/engine/salary/enums/auth/TargetTypeEnum.java b/src/com/engine/salary/enums/auth/TargetTypeEnum.java index 591c6b5f8..63c36dc09 100644 --- a/src/com/engine/salary/enums/auth/TargetTypeEnum.java +++ b/src/com/engine/salary/enums/auth/TargetTypeEnum.java @@ -1,9 +1,13 @@ package com.engine.salary.enums.auth; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.salary.enums.BaseEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import weaver.conn.RecordSet; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Set; @@ -20,24 +24,62 @@ import java.util.stream.Collectors; public enum TargetTypeEnum implements BaseEnum { - emp(1, "人员", 87627) { + EMP(1, "人员", 87627) { @Override public List getEmpIds(Set targets) { return targets.stream().map(Long::valueOf).collect(Collectors.toList()); } }, - department(2, "部门", 87626) { + DEPARTMENT(2, "部门", 87626) { @Override public List getEmpIds(Set targets) { List deptIds = targets.stream().map(Long::valueOf).collect(Collectors.toList()); SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); return salaryEmployeeService.listByDepartment(deptIds); } + }, + JOB(3, "岗位", 87626) { + @Override + public List getEmpIds(Set targets) { + List ids = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByJob(ids); + } + }, + SUBCOMPANY(4, "分部", 87626) { + @Override + public List getEmpIds(Set targets) { + List ids = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listBySubCompany(ids); + } + }, + ROLE(5, "角色", 87626) { + @Override + public List getEmpIds(Set targets) { + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List memberList = new ArrayList<>(); + targets.forEach(roleId -> { + memberList.addAll(hrmCommonService.getRoleMembers(roleId, "2")); + }); + return memberList.stream().map(id -> Long.parseLong(id.toString()) ).collect(Collectors.toList()); + } + }, + SQL(6, "sql", 87626) { + @Override + public List getEmpIds(Set targets) { + List memberList = new ArrayList<>(); + targets.forEach(sql -> { + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + }); + return memberList; + } }; -// post(3, "岗位", 87626), -// branch(4, "分部", 87626), -// role(5, "角色", 87626), -// sql(6, "sql", 87626); private Integer value; diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 2e57421e6..e1f23019a 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.auth; +import cn.hutool.core.collection.CollUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -22,6 +23,7 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; import weaver.hrm.User; import java.util.*; @@ -140,6 +142,9 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build()) .collect(Collectors.toList()); - getAuthRoleEmpMapper().batchInsert(roleEmpPOS); + if (CollUtil.isNotEmpty(roleEmpPOS)) { + List> partition = Lists.partition(roleEmpPOS, 100); + partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); + } } } From 63012fd62a964520244e1978cec8957b1ac693ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 29 Jul 2024 13:28:46 +0800 Subject: [PATCH 006/184] =?UTF-8?q?=E6=88=90=E5=91=98=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/authItem.xml | 35 --------- resource/WEB-INF/salaryoptconfig.xml | 35 +++++++++ .../salary/entity/auth/dto/AuthMemberDTO.java | 23 ++++++ .../salary/entity/auth/dto/AuthOptDTO.java | 73 +++++++++++++++++++ .../salary/entity/auth/dto/RoleDTO.java | 33 --------- .../auth/param/AuthMemberQueryParam.java | 18 +++++ .../service/auth/AuthMemberService.java | 10 +++ .../service/auth/AuthMemberServiceImpl.java | 5 ++ src/com/engine/salary/web/AuthController.java | 20 +++++ .../engine/salary/wrapper/AuthWrapper.java | 21 ++++++ 10 files changed, 205 insertions(+), 68 deletions(-) delete mode 100644 resource/WEB-INF/prop/authItem.xml create mode 100644 resource/WEB-INF/salaryoptconfig.xml create mode 100644 src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java create mode 100644 src/com/engine/salary/entity/auth/dto/AuthOptDTO.java delete mode 100644 src/com/engine/salary/entity/auth/dto/RoleDTO.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java diff --git a/resource/WEB-INF/prop/authItem.xml b/resource/WEB-INF/prop/authItem.xml deleted file mode 100644 index ab78ef9d4..000000000 --- a/resource/WEB-INF/prop/authItem.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml new file mode 100644 index 000000000..c7e3ed604 --- /dev/null +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java new file mode 100644 index 000000000..c0ff5bc19 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java @@ -0,0 +1,23 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthMemberDTO { + + private Long id; + + @TableTitle(title = "对象类型",dataIndex = "targetType",key = "targetType") + private String targetType; + + @TableTitle(title = "对象",dataIndex = "targetName",key = "targetName") + private String targetName; + +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java new file mode 100644 index 000000000..547e6fb5c --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java @@ -0,0 +1,73 @@ +package com.engine.salary.entity.auth.dto; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamImplicit; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@XStreamAlias("config") +public class AuthOptDTO { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "module") + private List module; + +} + +@Data +class module { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "page") + private List pages; +} + +@Data +class page { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "opt") + private List opts; +} + +@Data +class opt { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamAlias("able") + @XStreamAsAttribute + private boolean able; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/RoleDTO.java b/src/com/engine/salary/entity/auth/dto/RoleDTO.java deleted file mode 100644 index ce10dbdd4..000000000 --- a/src/com/engine/salary/entity/auth/dto/RoleDTO.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.engine.salary.entity.auth.dto; - -import com.engine.salary.util.valid.DataCheck; -import com.engine.salary.util.valid.RuntimeTypeEnum; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class RoleDTO { - - @JsonSerialize(using = ToStringSerializer.class) - @DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id不允许为空") - private Long id; - - - @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") - private String name; - - /** - * 扣缴义务人id - */ - @DataCheck(require = true, message = "扣缴义务人不允许为空") - private Long taxAgentId; - - -} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java new file mode 100644 index 000000000..6995d1645 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.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 AuthMemberQueryParam extends BaseQueryParam { + + private Long roleId; + +} diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index 821fc0930..71f4d7141 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -1,6 +1,9 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.po.AuthMemberPO; + +import java.util.List; /** * 成员 @@ -11,6 +14,12 @@ import com.engine.salary.entity.auth.param.AuthMemberSaveParam; * @version 1.0 **/ public interface AuthMemberService { + /** + * 成员列表 + * @param roleId + * @return + */ + List memberList(Long roleId); /** * 添加成员 @@ -30,4 +39,5 @@ public interface AuthMemberService { * @param roleId */ void syncMember(Long roleId); + } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index e1f23019a..260d78e5b 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -50,6 +50,11 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } + @Override + public List memberList(Long roleId) { + return getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); + } + @Override public Long saveMember(AuthMemberSaveParam param) { diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 45549121f..50fea8860 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -1,9 +1,12 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.auth.dto.AuthMemberDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.AuthWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; @@ -49,6 +52,14 @@ public class AuthController { return new ResponseResult(user).run(getAuthWrapper(user)::deleteRole, id); } + @POST + @Path("/member/list") + @Produces(MediaType.APPLICATION_JSON) + public String memberList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::memberList, param); + } + @POST @Path("/member/save") @Produces(MediaType.APPLICATION_JSON) @@ -74,4 +85,13 @@ public class AuthController { } +// @GET +// @Path("/opt/tree") +// @Produces(MediaType.APPLICATION_JSON) +// public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { +// User user = HrmUserVarify.getUser(request, response); +// return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, roleId); +// } + + } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index e9dfb10e3..8f25108a2 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -2,16 +2,25 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.auth.dto.AuthMemberDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.enums.auth.TargetTypeEnum; import com.engine.salary.service.auth.AuthMemberService; import com.engine.salary.service.auth.AuthMemberServiceImpl; import com.engine.salary.service.auth.AuthRoleService; import com.engine.salary.service.auth.AuthRoleServiceImpl; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import lombok.extern.slf4j.Slf4j; import weaver.hrm.User; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j public class AuthWrapper extends Service { @@ -33,6 +42,17 @@ public class AuthWrapper extends Service { getAuthRoleService(user).deleteRole(id); } + public PageInfo memberList(AuthMemberQueryParam param) { + List authMemberPOS = getAuthMemberService(user).memberList(param.getRoleId()); + List dtos = authMemberPOS.stream().map(po -> AuthMemberDTO.builder() + .id(po.getId()) + .targetType(TargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) + .targetName(po.getTargetName()) + .build()) + .collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthMemberDTO.class); + } + public Long saveMember(AuthMemberSaveParam param) { ValidUtil.doValidator(param); return getAuthMemberService(user).saveMember(param); @@ -45,4 +65,5 @@ public class AuthWrapper extends Service { public void syncMember(Long roleId) { getAuthMemberService(user).syncMember(roleId); } + } From fad1402b067a1e57d7b84ea7cd0e1038de2a5f2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 29 Jul 2024 16:00:27 +0800 Subject: [PATCH 007/184] =?UTF-8?q?=E6=9D=83=E9=99=90=E9=A1=B9=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/dto/AuthOptDTO.java | 86 +++---- .../entity/auth/param/AuthOptSaveParam.java | 25 ++ .../salary/entity/auth/po/AuthOptPO.java | 75 ++++++ .../salary/mapper/auth/AuthOptMapper.java | 79 ++++++ .../salary/mapper/auth/AuthOptMapper.xml | 230 ++++++++++++++++++ .../salary/service/auth/AuthOptService.java | 29 +++ .../service/auth/AuthOptServiceImpl.java | 90 +++++++ src/com/engine/salary/web/AuthController.java | 28 ++- .../engine/salary/wrapper/AuthWrapper.java | 18 +- 9 files changed, 603 insertions(+), 57 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthOptPO.java create mode 100644 src/com/engine/salary/mapper/auth/AuthOptMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthOptMapper.xml create mode 100644 src/com/engine/salary/service/auth/AuthOptService.java create mode 100644 src/com/engine/salary/service/auth/AuthOptServiceImpl.java diff --git a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java index 547e6fb5c..c50e1bf33 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java @@ -25,49 +25,49 @@ public class AuthOptDTO { private String key; @XStreamImplicit(itemFieldName = "module") - private List module; + private List modules; + @Data + public static class Module { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "page") + private List pages; + + @Data + public static class Page { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamImplicit(itemFieldName = "opt") + private List opts; + + @Data + public static class Opt { + @XStreamAlias("name") + @XStreamAsAttribute + private String name; + + @XStreamAlias("key") + @XStreamAsAttribute + private String key; + + @XStreamAlias("able") + @XStreamAsAttribute + private boolean able; + } + } + } } -@Data -class module { - @XStreamAlias("name") - @XStreamAsAttribute - private String name; - - @XStreamAlias("key") - @XStreamAsAttribute - private String key; - - @XStreamImplicit(itemFieldName = "page") - private List pages; -} - -@Data -class page { - @XStreamAlias("name") - @XStreamAsAttribute - private String name; - - @XStreamAlias("key") - @XStreamAsAttribute - private String key; - - @XStreamImplicit(itemFieldName = "opt") - private List opts; -} - -@Data -class opt { - @XStreamAlias("name") - @XStreamAsAttribute - private String name; - - @XStreamAlias("key") - @XStreamAsAttribute - private String key; - - @XStreamAlias("able") - @XStreamAsAttribute - private boolean able; -} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java new file mode 100644 index 000000000..cea3df117 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java @@ -0,0 +1,25 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthOptSaveParam { + private Long roleId; + private List opts; + + @Data + public static class Opt { + private String page; + + private String opt; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthOptPO.java b/src/com/engine/salary/entity/auth/po/AuthOptPO.java new file mode 100644 index 000000000..10da3aed9 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthOptPO.java @@ -0,0 +1,75 @@ +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 AuthOptPO { + @ElogTransform(name = "id") + private Long id; + + /** + * 角色id + */ + @ElogTransform(name = "角色id") + private Long roleId; + + /** + * 页面 + */ + @ElogTransform(name = "页面") + private String page; + + /** + * 权限项 + */ + @ElogTransform(name = "权限项") + private String opt; + + /** + * 创建人 + */ + @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/mapper/auth/AuthOptMapper.java b/src/com/engine/salary/mapper/auth/AuthOptMapper.java new file mode 100644 index 000000000..7dcc172ea --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthOptMapper.java @@ -0,0 +1,79 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthOptPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthOptMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthOptPO authOpt); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthOptPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authOpt 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthOptPO authOpt); + + /** + * 修改,修改所有字段 + * + * @param authOpt 修改的记录 + * @return 返回影响行数 + */ + int update(AuthOptPO authOpt); + + /** + * 修改,忽略null字段 + * + * @param authOpt 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthOptPO authOpt); + + /** + * 删除记录 + * + * @param authOpt 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthOptPO authOpt); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthOptMapper.xml b/src/com/engine/salary/mapper/auth/AuthOptMapper.xml new file mode 100644 index 000000000..8ee16cf89 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthOptMapper.xml @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.page + , t.opt + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_opt + + + + id, + + + role_id, + + + page, + + + opt, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{page}, + + + #{opt}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_opt + + role_id=#{roleId}, + page=#{page}, + opt=#{opt}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_opt + + + role_id=#{roleId}, + + + page=#{page}, + + + opt=#{opt}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_opt + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_opt + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_auth_opt + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthOptService.java b/src/com/engine/salary/service/auth/AuthOptService.java new file mode 100644 index 000000000..82a6f3e4f --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthOptService.java @@ -0,0 +1,29 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; + +/** + * 权限项 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthOptService { + /** + * 权限树 + * @param roleId + * @return + */ + AuthOptDTO optTree(Long roleId); + + /** + * 保存权限项 + * @param param + * @return + */ + void save(AuthOptSaveParam param); + +} diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java new file mode 100644 index 000000000..ed96d0b62 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -0,0 +1,90 @@ +package com.engine.salary.service.auth; + +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; +import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthOptMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.security.AnyTypePermission; +import weaver.general.GCONST; + +import java.io.File; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class AuthOptServiceImpl extends Service implements AuthOptService { + + + + private AuthOptMapper getAuthOptMapper() { + return MapperProxyFactory.getProxy(AuthOptMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + + @Override + public AuthOptDTO optTree(Long roleId) { + List authOptPOS = getAuthOptMapper().listSome(AuthOptPO.builder().roleId(roleId).build()); + Map> pageOpts = SalaryEntityUtil.group2Map(authOptPOS, AuthOptPO::getPage, AuthOptPO::getOpt); + XStream xStream = new XStream(); + String resource = GCONST.getRootPath() + "WEB-INF" + File.separatorChar + "salaryoptconfig.xml"; + File file = new File("H:\\code\\salary\\resource\\WEB-INF\\salaryoptconfig.xml"); + + xStream.addPermission(AnyTypePermission.ANY); + xStream.processAnnotations(AuthOptDTO.class); + AuthOptDTO dto = (AuthOptDTO)xStream.fromXML(file); + + dto.getModules().forEach(module -> { + module.getPages().forEach(page -> { + Set opts = pageOpts.get(page.getKey()); + page.getOpts().forEach(opt -> { + if(opts.contains(opt.getKey())){ + opt.setAble(true); + } + }); + }); + }); + + return dto; + } + + @Override + public void save(AuthOptSaveParam param) { + Date now = new Date(); + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + getAuthOptMapper().deleteByRoleId(roleId); + + param.getOpts().forEach(opt -> { + AuthOptPO po = AuthOptPO.builder() + .id(IdGenerator.generate()) + .roleId(roleId) + .page(opt.getPage()) + .opt(opt.getOpt()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthOptMapper().insertIgnoreNull(po); + }); + } +} diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 50fea8860..a165bbd03 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -2,8 +2,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.auth.dto.AuthMemberDTO; +import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; @@ -15,9 +17,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; @@ -85,13 +85,21 @@ public class AuthController { } -// @GET -// @Path("/opt/tree") -// @Produces(MediaType.APPLICATION_JSON) -// public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { -// User user = HrmUserVarify.getUser(request, response); -// return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, roleId); -// } + @GET + @Path("/opt/tree") + @Produces(MediaType.APPLICATION_JSON) + public String optTree(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "roleId") Long roleId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::optTree, roleId); + } + + @POST + @Path("/opt/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveOpt(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthOptSaveParam opt) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveOpt, opt); + } } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 8f25108a2..0098220e5 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -3,15 +3,14 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.auth.dto.AuthMemberDTO; +import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthOptSaveParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.enums.auth.TargetTypeEnum; -import com.engine.salary.service.auth.AuthMemberService; -import com.engine.salary.service.auth.AuthMemberServiceImpl; -import com.engine.salary.service.auth.AuthRoleService; -import com.engine.salary.service.auth.AuthRoleServiceImpl; +import com.engine.salary.service.auth.*; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; @@ -32,6 +31,10 @@ public class AuthWrapper extends Service { return ServiceUtil.getService(AuthMemberServiceImpl.class, user); } + private AuthOptService getAuthOptService(User user) { + return ServiceUtil.getService(AuthOptServiceImpl.class, user); + } + public Long saveRole(AuthRoleSaveParam param) { ValidUtil.doValidator(param); return getAuthRoleService(user).saveRole(param); @@ -66,4 +69,11 @@ public class AuthWrapper extends Service { getAuthMemberService(user).syncMember(roleId); } + public AuthOptDTO optTree(Long roleId) { + return getAuthOptService(user).optTree(roleId); + } + + public void saveOpt(AuthOptSaveParam opt) { + getAuthOptService(user).save(opt); + } } From 87a5eb59c6b44c80e6aa1911e3a75cef1192977b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 30 Jul 2024 17:45:02 +0800 Subject: [PATCH 008/184] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/dto/AuthDataDTO.java | 26 ++ .../salary/entity/auth/dto/AuthMemberDTO.java | 5 +- .../entity/auth/param/AuthDataQueryParam.java | 18 ++ .../entity/auth/param/AuthDataSaveParam.java | 36 +++ .../auth/param/AuthMemberSaveParam.java | 3 +- .../salary/entity/auth/po/AuthDataPO.java | 90 ++++++ .../salary/entity/auth/po/AuthRoleDataPO.java | 69 +++++ .../salary/enums/auth/DataLinkEnum.java | 79 +++++ .../salary/enums/auth/DataTargetTypeEnum.java | 164 +++++++++++ .../enums/auth/LoginPersonTargetTypeEnum.java | 123 ++++++++ ...ypeEnum.java => MemberTargetTypeEnum.java} | 14 +- .../salary/mapper/auth/AuthDataMapper.java | 72 +++++ .../salary/mapper/auth/AuthDataMapper.xml | 269 ++++++++++++++++++ .../mapper/auth/AuthRoleDataMapper.java | 79 +++++ .../salary/service/auth/AuthDataService.java | 37 +++ .../service/auth/AuthDataServiceImpl.java | 154 ++++++++++ .../service/auth/AuthMemberService.java | 8 +- .../service/auth/AuthMemberServiceImpl.java | 14 +- src/com/engine/salary/web/AuthController.java | 30 +- .../engine/salary/wrapper/AuthWrapper.java | 69 ++++- 20 files changed, 1320 insertions(+), 39 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/AuthDataDTO.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthDataPO.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthRoleDataPO.java create mode 100644 src/com/engine/salary/enums/auth/DataLinkEnum.java create mode 100644 src/com/engine/salary/enums/auth/DataTargetTypeEnum.java create mode 100644 src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java rename src/com/engine/salary/enums/auth/{TargetTypeEnum.java => MemberTargetTypeEnum.java} (89%) create mode 100644 src/com/engine/salary/mapper/auth/AuthDataMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthDataMapper.xml create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java create mode 100644 src/com/engine/salary/service/auth/AuthDataService.java create mode 100644 src/com/engine/salary/service/auth/AuthDataServiceImpl.java 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 ids = hrmCommonService.getRoleMembers(target, "2"); + ids.forEach(id -> memberList.add(Long.parseLong(id.toString()))); + return memberList; + } + }, + LEVEL(6, "安全级别", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + String[] split = target.split("-"); + int minLevel = split[0] == null ? 0 : Integer.parseInt(split[0]); + int maxLevel = split[1] == null ? 100 : Integer.parseInt(split[1]); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute("select id from hrmresource where level between " + minLevel + " and " + maxLevel + " and status not in (7) and (accounttype is null or accounttype = 0) ")) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + ALL(7, "所有人", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute("select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) ")) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + LOGIN_PERSON(8, "登录人", 87626) { + //参数1,登录人信息 + @Override + public Set getEmpIds(String target, Object... param) { + LoginPersonTargetTypeEnum loginPersonTargetTypeEnum = LoginPersonTargetTypeEnum.parseByValue(Integer.parseInt(target)); + return loginPersonTargetTypeEnum.getEmpIds((DataCollectionEmployee) param[0]); + } + }, + SOB(9, "账套", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + List employeeList = salaryEmployeeService.listBySalarySobId(Long.valueOf(target)); + return SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); + } + }, + SQL(10, "sql", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + //参数1,登录人信息 + DataCollectionEmployee employee = (DataCollectionEmployee) param[0]; + Set memberList = new HashSet<>(); + target = target.replaceAll("$uid$", Util.null2String(employee.getEmployeeId())); + RecordSet rs = new RecordSet(); + if (rs.execute(target)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + DataTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract Set getEmpIds(String target, Object... param); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static DataTargetTypeEnum parseByValue(int value) { + for (DataTargetTypeEnum typeEnum : DataTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java b/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java new file mode 100644 index 000000000..75c97749e --- /dev/null +++ b/src/com/engine/salary/enums/auth/LoginPersonTargetTypeEnum.java @@ -0,0 +1,123 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import weaver.conn.RecordSet; + +import java.util.*; + +/** + * 登录人信息类型 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum LoginPersonTargetTypeEnum implements BaseEnum { + + + self(1, "本人", 87627) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + Set memberList = new HashSet<>(); + memberList.add(employee.getEmployeeId()); + return memberList; + } + }, + SUBORDINATE(2, "下属", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and managerstr like '%," + employee.getEmployeeId() + ",%' and "; + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + DEPARTMENT(3, "本部门", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and departmentid =" + employee.getDepartmentId(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + SUB_COMPANY(4, "本分部", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and subcompanyid1 =" + employee.getSubcompanyid(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }, + JOB(5, "本岗位", 87626) { + @Override + public Set getEmpIds(DataCollectionEmployee employee) { + String sql = "select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) and jobtitle =" + employee.getJobtitleId(); + Set memberList = new HashSet<>(); + RecordSet rs = new RecordSet(); + if (rs.execute(sql)) { + while (rs.next()) { + memberList.add(Long.parseLong(rs.getString("id"))); + } + } + return memberList; + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + LoginPersonTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract Set getEmpIds(DataCollectionEmployee employee); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static LoginPersonTargetTypeEnum parseByValue(int value) { + for (LoginPersonTargetTypeEnum typeEnum : LoginPersonTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/enums/auth/TargetTypeEnum.java b/src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java similarity index 89% rename from src/com/engine/salary/enums/auth/TargetTypeEnum.java rename to src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java index 63c36dc09..9c02cfef6 100644 --- a/src/com/engine/salary/enums/auth/TargetTypeEnum.java +++ b/src/com/engine/salary/enums/auth/MemberTargetTypeEnum.java @@ -14,14 +14,14 @@ import java.util.Set; import java.util.stream.Collectors; /** - * 对象类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:sql + * 成员类型,1:人员、2:部门、3:岗位、4:分部、5:角色、6:sql *

Copyright: Copyright (c) 2024

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ -public enum TargetTypeEnum implements BaseEnum { +public enum MemberTargetTypeEnum implements BaseEnum { EMP(1, "人员", 87627) { @@ -46,7 +46,7 @@ public enum TargetTypeEnum implements BaseEnum { return salaryEmployeeService.listByJob(ids); } }, - SUBCOMPANY(4, "分部", 87626) { + SUB_COMPANY(4, "分部", 87626) { @Override public List getEmpIds(Set targets) { List ids = targets.stream().map(Long::valueOf).collect(Collectors.toList()); @@ -62,7 +62,7 @@ public enum TargetTypeEnum implements BaseEnum { targets.forEach(roleId -> { memberList.addAll(hrmCommonService.getRoleMembers(roleId, "2")); }); - return memberList.stream().map(id -> Long.parseLong(id.toString()) ).collect(Collectors.toList()); + return memberList.stream().map(id -> Long.parseLong(id.toString())).collect(Collectors.toList()); } }, SQL(6, "sql", 87626) { @@ -86,7 +86,7 @@ public enum TargetTypeEnum implements BaseEnum { private String defaultLabel; private int labelId; - TargetTypeEnum(Integer value, String defaultLabel, int labelId) { + MemberTargetTypeEnum(Integer value, String defaultLabel, int labelId) { this.value = value; this.defaultLabel = defaultLabel; this.labelId = labelId; @@ -110,8 +110,8 @@ public enum TargetTypeEnum implements BaseEnum { return labelId; } - public static TargetTypeEnum parseByValue(int value) { - for (TargetTypeEnum typeEnum : TargetTypeEnum.values()) { + public static MemberTargetTypeEnum parseByValue(int value) { + for (MemberTargetTypeEnum typeEnum : MemberTargetTypeEnum.values()) { if (Objects.equals(typeEnum.getValue(), value)) { return typeEnum; } diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.java b/src/com/engine/salary/mapper/auth/AuthDataMapper.java new file mode 100644 index 000000000..f59636000 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthDataPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthDataMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthDataPO authData); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthDataPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authData 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthDataPO authData); + + /** + * 修改,修改所有字段 + * + * @param authData 修改的记录 + * @return 返回影响行数 + */ + int update(AuthDataPO authData); + + /** + * 修改,忽略null字段 + * + * @param authData 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthDataPO authData); + + /** + * 删除记录 + * + * @param authData 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthDataPO authData); + + /** + * 批量删除记录 + * + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml new file mode 100644 index 000000000..5a1c59d08 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.link + , t.target_type + , t.target + , t.target_name + , t.sorted_index + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_data + + + + id, + + + role_id, + + + link, + + + target_type, + + + target, + + + target_name, + + + sorted_index, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{link}, + + + #{targetType}, + + + #{target}, + + + #{targetName}, + + + #{sortedIndex}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + UPDATE hrsa_auth_data + + role_id=#{roleId}, + link=#{link}, + target_type=#{targetType}, + target=#{target}, + target_name=#{targetName}, + sorted_index=#{sortedIndex}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_data + + + role_id=#{roleId}, + + + link=#{link}, + + + target_type=#{targetType}, + + + target=#{target}, + + + target_name=#{targetName}, + + + sorted_index=#{sortedIndex}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_data + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_data + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java new file mode 100644 index 000000000..c88fb74a1 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java @@ -0,0 +1,79 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthRoleDataPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthRoleDataMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthRoleDataPO authRoleData); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthRoleDataPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authRoleData 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthRoleDataPO authRoleData); + + /** + * 批量插入 + * + * @param authRoleData + */ + void batchInsert(@Param("collection") List authRoleData); + + /** + * 修改,修改所有字段 + * + * @param authRoleData 修改的记录 + * @return 返回影响行数 + */ + int update(AuthRoleDataPO authRoleData); + + /** + * 修改,忽略null字段 + * + * @param authRoleData 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthRoleDataPO authRoleData); + + /** + * 删除记录 + * + * @param authRoleData 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthRoleDataPO authRoleData); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java new file mode 100644 index 000000000..8e3a43721 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -0,0 +1,37 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.po.AuthDataPO; + +import java.util.List; + +/** + * 数据 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthDataService { + + /** + * 列表 + * @param roleId + * @return + */ + List list(Long roleId); + + /** + * 保存数据 + * @param param + * @return + */ + void save(AuthDataSaveParam param); + + /** + * 同步 + * @param roleId + */ + void sync(Long roleId); +} diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java new file mode 100644 index 000000000..a0538a259 --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -0,0 +1,154 @@ +package com.engine.salary.service.auth; + +import cn.hutool.core.collection.CollUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.po.*; +import com.engine.salary.enums.auth.DataLinkEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.auth.AuthDataMapper; +import com.engine.salary.mapper.auth.AuthRoleDataMapper; +import com.engine.salary.mapper.auth.AuthRoleEmpMapper; +import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; + +import java.util.*; +import java.util.stream.Collectors; + +public class AuthDataServiceImpl extends Service implements AuthDataService { + + + private AuthDataMapper getAuthDataMapper() { + return MapperProxyFactory.getProxy(AuthDataMapper.class); + } + + private AuthRoleMapper getAuthRoleMapper() { + return MapperProxyFactory.getProxy(AuthRoleMapper.class); + } + + private AuthRoleEmpMapper getAuthRoleEmpMapper() { + return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class); + } + private AuthRoleDataMapper getAuthRoleDataMapper() { + return MapperProxyFactory.getProxy(AuthRoleDataMapper.class); + } + + + @Override + public List list(Long roleId) { + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + return getAuthDataMapper().listSome(AuthDataPO.builder().roleId(roleId).build()); + } + + @Override + public void save(AuthDataSaveParam param) { + Date now = new Date(); + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + AuthDataPO dataPO = AuthDataPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getAuthDataMapper().insertIgnoreNull(dataPO); + } + + @Override + public void sync(Long roleId) { + + + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } + + //1、获取成员 + List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); + Map> targetTypeMap = SalaryEntityUtil.group2Map(members, AuthMemberPO::getTargetType, AuthMemberPO::getTarget); + + //2、获取人员 + Set empIds = new HashSet<>(); + for (Integer targetType : targetTypeMap.keySet()) { + Set targetIds = targetTypeMap.get(targetType); + List ids = MemberTargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); + empIds.addAll(ids); + } + + //3、更新成员关系 + getAuthRoleEmpMapper().deleteByRoleId(roleId); + Date now = new Date(); + List roleEmpPOS = empIds.stream() + .map(empId -> AuthRoleEmpPO.builder() + .id(IdGenerator.generate()) + .employeeId(empId) + .roleId(roleId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(roleEmpPOS)) { + List> partition = Lists.partition(roleEmpPOS, 100); + partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); + } + + + List list = list(roleId); + + Set ids = null; + for (int i = 0; i < list.size(); i++) { + AuthDataPO dataPO = list.get(i); + DataTargetTypeEnum dataTargetTypeEnum = DataTargetTypeEnum.parseByValue(dataPO.getTargetType()); + DataLinkEnum dataLinkEnum = DataLinkEnum.parseByValue(dataPO.getLink()); + Set empResult = dataTargetTypeEnum.getEmpIds(dataPO.getTarget()); + if (i == 0) { + ids = empResult; + } else { + ids = dataLinkEnum.calculation(ids, empResult); + } + } + + getAuthDataMapper().deleteByRoleId(roleId); + + List collect = ids.stream().map(empId -> AuthRoleDataPO.builder() + .id(IdGenerator.generate()) + .employeeId(empId) + .roleId(roleId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + + List> partition = Lists.partition(collect, 100); + partition.forEach(list -> getAuthRoleDataMapper().batchInsert(list)); + + } +} diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index 71f4d7141..e6ed6edaf 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -19,25 +19,25 @@ public interface AuthMemberService { * @param roleId * @return */ - List memberList(Long roleId); + List list(Long roleId); /** * 添加成员 * @param param * @return */ - Long saveMember(AuthMemberSaveParam param); + Long save(AuthMemberSaveParam param); /** * 删除成员 * @param id */ - void deleteMember(Long id); + void delete(Long id); /** * 同步成员 * @param roleId */ - void syncMember(Long roleId); + void sync(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 260d78e5b..9f98968d7 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -12,7 +12,7 @@ import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; -import com.engine.salary.enums.auth.TargetTypeEnum; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; import com.engine.salary.mapper.auth.AuthRoleEmpMapper; @@ -51,12 +51,12 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService @Override - public List memberList(Long roleId) { + public List list(Long roleId) { return getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); } @Override - public Long saveMember(AuthMemberSaveParam param) { + public Long save(AuthMemberSaveParam param) { AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId()); if (rolePO == null) { @@ -68,7 +68,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .id(IdGenerator.generate()) .roleId(param.getRoleId()) .target(param.getTarget()) - .targetType(param.getTargetType()) + .targetType(param.getTargetType().getValue()) .targetName(param.getTargetName()) .creator((long) user.getUID()) .createTime(now) @@ -93,7 +93,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } @Override - public void deleteMember(Long id) { + public void delete(Long id) { AuthMemberPO po = getAuthMemberMapper().getById(id); if (po == null) { throw new SalaryRunTimeException("成员不存在!"); @@ -114,7 +114,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } @Override - public void syncMember(Long roleId) { + public void sync(Long roleId) { AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); if (rolePO == null) { throw new SalaryRunTimeException("角色不存在!"); @@ -128,7 +128,7 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService Set empIds = new HashSet<>(); for (Integer targetType : targetTypeMap.keySet()) { Set targetIds = targetTypeMap.get(targetType); - List ids = TargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); + List ids = MemberTargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); empIds.addAll(ids); } diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index a165bbd03..8a38d0453 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -1,12 +1,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; -import com.engine.salary.entity.auth.param.AuthMemberQueryParam; -import com.engine.salary.entity.auth.param.AuthMemberSaveParam; -import com.engine.salary.entity.auth.param.AuthOptSaveParam; -import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.param.*; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.AuthWrapper; @@ -101,5 +99,29 @@ public class AuthController { return new ResponseResult(user).run(getAuthWrapper(user)::saveOpt, opt); } + @POST + @Path("/data/list") + @Produces(MediaType.APPLICATION_JSON) + public String memberList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::dataList, param); + } + + @POST + @Path("/data/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::saveData, param); + } + + @POST + @Path("/data/sync") + @Produces(MediaType.APPLICATION_JSON) + public String syncData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::syncData, roleId); + } + } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 0098220e5..fd75b7776 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -2,14 +2,14 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; -import com.engine.salary.entity.auth.param.AuthMemberQueryParam; -import com.engine.salary.entity.auth.param.AuthMemberSaveParam; -import com.engine.salary.entity.auth.param.AuthOptSaveParam; -import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.param.*; +import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; -import com.engine.salary.enums.auth.TargetTypeEnum; +import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.service.auth.*; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -35,6 +35,10 @@ public class AuthWrapper extends Service { return ServiceUtil.getService(AuthOptServiceImpl.class, user); } + private AuthDataService getAuthDataService(User user) { + return ServiceUtil.getService(AuthDataServiceImpl.class, user); + } + public Long saveRole(AuthRoleSaveParam param) { ValidUtil.doValidator(param); return getAuthRoleService(user).saveRole(param); @@ -46,27 +50,34 @@ public class AuthWrapper extends Service { } public PageInfo memberList(AuthMemberQueryParam param) { - List authMemberPOS = getAuthMemberService(user).memberList(param.getRoleId()); - List dtos = authMemberPOS.stream().map(po -> AuthMemberDTO.builder() - .id(po.getId()) - .targetType(TargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) - .targetName(po.getTargetName()) - .build()) + List authMemberPOS = getAuthMemberService(user).list(param.getRoleId()); + int total = authMemberPOS.size(); + authMemberPOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authMemberPOS); + List dtos = authMemberPOS.stream() + .map(po -> AuthMemberDTO.builder() + .id(po.getId()) + .targetTypeName(MemberTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) + .targetType(MemberTargetTypeEnum.parseByValue(po.getTargetType())) + .targetName(po.getTargetName()) + .target(po.getTarget()) + .build()) .collect(Collectors.toList()); - return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthMemberDTO.class); + PageInfo authMemberDTOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthMemberDTO.class); + authMemberDTOPageInfo.setTotal(total); + return authMemberDTOPageInfo; } public Long saveMember(AuthMemberSaveParam param) { ValidUtil.doValidator(param); - return getAuthMemberService(user).saveMember(param); + return getAuthMemberService(user).save(param); } public void deleteMember(Long id) { - getAuthMemberService(user).deleteMember(id); + getAuthMemberService(user).delete(id); } public void syncMember(Long roleId) { - getAuthMemberService(user).syncMember(roleId); + getAuthMemberService(user).sync(roleId); } public AuthOptDTO optTree(Long roleId) { @@ -76,4 +87,32 @@ public class AuthWrapper extends Service { public void saveOpt(AuthOptSaveParam opt) { getAuthOptService(user).save(opt); } + + public PageInfo dataList(AuthDataQueryParam param) { + List list = getAuthDataService(user).list(param.getRoleId()); + int total = list.size(); + list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list); + List dtos = list.stream().map(po -> AuthDataDTO.builder() + .id(po.getId()) + .targetTypeName(DataTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) + .targetType(DataTargetTypeEnum.parseByValue(po.getTargetType())) + .targetName(po.getTargetName()) + .target(po.getTarget()) + .build()) + .collect(Collectors.toList()); + + PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthDataDTO.class); + page.setTotal(total); + return page; + + } + + public void saveData(AuthDataSaveParam authDataSaveParam) { + getAuthDataService(user).save(authDataSaveParam); + } + + + public void syncData(Long roleId) { + getAuthDataService(user).sync(roleId); + } } From 6f55def4665ae0f80023d8a33dc99f7f73fc238a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 30 Jul 2024 18:55:02 +0800 Subject: [PATCH 009/184] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/auth/AuthRoleDataMapper.java | 7 +- .../salary/mapper/auth/AuthRoleDataMapper.xml | 297 ++++++++++++++++++ .../service/auth/AuthDataServiceImpl.java | 80 ++--- 3 files changed, 325 insertions(+), 59 deletions(-) create mode 100644 src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java index c88fb74a1..2918cb8c5 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java @@ -75,5 +75,10 @@ public interface AuthRoleDataMapper { * @param ids 主键id集合 */ void deleteByIds(@Param("ids") Collection ids); - + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml new file mode 100644 index 000000000..4abe3f1eb --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + t + . + id + , t.role_id + , t.employee_id + , t.creator + , t.create_time + , t.update_time + , t.delete_type + , t.tenant_key + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_role_data + + + + id, + + + role_id, + + + employee_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{roleId}, + + + #{employeeId}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + + + + + + INSERT INTO hrsa_auth_role_data + ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + + INSERT INTO hrsa_auth_role_data ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.roleId,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + + + INSERT INTO hrsa_auth_role_data ( + id, + role_id, + employee_id, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.roleId}, + #{item.employeeId}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + + UPDATE hrsa_auth_role_data + + role_id=#{roleId}, + employee_id=#{employeeId}, + creator=#{creator}, + create_time=#{createTime}, + update_time=#{updateTime}, + delete_type=#{deleteType}, + tenant_key=#{tenantKey}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_data + + + role_id=#{roleId}, + + + employee_id=#{employeeId}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + delete_type=#{deleteType}, + + + tenant_key=#{tenantKey}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_role_data + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_role_data + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_auth_role_data + SET delete_type=1 + WHERE role_id = #{roleId} AND delete_type = 0 + + \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index a0538a259..7cb54fa82 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -1,24 +1,26 @@ package com.engine.salary.service.auth; -import cn.hutool.core.collection.CollUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.param.AuthDataSaveParam; -import com.engine.salary.entity.auth.po.*; +import com.engine.salary.entity.auth.po.AuthDataPO; +import com.engine.salary.entity.auth.po.AuthRoleDataPO; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; -import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthDataMapper; import com.engine.salary.mapper.auth.AuthRoleDataMapper; import com.engine.salary.mapper.auth.AuthRoleEmpMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; -import java.util.*; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.stream.Collectors; public class AuthDataServiceImpl extends Service implements AuthDataService { @@ -35,6 +37,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { private AuthRoleEmpMapper getAuthRoleEmpMapper() { return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class); } + private AuthRoleDataMapper getAuthRoleDataMapper() { return MapperProxyFactory.getProxy(AuthRoleDataMapper.class); } @@ -78,49 +81,10 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { @Override public void sync(Long roleId) { - - - AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); - if (rolePO == null) { - throw new SalaryRunTimeException("角色不存在!"); - } - - //1、获取成员 - List members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); - Map> targetTypeMap = SalaryEntityUtil.group2Map(members, AuthMemberPO::getTargetType, AuthMemberPO::getTarget); - - //2、获取人员 - Set empIds = new HashSet<>(); - for (Integer targetType : targetTypeMap.keySet()) { - Set targetIds = targetTypeMap.get(targetType); - List ids = MemberTargetTypeEnum.parseByValue(targetType).getEmpIds(targetIds); - empIds.addAll(ids); - } - - //3、更新成员关系 - getAuthRoleEmpMapper().deleteByRoleId(roleId); Date now = new Date(); - List roleEmpPOS = empIds.stream() - .map(empId -> AuthRoleEmpPO.builder() - .id(IdGenerator.generate()) - .employeeId(empId) - .roleId(roleId) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()) - .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(roleEmpPOS)) { - List> partition = Lists.partition(roleEmpPOS, 100); - partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); - } - - List list = list(roleId); - Set ids = null; + Set ids = new HashSet<>(); for (int i = 0; i < list.size(); i++) { AuthDataPO dataPO = list.get(i); DataTargetTypeEnum dataTargetTypeEnum = DataTargetTypeEnum.parseByValue(dataPO.getTargetType()); @@ -133,22 +97,22 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { } } - getAuthDataMapper().deleteByRoleId(roleId); + getAuthRoleDataMapper().deleteByRoleId(roleId); - List collect = ids.stream().map(empId -> AuthRoleDataPO.builder() - .id(IdGenerator.generate()) - .employeeId(empId) - .roleId(roleId) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()) + List collect = ids.stream().map(empId -> + AuthRoleDataPO.builder() + .id(IdGenerator.generate()) + .roleId(roleId) + .employeeId(empId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) .collect(Collectors.toList()); List> partition = Lists.partition(collect, 100); - partition.forEach(list -> getAuthRoleDataMapper().batchInsert(list)); - + partition.forEach(pos -> getAuthRoleDataMapper().batchInsert(pos)); } } From c674c22da1e96b250883d54a3000be1d72fc8cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 1 Aug 2024 10:56:29 +0800 Subject: [PATCH 010/184] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=AE=97=E7=A8=8E?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 11 +++++++++ .../salary/entity/auth/dto/AuthDTO.java | 19 +++++++++++++++ .../engine/salary/entity/auth/dto/EmpOpt.java | 19 +++++++++++++++ .../engine/salary/mapper/auth/AuthMapper.java | 10 ++++++++ .../engine/salary/mapper/auth/AuthMapper.xml | 23 +++++++++++++++++++ src/com/engine/salary/web/AuthController.java | 8 +++++++ .../engine/salary/wrapper/AuthWrapper.java | 9 ++++++++ 7 files changed, 99 insertions(+) create mode 100644 src/com/engine/salary/entity/auth/dto/AuthDTO.java create mode 100644 src/com/engine/salary/entity/auth/dto/EmpOpt.java create mode 100644 src/com/engine/salary/mapper/auth/AuthMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthMapper.xml diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index c7e3ed604..7b25b32bb 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -10,6 +10,17 @@ + + + + + + + + + + + diff --git a/src/com/engine/salary/entity/auth/dto/AuthDTO.java b/src/com/engine/salary/entity/auth/dto/AuthDTO.java new file mode 100644 index 000000000..4a3b6cf56 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthDTO.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthDTO { + private Long taxAgentId; + + private List empOpts; +} + diff --git a/src/com/engine/salary/entity/auth/dto/EmpOpt.java b/src/com/engine/salary/entity/auth/dto/EmpOpt.java new file mode 100644 index 000000000..e77cda1c4 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/EmpOpt.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EmpOpt { + private Long employeeId; + + private List opt; +} + diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java new file mode 100644 index 000000000..c209fd174 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -0,0 +1,10 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.dto.AuthDTO; + +import java.util.List; + +public interface AuthMapper { + + List getAuth(); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml new file mode 100644 index 000000000..fc440a252 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 8a38d0453..80dd3981a 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -123,5 +123,13 @@ public class AuthController { return new ResponseResult(user).run(getAuthWrapper(user)::syncData, roleId); } + @POST + @Path("/data/auth") + @Produces(MediaType.APPLICATION_JSON) + public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::auth); + } + } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index fd75b7776..74b254fe1 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -10,7 +10,9 @@ import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.enums.auth.DataTargetTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.mapper.auth.AuthMapper; import com.engine.salary.service.auth.*; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; @@ -115,4 +117,11 @@ public class AuthWrapper extends Service { public void syncData(Long roleId) { getAuthDataService(user).sync(roleId); } + + private AuthMapper getAuthMapper() { + return MapperProxyFactory.getProxy(AuthMapper.class); + } + public Object auth() { + return getAuthMapper().getAuth(); + } } From a0d2db27020a97b26f072161f874ee76dc9e067e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 1 Aug 2024 16:19:23 +0800 Subject: [PATCH 011/184] =?UTF-8?q?=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 21 +------------------ .../salary/entity/auth/dto/AuthDTO.java | 2 +- .../engine/salary/entity/auth/dto/EmpOpt.java | 3 +-- .../engine/salary/entity/auth/dto/Opt.java | 17 +++++++++++++++ .../entity/auth/param/AuthRoleSaveParam.java | 4 ++++ .../engine/salary/mapper/auth/AuthMapper.java | 3 ++- .../engine/salary/mapper/auth/AuthMapper.xml | 16 ++++++++------ src/com/engine/salary/web/AuthController.java | 6 +++--- .../engine/salary/wrapper/AuthWrapper.java | 5 +++-- 9 files changed, 42 insertions(+), 35 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/Opt.java diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 7b25b32bb..50c587934 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -21,26 +21,7 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/src/com/engine/salary/entity/auth/dto/AuthDTO.java b/src/com/engine/salary/entity/auth/dto/AuthDTO.java index 4a3b6cf56..f2ebaef7b 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthDTO.java @@ -14,6 +14,6 @@ import java.util.List; public class AuthDTO { private Long taxAgentId; - private List empOpts; + private List emps; } diff --git a/src/com/engine/salary/entity/auth/dto/EmpOpt.java b/src/com/engine/salary/entity/auth/dto/EmpOpt.java index e77cda1c4..1a2a59920 100644 --- a/src/com/engine/salary/entity/auth/dto/EmpOpt.java +++ b/src/com/engine/salary/entity/auth/dto/EmpOpt.java @@ -13,7 +13,6 @@ import java.util.List; @AllArgsConstructor public class EmpOpt { private Long employeeId; - - private List opt; + private List opts; } diff --git a/src/com/engine/salary/entity/auth/dto/Opt.java b/src/com/engine/salary/entity/auth/dto/Opt.java new file mode 100644 index 000000000..872139ddf --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/Opt.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Opt { +// private Long id; +// private String page; + private String opt; +} + diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 844453be1..658fae915 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -23,6 +23,10 @@ public class AuthRoleSaveParam { @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") private String name; +// +// @DataCheck(require = true, max = 400, message = "名称不允许为空,名称不能超过400个字符") +// private String description; + /** * 扣缴义务人id */ diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index c209fd174..e762c6511 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,10 +1,11 @@ package com.engine.salary.mapper.auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import org.apache.ibatis.annotations.Param; import java.util.List; public interface AuthMapper { - List getAuth(); + List getAuth(@Param("uid") Long uid, @Param("page") String page); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index fc440a252..9a29df352 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -2,21 +2,25 @@ - - - - + + + + + + + + diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 80dd3981a..1d2fc833e 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -123,12 +123,12 @@ public class AuthController { return new ResponseResult(user).run(getAuthWrapper(user)::syncData, roleId); } - @POST + @GET @Path("/data/auth") @Produces(MediaType.APPLICATION_JSON) - public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "page") String page) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::auth); + return new ResponseResult(user).run(getAuthWrapper(user)::auth,page); } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 74b254fe1..ec03226dd 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -121,7 +121,8 @@ public class AuthWrapper extends Service { private AuthMapper getAuthMapper() { return MapperProxyFactory.getProxy(AuthMapper.class); } - public Object auth() { - return getAuthMapper().getAuth(); + + public Object auth(String page) { + return getAuthMapper().getAuth((long) user.getUID(), page); } } From 4d51b6e57cc40634dd648e54ec635697d7ea9439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 1 Aug 2024 18:04:09 +0800 Subject: [PATCH 012/184] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=89=A3=E7=BC=B4?= =?UTF-8?q?=E4=B9=89=E5=8A=A1=E4=BA=BA=E7=9A=84=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/taxagent/bo/TaxAgentBO.java | 44 +++++++++---------- .../salary/service/auth/AuthRoleService.java | 5 +++ .../service/auth/AuthRoleServiceImpl.java | 6 +++ .../salary/wrapper/TaxAgentWrapper.java | 22 +++++++--- 4 files changed, 47 insertions(+), 30 deletions(-) diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index 7078723af..eb80a49af 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -2,6 +2,7 @@ package com.engine.salary.entity.taxagent.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.agency.po.PaymentAgencyPO; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.DeptInfo; import com.engine.salary.entity.hrm.HrmStatus; @@ -83,21 +84,15 @@ public class TaxAgentBO { // String paymentAgency = SalaryI18nUtil.getI18nLabel(112448, "社保福利代缴机构"); String description = SalaryI18nUtil.getI18nLabel(84961, "备注"); String sortedIndex = SalaryI18nUtil.getI18nLabel(84962, "显示顺序"); + + columns.add(new Column(name, "name", "name")); + columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); if (isOpenDevolution) { - columns.add(new Column(name, "name", "name%")); - columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); - columns.add(new Column(admins, "admins", "admins%")); -// columns.add(new Column(subAdmins, "subAdmins", "20%")); -// columns.add(new Column(paymentAgency, "paymentAgency", "30%")); - columns.add(new Column(description, "description", "name")); - columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); - } else { - columns.add(new Column(name, "name", "name")); - columns.add(new Column(employeeRange, "employeeRange", "employeeRange")); -// columns.add(new WeaTableColumn(paymentAgency, "paymentAgency", "30%")); - columns.add(new Column(description, "description", "description")); - columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); + columns.add(new Column(admins, "admins", "admins")); } + columns.add(new Column("角色", "role", "role")); + columns.add(new Column(description, "description", "description")); + columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); listPage.setColumns(columns); } @@ -146,8 +141,8 @@ public class TaxAgentBO { * @param taxAgents * @return */ - public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, String setLabel) { - return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null, setLabel); + public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, Map> rolelistMap) { + return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null, rolelistMap); } /** @@ -158,8 +153,8 @@ public class TaxAgentBO { */ public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, List adminList, - String setLabel) { - return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList, setLabel); + Map> rolelistMap) { + return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList, rolelistMap); } /** @@ -171,7 +166,7 @@ public class TaxAgentBO { */ public static List> convertToTableListDTO(Boolean isDevolution, List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, String setLabel) { + List adminList, Map> rolelistMap) { if (CollectionUtils.isEmpty(taxAgents)) { return Collections.emptyList(); } @@ -180,12 +175,13 @@ public class TaxAgentBO { Map map = new LinkedHashMap<>(); map.put("id", e.getId()); map.put("name", e.getName()); - map.put("employeeRange", setLabel); + map.put("employeeRange", "设置"); + map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList())); if (isDevolution) { List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); map.put("admins", CollectionUtils.isEmpty(admins) ? "" : Joiner.on(",").join((Iterable) admins)); - map.put("subAdmins", setLabel); + map.put("subAdmins", "设置"); } map.put("paymentAgency", buildPaymentAgency(e.getPaymentAgency(), paymentAgencyPOS)); map.put("description", e.getDescription()); @@ -380,9 +376,9 @@ public class TaxAgentBO { String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId() + "-" + rangeTypeEnum.getValue(); if (taxAgentManageRangeMap.containsKey(key)) { TaxAgentManageRangePO taxAgentManageRange = taxAgentManageRangeMap.get(key); - if(isImport){ + if (isImport) { taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus())); - }else { + } else { taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus())); } taxAgentManageRange.setUpdateTime(now); @@ -403,9 +399,9 @@ public class TaxAgentBO { .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .deleteType(0) .build(); - if(isImport){ + if (isImport) { taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus())); - }else { + } else { taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus())); } handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange); diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index 30dbb3e98..e792ffe69 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -1,6 +1,9 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthRolePO; + +import java.util.List; /** * 角色 @@ -12,6 +15,8 @@ import com.engine.salary.entity.auth.param.AuthRoleSaveParam; **/ public interface AuthRoleService { + List roleList(Long taxAgentId); + /** * 添加角色 * @param param diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 0efeba99e..2d55e403a 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -21,6 +21,7 @@ import weaver.hrm.User; import java.util.Collections; import java.util.Date; +import java.util.List; public class AuthRoleServiceImpl extends Service implements AuthRoleService { @@ -37,6 +38,11 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { } + @Override + public List roleList(Long taxAgentId) { + return getAuthRoleMapper().listSome(AuthRolePO.builder().taxAgentId(taxAgentId).build()); + } + @Override public Long saveRole(AuthRoleSaveParam param) { Date now = new Date(); diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 027df9952..5f70f1903 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -4,6 +4,7 @@ import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.HrmStatus; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; @@ -16,7 +17,10 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthRoleService; +import com.engine.salary.service.auth.AuthRoleServiceImpl; import com.engine.salary.service.impl.*; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -66,6 +70,9 @@ public class TaxAgentWrapper extends Service { return ServiceUtil.getService(TaxAgentExcelServiceImpl.class, user); } + public AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } // private PaymentAgencyService paymentAgencyService; // @@ -116,8 +123,6 @@ public class TaxAgentWrapper extends Service { // 是否开启分权 boolean isOpenDevolution = getTaxAgentBaseService(user).isOpenDevolution(); -// List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey); - PageInfo page = null; // 分权情况下,根据自己作为管理员过滤列表 if (isOpenDevolution && !isChief) { @@ -138,24 +143,29 @@ public class TaxAgentWrapper extends Service { } else { page = getTaxAgentService(user).listPage(queryParam); } + List taxAgentPOS = page.getList(); + //获取角色信息 + List authRolePOS = getAuthRoleService(user).roleList(null); + Map> rolelistMap = SalaryEntityUtil.group2Map(authRolePOS, AuthRolePO::getTaxAgentId); PageInfo> listPage = new PageInfo<>(); - String setLabel = SalaryI18nUtil.getI18nLabel(94614, "设置"); if (isOpenDevolution) { - List list = page.getList(); + List list = taxAgentPOS; List taxAgentIds = list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); List taxAgentAdmins = getTaxAgentAdminService(user).listByTaxAgentIds(taxAgentIds); List adminList = getSalaryEmployeeService(user).getEmployeeByIdsAll(taxAgentAdmins.stream().map(TaxAgentAdminPO::getEmployeeId).distinct().collect(Collectors.toList())); - listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, taxAgentAdmins, adminList, setLabel)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, taxAgentAdmins, adminList, rolelistMap)); } else { - listPage.setList(TaxAgentBO.convertToTableListDTO(page.getList(), null, setLabel)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, rolelistMap)); } listPage.setTotal(page.getTotal()); listPage.setPageNum(page.getPageNum()); listPage.setPageSize(page.getPageSize()); + + //构造表格 TaxAgentBO.buildTaxAgentTable(listPage, isOpenDevolution); From 9eea989bf29e9e39ec825898343efa5e113a2f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 2 Aug 2024 10:10:04 +0800 Subject: [PATCH 013/184] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=89=A3=E7=BC=B4?= =?UTF-8?q?=E4=B9=89=E5=8A=A1=E4=BA=BA=E7=9A=84=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index eb80a49af..6370d3f05 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -176,7 +176,7 @@ public class TaxAgentBO { map.put("id", e.getId()); map.put("name", e.getName()); map.put("employeeRange", "设置"); - map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList())); + map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList()).stream().map(AuthRolePO::getName).collect(Collectors.joining(","))); if (isDevolution) { List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); From 494679087dfe2e2549cfb8761306801cb68da10d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 2 Aug 2024 14:04:14 +0800 Subject: [PATCH 014/184] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=8A=A0=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 1 - .../engine/salary/entity/auth/po/AuthRolePO.java | 6 ++++++ .../engine/salary/mapper/auth/AuthRoleMapper.xml | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 50c587934..69fa54c7e 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -23,5 +23,4 @@ - diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index e2c5cd39d..144b2583d 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -31,6 +31,12 @@ public class AuthRolePO { @ElogTransform(name = "个税扣缴义务人id") private Long taxAgentId; + /** + * 描述 + */ + @ElogTransform(name = "描述") + private String description; + /** * 创建人 */ diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml index 6b7528d47..e6cf464cf 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -4,6 +4,7 @@ + @@ -18,6 +19,7 @@ . id , t.name + , t.description , t.tax_agent_id , t.creator , t.create_time @@ -54,6 +56,9 @@ AND name = #{name} + + AND description = #{description} + AND tax_agent_id = #{taxAgentId} @@ -93,6 +98,9 @@ name, + + description, + tax_agent_id, @@ -119,6 +127,9 @@ #{name}, + + #{description}, + #{taxAgentId}, @@ -145,6 +156,7 @@ UPDATE hrsa_auth_role name=#{name}, + description=#{description}, tax_agent_id=#{taxAgentId}, creator=#{creator}, create_time=#{createTime}, @@ -163,6 +175,9 @@ name=#{name}, + + description=#{description}, + tax_agent_id=#{taxAgentId}, From 4d8c54bf8a33a4d3d62c32b31e75a9994540cc9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 2 Aug 2024 16:18:26 +0800 Subject: [PATCH 015/184] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=8A=A0=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 11 ++-------- .../entity/auth/param/AuthRoleSaveParam.java | 6 +++--- .../salary/entity/taxagent/bo/TaxAgentBO.java | 3 ++- .../service/auth/AuthRoleServiceImpl.java | 4 ++++ .../salary/service/auth/AuthService.java | 17 ++++++++++++++++ .../salary/service/auth/AuthServiceImpl.java | 20 +++++++++++++++++++ .../impl/SalaryArchiveServiceImpl.java | 5 +++++ 7 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 src/com/engine/salary/service/auth/AuthService.java create mode 100644 src/com/engine/salary/service/auth/AuthServiceImpl.java diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 69fa54c7e..5d9d98f08 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -4,20 +4,13 @@ - - - - - - - - - + + diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 658fae915..1d45ec604 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -23,9 +23,9 @@ public class AuthRoleSaveParam { @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") private String name; -// -// @DataCheck(require = true, max = 400, message = "名称不允许为空,名称不能超过400个字符") -// private String description; + + @DataCheck(require = true, max = 400, message = "名称不允许为空,名称不能超过400个字符") + private String description; /** * 扣缴义务人id diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index 6370d3f05..85e3b0076 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -176,7 +176,8 @@ public class TaxAgentBO { map.put("id", e.getId()); map.put("name", e.getName()); map.put("employeeRange", "设置"); - map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList()).stream().map(AuthRolePO::getName).collect(Collectors.joining(","))); +// map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList()).stream().map(AuthRolePO::getName).collect(Collectors.joining(","))); + map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList())); if (isDevolution) { List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 2d55e403a..58c0bad20 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -48,13 +48,16 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { Date now = new Date(); Long id = param.getId(); String name = param.getName(); + String description = param.getDescription(); Long taxAgentId = param.getTaxAgentId(); + AuthRolePO po; if (id == null) { po = AuthRolePO.builder() .id(IdGenerator.generate()) .name(name) + .description(description) .taxAgentId(taxAgentId) .creator((long) user.getUID()) .createTime(now) @@ -82,6 +85,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { AuthRolePO newPo = AuthRolePO.builder() .id(id) .name(name) + .description(description) .taxAgentId(po.getTaxAgentId()) .updateTime(now) .build(); diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java new file mode 100644 index 000000000..b15b3f4ee --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -0,0 +1,17 @@ +package com.engine.salary.service.auth; + +import com.engine.salary.entity.auth.dto.AuthDTO; + +import java.util.List; + +/** + * 权限 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public interface AuthService { + List auth(String page); +} diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java new file mode 100644 index 000000000..9103494af --- /dev/null +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -0,0 +1,20 @@ +package com.engine.salary.service.auth; + +import com.engine.core.impl.Service; +import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.mapper.auth.AuthMapper; +import com.engine.salary.util.db.MapperProxyFactory; + +import java.util.List; + +public class AuthServiceImpl extends Service implements AuthService { + private AuthMapper getAuthMapper() { + return MapperProxyFactory.getProxy(AuthMapper.class); + } + + @Override + public List auth(String page) { + return getAuthMapper().getAuth((long) user.getUID(), page); + } + +} diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index b468c29d3..568b7719b 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -184,6 +184,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe queryParam.setPayEndDateEndDate(SalaryDateUtil.stringToDate(queryParam.getPayEndDateEndDateStr())); } + //能查看哪些档案 + + //能管理哪些档案 + + List list = getSalaryArchiveMapper().list(queryParam); return SalaryI18nUtil.i18nList(list); } From 4dcb3b4feaaa1576e824861ad3df0140cff0fceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 5 Aug 2024 15:40:34 +0800 Subject: [PATCH 016/184] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=88=86=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/annotation/Auth.java | 28 ++++ .../engine/salary/annotation/AuthField.java | 22 +++ src/com/engine/salary/annotation/AuthOpt.java | 20 +++ .../engine/salary/entity/auth/dto/EmpOpt.java | 4 +- .../engine/salary/entity/auth/dto/Opt.java | 2 - .../dto/SalaryArchiveListDTO.java | 11 +- .../salaryarchive/po/SalaryArchivePO.java | 2 + .../salary/enums/auth/AuthCheckTypeEnum.java | 58 +++++++ .../salary/service/TaxAgentAdminService.java | 7 + .../salary/service/TaxAgentService.java | 7 + .../salary/service/auth/AuthService.java | 2 + .../salary/service/auth/AuthServiceImpl.java | 147 +++++++++++++++++- .../impl/SalaryArchiveServiceImpl.java | 51 ++---- .../impl/TaxAgentAdminServiceImpl.java | 6 + .../service/impl/TaxAgentServiceImpl.java | 5 + 15 files changed, 325 insertions(+), 47 deletions(-) create mode 100644 src/com/engine/salary/annotation/Auth.java create mode 100644 src/com/engine/salary/annotation/AuthField.java create mode 100644 src/com/engine/salary/annotation/AuthOpt.java create mode 100644 src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java diff --git a/src/com/engine/salary/annotation/Auth.java b/src/com/engine/salary/annotation/Auth.java new file mode 100644 index 000000000..55677a320 --- /dev/null +++ b/src/com/engine/salary/annotation/Auth.java @@ -0,0 +1,28 @@ +package com.engine.salary.annotation; + +import com.engine.salary.enums.auth.AuthCheckTypeEnum; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 权限验证字段 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Auth { + String page(); + + AuthCheckTypeEnum checkType() default AuthCheckTypeEnum.TAX_EMP; + + String taxAgentIdField() default "taxAgentId"; + String employeeIdField() default "employeeId"; + String optsField() default "opts"; +} diff --git a/src/com/engine/salary/annotation/AuthField.java b/src/com/engine/salary/annotation/AuthField.java new file mode 100644 index 000000000..b51cd44f3 --- /dev/null +++ b/src/com/engine/salary/annotation/AuthField.java @@ -0,0 +1,22 @@ +package com.engine.salary.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 权限验证字段 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AuthField { + + String fieldType(); + +} diff --git a/src/com/engine/salary/annotation/AuthOpt.java b/src/com/engine/salary/annotation/AuthOpt.java new file mode 100644 index 000000000..e4ffcb499 --- /dev/null +++ b/src/com/engine/salary/annotation/AuthOpt.java @@ -0,0 +1,20 @@ +package com.engine.salary.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 权限验证字段 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AuthOpt { + +} diff --git a/src/com/engine/salary/entity/auth/dto/EmpOpt.java b/src/com/engine/salary/entity/auth/dto/EmpOpt.java index 1a2a59920..89ac9782c 100644 --- a/src/com/engine/salary/entity/auth/dto/EmpOpt.java +++ b/src/com/engine/salary/entity/auth/dto/EmpOpt.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; +import java.util.Set; @Data @Builder @@ -13,6 +13,6 @@ import java.util.List; @AllArgsConstructor public class EmpOpt { private Long employeeId; - private List opts; + private Set opts; } diff --git a/src/com/engine/salary/entity/auth/dto/Opt.java b/src/com/engine/salary/entity/auth/dto/Opt.java index 872139ddf..f9171e390 100644 --- a/src/com/engine/salary/entity/auth/dto/Opt.java +++ b/src/com/engine/salary/entity/auth/dto/Opt.java @@ -10,8 +10,6 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class Opt { -// private Long id; -// private String page; private String opt; } diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java index 1083ca4dd..24958c2d2 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.salaryarchive.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.I18n; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; @@ -12,6 +9,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 薪资档案列表 @@ -29,12 +27,14 @@ import java.util.Date; @SalaryTableOperate(index = "0", text = "编辑"), @SalaryTableOperate(index = "1", text = "删除") }) +@Auth(page = "salaryArchive") public class SalaryArchiveListDTO { @TableTitle(title = "id", dataIndex = "id", key = "id") private Long id; @TableTitle(title = "人员信息表的主键id", dataIndex = "employeeId", key = "employeeId") + @AuthField(fieldType = "employeeId") private Long employeeId; private Integer employeeType; @@ -51,6 +51,7 @@ public class SalaryArchiveListDTO { */ @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName") private String taxAgentName; + @AuthField(fieldType = "taxAgentId") private Long taxAgentId; /** @@ -121,4 +122,6 @@ public class SalaryArchiveListDTO { */ private String archiveStatus; + private Set opts; + } diff --git a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java index a1762c54b..f3fee2f08 100644 --- a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java +++ b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryarchive.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveAddTypeEnum; @@ -29,6 +30,7 @@ import java.util.List; @AllArgsConstructor //hrsa_salary_archive @ElogTransform(name = "薪资档案") +@Auth(page = "salaryArchive") public class SalaryArchivePO { /** diff --git a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java new file mode 100644 index 000000000..f715fdbb3 --- /dev/null +++ b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java @@ -0,0 +1,58 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; + +import java.util.Objects; + +/** + * 权限验证方式 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum AuthCheckTypeEnum implements BaseEnum { + + + TAX_EMP("TAX_EMP", "扣缴义务人和人员混合验证", 87627), + EMP("EMP", "人员验证", 87626), + TAX("TAX", "扣缴义务人验证", 87626); + + + private String value; + private String defaultLabel; + private int labelId; + + AuthCheckTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static AuthCheckTypeEnum parseByValue(String value) { + for (AuthCheckTypeEnum typeEnum : AuthCheckTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/service/TaxAgentAdminService.java b/src/com/engine/salary/service/TaxAgentAdminService.java index 274ba8c07..60ac4d451 100644 --- a/src/com/engine/salary/service/TaxAgentAdminService.java +++ b/src/com/engine/salary/service/TaxAgentAdminService.java @@ -53,4 +53,11 @@ public interface TaxAgentAdminService { * @return */ List listByEmployeeId(Long currentEmployeeId); + + /** + * 获取管理的扣缴义务人id + * @param currentEmployeeId + * @return + */ + List getAdminTaxAgentIds(Long currentEmployeeId); } diff --git a/src/com/engine/salary/service/TaxAgentService.java b/src/com/engine/salary/service/TaxAgentService.java index bab08d143..4f694f5f8 100644 --- a/src/com/engine/salary/service/TaxAgentService.java +++ b/src/com/engine/salary/service/TaxAgentService.java @@ -50,6 +50,13 @@ public interface TaxAgentService { */ Boolean isChief(Long currentEmployeeId); + /** + * 获取管理的扣缴义务人id + * @param currentEmployeeId + * @return + */ + List getAdminTaxAgentIds(Long currentEmployeeId); + /** * 默认权限是否开启 * diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index b15b3f4ee..b0166dbf4 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -13,5 +13,7 @@ import java.util.List; * @version 1.0 **/ public interface AuthService { + List auth(List list, Class clazz); + List auth(String page); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 9103494af..147b66ae8 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -1,17 +1,162 @@ package com.engine.salary.service.auth; +import cn.hutool.core.collection.CollectionUtil; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.annotation.Auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.entity.auth.dto.EmpOpt; +import com.engine.salary.entity.auth.dto.Opt; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.mapper.auth.AuthMapper; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; -import java.util.List; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.*; +import java.util.stream.Collectors; public class AuthServiceImpl extends Service implements AuthService { + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + private AuthMapper getAuthMapper() { return MapperProxyFactory.getProxy(AuthMapper.class); } + @Override + public List auth(List list, Class clazz) { + Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); + boolean isAuth = clazz.isAnnotationPresent(Auth.class); + + if (!isOpenDevolution || !isAuth) { + return list; + } + + Auth auth = clazz.getAnnotation(Auth.class); + String taxAgentIdField = auth.taxAgentIdField(); + String taxAgentIdFieldGetter = "get" + taxAgentIdField.substring(0, 1).toUpperCase() + taxAgentIdField.substring(1); + String employeeIdField = auth.employeeIdField(); + String employeeIdFieldGetter = "get" + employeeIdField.substring(0, 1).toUpperCase() + employeeIdField.substring(1); + String optsField = auth.optsField(); + String optsFieldGetter = "get" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); + String optsFieldSetter = "set" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); + + //给总管理员赋值最大权限 + Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); + if (isChief) { + list.forEach(t -> { + try { + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + + Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); + Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); + + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + }); + + return list; + } + + //给各管理员赋值对应的扣缴义务人权限 + List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); + if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { + Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + + if (adminTaxAgentIds.contains(taxAgentId)) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } else { + iterator.remove(); + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + } + + + return list; + } + + //给各角色赋权 + String page = auth.page(); + AuthCheckTypeEnum checkType = auth.checkType(); + List authDTOS = getAuthMapper().getAuth((long) user.getUID(), page); + Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, AuthDTO::getTaxAgentId, AuthDTO::getEmps); + Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + + Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); + Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); + + //混合验证 + if (authMap.containsKey(taxAgentId)) { + List orDefault = authMap.getOrDefault(taxAgentId, new ArrayList<>()); + Map> optsMap = SalaryEntityUtil.convert2Map(orDefault, EmpOpt::getEmployeeId, EmpOpt::getOpts); + if (optsMap.containsKey(employeeId)) { + Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()).stream().map(Opt::getOpt).collect(Collectors.toSet()); + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } else { + iterator.remove(); + } + } else { + iterator.remove(); + } + + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + } + + + return list; + } + @Override public List auth(String page) { return getAuthMapper().getAuth((long) user.getUID(), page); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 568b7719b..bd9eac70f 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -35,6 +35,8 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; import com.engine.salary.mapper.archive.SalaryArchiveMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -132,6 +134,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe return ServiceUtil.getService(SalarySobServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SalaryArchivePO getById(Long salaryArchiveId) { return salaryArchiveMapper.getById(salaryArchiveId); @@ -183,12 +189,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe if (Objects.nonNull(queryParam.getPayEndDateEndDateStr())) { queryParam.setPayEndDateEndDate(SalaryDateUtil.stringToDate(queryParam.getPayEndDateEndDateStr())); } - - //能查看哪些档案 - - //能管理哪些档案 - - List list = getSalaryArchiveMapper().list(queryParam); return SalaryI18nUtil.i18nList(list); } @@ -233,18 +233,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe }) .collect(Collectors.toList()); - if (needAuth) { - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //不是管理员看不到数据,返回空 - if (!adminEnable) { - PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class); - return pageInfo; - } - // 获取作为管理员的所有个税扣缴义务人列表 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - list = list.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - } + //能查看哪些档案 + list = getAuthService(user).auth(list, SalaryArchiveListDTO.class); + + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class); pageInfo.setTotal(list.size()); pageInfo.setList(SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), list)); @@ -795,7 +787,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe LoggerContext loggerContext = new LoggerContext(); loggerContext.setUser(user); loggerContext.setTargetId(String.valueOf(e.getId())); - loggerContext.setTargetName( Optional.ofNullable(taxAgentMap.get(e.getTaxAgentId())).orElse(StringUtils.EMPTY) + bar + Optional.ofNullable(empMap.get(e.getEmployeeId())).orElse(StringUtils.EMPTY) ); + loggerContext.setTargetName(Optional.ofNullable(taxAgentMap.get(e.getTaxAgentId())).orElse(StringUtils.EMPTY) + bar + Optional.ofNullable(empMap.get(e.getEmployeeId())).orElse(StringUtils.EMPTY)); loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); loggerContext.setOperateTypeName(operatedesc); loggerContext.setOperatedesc(operatedesc); @@ -1085,26 +1077,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe //获取管理的人员范围 List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); - List list = new ArrayList<>(); - if (needAuth) { - // 获取作为管理员的所有个税扣缴义务人列表 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //获取所有薪资档案 - List archiveListDTOS = getSalaryArchiveMapper().listAll(); - list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //不是管理员看不到数据,返回空 - if (!adminEnable) { - list = new ArrayList<>(); - } - - } else { - list = getSalaryArchiveMapper().listAll(); - } + List list = getSalaryArchiveMapper().listAll(); + list = getAuthService(user).auth(list,SalaryArchivePO.class); long pendingTotal = 0L; long fixedTotal = 0L; diff --git a/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java index 72838fc10..171bd953a 100644 --- a/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentAdminServiceImpl.java @@ -13,6 +13,7 @@ import org.apache.commons.collections4.CollectionUtils; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 个税扣缴义务人管理员 @@ -79,4 +80,9 @@ public class TaxAgentAdminServiceImpl extends Service implements TaxAgentAdminSe public List listByEmployeeId(Long currentEmployeeId) { return getTaxAgentAdminMapper().listSome(TaxAgentAdminPO.builder().employeeId(currentEmployeeId).build()); } + + @Override + public List getAdminTaxAgentIds(Long currentEmployeeId) { + return listByEmployeeId(currentEmployeeId).stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); + } } diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index aa0890cb7..8f02b60d1 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -225,6 +225,11 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return hasRight; } + @Override + public List getAdminTaxAgentIds(Long currentEmployeeId) { + return getTaxAgentAdminService(user).getAdminTaxAgentIds(currentEmployeeId); + } + @Override public Boolean isDefaultOpen(Long currentEmployeeId) { return getTaxAgentBaseService(user).isOpenDevolution(); From 23ed2c5f3f267e18d6f33c9fa42adc22b77d4a48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 6 Aug 2024 10:46:33 +0800 Subject: [PATCH 017/184] =?UTF-8?q?=E5=88=A0=E9=99=A4=E3=80=81=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=AF=B9=E8=B1=A1=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/auth/param/AuthSyncParam.java | 17 ++++++++ .../salary/service/auth/AuthDataService.java | 5 ++- .../service/auth/AuthDataServiceImpl.java | 4 +- .../service/auth/AuthMemberService.java | 9 ++-- .../service/auth/AuthMemberServiceImpl.java | 41 +++++++++++-------- .../salary/service/auth/AuthRoleService.java | 4 +- .../service/auth/AuthRoleServiceImpl.java | 34 +++++++-------- src/com/engine/salary/web/AuthController.java | 17 ++++---- .../engine/salary/wrapper/AuthWrapper.java | 16 ++++---- 9 files changed, 89 insertions(+), 58 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/param/AuthSyncParam.java diff --git a/src/com/engine/salary/entity/auth/param/AuthSyncParam.java b/src/com/engine/salary/entity/auth/param/AuthSyncParam.java new file mode 100644 index 000000000..1ac9be40c --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthSyncParam.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthSyncParam { + + private Long roleId; + +} \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index 8e3a43721..a86bae60e 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; import java.util.List; @@ -31,7 +32,7 @@ public interface AuthDataService { /** * 同步 - * @param roleId + * @param param */ - void sync(Long roleId); + void sync(AuthSyncParam param); } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 7cb54fa82..47edf7639 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.salary.service.auth; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.param.AuthDataSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthRoleDataPO; import com.engine.salary.entity.auth.po.AuthRolePO; @@ -80,7 +81,8 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { } @Override - public void sync(Long roleId) { + public void sync(AuthSyncParam param) { + Long roleId = param.getRoleId(); Date now = new Date(); List list = list(roleId); diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index e6ed6edaf..eb7462c90 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; import java.util.List; @@ -30,14 +31,14 @@ public interface AuthMemberService { /** * 删除成员 - * @param id + * @param ids */ - void delete(Long id); + void delete(List ids); /** * 同步成员 - * @param roleId + * @param param */ - void sync(Long roleId); + void sync(AuthSyncParam param); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 9f98968d7..548bd2c33 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; +import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import com.engine.salary.entity.auth.po.AuthRolePO; @@ -93,28 +94,34 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } @Override - public void delete(Long id) { - AuthMemberPO po = getAuthMemberMapper().getById(id); - if (po == null) { - throw new SalaryRunTimeException("成员不存在!"); - } + public void delete(List ids) { + + ids.forEach(id -> { + AuthMemberPO po = getAuthMemberMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("成员不存在!"); + } + + getAuthMemberMapper().deleteByIds(Collections.singleton(id)); + + AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + }); - getAuthMemberMapper().deleteByIds(Collections.singleton(id)); - AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); } @Override - public void sync(Long roleId) { + public void sync(AuthSyncParam param) { + Long roleId = param.getRoleId(); AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); if (rolePO == null) { throw new SalaryRunTimeException("角色不存在!"); diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index e792ffe69..41a8b4622 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -26,8 +26,8 @@ public interface AuthRoleService { /** * 删除角色 - * @param id + * @param ids */ - void deleteRole(Long id); + void deleteRole(List ids); } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 58c0bad20..2abdf44e3 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -107,24 +107,26 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { } @Override - public void deleteRole(Long id) { - AuthRolePO po = getAuthRoleMapper().getById(id); - if (po == null) { - throw new SalaryRunTimeException("角色不存在!"); - } + public void deleteRole(List ids) { + ids.forEach(id -> { + AuthRolePO po = getAuthRoleMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("角色不存在!"); + } - getAuthMemberMapper().deleteByRoleId(id); - getAuthRoleMapper().deleteByIds(Collections.singleton(id)); + getAuthMemberMapper().deleteByRoleId(id); + getAuthRoleMapper().deleteByIds(Collections.singleton(id)); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(po.getTaxAgentId() + ""); - loggerContext.setTargetName("角色:" + po.getName()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getTaxAgentId() + ""); + loggerContext.setTargetName("角色:" + po.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + }); } } diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 1d2fc833e..95486b6c7 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -18,6 +18,7 @@ import javax.servlet.http.HttpServletResponse; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import java.util.List; /** * 数据采集-其他免税扣除 @@ -45,9 +46,9 @@ public class AuthController { @POST @Path("/role/delete") @Produces(MediaType.APPLICATION_JSON) - public String deleteRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + public String deleteRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::deleteRole, id); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteRole, ids); } @POST @@ -69,17 +70,17 @@ public class AuthController { @POST @Path("/member/delete") @Produces(MediaType.APPLICATION_JSON) - public String deleteMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long id) { + public String deleteMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::deleteMember, id); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteMember, ids); } @POST @Path("/member/sync") @Produces(MediaType.APPLICATION_JSON) - public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { + public String syncMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthSyncParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, roleId); + return new ResponseResult(user).run(getAuthWrapper(user)::syncMember, param); } @@ -118,9 +119,9 @@ public class AuthController { @POST @Path("/data/sync") @Produces(MediaType.APPLICATION_JSON) - public String syncData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Long roleId) { + public String syncData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthSyncParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::syncData, roleId); + return new ResponseResult(user).run(getAuthWrapper(user)::syncData, param); } @GET diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index ec03226dd..de2836574 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -47,8 +47,8 @@ public class AuthWrapper extends Service { } - public void deleteRole(Long id) { - getAuthRoleService(user).deleteRole(id); + public void deleteRole(List ids) { + getAuthRoleService(user).deleteRole(ids); } public PageInfo memberList(AuthMemberQueryParam param) { @@ -74,12 +74,12 @@ public class AuthWrapper extends Service { return getAuthMemberService(user).save(param); } - public void deleteMember(Long id) { - getAuthMemberService(user).delete(id); + public void deleteMember(List ids) { + getAuthMemberService(user).delete(ids); } - public void syncMember(Long roleId) { - getAuthMemberService(user).sync(roleId); + public void syncMember(AuthSyncParam param) { + getAuthMemberService(user).sync(param); } public AuthOptDTO optTree(Long roleId) { @@ -114,8 +114,8 @@ public class AuthWrapper extends Service { } - public void syncData(Long roleId) { - getAuthDataService(user).sync(roleId); + public void syncData(AuthSyncParam param) { + getAuthDataService(user).sync(param); } private AuthMapper getAuthMapper() { From e0271c30063a5a3e3f998c19cb8d4fba2934255c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 8 Aug 2024 10:01:41 +0800 Subject: [PATCH 018/184] =?UTF-8?q?=E6=88=90=E5=91=98=E5=92=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/auth/AuthDataService.java | 4 +- .../service/auth/AuthDataServiceImpl.java | 46 +++++++------- .../service/auth/AuthMemberService.java | 4 +- .../service/auth/AuthMemberServiceImpl.java | 62 +++++++++---------- src/com/engine/salary/web/AuthController.java | 8 +-- .../engine/salary/wrapper/AuthWrapper.java | 9 ++- 6 files changed, 66 insertions(+), 67 deletions(-) diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index a86bae60e..e13edec91 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -25,10 +25,10 @@ public interface AuthDataService { /** * 保存数据 - * @param param + * @param params * @return */ - void save(AuthDataSaveParam param); + void save(List params); /** * 同步 diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 47edf7639..39938cd53 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -54,30 +54,32 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { } @Override - public void save(AuthDataSaveParam param) { - Date now = new Date(); - Long roleId = param.getRoleId(); - AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); - if (rolePO == null) { - throw new SalaryRunTimeException("角色不存在!"); - } + public void save(List params) { + params.forEach(param -> { + Date now = new Date(); + Long roleId = param.getRoleId(); + AuthRolePO rolePO = getAuthRoleMapper().getById(roleId); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } - AuthDataPO dataPO = AuthDataPO.builder() - .id(IdGenerator.generate()) - .roleId(param.getRoleId()) - .link(param.getLink().getValue()) - .targetType(param.getTargetType().getValue()) - .target(param.getTarget()) - .targetName(param.getTargetName()) - .sortedIndex(param.getSortedIndex()) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); + AuthDataPO dataPO = AuthDataPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); - getAuthDataMapper().insertIgnoreNull(dataPO); + getAuthDataMapper().insertIgnoreNull(dataPO); + }); } @Override diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index eb7462c90..d93ccf266 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -24,10 +24,10 @@ public interface AuthMemberService { /** * 添加成员 - * @param param + * @param params * @return */ - Long save(AuthMemberSaveParam param); + void save(List params); /** * 删除成员 diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 548bd2c33..58427cf2c 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -57,40 +57,38 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } @Override - public Long save(AuthMemberSaveParam param) { + public void save(List params) { + params.forEach(param -> { + AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId()); + if (rolePO == null) { + throw new SalaryRunTimeException("角色不存在!"); + } - AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId()); - if (rolePO == null) { - throw new SalaryRunTimeException("角色不存在!"); - } + Date now = new Date(); + AuthMemberPO po = AuthMemberPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .target(param.getTarget()) + .targetType(param.getTargetType().getValue()) + .targetName(param.getTargetName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthMemberMapper().insertIgnoreNull(po); - Date now = new Date(); - AuthMemberPO po = AuthMemberPO.builder() - .id(IdGenerator.generate()) - .roleId(param.getRoleId()) - .target(param.getTarget()) - .targetType(param.getTargetType().getValue()) - .targetName(param.getTargetName()) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - getAuthMemberMapper().insertIgnoreNull(po); - - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); - - - return po.getId(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + }); } @Override diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 95486b6c7..817a92176 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -62,9 +62,9 @@ public class AuthController { @POST @Path("/member/save") @Produces(MediaType.APPLICATION_JSON) - public String saveMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberSaveParam param) { + public String saveMember(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::saveMember, param); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::saveMember, param); } @POST @@ -111,9 +111,9 @@ public class AuthController { @POST @Path("/data/save") @Produces(MediaType.APPLICATION_JSON) - public String saveData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataSaveParam param) { + public String saveData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List params) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::saveData, param); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::saveData, params); } @POST diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index de2836574..cfecd13da 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -69,9 +69,8 @@ public class AuthWrapper extends Service { return authMemberDTOPageInfo; } - public Long saveMember(AuthMemberSaveParam param) { - ValidUtil.doValidator(param); - return getAuthMemberService(user).save(param); + public void saveMember(List param) { + getAuthMemberService(user).save(param); } public void deleteMember(List ids) { @@ -109,8 +108,8 @@ public class AuthWrapper extends Service { } - public void saveData(AuthDataSaveParam authDataSaveParam) { - getAuthDataService(user).save(authDataSaveParam); + public void saveData(List params) { + getAuthDataService(user).save(params); } From 9b390faf50adc50308225bcf778d6963ee1990b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 19 Aug 2024 11:33:15 +0800 Subject: [PATCH 019/184] =?UTF-8?q?SQL=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/param/AuthMemberSaveParam.java | 4 ++++ src/com/engine/salary/service/auth/AuthOptServiceImpl.java | 7 ++----- src/com/engine/salary/wrapper/AuthWrapper.java | 3 +++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java index 3c605391f..dfc715185 100644 --- a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -2,6 +2,8 @@ package com.engine.salary.entity.auth.param; import com.engine.salary.enums.auth.MemberTargetTypeEnum; +import com.engine.salary.util.valid.Modify; +import com.engine.salary.util.valid.ModifyTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -17,7 +19,9 @@ public class AuthMemberSaveParam { private MemberTargetTypeEnum targetType; + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) private String target; + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) private String targetName; } \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java index ed96d0b62..c4ad72c7b 100644 --- a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -17,10 +17,7 @@ import com.thoughtworks.xstream.security.AnyTypePermission; import weaver.general.GCONST; import java.io.File; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; public class AuthOptServiceImpl extends Service implements AuthOptService { @@ -49,7 +46,7 @@ public class AuthOptServiceImpl extends Service implements AuthOptService { dto.getModules().forEach(module -> { module.getPages().forEach(page -> { - Set opts = pageOpts.get(page.getKey()); + Set opts = pageOpts.getOrDefault(page.getKey(),new HashSet<>()); page.getOpts().forEach(opt -> { if(opts.contains(opt.getKey())){ opt.setAble(true); diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index cfecd13da..0b2039314 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -70,6 +70,9 @@ public class AuthWrapper extends Service { } public void saveMember(List param) { + + param.forEach(ValidUtil::modify); + getAuthMemberService(user).save(param); } From 7c46da5fce9c88b13f7301dfb8b5587982052f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 19 Aug 2024 15:29:45 +0800 Subject: [PATCH 020/184] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/auth/AuthDataMapper.java | 7 +++++++ src/com/engine/salary/mapper/auth/AuthDataMapper.xml | 7 +++++++ src/com/engine/salary/service/auth/AuthDataService.java | 7 +++++++ .../engine/salary/service/auth/AuthDataServiceImpl.java | 8 ++++++++ src/com/engine/salary/web/AuthController.java | 8 ++++++++ src/com/engine/salary/wrapper/AuthWrapper.java | 3 +++ 6 files changed, 40 insertions(+) diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.java b/src/com/engine/salary/mapper/auth/AuthDataMapper.java index f59636000..fde50bd66 100644 --- a/src/com/engine/salary/mapper/auth/AuthDataMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.java @@ -69,4 +69,11 @@ public interface AuthDataMapper { * @param ids 主键id集合 */ void deleteByIds(@Param("ids") Collection ids); + + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml index 5a1c59d08..b63821cba 100644 --- a/src/com/engine/salary/mapper/auth/AuthDataMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthDataMapper.xml @@ -265,5 +265,12 @@ + + UPDATE hrsa_auth_data + SET delete_type = 1 + WHERE delete_type = 0 + AND role_id=#{roleId} + +
\ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index e13edec91..bb4b48609 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -30,9 +30,16 @@ public interface AuthDataService { */ void save(List params); + /** + * 删除 + * @param ids + */ + void delete(List ids); + /** * 同步 * @param param */ void sync(AuthSyncParam param); + } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 39938cd53..3d33df860 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.auth; +import cn.hutool.core.collection.CollectionUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.param.AuthDataSaveParam; @@ -82,6 +83,13 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { }); } + @Override + public void delete(List ids) { + if(CollectionUtil.isNotEmpty(ids)){ + getAuthDataMapper().deleteByIds(ids); + } + } + @Override public void sync(AuthSyncParam param) { Long roleId = param.getRoleId(); diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 817a92176..c96ef46d9 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -116,6 +116,14 @@ public class AuthController { return new ResponseResult, Long>(user).run(getAuthWrapper(user)::saveData, params); } + @POST + @Path("/data/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult< List , Long>(user).run(getAuthWrapper(user)::deleteData, ids); + } + @POST @Path("/data/sync") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 0b2039314..86d7b1c04 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -115,6 +115,9 @@ public class AuthWrapper extends Service { getAuthDataService(user).save(params); } + public void deleteData(List ids) { + getAuthDataService(user).delete(ids); + } public void syncData(AuthSyncParam param) { getAuthDataService(user).sync(param); From ae3d666e7dda07996419ca3d8a85092525fc30a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 20 Aug 2024 11:40:12 +0800 Subject: [PATCH 021/184] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=92=8C=E7=94=B3?= =?UTF-8?q?=E6=8A=A5=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 13 +++++++++++++ src/com/engine/salary/web/AuthController.java | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 5d9d98f08..3b6b0e9a6 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -14,6 +14,19 @@ + + + + + + + + + + + + + diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index c96ef46d9..7fbfb9f08 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType; import java.util.List; /** - * 数据采集-其他免税扣除 + * 权限 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* From a22aa624dbb5be598b1fb44bf70b89d480ee01cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 22 Aug 2024 15:37:50 +0800 Subject: [PATCH 022/184] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 9 ++- .../salary/entity/auth/dto/AuthDataDTO.java | 14 +++- .../salary/entity/auth/dto/AuthMemberDTO.java | 2 +- .../salary/entity/auth/dto/AuthOptDTO.java | 4 ++ .../entity/auth/param/AuthDataSaveParam.java | 5 ++ .../auth/param/AuthMemberSaveParam.java | 2 + .../entity/auth/param/AuthOptSaveParam.java | 1 + .../entity/auth/param/AuthRoleSaveParam.java | 2 +- .../salary/entity/auth/po/AuthDataPO.java | 2 + .../salary/enums/auth/DataLinkEnum.java | 6 +- .../service/auth/AuthDataServiceImpl.java | 47 ++++++++----- .../service/auth/AuthMemberServiceImpl.java | 70 +++++++++++++------ .../service/auth/AuthOptServiceImpl.java | 1 + .../salary/service/auth/AuthServiceImpl.java | 15 ++-- .../impl/SalaryArchiveServiceImpl.java | 10 --- .../salary/web/SalarySobController.java | 11 +++ .../engine/salary/wrapper/AuthWrapper.java | 12 +++- .../salary/wrapper/SalaryArchiveWrapper.java | 3 +- .../salary/wrapper/SalarySobWrapper.java | 3 + 19 files changed, 149 insertions(+), 70 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 3b6b0e9a6..a0746c596 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -14,13 +14,20 @@ - + + + + + + + + diff --git a/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java index 58986ccf6..cd3d3600b 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthDataDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.auth.dto; import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -15,7 +16,15 @@ public class AuthDataDTO { private Long id; - @TableTitle(title = "对象类型",dataIndex = "targetType",key = "targetType") + /** + * 连接符,交、并、补 + */ + @TableTitle(title = "连接",dataIndex = "linkName",key = "linkName") + private String linkName; + + private DataLinkEnum link; + + @TableTitle(title = "对象类型",dataIndex = "targetTypeName",key = "targetTypeName") private String targetTypeName; private DataTargetTypeEnum targetType; @@ -23,4 +32,7 @@ public class AuthDataDTO { private String targetName; private String target; + @TableTitle(title = "批次",dataIndex = "sortedIndex",key = "sortedIndex") + private Integer sortedIndex; + } diff --git a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java index 699e48db8..fe0b24e98 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthMemberDTO.java @@ -15,7 +15,7 @@ public class AuthMemberDTO { private Long id; - @TableTitle(title = "对象类型",dataIndex = "targetType",key = "targetType") + @TableTitle(title = "对象类型",dataIndex = "targetTypeName",key = "targetTypeName") private String targetTypeName; private MemberTargetTypeEnum targetType; diff --git a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java index c50e1bf33..2a71e4129 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthOptDTO.java @@ -50,6 +50,10 @@ public class AuthOptDTO { @XStreamAsAttribute private String key; + @XStreamAlias("limit") + @XStreamAsAttribute + private String limit; + @XStreamImplicit(itemFieldName = "opt") private List opts; diff --git a/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java index 2e7e9e24e..86784082f 100644 --- a/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthDataSaveParam.java @@ -3,6 +3,8 @@ package com.engine.salary.entity.auth.param; import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; +import com.engine.salary.util.valid.Modify; +import com.engine.salary.util.valid.ModifyTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,6 +23,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class AuthDataSaveParam { + private Long id; private Long roleId; @@ -28,8 +31,10 @@ public class AuthDataSaveParam { private DataTargetTypeEnum targetType; + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) private String target; + @Modify(modifyType = ModifyTypeEnum.RESTORE_SQL) private String targetName; private Integer sortedIndex; diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java index dfc715185..9486d1e96 100644 --- a/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthMemberSaveParam.java @@ -15,6 +15,8 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class AuthMemberSaveParam { + private Long id; + private Long roleId; private MemberTargetTypeEnum targetType; diff --git a/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java index cea3df117..c720fedcc 100644 --- a/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthOptSaveParam.java @@ -18,6 +18,7 @@ public class AuthOptSaveParam { @Data public static class Opt { + private String page; private String opt; diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 1d45ec604..edb128c22 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -24,7 +24,7 @@ public class AuthRoleSaveParam { private String name; - @DataCheck(require = true, max = 400, message = "名称不允许为空,名称不能超过400个字符") + @DataCheck(require = false, max = 400, message = "描述不能超过400个字符") private String description; /** diff --git a/src/com/engine/salary/entity/auth/po/AuthDataPO.java b/src/com/engine/salary/entity/auth/po/AuthDataPO.java index ff00e66a9..b29b6992a 100644 --- a/src/com/engine/salary/entity/auth/po/AuthDataPO.java +++ b/src/com/engine/salary/entity/auth/po/AuthDataPO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.auth.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.auth.DataLinkEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -28,6 +29,7 @@ public class AuthDataPO { /** * 连接符,交、并、补 + * @see DataLinkEnum */ @ElogTransform(name = "连接符,交、并、补") private Integer link; diff --git a/src/com/engine/salary/enums/auth/DataLinkEnum.java b/src/com/engine/salary/enums/auth/DataLinkEnum.java index 37982b037..e99cbf9a6 100644 --- a/src/com/engine/salary/enums/auth/DataLinkEnum.java +++ b/src/com/engine/salary/enums/auth/DataLinkEnum.java @@ -20,19 +20,19 @@ import java.util.Set; public enum DataLinkEnum implements BaseEnum { - OR(1, "并", 87627) { + OR(1, "并集运算", 87627) { @Override public Set calculation(Collection coll1, Collection coll2) { return new HashSet<>(CollectionUtil.union(coll1, coll2)); } }, - AND(2, "交", 87626) { + AND(2, "交集运算", 87626) { @Override public Set calculation(Collection coll1, Collection coll2) { return new HashSet<>(CollectionUtil.intersection(coll1, coll2)); } }, - NOT_IN(3, "补", 87626) { + NOT_IN(3, "补集运算", 87626) { @Override public Set calculation(Collection coll1, Collection coll2) { return new HashSet<>(CollectionUtil.disjunction(coll1, coll2)); diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 3d33df860..400ccb03c 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -64,22 +64,37 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { throw new SalaryRunTimeException("角色不存在!"); } - AuthDataPO dataPO = AuthDataPO.builder() - .id(IdGenerator.generate()) - .roleId(param.getRoleId()) - .link(param.getLink().getValue()) - .targetType(param.getTargetType().getValue()) - .target(param.getTarget()) - .targetName(param.getTargetName()) - .sortedIndex(param.getSortedIndex()) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - - getAuthDataMapper().insertIgnoreNull(dataPO); + if(param.getId() == null){ + AuthDataPO dataPO = AuthDataPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthDataMapper().insertIgnoreNull(dataPO); + }else{ + getAuthDataMapper().getById(param.getId()); + AuthDataPO dataPO = AuthDataPO.builder() + .id(param.getId()) + .link(param.getLink().getValue()) + .targetType(param.getTargetType().getValue()) + .target(param.getTarget()) + .targetName(param.getTargetName()) + .sortedIndex(param.getSortedIndex()) + .creator((long) user.getUID()) + .updateTime(now) + .deleteType(0) + .build(); + getAuthDataMapper().updateIgnoreNull(dataPO); + } }); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 58427cf2c..7860ca094 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -65,29 +65,55 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } Date now = new Date(); - AuthMemberPO po = AuthMemberPO.builder() - .id(IdGenerator.generate()) - .roleId(param.getRoleId()) - .target(param.getTarget()) - .targetType(param.getTargetType().getValue()) - .targetName(param.getTargetName()) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - getAuthMemberMapper().insertIgnoreNull(po); + if (param.getId() == null) { + AuthMemberPO po = AuthMemberPO.builder() + .id(IdGenerator.generate()) + .roleId(param.getRoleId()) + .target(param.getTarget()) + .targetType(param.getTargetType().getValue()) + .targetName(param.getTargetName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthMemberMapper().insertIgnoreNull(po); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + } else { + AuthMemberPO oldPO = getAuthMemberMapper().getById(param.getId()); + AuthMemberPO newPo = AuthMemberPO.builder() + .id(param.getId()) + .target(param.getTarget()) + .targetType(param.getTargetType().getValue()) + .targetName(param.getTargetName()) + .creator((long) user.getUID()) + .updateTime(now) + .deleteType(0) + .build(); + getAuthMemberMapper().updateIgnoreNull(newPo); + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + newPo.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(newPo); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + } - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); }); } diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java index c4ad72c7b..d342c2ebf 100644 --- a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -39,6 +39,7 @@ public class AuthOptServiceImpl extends Service implements AuthOptService { XStream xStream = new XStream(); String resource = GCONST.getRootPath() + "WEB-INF" + File.separatorChar + "salaryoptconfig.xml"; File file = new File("H:\\code\\salary\\resource\\WEB-INF\\salaryoptconfig.xml"); +// File file = new File(resource); xStream.addPermission(AnyTypePermission.ANY); xStream.processAnnotations(AuthOptDTO.class); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 147b66ae8..a9672a6da 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.auth.dto.AuthDTO; import com.engine.salary.entity.auth.dto.EmpOpt; import com.engine.salary.entity.auth.dto.Opt; import com.engine.salary.enums.auth.AuthCheckTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMapper; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.TaxAgentServiceImpl; @@ -53,12 +54,6 @@ public class AuthServiceImpl extends Service implements AuthService { if (isChief) { list.forEach(t -> { try { - Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); - Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); - - Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); - Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); - Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); Set opts = (Set) optsFieldGetterMethod.invoke(t); if (opts == null) { @@ -71,7 +66,7 @@ public class AuthServiceImpl extends Service implements AuthService { optsFieldSetterMethod.invoke(t, opts); } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); + throw new SalaryRunTimeException(e); } }); @@ -103,11 +98,9 @@ public class AuthServiceImpl extends Service implements AuthService { iterator.remove(); } } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); + throw new SalaryRunTimeException(e); } } - - return list; } @@ -149,7 +142,7 @@ public class AuthServiceImpl extends Service implements AuthService { } } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); + throw new SalaryRunTimeException(e); } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 2d79e3928..8afde0c90 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -216,9 +216,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe }.start(); } - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); @@ -1067,16 +1064,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map queryTabTotal() { - long currentEmployeeId = user.getUID(); - // tab页签数量 Map result = new HashMap<>(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - - //获取管理的人员范围 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); List list = getSalaryArchiveMapper().listAll(); list = getAuthService(user).auth(list,SalaryArchivePO.class); diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index cfb78aefd..5c5caeaec 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -87,6 +87,17 @@ public class SalarySobController { return new ResponseResult>(user).run(getSalarySobWrapper(user)::listPage, queryParam); } + /** + * 薪资账套列表 + */ + @GET + @Path("/listByTaxAgent") + @Produces(MediaType.APPLICATION_JSON) + public String listSalarySob(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "taxAgentId") Long taxAgentId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listByTaxAgent, taxAgentId); + } + /** * 薪资账套列表 */ diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 86d7b1c04..a0507c719 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.mapper.auth.AuthMapper; @@ -64,7 +65,8 @@ public class AuthWrapper extends Service { .target(po.getTarget()) .build()) .collect(Collectors.toList()); - PageInfo authMemberDTOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthMemberDTO.class); + PageInfo authMemberDTOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), AuthMemberDTO.class); + authMemberDTOPageInfo.setList(dtos); authMemberDTOPageInfo.setTotal(total); return authMemberDTOPageInfo; } @@ -98,20 +100,26 @@ public class AuthWrapper extends Service { list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list); List dtos = list.stream().map(po -> AuthDataDTO.builder() .id(po.getId()) + .link(DataLinkEnum.parseByValue(po.getLink())) + .linkName(DataLinkEnum.parseByValue(po.getLink()).getDefaultLabel()) .targetTypeName(DataTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) .targetType(DataTargetTypeEnum.parseByValue(po.getTargetType())) .targetName(po.getTargetName()) .target(po.getTarget()) + .sortedIndex(po.getSortedIndex()) .build()) .collect(Collectors.toList()); - PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthDataDTO.class); + PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), AuthDataDTO.class); + page.setList(dtos); page.setTotal(total); return page; } public void saveData(List params) { + params.forEach(ValidUtil::modify); + getAuthDataService(user).save(params); } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 22a642feb..bcbda20c0 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -198,8 +198,7 @@ public class SalaryArchiveWrapper extends Service { * @return */ public Map listPage(SalaryArchiveQueryParam queryParam) { - Map list = list(queryParam); - return list; + return list(queryParam); } diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index d5ab26b6b..7bfca57af 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -278,4 +278,7 @@ public class SalarySobWrapper extends Service { return taxAgentIds.contains(salarySobPO.getTaxAgentId())||Objects.isNull(salarySobPO.getTaxAgentId()); } + public List listByTaxAgent(Long taxAgentId) { + return getSalarySobService(user).listByTaxAgentId(taxAgentId); + } } From df8f2d7b3a2509c1162ed2147353f42ea94b847a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 22 Aug 2024 16:37:35 +0800 Subject: [PATCH 023/184] =?UTF-8?q?sql=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/enums/auth/DataTargetTypeEnum.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java index 7317d2931..dc9b76e56 100644 --- a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java +++ b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java @@ -8,7 +8,6 @@ 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.*; @@ -111,9 +110,9 @@ public enum DataTargetTypeEnum implements BaseEnum { @Override public Set getEmpIds(String target, Object... param) { //参数1,登录人信息 - DataCollectionEmployee employee = (DataCollectionEmployee) param[0]; +// DataCollectionEmployee employee = (DataCollectionEmployee) param[0]; +// target = target.replaceAll("$uid$", Util.null2String(employee.getEmployeeId())); Set memberList = new HashSet<>(); - target = target.replaceAll("$uid$", Util.null2String(employee.getEmployeeId())); RecordSet rs = new RecordSet(); if (rs.execute(target)) { while (rs.next()) { From 36c325c62d80407f2bc9f9315ea4483514df2735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 23 Aug 2024 09:38:54 +0800 Subject: [PATCH 024/184] =?UTF-8?q?sql=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 19 ++++++--------- .../salary/service/auth/AuthDataService.java | 1 + .../service/auth/AuthDataServiceImpl.java | 6 +++++ .../service/auth/AuthMemberService.java | 1 + .../service/auth/AuthMemberServiceImpl.java | 6 +++++ .../salary/service/auth/AuthOptService.java | 1 + .../service/auth/AuthOptServiceImpl.java | 5 ++++ .../service/auth/AuthRoleServiceImpl.java | 24 ++++++++++++------- 8 files changed, 43 insertions(+), 20 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index a0746c596..de9489e3b 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -1,39 +1,34 @@ - - - - - + + + + + - + - - - - - + - diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index bb4b48609..5265f1aac 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -42,4 +42,5 @@ public interface AuthDataService { */ void sync(AuthSyncParam param); + void deleteByRoleId(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 400ccb03c..fee2310e0 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -142,4 +142,10 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { List> partition = Lists.partition(collect, 100); partition.forEach(pos -> getAuthRoleDataMapper().batchInsert(pos)); } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthDataMapper().deleteByRoleId(roleId); + getAuthRoleDataMapper().deleteByRoleId(roleId); + } } diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index d93ccf266..fad3cd959 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -41,4 +41,5 @@ public interface AuthMemberService { */ void sync(AuthSyncParam param); + void deleteByRoleId(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 7860ca094..52f4507b4 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -183,4 +183,10 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); } } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthMemberMapper().deleteByRoleId(roleId); + getAuthRoleEmpMapper().deleteByRoleId(roleId); + } } diff --git a/src/com/engine/salary/service/auth/AuthOptService.java b/src/com/engine/salary/service/auth/AuthOptService.java index 82a6f3e4f..b96e2b684 100644 --- a/src/com/engine/salary/service/auth/AuthOptService.java +++ b/src/com/engine/salary/service/auth/AuthOptService.java @@ -26,4 +26,5 @@ public interface AuthOptService { */ void save(AuthOptSaveParam param); + void deleteByRoleId(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java index d342c2ebf..d2c952ec5 100644 --- a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -85,4 +85,9 @@ public class AuthOptServiceImpl extends Service implements AuthOptService { getAuthOptMapper().insertIgnoreNull(po); }); } + + @Override + public void deleteByRoleId(Long roleId) { + getAuthOptMapper().deleteByRoleId(roleId); + } } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 2abdf44e3..4f9a00e8f 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -12,8 +12,6 @@ import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; -import com.engine.salary.service.TaxAgentService; -import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; @@ -33,8 +31,16 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { return MapperProxyFactory.getProxy(AuthMemberMapper.class); } - private TaxAgentService getTaxAgentService(User user) { - return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + private AuthMemberService getAuthMemberService(User user) { + return ServiceUtil.getService(AuthMemberServiceImpl.class, user); + } + + private AuthOptService getAuthOptService(User user) { + return ServiceUtil.getService(AuthOptServiceImpl.class, user); + } + + private AuthDataService getAuthDataService(User user) { + return ServiceUtil.getService(AuthDataServiceImpl.class, user); } @@ -108,14 +114,16 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { @Override public void deleteRole(List ids) { - ids.forEach(id -> { - AuthRolePO po = getAuthRoleMapper().getById(id); + ids.forEach(roleId -> { + AuthRolePO po = getAuthRoleMapper().getById(roleId); if (po == null) { throw new SalaryRunTimeException("角色不存在!"); } - getAuthMemberMapper().deleteByRoleId(id); - getAuthRoleMapper().deleteByIds(Collections.singleton(id)); + getAuthMemberService(user).deleteByRoleId(roleId); + getAuthOptService(user).deleteByRoleId(roleId); + getAuthDataService(user).deleteByRoleId(roleId); + getAuthRoleMapper().deleteByIds(Collections.singleton(roleId)); LoggerContext loggerContext = new LoggerContext<>(); From 9b96d0cff2f47bc663a7925199a3ea4c605909a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 28 Aug 2024 10:02:39 +0800 Subject: [PATCH 025/184] =?UTF-8?q?=E9=99=90=E5=88=B6=E8=B4=A6=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 5 + src/com/engine/salary/annotation/Auth.java | 2 + .../salary/entity/auth/dto/AuthRoleDTO.java | 70 +++++++++ .../salary/entity/auth/dto/AuthSobDTO.java | 17 +++ .../entity/auth/param/AuthRoleSaveParam.java | 7 +- .../salary/entity/auth/po/AuthRolePO.java | 6 + .../salaryarchive/po/SalaryArchivePO.java | 3 + .../entity/salarysob/bo/SalarySobBO.java | 1 + .../salarysob/dto/SalarySobListDTO.java | 2 +- .../entity/salarysob/po/SalarySobPO.java | 6 + .../salary/enums/auth/AuthCheckTypeEnum.java | 3 +- .../salary/enums/auth/AuthFilterTypeEnum.java | 58 ++++++++ .../engine/salary/mapper/auth/AuthMapper.java | 3 + .../engine/salary/mapper/auth/AuthMapper.xml | 28 +++- .../salary/mapper/auth/AuthRoleMapper.xml | 15 ++ .../service/auth/AuthRoleServiceImpl.java | 3 + .../salary/service/auth/AuthService.java | 4 +- .../salary/service/auth/AuthServiceImpl.java | 139 ++++++++++++------ .../impl/SalaryArchiveServiceImpl.java | 5 +- .../service/impl/SalarySobServiceImpl.java | 42 ++++-- 20 files changed, 342 insertions(+), 77 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java create mode 100644 src/com/engine/salary/entity/auth/dto/AuthSobDTO.java create mode 100644 src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index de9489e3b..0fd791b00 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -8,6 +8,11 @@ + + + + + diff --git a/src/com/engine/salary/annotation/Auth.java b/src/com/engine/salary/annotation/Auth.java index 55677a320..2095e4755 100644 --- a/src/com/engine/salary/annotation/Auth.java +++ b/src/com/engine/salary/annotation/Auth.java @@ -21,8 +21,10 @@ public @interface Auth { String page(); AuthCheckTypeEnum checkType() default AuthCheckTypeEnum.TAX_EMP; + boolean setOpts() default true; String taxAgentIdField() default "taxAgentId"; String employeeIdField() default "employeeId"; + String sobIdField() default "sobId"; String optsField() default "opts"; } diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java new file mode 100644 index 000000000..3dbcc37b3 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java @@ -0,0 +1,70 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * 角色 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleDTO { + private Long id; + /** + * 名称 + */ + private String name; + + /** + * 个税扣缴义务人id + */ + private Long taxAgentId; + + /** + * 限制账套 + */ + private List sobs; + + /** + * 描述 + */ + private String description; + + /** + * 创建人 + */ + private Long creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/AuthSobDTO.java b/src/com/engine/salary/entity/auth/dto/AuthSobDTO.java new file mode 100644 index 000000000..350758470 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthSobDTO.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthSobDTO { + private Long taxAgentId; + + private String limitSobs; +} + diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index edb128c22..465f5be54 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -23,7 +23,6 @@ public class AuthRoleSaveParam { @DataCheck(require = true, max = 40, message = "名称不允许为空,名称不能超过40个字符") private String name; - @DataCheck(require = false, max = 400, message = "描述不能超过400个字符") private String description; @@ -33,4 +32,10 @@ public class AuthRoleSaveParam { @DataCheck(require = true, message = "扣缴义务人不允许为空") private Long taxAgentId; + + /** + * 限制账套范围 + */ + private String limitSobs; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index 144b2583d..47dde3804 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -31,6 +31,12 @@ public class AuthRolePO { @ElogTransform(name = "个税扣缴义务人id") private Long taxAgentId; + /** + * 限制账套 + */ + @ElogTransform(name = "限制账套") + private String limitSobs; + /** * 描述 */ diff --git a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java index f3fee2f08..25ad7601a 100644 --- a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java +++ b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchivePO.java @@ -15,6 +15,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 薪资档案 @@ -138,4 +139,6 @@ public class SalaryArchivePO { */ @JsonIgnore private List runStatusList; + + private Set opts; } diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java index e84a890ee..f235e4a25 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java @@ -76,6 +76,7 @@ public class SalarySobBO { .salaryCycle(buildSalaryCycle(salarySobPO)) .disable(salarySobPO.getDisable()) .description(salarySobPO.getDescription()) +// .opts(salarySobPO.getOpts()) .build()) .collect(Collectors.toList()); } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java index cb100ef55..0d1227764 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java @@ -66,5 +66,5 @@ public class SalarySobListDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", key = "operate", dataIndex = "operate") - private String operate; + private String opts; } diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java index 231d6f866..d2435b4ec 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.salarysob.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.util.valid.Compare; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; @@ -13,6 +15,7 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * 薪资帐套表 @@ -25,6 +28,7 @@ import java.util.Date; @ElogTransform( name="薪资账套" ) //hrsa_salary_sob @XStreamAlias("SalarySob") +@Auth(page = "salarySob",checkType = AuthCheckTypeEnum.SOB,sobIdField="id",setOpts = false) public class SalarySobPO { /** @@ -174,4 +178,6 @@ public class SalarySobPO { Collection ids; Collection taxAgentIds; + private Set opts; + } \ No newline at end of file diff --git a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java index f715fdbb3..5a648465a 100644 --- a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java +++ b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java @@ -18,7 +18,8 @@ public enum AuthCheckTypeEnum implements BaseEnum { TAX_EMP("TAX_EMP", "扣缴义务人和人员混合验证", 87627), EMP("EMP", "人员验证", 87626), - TAX("TAX", "扣缴义务人验证", 87626); + TAX("TAX", "扣缴义务人验证", 87626), + SOB("SOB", "扣缴义务人验证", 87626); private String value; diff --git a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java new file mode 100644 index 000000000..d52e2d0e8 --- /dev/null +++ b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java @@ -0,0 +1,58 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; + +import java.util.Objects; + +/** + * 权限过滤 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum AuthFilterTypeEnum implements BaseEnum { + + + ONLY_DATA("ONLY_DATA", "仅数据权限", 87627), +// ONLY_OPT("ONLY_OPT", "仅功能权限", 87626), + DATA_OPT("DATA_OPT", "数据&功能权限", 87626); + + + private String value; + private String defaultLabel; + private int labelId; + + AuthFilterTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static AuthFilterTypeEnum parseByValue(String value) { + for (AuthFilterTypeEnum typeEnum : AuthFilterTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index e762c6511..a30125137 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,6 +1,7 @@ package com.engine.salary.mapper.auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.entity.auth.dto.AuthSobDTO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -8,4 +9,6 @@ import java.util.List; public interface AuthMapper { List getAuth(@Param("uid") Long uid, @Param("page") String page); + + List getLimitSobs(@Param("uid") Long uid); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index 9a29df352..aced2df21 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -6,8 +6,6 @@ - - @@ -15,12 +13,26 @@ + + + + + + + + diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml index e6cf464cf..9b9a0267f 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -6,6 +6,7 @@ + @@ -21,6 +22,7 @@ , t.name , t.description , t.tax_agent_id + , t.limit_sobs , t.creator , t.create_time , t.update_time @@ -62,6 +64,9 @@ AND tax_agent_id = #{taxAgentId} + + AND limit_sobs = #{limitSobs} + AND creator = #{creator} @@ -104,6 +109,9 @@ tax_agent_id, + + limit_sobs, + creator, @@ -133,6 +141,9 @@ #{taxAgentId}, + + #{limitSobs}, + #{creator}, @@ -158,6 +169,7 @@ name=#{name}, description=#{description}, tax_agent_id=#{taxAgentId}, + limit_sobs=#{limitSobs}, creator=#{creator}, create_time=#{createTime}, update_time=#{updateTime}, @@ -181,6 +193,9 @@ tax_agent_id=#{taxAgentId}, + + limit_sobs=#{limitSobs}, + creator=#{creator}, diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 4f9a00e8f..752849370 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -56,6 +56,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { String name = param.getName(); String description = param.getDescription(); Long taxAgentId = param.getTaxAgentId(); + String limitSobs = param.getLimitSobs(); AuthRolePO po; @@ -65,6 +66,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .name(name) .description(description) .taxAgentId(taxAgentId) + .limitSobs(limitSobs) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -93,6 +95,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .name(name) .description(description) .taxAgentId(po.getTaxAgentId()) + .limitSobs(limitSobs) .updateTime(now) .build(); getAuthRoleMapper().updateIgnoreNull(newPo); diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index b0166dbf4..79542b1d0 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import java.util.List; @@ -13,7 +14,8 @@ import java.util.List; * @version 1.0 **/ public interface AuthService { - List auth(List list, Class clazz); + + List auth(List list, AuthFilterTypeEnum filterType, Class clazz); List auth(String page); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index a9672a6da..7d9c35771 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -5,9 +5,11 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.annotation.Auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.entity.auth.dto.AuthSobDTO; import com.engine.salary.entity.auth.dto.EmpOpt; import com.engine.salary.entity.auth.dto.Opt; import com.engine.salary.enums.auth.AuthCheckTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMapper; import com.engine.salary.service.TaxAgentService; @@ -27,12 +29,17 @@ public class AuthServiceImpl extends Service implements AuthService { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private AuthRoleService getAuthRoleService(User user) { + return ServiceUtil.getService(AuthRoleServiceImpl.class, user); + } + private AuthMapper getAuthMapper() { return MapperProxyFactory.getProxy(AuthMapper.class); } + @Override - public List auth(List list, Class clazz) { + public List auth(List list, AuthFilterTypeEnum filterType, Class clazz) { Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); boolean isAuth = clazz.isAnnotationPresent(Auth.class); @@ -45,6 +52,8 @@ public class AuthServiceImpl extends Service implements AuthService { String taxAgentIdFieldGetter = "get" + taxAgentIdField.substring(0, 1).toUpperCase() + taxAgentIdField.substring(1); String employeeIdField = auth.employeeIdField(); String employeeIdFieldGetter = "get" + employeeIdField.substring(0, 1).toUpperCase() + employeeIdField.substring(1); + String sobIdField = auth.sobIdField(); + String sobIdFieldGetter = "get" + sobIdField.substring(0, 1).toUpperCase() + sobIdField.substring(1); String optsField = auth.optsField(); String optsFieldGetter = "get" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); String optsFieldSetter = "set" + optsField.substring(0, 1).toUpperCase() + optsField.substring(1); @@ -54,17 +63,18 @@ public class AuthServiceImpl extends Service implements AuthService { if (isChief) { list.forEach(t -> { try { - Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); - Set opts = (Set) optsFieldGetterMethod.invoke(t); - if (opts == null) { - opts = new HashSet<>(); + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); } - opts.add("query"); - opts.add("admin"); - - Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); - optsFieldSetterMethod.invoke(t, opts); - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { throw new SalaryRunTimeException(e); } @@ -84,16 +94,18 @@ public class AuthServiceImpl extends Service implements AuthService { Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); if (adminTaxAgentIds.contains(taxAgentId)) { - Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); - Set opts = (Set) optsFieldGetterMethod.invoke(t); - if (opts == null) { - opts = new HashSet<>(); - } - opts.add("query"); - opts.add("admin"); + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); - Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); - optsFieldSetterMethod.invoke(t, opts); + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } } else { iterator.remove(); } @@ -109,44 +121,75 @@ public class AuthServiceImpl extends Service implements AuthService { AuthCheckTypeEnum checkType = auth.checkType(); List authDTOS = getAuthMapper().getAuth((long) user.getUID(), page); Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, AuthDTO::getTaxAgentId, AuthDTO::getEmps); - Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - try { - T t = iterator.next(); - Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); - Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); - Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); - Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); + try { + Iterator iterator = list.iterator(); + if (checkType == AuthCheckTypeEnum.TAX_EMP) { - //混合验证 - if (authMap.containsKey(taxAgentId)) { - List orDefault = authMap.getOrDefault(taxAgentId, new ArrayList<>()); - Map> optsMap = SalaryEntityUtil.convert2Map(orDefault, EmpOpt::getEmployeeId, EmpOpt::getOpts); - if (optsMap.containsKey(employeeId)) { - Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()).stream().map(Opt::getOpt).collect(Collectors.toSet()); - Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); - Set opts = (Set) optsFieldGetterMethod.invoke(t); - if (opts == null) { - opts = new HashSet<>(); + while (iterator.hasNext()) { + T t = iterator.next(); + //混合验证 + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + Method employeeIdFieldGetterMethod = t.getClass().getMethod(employeeIdFieldGetter); + Long employeeId = (Long) employeeIdFieldGetterMethod.invoke(t); + + if (authMap.containsKey(taxAgentId)) { + List orDefault = authMap.getOrDefault(taxAgentId, new ArrayList<>()); + Map> optsMap = SalaryEntityUtil.convert2Map(orDefault, EmpOpt::getEmployeeId, EmpOpt::getOpts); + if (optsMap.containsKey(employeeId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()).stream().map(Opt::getOpt).collect(Collectors.toSet()); + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } + } else { + iterator.remove(); } - opts.addAll(optSets); - - Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); - optsFieldSetterMethod.invoke(t, opts); } else { iterator.remove(); } - } else { - iterator.remove(); } + } else if (checkType == AuthCheckTypeEnum.SOB) { + List limitSobs = getAuthMapper().getLimitSobs((long) user.getUID()); + Map> taxLimitSobs = SalaryEntityUtil.group2Map(limitSobs, AuthSobDTO::getTaxAgentId, AuthSobDTO::getLimitSobs); - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - throw new SalaryRunTimeException(e); + while (iterator.hasNext()) { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); + Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); + + if (taxLimitSobs.containsKey(taxAgentId)) { + Set limitSobIds = taxLimitSobs.get(taxAgentId); + boolean hasAuth = false; + for (String sobIdStrs : limitSobIds) { + List sobIds = Arrays.asList(sobIdStrs.split(",")); + if (CollectionUtil.isEmpty(sobIds)) { + hasAuth = true; + }else { + hasAuth = sobIds.contains(sobId.toString()); + } + } + if(!hasAuth){ + iterator.remove(); + } + } else { + iterator.remove(); + } + } } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); } - - return list; } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 8afde0c90..d315b44b2 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -27,6 +27,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.*; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; @@ -231,7 +232,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe .collect(Collectors.toList()); //能查看哪些档案 - list = getAuthService(user).auth(list, SalaryArchiveListDTO.class); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT , SalaryArchiveListDTO.class); PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class); @@ -1069,7 +1070,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe List list = getSalaryArchiveMapper().listAll(); - list = getAuthService(user).auth(list,SalaryArchivePO.class); + list = getAuthService(user).auth(list,AuthFilterTypeEnum.ONLY_DATA,SalaryArchivePO.class); long pendingTotal = 0L; long fixedTotal = 0L; diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index f1ff59e93..3674f1697 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -24,12 +24,15 @@ import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobMapper; import com.engine.salary.mapper.taxagent.TaxAgentExtRangeMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.UploadConfigResponse; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.sys.service.SalarySysConfService; @@ -160,6 +163,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SalarySobPO getById(Long id) { return salarySobMapper.getById(id); @@ -253,21 +260,26 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { build.setTaxAgentId(queryParam.getTaxAgentId()); } - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - List salarySobPOS = salarySobMapper.listSome(build); - // 根据权限过滤 - List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); - if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { - return page; - } - List subSalarySobs = SalaryPageUtil.subList((int) page.getPageNum(), (int) page.getPageSize(), salarySobsFilterByAuthority); - page.setTotal(salarySobsFilterByAuthority.size()); - page.setList(subSalarySobs); - return page; - } else { - List salarySobPOS = salarySobMapper.listSome(build); - return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salarySobPOS, SalarySobPO.class); - } + List list = salarySobMapper.listSome(build); + + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySobPO.class); + +// if (BooleanUtils.isTrue(openDevolution) && !isChief) { +// List salarySobPOS = salarySobMapper.listSome(build); +// // 根据权限过滤 +// List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); +// if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { +// return page; +// } +// List subSalarySobs = SalaryPageUtil.subList((int) page.getPageNum(), (int) page.getPageSize(), salarySobsFilterByAuthority); +// page.setTotal(salarySobsFilterByAuthority.size()); +// page.setList(subSalarySobs); +// return page; +// } else { +// List salarySobPOS = salarySobMapper.listSome(build); +// return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salarySobPOS, SalarySobPO.class); +// } } @Override From 3721867723e531ba677128eb7318d2e88703b9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 28 Aug 2024 17:55:42 +0800 Subject: [PATCH 026/184] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=92=8C=E8=B4=A6?= =?UTF-8?q?=E5=A5=97=E7=9A=84=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 5 +- src/com/engine/salary/annotation/Auth.java | 3 +- .../{AuthSobDTO.java => AuthLimitDTO.java} | 9 +- .../engine/salary/entity/auth/dto/EmpOpt.java | 3 +- .../salary/entity/auth/dto/RoleLimit.java | 19 ++ .../entity/auth/param/AuthRoleSaveParam.java | 4 +- .../salary/entity/auth/po/AuthLimitPO.java | 71 ++++++ .../salary/entity/auth/po/AuthRolePO.java | 5 - .../dto/SalaryAcctRecordListDTO.java | 10 - .../salaryacct/po/SalaryAcctRecordPO.java | 5 + .../entity/salarysob/po/SalarySobPO.java | 2 +- .../salary/mapper/auth/AuthLimitMapper.java | 78 +++++++ .../salary/mapper/auth/AuthLimitMapper.xml | 216 ++++++++++++++++++ .../engine/salary/mapper/auth/AuthMapper.java | 4 +- .../engine/salary/mapper/auth/AuthMapper.xml | 27 ++- .../salary/mapper/auth/AuthRoleMapper.xml | 15 -- .../salaryacct/SalaryAcctRecordMapper.xml | 62 +++-- .../service/auth/AuthRoleServiceImpl.java | 25 +- .../salary/service/auth/AuthServiceImpl.java | 28 +-- .../impl/SalaryAcctRecordServiceImpl.java | 42 ++-- .../wrapper/SalaryAcctRecordWrapper.java | 20 -- 21 files changed, 525 insertions(+), 128 deletions(-) rename src/com/engine/salary/entity/auth/dto/{AuthSobDTO.java => AuthLimitDTO.java} (72%) create mode 100644 src/com/engine/salary/entity/auth/dto/RoleLimit.java create mode 100644 src/com/engine/salary/entity/auth/po/AuthLimitPO.java create mode 100644 src/com/engine/salary/mapper/auth/AuthLimitMapper.java create mode 100644 src/com/engine/salary/mapper/auth/AuthLimitMapper.xml diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 0fd791b00..b95292d49 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -7,12 +7,15 @@ - + + + + diff --git a/src/com/engine/salary/annotation/Auth.java b/src/com/engine/salary/annotation/Auth.java index 2095e4755..78cc19097 100644 --- a/src/com/engine/salary/annotation/Auth.java +++ b/src/com/engine/salary/annotation/Auth.java @@ -21,10 +21,9 @@ public @interface Auth { String page(); AuthCheckTypeEnum checkType() default AuthCheckTypeEnum.TAX_EMP; - boolean setOpts() default true; String taxAgentIdField() default "taxAgentId"; String employeeIdField() default "employeeId"; - String sobIdField() default "sobId"; + String sobIdField() default "salarySobId"; String optsField() default "opts"; } diff --git a/src/com/engine/salary/entity/auth/dto/AuthSobDTO.java b/src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java similarity index 72% rename from src/com/engine/salary/entity/auth/dto/AuthSobDTO.java rename to src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java index 350758470..1861a0251 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthSobDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthLimitDTO.java @@ -5,13 +5,14 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @Builder @NoArgsConstructor @AllArgsConstructor -public class AuthSobDTO { +public class AuthLimitDTO { private Long taxAgentId; - private String limitSobs; -} - + private List roleLimits; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/EmpOpt.java b/src/com/engine/salary/entity/auth/dto/EmpOpt.java index 89ac9782c..d85e24fe4 100644 --- a/src/com/engine/salary/entity/auth/dto/EmpOpt.java +++ b/src/com/engine/salary/entity/auth/dto/EmpOpt.java @@ -13,6 +13,7 @@ import java.util.Set; @AllArgsConstructor public class EmpOpt { private Long employeeId; - private Set opts; + + private Set opts; } diff --git a/src/com/engine/salary/entity/auth/dto/RoleLimit.java b/src/com/engine/salary/entity/auth/dto/RoleLimit.java new file mode 100644 index 000000000..bad2017a1 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/RoleLimit.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RoleLimit { + private Long roleId; + + private List sobIds; +} + diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 465f5be54..221d2203f 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -9,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @Builder @NoArgsConstructor @@ -36,6 +38,6 @@ public class AuthRoleSaveParam { /** * 限制账套范围 */ - private String limitSobs; + private List limitSobIds; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthLimitPO.java b/src/com/engine/salary/entity/auth/po/AuthLimitPO.java new file mode 100644 index 000000000..2295786c1 --- /dev/null +++ b/src/com/engine/salary/entity/auth/po/AuthLimitPO.java @@ -0,0 +1,71 @@ +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 AuthLimitPO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 角色id + */ + @ElogTransform(name = "角色id") + private Long roleId; + + /** + * 账套限制 + */ + @ElogTransform(name = "账套限制") + private Long sobId; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。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/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index 47dde3804..66d971dcd 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -31,11 +31,6 @@ public class AuthRolePO { @ElogTransform(name = "个税扣缴义务人id") private Long taxAgentId; - /** - * 限制账套 - */ - @ElogTransform(name = "限制账套") - private String limitSobs; /** * 描述 diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index 61a8cd3bc..e4b659776 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -21,16 +21,6 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -//@SalaryTable( -// value = { -// @SalaryTableOperate(index = 0, text = "核算", labelId = 94146), -// @SalaryTableOperate(index = 1, text = "归档", labelId = 92144), -// @SalaryTableOperate(index = 2, text = "查看", labelId = 90821, outer = false), -// @SalaryTableOperate(index = 3, text = "删除", labelId = 87061, outer = false), -// @SalaryTableOperate(index = 4, text = "操作日志", labelId = 87775, outer = false), -// @SalaryTableOperate(index = 5, text = "重新核算", labelId = 98820) -// }, tableType = WeaTableTypeEnum.NONE, pageUid = "salaryAcctRecordList" -//) public class SalaryAcctRecordListDTO { //主键id diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index d2f089f21..b79149181 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -1,7 +1,9 @@ package com.engine.salary.entity.salaryacct.po; +import com.engine.salary.annotation.Auth; import com.engine.salary.common.LocalDateRange; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -28,6 +30,7 @@ import java.util.List; @Builder @ElogTransform( name = "薪资核算记录" ) //hrsa_salary_acct_record +@Auth(page = "salaryAcct",checkType = AuthCheckTypeEnum.SOB) public class SalaryAcctRecordPO { /** @@ -123,6 +126,8 @@ public class SalaryAcctRecordPO { @ElogTransform( name = "更新时间" ) private Date updateTime; + private Long taxAgentId; + /** * 锁定的薪资项目 */ diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java index d2435b4ec..89a17bd77 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java @@ -28,7 +28,7 @@ import java.util.Set; @ElogTransform( name="薪资账套" ) //hrsa_salary_sob @XStreamAlias("SalarySob") -@Auth(page = "salarySob",checkType = AuthCheckTypeEnum.SOB,sobIdField="id",setOpts = false) +@Auth(page = "salarySob",checkType = AuthCheckTypeEnum.SOB,sobIdField="id") public class SalarySobPO { /** diff --git a/src/com/engine/salary/mapper/auth/AuthLimitMapper.java b/src/com/engine/salary/mapper/auth/AuthLimitMapper.java new file mode 100644 index 000000000..0e115e3c3 --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthLimitMapper.java @@ -0,0 +1,78 @@ +package com.engine.salary.mapper.auth; + +import com.engine.salary.entity.auth.po.AuthLimitPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface AuthLimitMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(AuthLimitPO authLimit); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + AuthLimitPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param authLimit 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(AuthLimitPO authLimit); + + /** + * 修改,修改所有字段 + * + * @param authLimit 修改的记录 + * @return 返回影响行数 + */ + int update(AuthLimitPO authLimit); + + /** + * 修改,忽略null字段 + * + * @param authLimit 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(AuthLimitPO authLimit); + + /** + * 删除记录 + * + * @param authLimit 待删除的记录 + * @return 返回影响行数 + */ + int delete(AuthLimitPO authLimit); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + + /** + * 根据角色id删除 + * @param roleId roleId + */ + void deleteByRoleId(Long roleId); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthLimitMapper.xml b/src/com/engine/salary/mapper/auth/AuthLimitMapper.xml new file mode 100644 index 000000000..67a36b79e --- /dev/null +++ b/src/com/engine/salary/mapper/auth/AuthLimitMapper.xml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.role_id + , t.sob_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_auth_limit + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + role_id, + + + sob_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{roleId}, + + + #{sobId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_auth_limit + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + role_id=#{roleId}, + sob_id=#{sobId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_limit + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + role_id=#{roleId}, + + + sob_id=#{sobId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_auth_limit + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_auth_limit + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_auth_limit + SET delete_type = 1 + WHERE delete_type = 0 + AND role_id=#{roleId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index a30125137..75ffa5028 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,7 +1,7 @@ package com.engine.salary.mapper.auth; import com.engine.salary.entity.auth.dto.AuthDTO; -import com.engine.salary.entity.auth.dto.AuthSobDTO; +import com.engine.salary.entity.auth.dto.AuthLimitDTO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,5 +10,5 @@ public interface AuthMapper { List getAuth(@Param("uid") Long uid, @Param("page") String page); - List getLimitSobs(@Param("uid") Long uid); + List getLimitSobs(@Param("uid") Long uid); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index aced2df21..ce37cbf4e 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -5,8 +5,10 @@ - - + + + + @@ -22,17 +24,24 @@ - + - + + + + + + + + diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml index 9b9a0267f..e6cf464cf 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -6,7 +6,6 @@ - @@ -22,7 +21,6 @@ , t.name , t.description , t.tax_agent_id - , t.limit_sobs , t.creator , t.create_time , t.update_time @@ -64,9 +62,6 @@ AND tax_agent_id = #{taxAgentId} - - AND limit_sobs = #{limitSobs} - AND creator = #{creator} @@ -109,9 +104,6 @@ tax_agent_id, - - limit_sobs, - creator, @@ -141,9 +133,6 @@ #{taxAgentId}, - - #{limitSobs}, - #{creator}, @@ -169,7 +158,6 @@ name=#{name}, description=#{description}, tax_agent_id=#{taxAgentId}, - limit_sobs=#{limitSobs}, creator=#{creator}, create_time=#{createTime}, update_time=#{updateTime}, @@ -193,9 +181,6 @@ tax_agent_id=#{taxAgentId}, - - limit_sobs=#{limitSobs}, - creator=#{creator}, diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 4266b9277..6551095fb 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -18,6 +18,24 @@ + + + + + + + + + + + + + + + + + + t @@ -55,73 +73,75 @@ - + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 1056846fc..9cbb47fac 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -2,10 +2,7 @@ package com.engine.salary.service; import com.engine.salary.entity.salarysob.config.SalarySobConfig; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; -import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; -import com.engine.salary.entity.salarysob.param.SalarySobDisableParam; -import com.engine.salary.entity.salarysob.param.SalarySobDuplicateParam; -import com.engine.salary.entity.salarysob.param.SalarySobListQueryParam; +import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.sys.entity.vo.UploadConfigResponse; @@ -162,4 +159,6 @@ public interface SalarySobService { List getConfig(Long taxAgentId); List parseConfig(Long taxAgentId, List salarySobConfigs); + + List list(SalarySobQueryParam param); } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 56c4ea3ef..ea592d868 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.auth; +import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -112,19 +113,22 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { } getAuthLimitMapper().deleteByRoleId(po.getId()); - limitSobIds.forEach(limitSobId -> { - AuthLimitPO limitPO = AuthLimitPO.builder() - .id(IdGenerator.generate()) - .roleId(po.getId()) - .sobId(limitSobId) - .creator((long) user.getUID()) - .createTime(now) - .updateTime(now) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - getAuthLimitMapper().insertIgnoreNull(limitPO); - }); + if(CollectionUtil.isNotEmpty(limitSobIds)){ + limitSobIds.forEach(limitSobId -> { + AuthLimitPO limitPO = AuthLimitPO.builder() + .id(IdGenerator.generate()) + .roleId(po.getId()) + .sobId(limitSobId) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthLimitMapper().insertIgnoreNull(limitPO); + }); + } + return po.getId(); } diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index 79542b1d0..693bc243d 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.AuthFilterTypeEnum; import java.util.List; @@ -18,4 +19,6 @@ public interface AuthService { List auth(List list, AuthFilterTypeEnum filterType, Class clazz); List auth(String page); + + Permission permission(String page); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 48452f909..701a92a5a 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.auth.dto.AuthDTO; import com.engine.salary.entity.auth.dto.AuthLimitDTO; import com.engine.salary.entity.auth.dto.EmpOpt; import com.engine.salary.entity.auth.dto.RoleLimit; +import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -174,10 +175,10 @@ public class AuthServiceImpl extends Service implements AuthService { List sobIds = roleLimit.getSobIds(); if (CollectionUtil.isEmpty(sobIds)) { hasAuth = true; - }else{ + } else { hasAuth = sobIds.contains(sobId); } - if (hasAuth){ + if (hasAuth) { break; } } @@ -200,4 +201,30 @@ public class AuthServiceImpl extends Service implements AuthService { return getAuthMapper().getAuth((long) user.getUID(), page); } + @Override + public Permission permission(String page) { + long uid = user.getUID(); + boolean able = false; + List opts = new ArrayList<>(); + + //给总管理员赋值最大权限 + Boolean isChief = getTaxAgentService(user).isChief(uid); + + //给各管理员赋值对应的扣缴义务人权限 + Boolean adminEnable = getTaxAgentService(user).isAdminEnable(uid); + + if (isChief || adminEnable) { + opts.add("admin"); + return Permission.builder().able(true).opts(opts).build(); + } + + opts = getAuthMapper().getOptsByPage(uid, page); + + if (CollectionUtil.isNotEmpty(opts)) { + able = true; + } + + return Permission.builder().able(able).opts(opts).build(); + } + } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 3674f1697..d39b2c306 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -1018,6 +1019,19 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return results; } + @Override + public List list(SalarySobQueryParam param) { + SalarySobPO sobPO = SalarySobPO.builder().build(); + if (StrUtil.isNotBlank(param.getName())) { + sobPO.setName(param.getName()); + } + + if (param.getTaxAgentId() != null) { + sobPO.setTaxAgentId(param.getTaxAgentId()); + } + return getSalarySobMapper().listSome(sobPO); + } + public List filterByAdmin(List salarySobPOS) { long employeeId = user.getUID(); diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 7fbfb9f08..83dc41666 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.*; +import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.AuthWrapper; @@ -121,7 +122,7 @@ public class AuthController { @Produces(MediaType.APPLICATION_JSON) public String deleteData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult< List , Long>(user).run(getAuthWrapper(user)::deleteData, ids); + return new ResponseResult, Long>(user).run(getAuthWrapper(user)::deleteData, ids); } @POST @@ -135,9 +136,25 @@ public class AuthController { @GET @Path("/data/auth") @Produces(MediaType.APPLICATION_JSON) - public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "page") String page) { + public String auth(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getAuthWrapper(user)::auth,page); + return new ResponseResult(user).run(getAuthWrapper(user)::auth, page); + } + + + /** + * 权限信息 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/permission") + @Produces(MediaType.APPLICATION_JSON) + public String permission(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::permission, page); } diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 5c5caeaec..026ff516d 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -90,12 +90,12 @@ public class SalarySobController { /** * 薪资账套列表 */ - @GET + @POST @Path("/listByTaxAgent") @Produces(MediaType.APPLICATION_JSON) - public String listSalarySob(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "taxAgentId") Long taxAgentId) { + public String listSalarySob(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySobWrapper(user)::listByTaxAgent, taxAgentId); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listByTaxAgent, queryParam); } /** diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index a0507c719..bad7efcd7 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; @@ -26,6 +27,10 @@ import java.util.stream.Collectors; @Slf4j public class AuthWrapper extends Service { + + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } private AuthRoleService getAuthRoleService(User user) { return ServiceUtil.getService(AuthRoleServiceImpl.class, user); } @@ -138,4 +143,8 @@ public class AuthWrapper extends Service { public Object auth(String page) { return getAuthMapper().getAuth((long) user.getUID(), page); } + + public Permission permission(String page) { + return getAuthService(user).permission(page); + } } diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index 7bfca57af..a63048567 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -10,10 +10,7 @@ import com.engine.salary.entity.salarysob.bo.SalarySobBO; import com.engine.salary.entity.salarysob.bo.SalarySobBackItemBO; import com.engine.salary.entity.salarysob.dto.SalarySobBasicFormDTO; import com.engine.salary.entity.salarysob.dto.SalarySobListDTO; -import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; -import com.engine.salary.entity.salarysob.param.SalarySobDisableParam; -import com.engine.salary.entity.salarysob.param.SalarySobDuplicateParam; -import com.engine.salary.entity.salarysob.param.SalarySobListQueryParam; +import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobDefaultBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; @@ -26,8 +23,8 @@ import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalarySobUtil; -import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.page.PageInfo; import org.apache.commons.collections4.CollectionUtils; import weaver.hrm.User; @@ -278,7 +275,7 @@ public class SalarySobWrapper extends Service { return taxAgentIds.contains(salarySobPO.getTaxAgentId())||Objects.isNull(salarySobPO.getTaxAgentId()); } - public List listByTaxAgent(Long taxAgentId) { - return getSalarySobService(user).listByTaxAgentId(taxAgentId); + public List listByTaxAgent(SalarySobQueryParam param) { + return getSalarySobService(user).list(param); } } From 9d4362b46e9ec89b4ff80b3990d9840d72e550ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 30 Aug 2024 17:22:10 +0800 Subject: [PATCH 029/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E5=88=86?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/dto/AuthRoleDTO.java | 58 ++------ .../entity/auth/dto/AuthRoleDataDTO.java | 32 ++++ .../entity/auth/dto/AuthRoleEmpDTO.java | 32 ++++ .../entity/auth/param/AuthRoleSaveParam.java | 10 +- .../{AuthLimitPO.java => AuthResourcePO.java} | 20 ++- .../salary/entity/auth/po/AuthRolePO.java | 9 +- .../salary/entity/taxagent/bo/TaxAgentBO.java | 33 +---- .../salary/entity/taxagent/po/TaxAgentPO.java | 4 +- .../enums/auth/ResourceTargetTypeEnum.java | 75 ++++++++++ ...mitMapper.java => AuthResourceMapper.java} | 18 +-- ...LimitMapper.xml => AuthResourceMapper.xml} | 139 +++++++++++------- .../mapper/auth/AuthRoleDataMapper.java | 3 + .../salary/mapper/auth/AuthRoleDataMapper.xml | 15 ++ .../salary/mapper/auth/AuthRoleEmpMapper.java | 4 +- .../salary/mapper/auth/AuthRoleEmpMapper.xml | 16 ++ .../salary/mapper/auth/AuthRoleMapper.xml | 15 -- .../salary/service/auth/AuthDataService.java | 2 + .../service/auth/AuthDataServiceImpl.java | 5 + .../service/auth/AuthMemberService.java | 3 + .../service/auth/AuthMemberServiceImpl.java | 69 ++++----- .../salary/service/auth/AuthOptService.java | 6 + .../service/auth/AuthOptServiceImpl.java | 5 + .../salary/service/auth/AuthRoleService.java | 3 +- .../service/auth/AuthRoleServiceImpl.java | 137 +++++++++++------ .../salary/wrapper/TaxAgentWrapper.java | 8 +- 25 files changed, 459 insertions(+), 262 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java create mode 100644 src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java rename src/com/engine/salary/entity/auth/po/{AuthLimitPO.java => AuthResourcePO.java} (76%) create mode 100644 src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java rename src/com/engine/salary/mapper/auth/{AuthLimitMapper.java => AuthResourceMapper.java} (75%) rename src/com/engine/salary/mapper/auth/{AuthLimitMapper.xml => AuthResourceMapper.xml} (59%) diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java index 3dbcc37b3..0e228e77f 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java @@ -1,15 +1,11 @@ package com.engine.salary.entity.auth.dto; -import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.annotation.TableTitle; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Collection; -import java.util.Date; -import java.util.List; - /** * 角色 */ @@ -18,53 +14,25 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor public class AuthRoleDTO { + private Long id; - /** - * 名称 - */ + + @TableTitle(title = "业务线", dataIndex = "name", key = "name") private String name; - /** - * 个税扣缴义务人id - */ - private Long taxAgentId; - - /** - * 限制账套 - */ - private List sobs; - - /** - * 描述 - */ + @TableTitle(title = "描述", dataIndex = "description", key = "description") private String description; - /** - * 创建人 - */ - private Long creator; + @TableTitle(title = "成员", dataIndex = "members", key = "members") + private Integer members; - /** - * 创建时间 - */ - private Date createTime; + @TableTitle(title = "权限", dataIndex = "opts", key = "opts") + private Integer opts; - /** - * 更新时间 - */ - private Date updateTime; + @TableTitle(title = "资源", dataIndex = "resources", key = "resources") + private Integer resources; - /** - * 是否已删除。0:未删除、1:已删除 - */ - private Integer deleteType; - - /** - * 租户ID - */ - private String tenantKey; - - //主键id集合 - private Collection ids; + @TableTitle(title = "数据", dataIndex = "datas", key = "datas") + private Integer datas; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java new file mode 100644 index 000000000..9be789b92 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleDataDTO { + + private Long id; + + @TableTitle(title = "姓名",dataIndex = "username",key = "username") + private String name; + + @TableTitle(title = "工号",dataIndex = "workcode",key = "workcode") + private String workcode; + + + @I18n + @TableTitle(title = "部门",dataIndex = "departmentName",key = "departmentName") + private String departmentName; + + @I18n + @TableTitle(title = "岗位",dataIndex = "jobtitleName",key = "jobtitleName") + private String jobtitleName; +} diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java new file mode 100644 index 000000000..94901f09e --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java @@ -0,0 +1,32 @@ +package com.engine.salary.entity.auth.dto; + +import com.engine.salary.annotation.I18n; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthRoleEmpDTO { + + private Long id; + + @TableTitle(title = "姓名",dataIndex = "username",key = "username") + private String name; + + @TableTitle(title = "工号",dataIndex = "workcode",key = "workcode") + private String workcode; + + + @I18n + @TableTitle(title = "部门",dataIndex = "departmentName",key = "departmentName") + private String departmentName; + + @I18n + @TableTitle(title = "岗位",dataIndex = "jobtitleName",key = "jobtitleName") + private String jobtitleName; +} diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 221d2203f..42ce2c5bf 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -4,6 +4,8 @@ import com.engine.salary.util.valid.DataCheck; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -29,15 +31,15 @@ public class AuthRoleSaveParam { private String description; /** - * 扣缴义务人id + * 扣缴义务人资源 */ @DataCheck(require = true, message = "扣缴义务人不允许为空") - private Long taxAgentId; + private List taxAgentIds; /** - * 限制账套范围 + * 账套资源 */ - private List limitSobIds; + private List sobIds; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/po/AuthLimitPO.java b/src/com/engine/salary/entity/auth/po/AuthResourcePO.java similarity index 76% rename from src/com/engine/salary/entity/auth/po/AuthLimitPO.java rename to src/com/engine/salary/entity/auth/po/AuthResourcePO.java index 2295786c1..a7fecdd46 100644 --- a/src/com/engine/salary/entity/auth/po/AuthLimitPO.java +++ b/src/com/engine/salary/entity/auth/po/AuthResourcePO.java @@ -16,7 +16,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -public class AuthLimitPO { +public class AuthResourcePO { @ElogTransform(name = "") @@ -29,10 +29,22 @@ public class AuthLimitPO { private Long roleId; /** - * 账套限制 + * 对象类型,1:扣缴义务人 2:账套 */ - @ElogTransform(name = "账套限制") - private Long sobId; + @ElogTransform( name="对象类型" ) + private Integer targetType; + + /** + * 对象 + */ + @ElogTransform( name="对象" ) + private Long target; + + /** + * 对象 + */ + @ElogTransform( name="对象显示名" ) + private String targetName; /** * 创建时间 diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index 66d971dcd..61284e18b 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -18,20 +18,15 @@ import java.util.Date; @AllArgsConstructor @ElogTransform(name = "角色") public class AuthRolePO { + private Long id; + /** * 名称 */ @ElogTransform(name = "名称") private String name; - /** - * 个税扣缴义务人id - */ - @ElogTransform(name = "个税扣缴义务人id") - private Long taxAgentId; - - /** * 描述 */ diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index 0d87c4901..edc8b1554 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -90,32 +90,11 @@ public class TaxAgentBO { if (isOpenDevolution) { columns.add(new Column(admins, "admins", "admins")); } - columns.add(new Column("角色", "role", "role")); columns.add(new Column(description, "description", "description")); columns.add(new Column(sortedIndex, "sortedIndex", "sortedIndex")); listPage.setColumns(columns); } -// private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { -// List> permissionList = Lists.newArrayList(); -// for (int i = 0; i < recordSize; i++) { -// List permissions = Lists.newArrayList(); -// for (int j = 0; j < operateSize; j++) { -// permissions.add(new Permission(true, false)); -// } -// permissionList.add(permissions); -// } -// return permissionList; -// } -// -// private static List getDefaultCheckBoxPermission(int recordSize) { -// List permissionList = Lists.newArrayList(); -// for (int i = 0; i < recordSize; i++) { -// permissionList.add(new Permission(true, false)); -// } -// return permissionList; -// } - /** * 表数据转列表数据 * @@ -141,8 +120,8 @@ public class TaxAgentBO { * @param taxAgents * @return */ - public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, Map> rolelistMap) { - return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null, rolelistMap); + public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS) { + return convertToTableListDTO(Boolean.FALSE, taxAgents, paymentAgencyPOS, null, null); } /** @@ -152,9 +131,8 @@ public class TaxAgentBO { * @return */ public static List> convertToTableListDTO(List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, - Map> rolelistMap) { - return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList, rolelistMap); + List adminList) { + return convertToTableListDTO(Boolean.TRUE, taxAgents, paymentAgencyPOS, taxAgentAdmins, adminList); } /** @@ -166,7 +144,7 @@ public class TaxAgentBO { */ public static List> convertToTableListDTO(Boolean isDevolution, List taxAgents, List paymentAgencyPOS, List taxAgentAdmins, - List adminList, Map> rolelistMap) { + List adminList) { if (CollectionUtils.isEmpty(taxAgents)) { return Collections.emptyList(); } @@ -177,7 +155,6 @@ public class TaxAgentBO { map.put("name", e.getName()); map.put("employeeRange", "设置"); // map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList()).stream().map(AuthRolePO::getName).collect(Collectors.joining(","))); - map.put("role", rolelistMap.getOrDefault(e.getId(), Collections.emptyList())); if (isDevolution) { List empIds = taxAgentAdmins.stream().filter(t -> t.getTaxAgentId().equals(e.getId())).map(TaxAgentAdminPO::getEmployeeId).collect(Collectors.toList()); List admins = adminList.stream().filter(a -> empIds.contains(a.getEmployeeId())).map(DataCollectionEmployee::getUsername).collect(Collectors.toList()); diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java index 65b688baa..a8b6a2422 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java @@ -13,7 +13,7 @@ import java.util.Collection; import java.util.Date; /** - * 个税扣缴义务人 + * 个税扣缴义务人 hrsa_tax_agent *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* @@ -24,8 +24,6 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -//hrsa_tax_agent") -//个税扣缴义务人表") @ElogTransform(name = "个税扣缴义务人") @XStreamAlias("TaxAgent") public class TaxAgentPO { diff --git a/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java b/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java new file mode 100644 index 000000000..d4bfc372d --- /dev/null +++ b/src/com/engine/salary/enums/auth/ResourceTargetTypeEnum.java @@ -0,0 +1,75 @@ +package com.engine.salary.enums.auth; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; + +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 资源类型,1:扣缴义务人 2:账套 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum ResourceTargetTypeEnum implements BaseEnum { + + + TAX_AGENT(1, "扣缴义务人", 87627) { + @Override + public List getEmpIds(Set targets) { + return targets.stream().map(Long::valueOf).collect(Collectors.toList()); + } + }, + SOB(2, "账套", 87626) { + @Override + public List getEmpIds(Set targets) { + List deptIds = targets.stream().map(Long::valueOf).collect(Collectors.toList()); + SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); + return salaryEmployeeService.listByDepartment(deptIds); + } + }; + + + private Integer value; + private String defaultLabel; + private int labelId; + + ResourceTargetTypeEnum(Integer value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public abstract List getEmpIds(Set targets); + + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static ResourceTargetTypeEnum parseByValue(int value) { + for (ResourceTargetTypeEnum typeEnum : ResourceTargetTypeEnum.values()) { + if (Objects.equals(typeEnum.getValue(), value)) { + return typeEnum; + } + } + throw new SalaryRunTimeException("未找到对应的枚举"); + } +} diff --git a/src/com/engine/salary/mapper/auth/AuthLimitMapper.java b/src/com/engine/salary/mapper/auth/AuthResourceMapper.java similarity index 75% rename from src/com/engine/salary/mapper/auth/AuthLimitMapper.java rename to src/com/engine/salary/mapper/auth/AuthResourceMapper.java index 0e115e3c3..36d44af71 100644 --- a/src/com/engine/salary/mapper/auth/AuthLimitMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthResourceMapper.java @@ -1,26 +1,26 @@ package com.engine.salary.mapper.auth; -import com.engine.salary.entity.auth.po.AuthLimitPO; +import com.engine.salary.entity.auth.po.AuthResourcePO; import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; -public interface AuthLimitMapper { +public interface AuthResourceMapper { /** * 查询所有记录 * * @return 返回集合,没有返回空List */ - List listAll(); + List listAll(); /** * 条件查询 * * @return 返回集合,没有返回空List */ - List listSome(AuthLimitPO authLimit); + List listSome(AuthResourcePO authLimit); /** @@ -29,7 +29,7 @@ public interface AuthLimitMapper { * @param id 主键 * @return 返回记录,没有返回null */ - AuthLimitPO getById(Long id); + AuthResourcePO getById(Long id); /** * 新增,忽略null字段 @@ -37,7 +37,7 @@ public interface AuthLimitMapper { * @param authLimit 新增的记录 * @return 返回影响行数 */ - int insertIgnoreNull(AuthLimitPO authLimit); + int insertIgnoreNull(AuthResourcePO authLimit); /** * 修改,修改所有字段 @@ -45,7 +45,7 @@ public interface AuthLimitMapper { * @param authLimit 修改的记录 * @return 返回影响行数 */ - int update(AuthLimitPO authLimit); + int update(AuthResourcePO authLimit); /** * 修改,忽略null字段 @@ -53,7 +53,7 @@ public interface AuthLimitMapper { * @param authLimit 修改的记录 * @return 返回影响行数 */ - int updateIgnoreNull(AuthLimitPO authLimit); + int updateIgnoreNull(AuthResourcePO authLimit); /** * 删除记录 @@ -61,7 +61,7 @@ public interface AuthLimitMapper { * @param authLimit 待删除的记录 * @return 返回影响行数 */ - int delete(AuthLimitPO authLimit); + int delete(AuthResourcePO authLimit); /** * 批量删除记录 diff --git a/src/com/engine/salary/mapper/auth/AuthLimitMapper.xml b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml similarity index 59% rename from src/com/engine/salary/mapper/auth/AuthLimitMapper.xml rename to src/com/engine/salary/mapper/auth/AuthResourceMapper.xml index 67a36b79e..a6fdafbd5 100644 --- a/src/com/engine/salary/mapper/auth/AuthLimitMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml @@ -1,27 +1,29 @@ - - - - - - - - - - + + + + + + + + + + + + - t - . - create_time + t.create_time , t.creator , t.delete_type , t.id , t.role_id - , t.sob_id + , t.target + , t.target_name + , t.target_type , t.tenant_key , t.update_time @@ -29,24 +31,24 @@ - SELECT - - FROM hrsa_auth_limit t + + FROM hrsa_auth_resource t WHERE delete_type = 0 AND create_time = #{createTime} @@ -63,8 +65,14 @@ AND role_id = #{roleId} - - AND sob_id = #{sobId} + + AND target = #{target} + + + AND target_name = #{targetName} + + + AND target_type = #{targetType} AND tenant_key = #{tenantKey} @@ -83,8 +91,8 @@ - - INSERT INTO hrsa_auth_limit + + INSERT INTO hrsa_auth_resource @@ -102,8 +110,14 @@ role_id, - - sob_id, + + target, + + + target_name, + + + target_type, tenant_key, @@ -113,43 +127,50 @@ - + #{createTime}, - + #{creator}, - + #{deleteType}, - + #{id}, - + #{roleId}, - - #{sobId}, + + #{target}, - + + #{targetName}, + + + #{targetType}, + + #{tenantKey}, - + #{updateTime}, - - - UPDATE hrsa_auth_limit + + UPDATE hrsa_auth_resource create_time=#{createTime}, creator=#{creator}, delete_type=#{deleteType}, role_id=#{roleId}, - sob_id=#{sobId}, + target=#{target}, + target_name=#{targetName}, + target_type=#{targetType}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -158,28 +179,34 @@ - - UPDATE hrsa_auth_limit + + UPDATE hrsa_auth_resource - + create_time=#{createTime}, - + creator=#{creator}, - + delete_type=#{deleteType}, - + role_id=#{roleId}, - - sob_id=#{sobId}, + + target=#{target}, - + + target_name=#{targetName}, + + + target_type=#{targetType}, + + tenant_key=#{tenantKey}, - + update_time=#{updateTime}, @@ -189,22 +216,22 @@ - UPDATE hrsa_auth_limit + UPDATE hrsa_auth_resource SET delete_type=1 - WHERE id = #{id} - AND delete_type = 0 + WHERE id = #{id} AND delete_type = 0 - UPDATE hrsa_auth_limit + UPDATE hrsa_auth_resource SET delete_type = 1 - WHERE delete_type = 0 + WHERE delete_type = 0 AND id IN #{id} - + + UPDATE hrsa_auth_limit SET delete_type = 1 diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java index 2918cb8c5..8d3f04621 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.auth; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; import com.engine.salary.entity.auth.po.AuthRoleDataPO; import org.apache.ibatis.annotations.Param; @@ -81,4 +82,6 @@ public interface AuthRoleDataMapper { * @param roleId roleId */ void deleteByRoleId(Long roleId); + + List listRoleData(Long roleId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml index 4abe3f1eb..68205d45e 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml @@ -294,4 +294,19 @@ SET delete_type=1 WHERE role_id = #{roleId} AND delete_type = 0 + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java index 2bdb76754..eea6e0ab0 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.auth; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import org.apache.ibatis.annotations.Param; @@ -81,5 +82,6 @@ public interface AuthRoleEmpMapper { * @param roleId roleId */ void deleteByRoleId(Long roleId); - + + List getByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml index ad9393cdc..aa4879393 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml @@ -298,4 +298,20 @@ + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml index e6cf464cf..f0515b718 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -5,7 +5,6 @@ - @@ -20,7 +19,6 @@ id , t.name , t.description - , t.tax_agent_id , t.creator , t.create_time , t.update_time @@ -59,9 +57,6 @@ AND description = #{description} - - AND tax_agent_id = #{taxAgentId} - AND creator = #{creator} @@ -101,9 +96,6 @@ description, - - tax_agent_id, - creator, @@ -130,9 +122,6 @@ #{description}, - - #{taxAgentId}, - #{creator}, @@ -157,7 +146,6 @@ name=#{name}, description=#{description}, - tax_agent_id=#{taxAgentId}, creator=#{creator}, create_time=#{createTime}, update_time=#{updateTime}, @@ -178,9 +166,6 @@ description=#{description}, - - tax_agent_id=#{taxAgentId}, - creator=#{creator}, diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index 5265f1aac..85f92916b 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -43,4 +43,6 @@ public interface AuthDataService { void sync(AuthSyncParam param); void deleteByRoleId(Long roleId); + + void listRoleData(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index fee2310e0..ff199b885 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -148,4 +148,9 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { getAuthDataMapper().deleteByRoleId(roleId); getAuthRoleDataMapper().deleteByRoleId(roleId); } + + @Override + public void listRoleData(Long roleId) { + getAuthRoleDataMapper().listRoleData(roleId); + } } diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index fad3cd959..3a0a43769 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -1,5 +1,6 @@ package com.engine.salary.service.auth; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; @@ -42,4 +43,6 @@ public interface AuthMemberService { void sync(AuthSyncParam param); void deleteByRoleId(Long roleId); + + List listRoleEmp(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 52f4507b4..c93ccbe0f 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -3,16 +3,13 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.hrmelog.entity.dto.LoggerContext; -import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import com.engine.salary.entity.auth.po.AuthRolePO; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; -import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; @@ -21,7 +18,6 @@ import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.service.TaxAgentService; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; @@ -80,15 +76,15 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .build(); getAuthMemberMapper().insertIgnoreNull(po); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); +// loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); +// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); +// loggerContext.setNewValues(po); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); } else { AuthMemberPO oldPO = getAuthMemberMapper().getById(param.getId()); AuthMemberPO newPo = AuthMemberPO.builder() @@ -102,16 +98,16 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .build(); getAuthMemberMapper().updateIgnoreNull(newPo); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + newPo.getId()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); - loggerContext.setOldValues(oldPO); - loggerContext.setNewValues(newPo); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); +// loggerContext.setTargetName(rolePO.getName() + "成员:" + newPo.getId()); +// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); +// loggerContext.setOldValues(oldPO); +// loggerContext.setNewValues(newPo); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); } }); @@ -128,16 +124,16 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService getAuthMemberMapper().deleteByIds(Collections.singleton(id)); - AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); - loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); +// loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); +// loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); +// loggerContext.setNewValues(po); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); }); @@ -189,4 +185,9 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService getAuthMemberMapper().deleteByRoleId(roleId); getAuthRoleEmpMapper().deleteByRoleId(roleId); } + + @Override + public List listRoleEmp(Long roleId) { + return getAuthRoleEmpMapper().getByRoleId(roleId); + } } diff --git a/src/com/engine/salary/service/auth/AuthOptService.java b/src/com/engine/salary/service/auth/AuthOptService.java index b96e2b684..9a607c7f9 100644 --- a/src/com/engine/salary/service/auth/AuthOptService.java +++ b/src/com/engine/salary/service/auth/AuthOptService.java @@ -2,6 +2,9 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.AuthOptSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; + +import java.util.List; /** * 权限项 @@ -27,4 +30,7 @@ public interface AuthOptService { void save(AuthOptSaveParam param); void deleteByRoleId(Long roleId); + + List listOpts(Long roleId); + } diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java index d2c952ec5..03335b8e2 100644 --- a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -90,4 +90,9 @@ public class AuthOptServiceImpl extends Service implements AuthOptService { public void deleteByRoleId(Long roleId) { getAuthOptMapper().deleteByRoleId(roleId); } + + @Override + public List listOpts(Long roleId) { + return getAuthOptMapper().listSome(AuthOptPO.builder().roleId(roleId).build()); + } } diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index 41a8b4622..93177a63e 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -2,6 +2,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.util.page.PageInfo; import java.util.List; @@ -15,7 +16,7 @@ import java.util.List; **/ public interface AuthRoleService { - List roleList(Long taxAgentId); + PageInfo roleList(); /** * 添加角色 diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index ea592d868..962eeb8ec 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -3,20 +3,20 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.hrmelog.entity.dto.LoggerContext; -import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; -import com.engine.salary.entity.auth.po.AuthLimitPO; +import com.engine.salary.entity.auth.po.AuthResourcePO; import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; -import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.ResourceTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; -import com.engine.salary.mapper.auth.AuthLimitMapper; +import com.engine.salary.mapper.auth.AuthResourceMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; -import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; import weaver.hrm.User; import java.util.Collections; @@ -29,8 +29,8 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { return MapperProxyFactory.getProxy(AuthRoleMapper.class); } - private AuthLimitMapper getAuthLimitMapper() { - return MapperProxyFactory.getProxy(AuthLimitMapper.class); + private AuthResourceMapper getAuthResourceMapper() { + return MapperProxyFactory.getProxy(AuthResourceMapper.class); } private AuthMemberService getAuthMemberService(User user) { @@ -47,8 +47,29 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { @Override - public List roleList(Long taxAgentId) { - return getAuthRoleMapper().listSome(AuthRolePO.builder().taxAgentId(taxAgentId).build()); + public PageInfo roleList() { + List authRolePOS = getAuthRoleMapper().listSome(AuthRolePO.builder().build()); + + authRolePOS.forEach(po->{ + Long roleId = po.getId(); + getAuthMemberService(user).listRoleEmp(roleId); + + getAuthOptService(user).listOpts(roleId); + + getAuthDataService(user).listRoleData(roleId); + + AuthRoleDTO.builder().id(roleId) + .name(po.getName()) + .members(0) + .datas(0) + .resources(0) + .opts(0) + .build(); + + }); + + + return ; } @Override @@ -57,9 +78,6 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { Long id = param.getId(); String name = param.getName(); String description = param.getDescription(); - Long taxAgentId = param.getTaxAgentId(); - List limitSobIds = param.getLimitSobIds(); - AuthRolePO po; if (id == null) { @@ -67,7 +85,6 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .id(IdGenerator.generate()) .name(name) .description(description) - .taxAgentId(taxAgentId) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -76,15 +93,15 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .build(); getAuthRoleMapper().insertIgnoreNull(po); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(taxAgentId + ""); - loggerContext.setTargetName("角色:" + name); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增角色")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增角色")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(taxAgentId + ""); +// loggerContext.setTargetName("角色:" + name); +// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增角色")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增角色")); +// loggerContext.setNewValues(po); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); } else { po = getAuthRoleMapper().getById(id); @@ -95,37 +112,58 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .id(id) .name(name) .description(description) - .taxAgentId(po.getTaxAgentId()) .updateTime(now) .build(); getAuthRoleMapper().updateIgnoreNull(newPo); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(taxAgentId + ""); - loggerContext.setTargetName("角色:" + name); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新角色")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新角色")); - loggerContext.setOldValues(po); - loggerContext.setNewValues(newPo); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(taxAgentId + ""); +// loggerContext.setTargetName("角色:" + name); +// loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新角色")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新角色")); +// loggerContext.setOldValues(po); +// loggerContext.setNewValues(newPo); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); } - getAuthLimitMapper().deleteByRoleId(po.getId()); - if(CollectionUtil.isNotEmpty(limitSobIds)){ - limitSobIds.forEach(limitSobId -> { - AuthLimitPO limitPO = AuthLimitPO.builder() + getAuthResourceMapper().deleteByRoleId(po.getId()); + + List taxAgents = param.getTaxAgentIds(); + List sobs = param.getSobIds(); + if(CollectionUtil.isNotEmpty(taxAgents)){ + taxAgents.forEach(tax-> { + AuthResourcePO resourcePO = AuthResourcePO.builder() .id(IdGenerator.generate()) .roleId(po.getId()) - .sobId(limitSobId) + .target(tax.getId()) + .targetType(ResourceTargetTypeEnum.TAX_AGENT.getValue()) + .targetName(tax.getName()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(0) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); - getAuthLimitMapper().insertIgnoreNull(limitPO); + getAuthResourceMapper().insertIgnoreNull(resourcePO); + }); + } + if(CollectionUtil.isNotEmpty(sobs)){ + sobs.forEach(sob-> { + AuthResourcePO resourcePO = AuthResourcePO.builder() + .id(IdGenerator.generate()) + .roleId(po.getId()) + .target(sob.getId()) + .targetType(ResourceTargetTypeEnum.SOB.getValue()) + .targetName(sob.getName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getAuthResourceMapper().insertIgnoreNull(resourcePO); }); } @@ -140,21 +178,22 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { throw new SalaryRunTimeException("角色不存在!"); } + getAuthResourceMapper().deleteByRoleId(roleId); getAuthMemberService(user).deleteByRoleId(roleId); getAuthOptService(user).deleteByRoleId(roleId); getAuthDataService(user).deleteByRoleId(roleId); getAuthRoleMapper().deleteByIds(Collections.singleton(roleId)); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(po.getTaxAgentId() + ""); - loggerContext.setTargetName("角色:" + po.getName()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); - loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); +// LoggerContext loggerContext = new LoggerContext<>(); +// loggerContext.setUser(user); +// loggerContext.setTargetId(po.getTaxAgentId() + ""); +// loggerContext.setTargetName("角色:" + po.getName()); +// loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); +// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); +// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); +// loggerContext.setNewValues(po); +// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); }); } } diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 286cc091d..ce128d83c 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -145,10 +145,6 @@ public class TaxAgentWrapper extends Service { page = getTaxAgentService(user).listPage(queryParam); } List taxAgentPOS = page.getList(); - //获取角色信息 - List authRolePOS = getAuthRoleService(user).roleList(null); - Map> rolelistMap = SalaryEntityUtil.group2Map(authRolePOS, AuthRolePO::getTaxAgentId); - PageInfo> listPage = new PageInfo<>(); if (isOpenDevolution) { @@ -156,9 +152,9 @@ public class TaxAgentWrapper extends Service { List taxAgentIds = list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); List taxAgentAdmins = getTaxAgentAdminService(user).listByTaxAgentIds(taxAgentIds); List adminList = getSalaryEmployeeService(user).getEmployeeByIdsAll(taxAgentAdmins.stream().map(TaxAgentAdminPO::getEmployeeId).distinct().collect(Collectors.toList())); - listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, taxAgentAdmins, adminList, rolelistMap)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, taxAgentAdmins, adminList)); } else { - listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null, rolelistMap)); + listPage.setList(TaxAgentBO.convertToTableListDTO(taxAgentPOS, null)); } listPage.setTotal(page.getTotal()); From fdb1f76e01bce8f604b6e9c66eda243d3f151026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 2 Sep 2024 10:22:42 +0800 Subject: [PATCH 030/184] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/param/AuthRoleListQueryParam.java | 17 ++++++ .../salary/mapper/auth/AuthResourceMapper.xml | 2 +- .../salary/service/auth/AuthDataService.java | 3 +- .../service/auth/AuthDataServiceImpl.java | 5 +- .../salary/service/auth/AuthRoleService.java | 5 +- .../service/auth/AuthRoleServiceImpl.java | 52 +++++++++++-------- src/com/engine/salary/web/AuthController.java | 9 ++++ .../engine/salary/wrapper/AuthWrapper.java | 6 +++ 8 files changed, 70 insertions(+), 29 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java new file mode 100644 index 000000000..638e2cdd2 --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java @@ -0,0 +1,17 @@ +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 AuthRoleListQueryParam extends BaseQueryParam { + + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml index a6fdafbd5..ed6c47fa9 100644 --- a/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthResourceMapper.xml @@ -233,7 +233,7 @@ - UPDATE hrsa_auth_limit + UPDATE hrsa_auth_resource SET delete_type = 1 WHERE delete_type = 0 AND role_id=#{roleId} diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index 85f92916b..4f9da2efd 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -1,5 +1,6 @@ package com.engine.salary.service.auth; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; import com.engine.salary.entity.auth.param.AuthDataSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; @@ -44,5 +45,5 @@ public interface AuthDataService { void deleteByRoleId(Long roleId); - void listRoleData(Long roleId); + List listRoleData(Long roleId); } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index ff199b885..d48303e62 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollectionUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; import com.engine.salary.entity.auth.param.AuthDataSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; @@ -150,7 +151,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { } @Override - public void listRoleData(Long roleId) { - getAuthRoleDataMapper().listRoleData(roleId); + public List listRoleData(Long roleId) { + return getAuthRoleDataMapper().listRoleData(roleId); } } diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index 93177a63e..98a43b0fa 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -1,7 +1,8 @@ package com.engine.salary.service.auth; +import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; -import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.util.page.PageInfo; import java.util.List; @@ -16,7 +17,7 @@ import java.util.List; **/ public interface AuthRoleService { - PageInfo roleList(); + PageInfo roleList(AuthRoleListQueryParam param); /** * 添加角色 diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 962eeb8ec..ebe6bf81f 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -5,7 +5,11 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthOptPO; import com.engine.salary.entity.auth.po.AuthResourcePO; import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.salarysob.po.SalarySobPO; @@ -17,11 +21,13 @@ import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import weaver.hrm.User; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; public class AuthRoleServiceImpl extends Service implements AuthRoleService { @@ -47,29 +53,29 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { @Override - public PageInfo roleList() { + public PageInfo roleList(AuthRoleListQueryParam param) { List authRolePOS = getAuthRoleMapper().listSome(AuthRolePO.builder().build()); + int total = authRolePOS.size(); - authRolePOS.forEach(po->{ - Long roleId = po.getId(); - getAuthMemberService(user).listRoleEmp(roleId); + List collect = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authRolePOS) + .stream().map(po -> { + Long roleId = po.getId(); + List authRoleEmpDTOS = getAuthMemberService(user).listRoleEmp(roleId); + List authOptPOS = getAuthOptService(user).listOpts(roleId); + List authRoleDataDTOS = getAuthDataService(user).listRoleData(roleId); - getAuthOptService(user).listOpts(roleId); + return AuthRoleDTO.builder().id(roleId) + .name(po.getName()) + .members(authRoleEmpDTOS.size()) + .opts(authOptPOS.size()) + .datas(authRoleDataDTOS.size()) + .resources(0) + .build(); - getAuthDataService(user).listRoleData(roleId); - - AuthRoleDTO.builder().id(roleId) - .name(po.getName()) - .members(0) - .datas(0) - .resources(0) - .opts(0) - .build(); - - }); - - - return ; + }).collect(Collectors.toList()); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), collect, AuthRoleDTO.class); + pageInfo.setTotal(total); + return pageInfo; } @Override @@ -132,8 +138,8 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { List taxAgents = param.getTaxAgentIds(); List sobs = param.getSobIds(); - if(CollectionUtil.isNotEmpty(taxAgents)){ - taxAgents.forEach(tax-> { + if (CollectionUtil.isNotEmpty(taxAgents)) { + taxAgents.forEach(tax -> { AuthResourcePO resourcePO = AuthResourcePO.builder() .id(IdGenerator.generate()) .roleId(po.getId()) @@ -149,8 +155,8 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { getAuthResourceMapper().insertIgnoreNull(resourcePO); }); } - if(CollectionUtil.isNotEmpty(sobs)){ - sobs.forEach(sob-> { + if (CollectionUtil.isNotEmpty(sobs)) { + sobs.forEach(sob -> { AuthResourcePO resourcePO = AuthResourcePO.builder() .id(IdGenerator.generate()) .roleId(po.getId()) diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 83dc41666..0c95482e7 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.util.ResponseResult; @@ -36,6 +37,14 @@ public class AuthController { return ServiceUtil.getService(AuthWrapper.class, user); } + @POST + @Path("/role/list") + @Produces(MediaType.APPLICATION_JSON) + public String roleList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthRoleListQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::roleList, param); + } + @POST @Path("/role/save") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index bad7efcd7..d75e86efb 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -5,6 +5,7 @@ import com.engine.core.impl.Service; import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; +import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; @@ -47,6 +48,11 @@ public class AuthWrapper extends Service { return ServiceUtil.getService(AuthDataServiceImpl.class, user); } + public PageInfo roleList(AuthRoleListQueryParam param) { + ValidUtil.doValidator(param); + return getAuthRoleService(user).roleList(param); + } + public Long saveRole(AuthRoleSaveParam param) { ValidUtil.doValidator(param); return getAuthRoleService(user).saveRole(param); From 13665d8269c52fd916ff5f975c91e3b755029be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 2 Sep 2024 10:43:28 +0800 Subject: [PATCH 031/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/常用查询.md | 14 +++++------ .../salary/mapper/auth/AuthRoleDataMapper.xml | 2 +- .../salary/mapper/auth/AuthRoleEmpMapper.xml | 23 ++++++++++--------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index b294488fd..368ed04c9 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -12,13 +12,13 @@ left join hrmresource e on e.id= result.employee_id # 获取档案信息 - select i.item_value from hrsa_salary_archive_item i - left join hrsa_salary_archive a on a.id = i.salary_archive_id - left join hrsa_salary_item c on c.id=i.salary_item_id - left join hrsa_tax_agent t on a.tax_agent_id=t.id - where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 - and a.employee_id=人员id and t.name=扣缴义务人名称 - c.name='基本工资' order by effective_time desc +select i.item_value from hrsa_salary_archive_item i +left join hrsa_salary_archive a on a.id = i.salary_archive_id +left join hrsa_salary_item c on c.id=i.salary_item_id +left join hrsa_tax_agent t on a.tax_agent_id=t.id +where a.delete_type=0 and i.delete_type=0 and t.delete_type=0 and c.delete_type=0 +and a.employee_id=人员id and t.name=扣缴义务人名称 +c.name='基本工资' order by effective_time desc # 删除系统项目 diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml index 68205d45e..f2b55ec57 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml @@ -301,7 +301,7 @@ e.lastname as username, e.workcode as workCode, d.departmentname as departmentName, - c.jobtitlename as jobtitleName, + c.jobtitlename as jobtitleName FROM hrsa_auth_role_data t left join hrmresource e on t.employee_id = e.id left join hrmdepartment d on e.departmentid = d.id diff --git a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml index aa4879393..db7b3fb2f 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleEmpMapper.xml @@ -294,22 +294,23 @@ UPDATE hrsa_auth_role_emp SET delete_type=1 - WHERE role_id = #{roleId} AND delete_type = 0 + WHERE role_id = #{roleId} + AND delete_type = 0 From c72fa7fd7c5feb79304cc2aa5b775ec2972a630e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 2 Sep 2024 14:13:29 +0800 Subject: [PATCH 032/184] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E8=81=94=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalarySobBasicSaveParam.java | 4 + .../entity/salarysob/po/SobTaxLinkPO.java | 72 ++++++ .../mapper/salarysob/SobTaxLinkMapper.java | 73 ++++++ .../mapper/salarysob/SobTaxLinkMapper.xml | 215 ++++++++++++++++++ .../service/impl/SalarySobServiceImpl.java | 31 +++ 5 files changed, 395 insertions(+) create mode 100644 src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java create mode 100644 src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java create mode 100644 src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java index bd86de4d6..8742eaa24 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java @@ -9,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * 薪资账套保存参数 @@ -39,6 +41,8 @@ public class SalarySobBasicSaveParam { @DataCheck(require = true, message = "个税扣缴义务人的主键id不允许为空") private Long taxAgentId; + private List taxAgentIds; + /** * 薪资类型不允许为空 * diff --git a/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java new file mode 100644 index 000000000..31ead3a94 --- /dev/null +++ b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java @@ -0,0 +1,72 @@ +package com.engine.salary.entity.salarysob.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 SobTaxLinkPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 账套id + */ + @ElogTransform(name = "账套id") + private Long sobId; + + /** + * 扣缴义务人id + */ + @ElogTransform(name = "扣缴义务人id") + private Long taxAgentId; + + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java new file mode 100644 index 000000000..8192f5e21 --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.salarysob; + +import com.engine.salary.entity.salarysob.po.SobTaxLinkPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface SobTaxLinkMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(SobTaxLinkPO sobTaxLink); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + SobTaxLinkPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param sobTaxLink 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(SobTaxLinkPO sobTaxLink); + + /** + * 修改,修改所有字段 + * + * @param sobTaxLink 修改的记录 + * @return 返回影响行数 + */ + int update(SobTaxLinkPO sobTaxLink); + + /** + * 修改,忽略null字段 + * + * @param sobTaxLink 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(SobTaxLinkPO sobTaxLink); + + /** + * 删除记录 + * + * @param sobTaxLink 待删除的记录 + * @return 返回影响行数 + */ + int delete(SobTaxLinkPO sobTaxLink); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteBySobId(Long id); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml new file mode 100644 index 000000000..ef377aa5f --- /dev/null +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.sob_id + , t.tax_agent_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_sob_tax_link + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + sob_id, + + + tax_agent_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{sobId}, + + + #{taxAgentId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_sob_tax_link + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + sob_id=#{sobId}, + tax_agent_id=#{taxAgentId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_sob_tax_link + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + sob_id=#{sobId}, + + + tax_agent_id=#{taxAgentId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_sob_tax_link + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_sob_tax_link + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + UPDATE hrsa_sob_tax_link + SET delete_type = 1 + WHERE delete_type = 0 + AND sob_id=#{sobId} + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index d39b2c306..d132cb7ff 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -30,6 +30,7 @@ import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.taxagent.TaxAgentExtRangeMapper; import com.engine.salary.service.*; import com.engine.salary.service.auth.AuthService; @@ -118,6 +119,11 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return MapperProxyFactory.getProxy(TaxAgentExtRangeMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + + private SalarySobExtRangeService getSalarySobExtRangeService(User user) { return ServiceUtil.getService(SalarySobExtRangeServiceImpl.class, user); } @@ -345,6 +351,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新建薪资账套") + ": " + salarySobPO.getName()); loggerContext.setNewValues(salarySobPO); SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); + + //保存个税扣缴义务人联系 + saveSobTaxLink(saveParam, salarySobPO); // 新建薪资账套时,保存默认的员工信息字段 saveDefaultEmpField(salarySobPO); // 新建薪资账套时,保存默认的薪资项目 @@ -355,6 +364,24 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return salarySobPO.getId(); } + private void saveSobTaxLink(SalarySobBasicSaveParam saveParam, SalarySobPO salarySobPO) { + getSobTaxLinkMapper().deleteBySobId(salarySobPO.getId()); + List taxAgentIds = saveParam.getTaxAgentIds(); + for (Long taxAgentId : taxAgentIds) { + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(taxAgentId) + .sobId(salarySobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + } + } + /** * 新建薪资账套时,保存默认的员工信息字段 @@ -578,6 +605,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { .setDescription(saveParam.getDescription()) .setUpdateTime(new Date()); salarySobMapper.updateById(newSalarySobPO); + + //保存个税扣缴义务人联系 + saveSobTaxLink(saveParam, salarySobPO); + // 记录日志 SalarySobPO salarySobPO4log = getSalarySobMapper().getById(newSalarySobPO.getId()); LoggerContext loggerContext = new LoggerContext<>(); From ecfa6a46047b91b0f0c30de85ddec0b3c8577a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 2 Sep 2024 17:36:41 +0800 Subject: [PATCH 033/184] =?UTF-8?q?=E8=B7=A8=E6=89=A3=E7=BC=B4=E4=B9=89?= =?UTF-8?q?=E5=8A=A1=E4=BA=BA=E6=A0=B8=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wiki/扩展功能/hrmSalaryCustom.properties | 3 +- .../salaryacct/bo/SalaryAcctResultBO.java | 118 ++++++++++-------- .../salaryarchive/bo/SalaryArchiveBO.java | 69 ---------- .../entity/salarysob/po/SalarySobPO.java | 6 +- .../mapper/salarysob/SalarySobMapper.java | 1 + .../mapper/salarysob/SalarySobMapper.xml | 16 +++ .../salary/service/AddUpDeductionService.java | 2 +- .../salary/service/OtherDeductionService.java | 2 +- .../salary/service/SalaryArchiveService.java | 4 +- .../salary/service/SalarySobService.java | 4 +- .../impl/AddUpDeductionServiceImpl.java | 8 +- .../impl/AttendQuoteDataServiceImpl.java | 8 +- .../impl/OtherDeductionServiceImpl.java | 4 +- .../impl/SalaryAcctCalculateServiceImpl.java | 11 +- .../impl/SalaryAcctEmployeeServiceImpl.java | 34 ++--- .../impl/SalaryArchiveServiceImpl.java | 12 +- .../service/impl/SalarySobServiceImpl.java | 10 +- 17 files changed, 142 insertions(+), 170 deletions(-) diff --git a/resource/wiki/扩展功能/hrmSalaryCustom.properties b/resource/wiki/扩展功能/hrmSalaryCustom.properties index 6294cc5c3..bde8d4ce1 100644 --- a/resource/wiki/扩展功能/hrmSalaryCustom.properties +++ b/resource/wiki/扩展功能/hrmSalaryCustom.properties @@ -1 +1,2 @@ -formulaRunOvertimeThreshold= \ No newline at end of file +formulaRunOvertimeThreshold=100 +threadNumber=10 \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index ef1dcca05..f3cf66dba 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -273,65 +273,73 @@ public class SalaryAcctResultBO { } SalaryI18nUtil.i18nList(salaryAcctEmployees); Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId); - Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAccountingResults, SalaryAcctResultPO::getEmployeeId); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); - return salaryAcctEmployees.stream().map(e -> { - Map resultValueMap = SalaryEntityUtil.convert2Map(acctResultMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()), - SalaryAcctResultPO::getSalaryItemId, SalaryAcctResultPO::getResultValue); - // 薪资项目的值 - Map map = SalaryEntityUtil.convert2Map(salaryItems, o -> "" + o.getId(), o -> resultValueMap.getOrDefault(o.getId(), StringUtils.EMPTY)); - // 薪资项目的字段类型(前端依据这个判断是否需要展示千分位) - Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); - map.putAll(dataTypeMap); - // 人员信息字段的值 - Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId()), e, true); - for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { - // 员工信息字段的字段类型 - if (dynamicEmpInfo) { - map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); - } else { - if ("departmentName".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentName", e.getDepartmentName()); - } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { - map.put("departmentId", e.getDepartmentId()); - } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { - map.put("subcompanyName", e.getSubcompanyName()); - } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcall", e.getJobcall()); - } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobcallId", e.getJobcallId()); - } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleName", e.getJobtitleName()); - } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { - map.put("jobtitleId", e.getJobtitleId()); - } else if ("status".equals(salarySobEmpField.getFieldCode())) { - map.put("status", e.getStatus()); - } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { - map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(e.getStatus(), "1")))); - } else { + Map> taxAcctEmpsMap = SalaryEntityUtil.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getTaxAgentId); + Map> taxAcctResultMap = SalaryEntityUtil.group2Map(salaryAccountingResults, SalaryAcctResultPO::getTaxAgentId); + + List> result = new ArrayList<>(); + for (Long taxAgentId : taxAcctEmpsMap.keySet()) { + Map> acctResultMap = SalaryEntityUtil.group2Map(taxAcctResultMap.get(taxAgentId), SalaryAcctResultPO::getEmployeeId); + List> collect = taxAcctEmpsMap.get(taxAgentId).stream().map(e -> { + Map resultValueMap = SalaryEntityUtil.convert2Map(acctResultMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()), + SalaryAcctResultPO::getSalaryItemId, SalaryAcctResultPO::getResultValue); + // 薪资项目的值 + Map map = SalaryEntityUtil.convert2Map(salaryItems, o -> "" + o.getId(), o -> resultValueMap.getOrDefault(o.getId(), StringUtils.EMPTY)); + // 薪资项目的字段类型(前端依据这个判断是否需要展示千分位) + Map dataTypeMap = SalaryEntityUtil.convert2Map(salaryItems, salaryItemPO -> salaryItemPO.getId() + DATA_TYPE_SUFFIX, SalaryItemPO::getDataType); + map.putAll(dataTypeMap); + // 人员信息字段的值 + Map fieldValueMap = SalaryAcctFormulaBO.convert2FormulaEmployee(employeeMap.get(e.getEmployeeId()), e, true); + for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { + // 员工信息字段的字段类型 + if (dynamicEmpInfo) { map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } else { + if ("departmentName".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentName", e.getDepartmentName()); + } else if ("departmentId".equals(salarySobEmpField.getFieldCode())) { + map.put("departmentId", e.getDepartmentId()); + } else if ("subcompanyName".equals(salarySobEmpField.getFieldCode())) { + map.put("subcompanyName", e.getSubcompanyName()); + } else if ("jobcall".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcall", e.getJobcall()); + } else if ("jobcallId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobcallId", e.getJobcallId()); + } else if ("jobtitleName".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleName", e.getJobtitleName()); + } else if ("jobtitleId".equals(salarySobEmpField.getFieldCode())) { + map.put("jobtitleId", e.getJobtitleId()); + } else if ("status".equals(salarySobEmpField.getFieldCode())) { + map.put("status", e.getStatus()); + } else if ("statusName".equals(salarySobEmpField.getFieldCode())) { + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(e.getStatus(), "1")))); + } else { + map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); + } } + map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); } - map.put(salarySobEmpField.getFieldCode() + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); - } - // 主键id - map.put("id", e.getId()); - //锁定状态 - map.put("lockStatus", LockStatusEnum.getByValue(e.getLockStatus()).getDefaultLabel()); - //人员id - map.put("employeeId", e.getEmployeeId()); - // 个税扣缴义务人 - String taxAgentName = taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY); - map.put("taxAgentName", taxAgentName); - // 是否属于"合并计税"的标记 - map.put("consolidatedTaxation", StringUtils.isNotEmpty(taxAgentName) && consolidatedTaxSalaryAcctEmpIds.contains(e.getId())); - // 个税扣缴义务人的字段类型 - map.put("taxAgentName" + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); - // 公式详情 - customParameters.putAll(customBackCalcParameters); - map.put("customParameters", customParameters); - return map; - }).collect(Collectors.toList()); + // 主键id + map.put("id", e.getId()); + //锁定状态 + map.put("lockStatus", LockStatusEnum.getByValue(e.getLockStatus()).getDefaultLabel()); + //人员id + map.put("employeeId", e.getEmployeeId()); + // 个税扣缴义务人 + String taxAgentName = taxAgentNameMap.getOrDefault(e.getTaxAgentId(), StringUtils.EMPTY); + map.put("taxAgentName", taxAgentName); + // 是否属于"合并计税"的标记 + map.put("consolidatedTaxation", StringUtils.isNotEmpty(taxAgentName) && consolidatedTaxSalaryAcctEmpIds.contains(e.getId())); + // 个税扣缴义务人的字段类型 + map.put("taxAgentName" + DATA_TYPE_SUFFIX, SalaryDataTypeEnum.STRING.getValue()); + // 公式详情 + customParameters.putAll(customBackCalcParameters); + map.put("customParameters", customParameters); + return map; + }).collect(Collectors.toList()); + result.addAll(collect); + } + return result; } /** diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index fabbfd1b0..2fa4ac05f 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -106,75 +106,6 @@ public class SalaryArchiveBO { LocalDateRange localDateRange, List allEmployeeIds, boolean isOnlyTaxAgent) { -// // 开始日期 -// Date start = localDateRange.getFromDate(); -// // 结束日期 -// Date end = localDateRange.getEndDate(); -// -// List list = new ArrayList<>(); -// allEmployeeIds.forEach(e -> { -// // 同一个人的档案数据 -// List salaryArchives = salaryArchiveList.stream().filter(f -> f.getEmployeeId().equals(e)).collect(Collectors.toList()); -// List salaryArchiveIds = salaryArchives.stream().map(SalaryArchivePO::getId).collect(Collectors.toList()); -// // 同一个人的薪资项目调整历史数据 -// List salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d -> salaryArchiveIds.contains(d.getSalaryArchiveId())).collect(Collectors.toList()); -// List salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList()); -// -// SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO(); -// salaryArchiveData.setEmployeeId(e); -// List taxAgents = new ArrayList<>(); -// // 按个税扣缴义务人生效日期时间段切割 -// for (SalaryArchivePO salaryArchive : salaryArchives) { -// Date fromDate = salaryArchive.getPayStartDate(); -// Date endDate = salaryArchive.getPayEndDate(); -// // 起始发薪日不为空,且不能比结束日期晚,最后发薪日可空可不空,但是如果不为空,就不能比开始日期早,且起始发薪日不能晚于最后发薪日 -// boolean isEnable = fromDate != null && !fromDate.after(end) && (endDate == null || (!fromDate.after(endDate) && !endDate.before(start))); -// if (isEnable) { -// SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO(); -// taxAgent.setTaxAgentId(salaryArchive.getTaxAgentId()); -//// taxAgent.setIncomeCategory(salaryArchive.getIncomeCategory()); -// taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start) ? start : fromDate)).endDate(endDate == null || endDate.after(end) ? end : endDate).build()); -// // 薪资项目数据按个税扣缴义务人切割 -// if (!isOnlyTaxAgent) { -// // 开始日期 -// Date startItem = taxAgent.getEffectiveDateRange().getFromDate(); -// // 结束日期 -// Date endItem = taxAgent.getEffectiveDateRange().getEndDate(); -// Date endTempItem = endItem; -// List salaryItemValues = new ArrayList<>(); -// for (Long salaryArchiveItemId : salaryArchiveItemIds) { -// for (SalaryArchiveItemPO salaryArchiveItem : salaryArchiveItems) { -// if (!salaryArchiveItemId.equals(salaryArchiveItem.getSalaryItemId()) || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchive.getId())) { -// continue; -// } -// Date fromDateItem = salaryArchiveItem.getEffectiveTime(); -// if (fromDateItem.after(endTempItem) || (!endTempItem.after(startItem) && !endTempItem.equals(startItem))) { -// continue; -// } -// SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); -// salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem) ? startItem : fromDateItem)).endDate(endTempItem).build()); -// //fixme 排除1号调薪,之前的历史周期为2022-01-01-2022-01-01这种情况 -// if (!salaryArchiveItemData.getEffectiveDateRange().getFromDate().before(salaryArchiveItemData.getEffectiveDateRange().getEndDate())) { -// continue; -// } -// salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId()); -// salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue()); -// salaryItemValues.add(salaryArchiveItemData); -// endTempItem = fromDateItem; -// } -// endTempItem = endItem; -// } -// taxAgent.setSalaryItemValues(salaryItemValues); -// } -// taxAgents.add(taxAgent); -// } -// } -// salaryArchiveData.setTaxAgents(taxAgents); -// list.add(salaryArchiveData); -// }); -// -// return list; - // 开始日期 Date start = localDateRange.getFromDate(); diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java index 89a17bd77..fd93761fb 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java @@ -15,6 +15,7 @@ import lombok.experimental.Accessors; import java.util.Collection; import java.util.Date; +import java.util.List; import java.util.Set; /** @@ -54,8 +55,11 @@ public class SalarySobPO { @ElogTransform( name="个税扣缴义务人id" ) @XStreamAlias("taxAgentId") @XStreamAsAttribute + @Deprecated private Long taxAgentId; + List taxAgentIds; + /** * 应税项目。1:正常工资薪金所得 */ @@ -176,7 +180,7 @@ public class SalarySobPO { private String tenantKey; Collection ids; - Collection taxAgentIds; + private Set opts; diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java index 999c805d1..6d31899b0 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java @@ -54,4 +54,5 @@ public interface SalarySobMapper { List listByName(SalarySobPO build); + SalarySobPO getByIdWithTax(Long id); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml index 59f40120d..ecc2e3a1b 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml @@ -508,6 +508,22 @@ and name = #{name} + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/AddUpDeductionService.java b/src/com/engine/salary/service/AddUpDeductionService.java index e80a3e53d..ef3b259ba 100644 --- a/src/com/engine/salary/service/AddUpDeductionService.java +++ b/src/com/engine/salary/service/AddUpDeductionService.java @@ -98,7 +98,7 @@ public interface AddUpDeductionService { * @param employeeIds * @return */ - List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId); + List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds); /** * 根据年月获取已核算数据 diff --git a/src/com/engine/salary/service/OtherDeductionService.java b/src/com/engine/salary/service/OtherDeductionService.java index e77c70995..dbe8de31a 100644 --- a/src/com/engine/salary/service/OtherDeductionService.java +++ b/src/com/engine/salary/service/OtherDeductionService.java @@ -84,7 +84,7 @@ public interface OtherDeductionService { * @param employeeIds * @return */ - List getOtherDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId); + List getOtherDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds); /** * 编辑数据 diff --git a/src/com/engine/salary/service/SalaryArchiveService.java b/src/com/engine/salary/service/SalaryArchiveService.java index 5ab2dac29..e86655fd6 100644 --- a/src/com/engine/salary/service/SalaryArchiveService.java +++ b/src/com/engine/salary/service/SalaryArchiveService.java @@ -114,7 +114,7 @@ public interface SalaryArchiveService { * @param employeeIds 为空则返回所有人的 * @return */ - List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId); + List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds); /** * 根据日期范围与人员id获取薪资档案-个税扣缴义务人数据 @@ -123,7 +123,7 @@ public interface SalaryArchiveService { * @param employeeIds 为空则返回所有人的 * @return */ - List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId); + List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds); /** * 预览 diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 9cbb47fac..4f0523586 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -30,6 +30,8 @@ public interface SalarySobService { */ SalarySobPO getById(Long id); + SalarySobPO getByIdWithTax(Long id); + /** * 根据主键id查询薪资账套 * @@ -154,7 +156,7 @@ public interface SalarySobService { * @param taxAgentIds * @return */ - List listByTaxAgentIds(Collection taxAgentIds); + List listByTaxAgentIds(List taxAgentIds); List getConfig(Long taxAgentId); diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index d453b6c96..6a7e15884 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -913,9 +913,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } private Map> getEmpInfoByYearMonth(TaxAgentPO taxAgent, List employeePOs, YearMonth lastMonth) { - List addUpDeductionList = getAddUpDeductionList(lastMonth, - employeePOs.stream().map(SpecialAddDeductionPO::getEmployeeId).collect(Collectors.toList()), - taxAgent.getId()); + List addUpDeductionList = getAddUpDeductionList(lastMonth, employeePOs.stream().map(SpecialAddDeductionPO::getEmployeeId).collect(Collectors.toList()), Collections.singletonList(taxAgent.getId())); return addUpDeductionList.stream() .filter(addUpDeduction -> taxAgent.getId().equals(addUpDeduction.getTaxAgentId())) .collect(Collectors.groupingBy(AddUpDeduction::getEmployeeId)); @@ -1127,12 +1125,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction @Override - public List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId) { + public List getAddUpDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds) { AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); if (declareMonth == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100342, "参数有误:申报月份、租户key必传")); } - return addUpDeductionBiz.listSome(AddUpDeduction.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + return addUpDeductionBiz.listSome(AddUpDeduction.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); } @Override diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index 1771b6c09..da369b9ef 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -352,7 +352,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa for (Long salarySobId : salarySobIds) { // 获取薪资账套 SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salarySobId, YearMonth.of(year, month)); - SalarySobPO salarySobPO = getSalarySobService(user).getById(salarySobId); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salarySobId); // 根据薪资账套查询人员 List salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salarySobId); @@ -360,17 +360,17 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa errorMsg = errorMsg + "【" + salarySobPO.getName() + "】薪资账套没有人员; "; } else { // 根据薪资账套查询薪资周期 - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 查询薪资档案,获取人员的个税扣缴义务人 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); // 转换成薪资核算人员po Date salaryDate = SalaryDateUtil.dateStrToLocalTime(salaryYearMonth + "-01"); List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID()); //过滤掉不属于当前账套扣缴义务人的人员 - employeeIds = salaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toList()); + employeeIds = salaryAcctEmployeePOS.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toList()); // 4.获取考勤模块数据 diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 8347f1045..d376e4af9 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -636,12 +636,12 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override - public List getOtherDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId) { + public List getOtherDeductionList(YearMonth declareMonth, List employeeIds, List taxAgentIds) { if (declareMonth == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100342, "参数有误:申报月份必传")); } OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); - return OtherDeductionBiz.listSome(OtherDeductionPO.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + return OtherDeductionBiz.listSome(OtherDeductionPO.builder().declareMonth(SalaryDateUtil.toDateStartOfMonth(declareMonth)).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); } @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 09927a388..34fd21ee0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -121,11 +121,11 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); SalarySobCycleDTO salarySobCycleDTO = salaryAcctCalculateBO.getSalarySobCycleDTO(); - Long taxAgentId = salaryAcctCalculateBO.getSalarySobPO().getTaxAgentId(); + List taxAgentIds = salaryAcctCalculateBO.getSalarySobPO().getTaxAgentIds(); sw.stop(); // 2、查询薪资档案的数据 sw.start("查询薪资档案的数据"); - List salaryArchiveData = getSalaryArchiveService(user).getSalaryArchiveData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveData = getSalaryArchiveService(user).getSalaryArchiveData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); sw.stop(); // 3、查询往期累计情况(查询的是上个税款所属期的的累计情况) sw.start("查询往期累计情况"); @@ -139,15 +139,16 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.stop(); // 4、查询累计专项附加扣除 sw.start("查询累计专项附加扣除"); - List addUpDeductionPOS = getAddUpDeductionService(user).getAddUpDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentId); + List addUpDeductionPOS = getAddUpDeductionService(user).getAddUpDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentIds); sw.stop(); // 5、查询其他免税扣除 sw.start("查询其他免税扣除"); - List otherDeductionPOS = getOtherDeductionService(user).getOtherDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentId); + List otherDeductionPOS = getOtherDeductionService(user).getOtherDeductionList(salarySobCycleDTO.getTaxCycle(), employeeIds, taxAgentIds); sw.stop(); //6、查询社保福利 sw.start("查询社保福利"); - List> welfareData = getSIAccountService(user).welfareData(salarySobCycleDTO.getSocialSecurityCycle().toString(), employeeIds, taxAgentId); + //getSIAccountService(user).welfareData(salarySobCycleDTO.getSocialSecurityCycle().toString(), employeeIds, taxAgentIds) + List> welfareData = new ArrayList<>(); sw.stop(); // 7、查询考勤数据 sw.start("查询考勤数据"); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 621b2b068..c183b043d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -5,9 +5,9 @@ import cn.hutool.core.date.DateUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO; @@ -23,6 +23,7 @@ import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam; import com.engine.salary.service.*; @@ -62,6 +63,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return MapperProxyFactory.getProxy(SalaryAcctEmployeeMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } @@ -397,22 +402,22 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 根据薪资账套查询薪资周期 SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); //获取核算的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "薪资账套不存在或已被删除")); } - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); List employees = getSalaryEmployeeService(user).getEmployeeByIdsAll((List) saveParam.getEmployeeIds()); // 查询薪资档案 - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), saveParam.getEmployeeIds(), taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), saveParam.getEmployeeIds(), taxAgentIds); // 转换成薪资核算人员po List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(employees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); //过滤不是扣缴义务人下的人员 - salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(ps -> Objects.equals(taxAgentId, ps.getTaxAgentId())).collect(Collectors.toList()); + salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(ps -> taxAgentIds.contains(ps.getTaxAgentId())).collect(Collectors.toList()); // 保存薪资核算人员 if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "个税扣缴义务人下无该人员档案信息或薪资缴纳日期不在薪资周期内")); @@ -524,20 +529,17 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //查询账套对应的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); -// //过滤扣税扣缴义务人不包含的人员 -// Collection employeeIdsInTaxAgent = getTaxAgentService(user).listEmployeeIdsInTaxAgent(taxAgentId); -// salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> employeeIdsInTaxAgent.contains(salaryEmployee.getEmployeeId())).collect(Collectors.toList()); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 查询薪资档案,获取人员的个税扣缴义务人 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); // 转换成薪资核算人员po List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); //过滤掉不属于当前账套扣缴义务人的人员 - salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + salaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).collect(Collectors.toList()); // 保存薪资核算人员 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { @@ -559,18 +561,18 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } //查询账套对应的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); //过滤掉不属于当前账套扣缴义务人的人员 - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 查询薪资核算记录所用的帐套的薪资周期 SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); // 查询薪资档案,获取人员的个税扣缴义务人 - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); List employees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); // 转换成薪资核算人员po List newSalaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(employees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); - newSalaryAcctEmployeePOS = newSalaryAcctEmployeePOS.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); + newSalaryAcctEmployeePOS = newSalaryAcctEmployeePOS.stream().filter(po ->taxAgentIds.contains(po.getTaxAgentId())).collect(Collectors.toList()); // 删除以前的薪资核算人员 getSalaryAcctEmployeeMapper().deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); // 插入新的薪资核算人员 diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index d315b44b2..665ce3a76 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -818,13 +818,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } @Override - public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId) { - return getSalaryArchiveData(localDateRange, employeeIds, taxAgentId, Boolean.FALSE); + public List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds) { + return getSalaryArchiveData(localDateRange, employeeIds, taxAgentIds, Boolean.FALSE); } @Override - public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId) { - return getSalaryArchiveData(localDateRange, employeeIds, taxAgentId, Boolean.TRUE); + public List getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds) { + return getSalaryArchiveData(localDateRange, employeeIds, taxAgentIds, Boolean.TRUE); } /** @@ -835,7 +835,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe * @param isOnlyTaxAgent * @return */ - private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, Long taxAgentId, boolean isOnlyTaxAgent) { + private List getSalaryArchiveData(LocalDateRange localDateRange, Collection employeeIds, List taxAgentIds, boolean isOnlyTaxAgent) { // 获取核算人员规则 List statusList = Collections.emptyList(); SalarySysConfPO employeeRule = getSalarySysConfService(user).getOneByCode(SalarySysConstant.SALARY_ACCT_EMPLOYEE_RULE); @@ -848,7 +848,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe statusList = Arrays.asList(SalaryArchiveStatusEnum.FIXED.getValue(), SalaryArchiveStatusEnum.SUSPEND.getValue()); } // 获取薪资档案数据 - List salaryArchiveList = listSome(SalaryArchivePO.builder().runStatusList(statusList).employeeIds(employeeIds).taxAgentId(taxAgentId).build()); + List salaryArchiveList = listSome(SalaryArchivePO.builder().runStatusList(statusList).employeeIds(employeeIds).taxAgentIds(taxAgentIds).build()); List allEmployeeIds = salaryArchiveList.stream().map(SalaryArchivePO::getEmployeeId).distinct().collect(Collectors.toList()); // 获取所有可被引用的薪资项目 diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index d132cb7ff..064128c2a 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -179,6 +179,14 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return salarySobMapper.getById(id); } + @Override + public SalarySobPO getByIdWithTax(Long id) { + SalarySobPO sobPO = getSalarySobMapper().getById(id); + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().sobId(id).build()); + sobPO.setTaxAgentIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + return sobPO; + } + @Override public List listByIds(Collection ids) { if (CollectionUtils.isEmpty(ids)) { @@ -861,7 +869,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } @Override - public List listByTaxAgentIds(Collection taxAgentIds) { + public List listByTaxAgentIds(List taxAgentIds) { if (CollectionUtils.isEmpty(taxAgentIds)) { return new ArrayList<>(); } From 7f77f4cb120f0c047e5f63b1b37a078a278bec88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Sep 2024 09:21:57 +0800 Subject: [PATCH 034/184] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctRecordBO.java | 3 +- .../salary/service/SalarySobService.java | 1 + .../impl/SalaryAcctRecordServiceImpl.java | 238 ++++++++---------- .../service/impl/SalarySobServiceImpl.java | 11 + .../service/impl/TaxAgentServiceImpl.java | 13 +- .../wrapper/SalaryAcctRecordWrapper.java | 5 +- .../salary/wrapper/SalarySobWrapper.java | 22 +- 7 files changed, 142 insertions(+), 151 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index e0fad94bd..fc587cf43 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -80,10 +80,11 @@ public class SalaryAcctRecordBO { btnList.add(new WeaTableOperate("查看", null, "3")); btnList.add(new WeaTableOperate("重新核算", null, "4")); } + String taxAgentName = salarySobPO.getTaxAgentIds().stream().map(id -> taxAgentMap.getOrDefault(id, "")).collect(Collectors.joining(",")); return SalaryAcctRecordListDTO.builder() .id(salaryAcctRecordPO.getId()) .salarySobName(Optional.ofNullable(salarySobPO).map(SalarySobPO::getName).orElse(StringUtils.EMPTY)) - .taxAgentName(taxAgentMap.get(Optional.ofNullable(salarySobPO).map(SalarySobPO::getTaxAgentId).orElse(0L))) + .taxAgentName(taxAgentName) .salaryMonth(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()).toString()) .taxCycle(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()).toString()) .status(Optional.ofNullable(salaryAcctRecordStatusEnum) diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 4f0523586..21f660f49 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -39,6 +39,7 @@ public interface SalarySobService { * @return */ List listByIds(Collection ids); + List listByIdsWithTax(Collection ids); /** * 根据名称精确匹配查询薪资账套 diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 89fad2ab7..08c6cabfa 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -338,141 +338,115 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } //获取账套所属个税扣缴义务人的核算记录 - SalarySobPO salarySobPO = getSalarySobService(user).getById(saveParam.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); - //查询扣缴义务人下的所有账套 - List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - //获取账套下的所有核算结果 - List salaryAcctRecords = listByTaxCycle(taxCycleYearRange, salarySobIds); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(saveParam.getSalarySobId()); + List taxAgentIds = salarySobPO.getTaxAgentIds(); + taxAgentIds.forEach(taxAgentId->{ + //查询扣缴义务人下的所有账套 + List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); + Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); + //获取账套下的所有核算结果 + List salaryAcctRecords = listByTaxCycle(taxCycleYearRange, salarySobIds); - // 获取个税申报功能状态 - TaxDeclarationFunctionEnum taxDeclarationFunctionEnum = getSalarySysConfService(user).getTaxDeclaration(); + // 获取个税申报功能状态 + TaxDeclarationFunctionEnum taxDeclarationFunctionEnum = getSalarySysConfService(user).getTaxDeclaration(); -// if (taxDeclarationFunctionEnum.getValue().equals(TaxDeclarationFunctionEnum.CLOSURE.getValue())) { -// // 关闭了个税申报功能 -// // 如果某个月(薪资所属期)还未归档,不可以新建之后月份的薪资核算 -// SalaryAcctRecordPO notArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() -// .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) -// && e.getSalaryMonth().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getSalaryMonth().atDay(1)))) -// .findAny() -// .orElse(null); -// if (Objects.nonNull(notArchivedSalaryAcctRecordPO)) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98754, "薪资所属期{0}的薪资核算结果还未归档,不能新建薪资所属期{1}的薪资核算") -// .replace("{0}", SalaryDateUtil.localDate2YearMonth(notArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) -// .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); -// } -// // 如果有某个月(薪资所属期)已经归档了,不可以新建之前月份的薪资核算 -// SalaryAcctRecordPO havaSalaryAcctRecordPO = salaryAcctRecords.stream() -// .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue()) -// && e.getTaxCycle().after(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getSalaryMonth().atDay(1)))) -// .findAny() -// .orElse(null); -// if (Objects.nonNull(havaSalaryAcctRecordPO)) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98755, "薪资所属期{0}的薪资核算结果已经归档,不能新建薪资所属期{1}的薪资核算") -// .replace("{0}", SalaryDateUtil.localDate2YearMonth(havaSalaryAcctRecordPO.getSalaryMonth()).toString()) -// .replace("{1}", salarySobCycleDTO.getSalaryMonth().toString())); -// } -// -// } - if (taxDeclarationFunctionEnum.getValue().equals(TaxDeclarationFunctionEnum.OPEN.getValue())) { - // 开启了个税申报功能 - // 如果某个月(税款所属期)已经归档了,不可以新建之前月份的薪资核算 - SalaryAcctRecordPO hasArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue()) - && e.getTaxCycle().after(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(hasArchivedSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98752, "税款所属期{0}的薪资核算结果已经归档,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - // 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算 - SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - // 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算 - SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) - .findAny() - .orElse(null); - if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - } - if (taxDeclarationFunctionEnum.getValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue())) { - // 重启了个税申报功能(不去校验重启之前是否申报数据) - // 如果某个月(薪资所属期)还未归档,不可以新建之后月份的薪资核算 - SalaryAcctRecordPO notArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) - && e.getSalaryMonth().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getSalaryMonth().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(notArchivedSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98754, "薪资所属期{0}的薪资核算结果还未归档,不能新建薪资所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(notArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - // 如果某个月(税款所属期)已经归档了,不可以新建之前月份的薪资核算 - SalaryAcctRecordPO hasArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue()) - && e.getTaxCycle().after(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(hasArchivedSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98752, "税款所属期{0}的薪资核算结果已经归档,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - // 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算 - //获取账套下从重启月至所在年的最后一天的所有核算结果 - Date taxDeclarationRebootDate = getSalarySysConfService(user).getTaxDeclarationRebootDate(); - if (taxDeclarationRebootDate == null) { - throw new SalaryRunTimeException("个税申报功能异常"); + if (taxDeclarationFunctionEnum.getValue().equals(TaxDeclarationFunctionEnum.OPEN.getValue())) { + // 开启了个税申报功能 + // 如果某个月(税款所属期)已经归档了,不可以新建之前月份的薪资核算 + SalaryAcctRecordPO hasArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue()) + && e.getTaxCycle().after(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(hasArchivedSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98752, "税款所属期{0}的薪资核算结果已经归档,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + // 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算 + SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + // 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算 + SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) + .findAny() + .orElse(null); + if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } } + if (taxDeclarationFunctionEnum.getValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue())) { + // 重启了个税申报功能(不去校验重启之前是否申报数据) + // 如果某个月(薪资所属期)还未归档,不可以新建之后月份的薪资核算 + SalaryAcctRecordPO notArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) + && e.getSalaryMonth().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getSalaryMonth().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(notArchivedSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98754, "薪资所属期{0}的薪资核算结果还未归档,不能新建薪资所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(notArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + // 如果某个月(税款所属期)已经归档了,不可以新建之前月份的薪资核算 + SalaryAcctRecordPO hasArchivedSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue()) + && e.getTaxCycle().after(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(hasArchivedSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98752, "税款所属期{0}的薪资核算结果已经归档,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasArchivedSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + // 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算 + //获取账套下从重启月至所在年的最后一天的所有核算结果 + Date taxDeclarationRebootDate = getSalarySysConfService(user).getTaxDeclarationRebootDate(); + if (taxDeclarationRebootDate == null) { + throw new SalaryRunTimeException("个税申报功能异常"); + } - LocalDateRange taxCycleRebootYearRange = LocalDateRange.builder() - .fromDate(taxDeclarationRebootDate) - .endDate(SalaryDateUtil.getLastDayOfYear(taxDeclarationRebootDate)) - .build(); + LocalDateRange taxCycleRebootYearRange = LocalDateRange.builder() + .fromDate(taxDeclarationRebootDate) + .endDate(SalaryDateUtil.getLastDayOfYear(taxDeclarationRebootDate)) + .build(); // List salaryAcctRebootRecords = listByTaxCycle(taxCycleRebootYearRange,salarySobIds); - List salaryAcctRebootRecords = listByCreateDate(taxCycleRebootYearRange, salarySobIds); - SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRebootRecords.stream() - .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) - .findAny() - .orElse(null); - if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + List salaryAcctRebootRecords = listByCreateDate(taxCycleRebootYearRange, salarySobIds); + SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRebootRecords.stream() + .filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1)))) + .findAny() + .orElse(null); + if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } + + // 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算 + SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() + .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) + && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) + .findAny() + .orElse(null); + if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算") + .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) + .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); + } } - - // 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算 - SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream() - .filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue()) - && e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0) - .findAny() - .orElse(null); - if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算") - .replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString()) - .replace("{1}", salarySobCycleDTO.getTaxCycle().toString())); - } - - } - + }); } private List listByCreateDate(LocalDateRange taxCycleRebootYearRange, Set salarySobIds) { @@ -658,10 +632,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } // 查询税款所在年的该个税扣缴义务人所有薪资核算记录 // 获取账套所属个税扣缴义务人的核算记录 - SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + List taxAgentIds = salarySobPO.getTaxAgentIds(); //查询扣缴义务人下的所有账套 - List salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId); + List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(taxAgentIds); Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); List salaryAcctRecordPOS = listByTaxCycle(yearRange, salarySobIds); List selfSalaryAcctRecordPOS = filterByAuthority(salaryAcctRecordPOS); diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 064128c2a..3540c7151 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -195,6 +195,17 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return salarySobMapper.listSome(SalarySobPO.builder().ids(ids).build()); } + @Override + public List listByIdsWithTax(Collection ids) { + List collect = ids.stream().map(id -> { + SalarySobPO sobPO = getSalarySobMapper().getById(id); + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().sobId(id).build()); + sobPO.setTaxAgentIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + return sobPO; + }).collect(Collectors.toList()); + return collect; + } + @Override public List listByName(String name) { if (StringUtils.isEmpty(name)) { diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index f6e00b508..36b78998f 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -14,7 +14,7 @@ import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salarysob.config.SalarySobConfig; -import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.salarysob.po.SobTaxLinkPO; import com.engine.salary.entity.siaccount.param.InsuranceAccountBatchParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; @@ -39,6 +39,7 @@ import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.datacollection.OtherDeductionMapper; import com.engine.salary.mapper.salarysob.SalarySobMapper; +import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; @@ -125,6 +126,10 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return MapperProxyFactory.getProxy(SalarySobMapper.class); } + private SobTaxLinkMapper getSobTaxLinkMapper() { + return MapperProxyFactory.getProxy(SobTaxLinkMapper.class); + } + private TaxAgentMapper getTaxAgentMapper() { return MapperProxyFactory.getProxy(TaxAgentMapper.class); } @@ -568,8 +573,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } //账套 - List salarySobPOS = getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentId(id).build()); - if (CollectionUtils.isNotEmpty(salarySobPOS)) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(id).build()); + if (CollectionUtils.isNotEmpty(sobTaxLinkPOS)) { throw new SalaryRunTimeException("存在账套引用"); } @@ -821,7 +826,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } @Override - public List parseConfig(List configs) { + public List parseConfig(List configs) { List results = new ArrayList<>(); List taxAgentPOS = listAll(); diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index def809a7d..dc27e7167 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -99,7 +99,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord if (CollectionUtils.isNotEmpty(list)) { // 查询薪资账套 Set salarySobIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getSalarySobId); - List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); + List salarySobPOS = getSalarySobService(user).listByIdsWithTax(salarySobIds); // 查询薪资核算记录的创建人员的人员信息 List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); List employeeComInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); @@ -109,8 +109,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 查询工资单的查询情况 List salarySendCheckResult = getSalarySendService(user).getSalarySendCheckResult(salaryAcctRecordIds); - Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); - List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); + List taxAgentPOS = getTaxAgentService(user).listAll(); // 转换成列表dto List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS); diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index a63048567..8cdbe79cd 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -1,5 +1,6 @@ package com.engine.salary.wrapper; +import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; @@ -68,7 +69,6 @@ public class SalarySobWrapper extends Service { } - /** * 薪资账套列表 * @@ -85,7 +85,7 @@ public class SalarySobWrapper extends Service { List taxAgentPOS = getTaxAgentService(user).listAll(); Map taxAgentIdTONameMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId, TaxAgentPO::getName); - List salarySobListDTOS = SalarySobBO.convert2ListDTO(page.getList(),taxAgentIdTONameMap); + List salarySobListDTOS = SalarySobBO.convert2ListDTO(page.getList(), taxAgentIdTONameMap); PageInfo dtoPage = new PageInfo<>(salarySobListDTOS, SalarySobListDTO.class); dtoPage.setTotal(page.getTotal()); dtoPage.setPageNum(page.getPageNum()); @@ -118,10 +118,10 @@ public class SalarySobWrapper extends Service { private void handleSalarySobBackItemHistory(SalarySobListQueryParam queryParam) { queryParam.setPageSize(100000); List list = getSalarySobService(user).listPageByParam(queryParam).getList(); - if(list != null && list.size()>0){ + if (list != null && list.size() > 0) { List salarySobIds = list.stream().map(SalarySobPO::getId).collect(Collectors.toList()); Long count = getSalarySobBackItemService(user).getCountBySalarySobIdIn(salarySobIds); - if(count.equals(0L)){ + if (count.equals(0L)) { // 薪资账套的默认的回算薪资项目 Set SalarySobBackItemIds = SalaryEntityUtil.properties(SalarySobBackItemBO.getDefault(), SalarySobDefaultBackItemPO::getSysSalaryItemId); // 获取薪资项目中是否已经添加回算薪资项目 @@ -139,7 +139,7 @@ public class SalarySobWrapper extends Service { List salarySobBackItems = new ArrayList<>(); // 获取默认添加后的回算薪资项目 List salaryBackItemPOS = getSalaryItemService(user).listBySysSalaryItemIds(SalarySobBackItemIds); - for(Long id : salarySobIds){ + for (Long id : salarySobIds) { for (SalarySobDefaultBackItemPO salarySobDefaultBackItemPO : SalarySobBackItemBO.getDefault()) { Date now = new Date(); Map sysSalaryItemMap = SalaryEntityUtil.convert2Map(salaryBackItemPOS, SalaryItemPO::getSysSalaryItemId); @@ -155,7 +155,7 @@ public class SalarySobWrapper extends Service { .valueType(salaryItemPO.getValueType()) .formulaId(salarySobDefaultBackItemPO.getFormulaId()) .backCalcType(salarySobDefaultBackItemPO.getBackCalcType()) - .creator((long)user.getUID()) + .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) @@ -195,7 +195,7 @@ public class SalarySobWrapper extends Service { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); } // 薪资装套po转换成薪资账套详情dto - basicForm = SalarySobBO.convert2FormDTO(basicForm,salarySobPO); + basicForm = SalarySobBO.convert2FormDTO(basicForm, salarySobPO); } // 转换成前端所需的数据格式 data.put("basicForm", basicForm); @@ -259,7 +259,7 @@ public class SalarySobWrapper extends Service { */ public boolean canEdit(Long id, Long employeeId) { // 查询薪资账套 - SalarySobPO salarySobPO = getSalarySobService(user).getById(id); + SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(id); if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); } @@ -271,11 +271,11 @@ public class SalarySobWrapper extends Service { } Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - return taxAgentIds.contains(salarySobPO.getTaxAgentId())||Objects.isNull(salarySobPO.getTaxAgentId()); + Collection intersection = CollectionUtil.intersection(taxAgentIds, salarySobPO.getTaxAgentIds()); + return intersection.size() > 0; } public List listByTaxAgent(SalarySobQueryParam param) { - return getSalarySobService(user).list(param); + return getSalarySobService(user).list(param); } } From 0b90f4890ec9d0db5c4bd32384faa6acfed283bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Sep 2024 14:30:57 +0800 Subject: [PATCH 035/184] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=B7=A8=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SalarySendDetailListDTO.java | 1 + .../mapper/salarysob/SalarySobMapper.java | 3 +- .../mapper/salarysob/SalarySobMapper.xml | 15 +----- .../service/impl/SalarySendServiceImpl.java | 51 ++++++++++--------- .../service/impl/SalarySobServiceImpl.java | 33 ++++++++---- 5 files changed, 54 insertions(+), 49 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java index 4e87a6ad8..ae647ab04 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendDetailListDTO.java @@ -44,6 +44,7 @@ public class SalarySendDetailListDTO { // 个税扣缴义务人") private String taxAgent; + private Long taxAgentId; // 部门") @I18n diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java index 6d31899b0..71ee8abe5 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java @@ -54,5 +54,6 @@ public interface SalarySobMapper { List listByName(SalarySobPO build); - SalarySobPO getByIdWithTax(Long id); + + List listByTaxAgentId(Long taxAgentId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml index ecc2e3a1b..cd2a20ba8 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml @@ -508,22 +508,11 @@ and name = #{name} - - - - - - - - - - SELECT - , l.tax_agent_id FROM hrsa_salary_sob t - left join hrsa_sob_tax_link l on t.id=l.sob_id and t.delete_type=0 and l.delete_type=0 - WHERE t.id = #{id} + WHERE t.delete_type = 0 and t.id = (select sob_id from hrsa_sob_tax_link where delete_type=0 and tax_agent_id=#{taxAgentId}) \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 30019d8fc..c4df714b2 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -245,9 +245,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(Collections.singletonList(salaryAccountingId)); - // 根据人员id去重 - salaryAcctEmployees = salaryAcctEmployees.stream() - .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId))), ArrayList::new)); +// // 根据人员id去重 +// salaryAcctEmployees = salaryAcctEmployees.stream() +// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId))), ArrayList::new)); // 1.回算:如果是回算,todo 要等原始核算发完或者上一个回算记录发完才行,目前最多只有一个回算记录 if (Objects.equals(acctRecords.get(0).getBackCalcStatus(), (NumberUtils.INTEGER_ONE))) { @@ -555,7 +555,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 获取薪资项目数据 Long salaryAcctRecordId = salarySendInfo.getSalaryAcctRecordId(); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).employeeId(currentEmployeeId).build()); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salaryAcctRecordId) + .taxAgentId(salarySendInfo.getTaxAgentId()) + .employeeId(currentEmployeeId) + .build(); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(build); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("薪资核算结果不存在!"); } @@ -691,7 +696,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } - private Date getLimitMonth() { //工资单时效性 salaryBillViewingLimitSetting salaryBillViewingLimitSetting = getSalaryBillBaseSetService(user).getSalaryBillViewingLimitSetting(); @@ -933,7 +937,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .jobtitleName(simpleEmployee.getJobtitleName()) .jobtitleId(simpleEmployee.getJobtitleId()) .status(simpleEmployee.getStatus() == null ? "" : simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(),"1"))).getDefaultLabel()) + .statusName(simpleEmployee.getStatus() == null ? "" : UserStatusEnum.parseByValue(new Integer(Util.null2s(simpleEmployee.getStatus(), "1"))).getDefaultLabel()) .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) .workcode(StringUtils.isEmpty(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()) @@ -974,16 +978,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (CollectionUtils.isEmpty(list)) { return listMaps; } - // 获取薪资项目数据 -// List salaryAccountingResults = new LambdaQueryChainWrapper<>(salaryAcctResultMapper) -// .eq(SalaryAcctResultPO::getDeleteType, 0) -// .eq(SalaryAcctResultPO::getSalaryAcctRecordId, salaryAccountingId).list(); - SalaryAcctResultPO po = new SalaryAcctResultPO(); - po.setDeleteType(0); - po.setSalaryAcctRecordId(salaryAccountingId); - po.setEmployeeIds(list.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList())); - List salaryAccountingResults = getSalaryAcctResultMapper().listSome(po); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salaryAccountingId) + .employeeIds(list.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList())) + .build(); + List salaryAccountingResults = getSalaryAcctResultMapper().listSome(build); encryptUtil.decryptList(salaryAccountingResults, SalaryAcctResultPO.class); // 动态列 List employeeList = getExtEmpService(user).listEmployee(); @@ -1009,7 +1009,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("email", Objects.equals(employeeType, 1) ? extEmp.getEmail() : e.getEmail()); salaryItems.forEach(i -> { Optional optional = salaryAccountingResults.stream() - .filter(r -> r.getEmployeeId().equals(e.getEmployeeId()) && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))).findFirst(); + .filter(r -> r.getTaxAgentId().equals(e.getTaxAgentId()) + && r.getEmployeeId().equals(e.getEmployeeId()) + && r.getSalaryItemId().equals(Long.valueOf(i.getSalaryItemId()))) + .findFirst(); map.put(i.getSalaryItemId() + SalaryItemConstant.DYNAMIC_SUFFIX, optional.isPresent() ? optional.get().getResultValue() : ""); }); @@ -1578,7 +1581,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX); List sortedSalaryItems = new ArrayList<>(); - for(String column : queryParam.getColumns()) { + for (String column : queryParam.getColumns()) { if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) { SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column); if (salaryTemplateSalaryItemListDTO != null) { @@ -1660,13 +1663,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService mapper.batchHandleSalaryAcctTypeHistory(); } -// -// @BatchExportHandler("exportSalarySendDetail") -// public void salarySendDetailExportHandler() { -// BatchCallbackMessage message = BatchExportContext.getBatchCallbackMessage(); -// System.out.println("接受到导出的结果" + JSONObject.toJSONString(message)); -// } - @Override public Map sumRow(SalarySendInfoQueryParam param) { @@ -1876,7 +1872,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 判断是否是补发 boolean isReplenish = NumberUtils.INTEGER_ONE.equals(salarySendInfo.getSalaryAcctType()); - List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()).employeeId(recipient).build()); + SalaryAcctResultPO build = SalaryAcctResultPO.builder() + .salaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()) + .taxAgentId(salarySendInfo.getTaxAgentId()) + .employeeId(recipient) + .build(); + List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(build); if (CollUtil.isEmpty(salaryAcctResultPOS)) { throw new SalaryRunTimeException("薪资核算结果不存在!"); } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 3540c7151..09f3ac3b8 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -183,7 +183,25 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { public SalarySobPO getByIdWithTax(Long id) { SalarySobPO sobPO = getSalarySobMapper().getById(id); List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().sobId(id).build()); - sobPO.setTaxAgentIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + List taxAgentIds = sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList()); + //处理历史数据 + if (CollectionUtil.isEmpty(taxAgentIds)) { + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(sobPO.getTaxAgentId()) + .sobId(sobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + + taxAgentIds.add(sobPO.getTaxAgentId()); + } + + sobPO.setTaxAgentIds(taxAgentIds); return sobPO; } @@ -197,13 +215,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public List listByIdsWithTax(Collection ids) { - List collect = ids.stream().map(id -> { - SalarySobPO sobPO = getSalarySobMapper().getById(id); - List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().sobId(id).build()); - sobPO.setTaxAgentIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); - return sobPO; - }).collect(Collectors.toList()); - return collect; + return ids.stream().map(this::getByIdWithTax).collect(Collectors.toList()); } @Override @@ -257,7 +269,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public List listByTaxAgentId(Long taxAgentId) { - return salarySobMapper.listSome(SalarySobPO.builder().disable(NumberUtils.INTEGER_ZERO).taxAgentId(taxAgentId).build()); + return getSalarySobMapper().listByTaxAgentId(taxAgentId); } @Override @@ -1077,7 +1089,8 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } if (param.getTaxAgentId() != null) { - sobPO.setTaxAgentId(param.getTaxAgentId()); + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(param.getTaxAgentId()).build()); + sobPO.setIds(SalaryEntityUtil.properties(sobTaxLinkPOS, SobTaxLinkPO::getSobId)); } return getSalarySobMapper().listSome(sobPO); } From e788f3dd37fc617a9b7f5d9399e1ac2b0b6caeae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Sep 2024 14:46:08 +0800 Subject: [PATCH 036/184] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E8=A1=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=B7=A8=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml index cd2a20ba8..0cc924b01 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml @@ -512,7 +512,7 @@ SELECT FROM hrsa_salary_sob t - WHERE t.delete_type = 0 and t.id = (select sob_id from hrsa_sob_tax_link where delete_type=0 and tax_agent_id=#{taxAgentId}) + WHERE t.delete_type = 0 and t.id in (select sob_id from hrsa_sob_tax_link where delete_type=0 and tax_agent_id=#{taxAgentId}) \ No newline at end of file From e7eb2e3459d25813f2b00be3659988b22c2861ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Sep 2024 15:48:20 +0800 Subject: [PATCH 037/184] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=B7=A8=E6=89=A3?= =?UTF-8?q?=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctRecordServiceImpl.java | 2 +- .../impl/SalaryAcctResultServiceImpl.java | 23 ++++++++-------- .../service/impl/SalaryItemServiceImpl.java | 9 ++++--- .../service/impl/SalarySendServiceImpl.java | 2 +- .../service/impl/SalarySobServiceImpl.java | 3 ++- .../impl/TaxDeclarationServiceImpl.java | 26 ++++++++++--------- 6 files changed, 34 insertions(+), 31 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 08c6cabfa..0c4ce8e4a 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -673,7 +673,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe List needUpdateSalaryAcctRecordIds = selfSalaryAcctRecordPOS.stream().filter(po -> po.getTaxCycle().equals(salaryAcctRecordPO.getTaxCycle())) .map(SalaryAcctRecordPO::getId).collect(Collectors.toList()); if (Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())) { - if (needUpdateSalaryAcctRecordIds != null && needUpdateSalaryAcctRecordIds.size() > 0) { + if (needUpdateSalaryAcctRecordIds.size() > 0) { // 更新薪资核算记录的状态 updateStatusByIds(needUpdateSalaryAcctRecordIds, SalaryAcctRecordStatusEnum.ARCHIVED); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 36f19b6f6..9a38cf9ed 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -28,7 +28,6 @@ import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.po.*; -import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; @@ -1107,17 +1106,17 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe @Override public Boolean checkAuth(Long salaryAcctRecordId) { // 获取该核算记录的个税扣缴义务 - SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); - if (Objects.isNull(recordPO)) { - return false; - } - SalarySobPO salarySobPO = getSalarySobService(user).getById(recordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); - List adminTaxAgentList = getTaxAgentAdminService(user).listByEmployeeId(Long.valueOf(user.getUID())); - Optional canOperate = adminTaxAgentList.stream().filter(po -> NumberUtils.compare(taxAgentId, po.getTaxAgentId()) == 0).findFirst(); - if (!canOperate.isPresent()) { - return false; - } +// SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); +// if (Objects.isNull(recordPO)) { +// return false; +// } +// SalarySobPO salarySobPO = getSalarySobService(user).getById(recordPO.getSalarySobId()); +// Long taxAgentId = salarySobPO.getTaxAgentId(); +// List adminTaxAgentList = getTaxAgentAdminService(user).listByEmployeeId((long) user.getUID()); +// Optional canOperate = adminTaxAgentList.stream().filter(po -> NumberUtils.compare(taxAgentId, po.getTaxAgentId()) == 0).findFirst(); +// if (!canOperate.isPresent()) { +// return false; +// } return true; } diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 2fe2faa6b..3a21abcaa 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; @@ -457,12 +458,12 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService // 查询所有启用的薪资账套 List salarySobItemList = getSalarySobItemService(user).listBySalaryItemIds(Collections.singleton(salaryItemId)); Set salarySobIds = SalaryEntityUtil.properties(salarySobItemList, SalarySobItemPO::getSalarySobId); - List salarySobs = getSalarySobService(user).listByIds(salarySobIds); + List salarySobs = getSalarySobService(user).listByIdsWithTax(salarySobIds); // 获取能够管理的义务人 - Boolean isChief = getTaxAgentService(user).isChief(Long.valueOf(user.getUID())); + Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); if (!isChief) { - Set taxAgentIds = SalaryEntityUtil.properties(getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())), TaxAgentPO::getId); - salarySobs = salarySobs.stream().filter(sob -> taxAgentIds.contains(sob.getTaxAgentId())).collect(Collectors.toList()); + Set taxAgentIds = SalaryEntityUtil.properties(getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()), TaxAgentPO::getId); + salarySobs = salarySobs.stream().filter(sob -> CollectionUtil.intersection(taxAgentIds, sob.getTaxAgentIds()).size() > 0).collect(Collectors.toList()); } return salarySobs.stream().map(m -> { Map map = new HashMap<>(); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index c4df714b2..120cbd78a 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -638,10 +638,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } } - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySendInfo.getTaxAgentId()); DataCollectionEmployee simpleEmployee = getSalaryEmployeeService(user).getEmployeeById(salarySendInfo.getEmployeeId()); SalaryAcctEmployeePO acctEmployeePO = getSalaryAcctEmployeeService(user).getById(salaryAcctResultPOS.get(0).getSalaryAcctEmpId()); SalaryAcctEmployeeBO.copyAcctEmp(simpleEmployee, acctEmployeePO); + TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(acctEmployeePO.getTaxAgentId()); buildEmployeeInfo(employeeInformation, simpleEmployee, taxAgentPO.getName(), SalaryAcctResultBO.buildEmployeeFieldName()); map.put("employeeInformation", employeeInformation); map.put("salaryGroups", itemSetListDTOS); diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 09f3ac3b8..414f5cafd 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -295,7 +295,8 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { build.setName(name); } if (queryParam.getTaxAgentId() != null) { - build.setTaxAgentId(queryParam.getTaxAgentId()); + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(queryParam.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } List list = salarySobMapper.listSome(build); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 3327328ec..2a064fea4 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -282,8 +282,8 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration @Override public void delete(SalaryAcctRecordPO salaryAcctRecordPO) { - SalarySobPO sobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - if (sobPO == null || sobPO.getTaxAgentId() == null) { + SalarySobPO sobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + if (sobPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "账套信息异常")); } @@ -292,18 +292,20 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration if (Objects.isNull(taxCycleDateRange)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误")); } - List taxDeclarationPOS = listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()), Collections.singleton(sobPO.getTaxAgentId())); + sobPO.getTaxAgentIds().forEach(taxAgentId -> { + List taxDeclarationPOS = listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getTaxCycle()), Collections.singleton(taxAgentId)); - Set taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId); - if (CollectionUtils.isNotEmpty(taxDeclarationIds)) { - // 删除个税申报表 - getTaxDeclarationMapper().deleteByIds(taxDeclarationIds); - // 删除个税申报表详情 - getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds); - } + Set taxDeclarationIds = SalaryEntityUtil.properties(taxDeclarationPOS, TaxDeclarationPO::getId); + if (CollectionUtils.isNotEmpty(taxDeclarationIds)) { + // 删除个税申报表 + getTaxDeclarationMapper().deleteByIds(taxDeclarationIds); + // 删除个税申报表详情 + getTaxDeclarationDetailService(user).deleteByTaxDeclarationIds(taxDeclarationIds); + } - // 删除往期累计情况 - getAddUpSituationService(user).deleteAddUpSituationList(salaryAcctRecordPO.getTaxCycle(), sobPO.getTaxAgentId()); + // 删除往期累计情况 + getAddUpSituationService(user).deleteAddUpSituationList(salaryAcctRecordPO.getTaxCycle(), taxAgentId); + }); } From 5ccee9742998024c9ecae13d973f944b438fcc27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Sep 2024 13:59:00 +0800 Subject: [PATCH 038/184] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E6=90=BA=E5=B8=A6=E5=90=84=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 20 +- .../entity/salarysob/bo/SalarySobBO.java | 2 +- .../param/SalarySobBasicSaveParam.java | 3 - .../param/SalarySobDuplicateParam.java | 8 +- .../entity/salarysob/po/SobTaxLinkPO.java | 2 + .../taxdeclaration/po/TaxDeclarationPO.java | 3 + .../salary/enums/auth/AuthCheckTypeEnum.java | 2 +- .../salary/enums/auth/AuthFilterTypeEnum.java | 6 +- .../engine/salary/mapper/auth/AuthMapper.java | 5 +- .../engine/salary/mapper/auth/AuthMapper.xml | 42 ++-- .../mapper/salarysob/SalarySobMapper.java | 2 + .../mapper/salarysob/SalarySobMapper.xml | 16 +- .../mapper/salarysob/SobTaxLinkMapper.xml | 6 + .../salary/service/SalarySobService.java | 9 - .../service/TaxAgentManageRangeService.java | 2 + .../service/auth/AuthMemberServiceImpl.java | 9 - .../service/auth/AuthRoleServiceImpl.java | 2 +- .../salary/service/auth/AuthServiceImpl.java | 151 +++++++------ .../service/impl/SalarySobServiceImpl.java | 203 +++++------------- .../impl/TaxAgentManageRangeServiceImpl.java | 3 +- .../impl/TaxDeclarationServiceImpl.java | 27 +-- 21 files changed, 222 insertions(+), 301 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index b95292d49..42853e06c 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -1,19 +1,6 @@ - - - - - - - - - - - - - @@ -33,6 +20,13 @@ + + + + + + + diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java index f235e4a25..7c9f29966 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java @@ -53,7 +53,7 @@ public class SalarySobBO { .updateTime(now) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .taxAgentId(saveParam.getTaxAgentId()) + .taxAgentId(saveParam.getTaxAgentIds().get(0)) .build(); } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java index 8742eaa24..f8fcfd5fe 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobBasicSaveParam.java @@ -38,9 +38,6 @@ public class SalarySobBasicSaveParam { /** * 个税扣缴义务人的主键id */ - @DataCheck(require = true, message = "个税扣缴义务人的主键id不允许为空") - private Long taxAgentId; - private List taxAgentIds; /** diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java index 19e213fdc..3e5cb8da9 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobDuplicateParam.java @@ -3,6 +3,8 @@ package com.engine.salary.entity.salarysob.param; import com.engine.salary.util.valid.DataCheck; import lombok.Data; +import java.util.List; + /** * 薪资账套复制参数 *

Copyright: Copyright (c) 2022

@@ -27,9 +29,5 @@ public class SalarySobDuplicateParam { @DataCheck(require = true, max = 40, message = "名称不允许为空且名称不能超过40个字符长度") private String name; - /** - * 个税扣缴义务人id - */ - @DataCheck(require = true, message = "个税扣缴义务人不允许为空") - private Long taxAgentId; + private List taxAgentIds; } diff --git a/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java index 31ead3a94..de4a47135 100644 --- a/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SobTaxLinkPO.java @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 数据 @@ -68,5 +69,6 @@ public class SobTaxLinkPO { //主键id集合 private Collection ids; + private List taxAgentIds; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java index 8319f9e4d..447dff3d1 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.taxdeclaration.po; +import com.engine.salary.annotation.Auth; import com.engine.salary.common.LocalDateRange; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -23,6 +25,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor //hrsa_tax_declaration +@Auth(page = "taxDeclaration",checkType = AuthCheckTypeEnum.TAX) public class TaxDeclarationPO { /** diff --git a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java index 5a648465a..97538076c 100644 --- a/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java +++ b/src/com/engine/salary/enums/auth/AuthCheckTypeEnum.java @@ -19,7 +19,7 @@ public enum AuthCheckTypeEnum implements BaseEnum { TAX_EMP("TAX_EMP", "扣缴义务人和人员混合验证", 87627), EMP("EMP", "人员验证", 87626), TAX("TAX", "扣缴义务人验证", 87626), - SOB("SOB", "扣缴义务人验证", 87626); + SOB("SOB", "账套验证", 87626); private String value; diff --git a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java index d52e2d0e8..752a8944c 100644 --- a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java +++ b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java @@ -15,10 +15,10 @@ import java.util.Objects; **/ public enum AuthFilterTypeEnum implements BaseEnum { + DATA_OPT("DATA_OPT", "数据&功能权限", 87626), + ONLY_DATA("ONLY_DATA", "仅数据权限", 87627); +// ONLY_OPT("ONLY_OPT", "仅功能权限", 87626) ; - ONLY_DATA("ONLY_DATA", "仅数据权限", 87627), -// ONLY_OPT("ONLY_OPT", "仅功能权限", 87626), - DATA_OPT("DATA_OPT", "数据&功能权限", 87626); private String value; diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index 67bdede16..1e3d64acc 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,7 +1,6 @@ package com.engine.salary.mapper.auth; import com.engine.salary.entity.auth.dto.AuthDTO; -import com.engine.salary.entity.auth.dto.AuthLimitDTO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,7 +9,9 @@ public interface AuthMapper { List getAuth(@Param("uid") Long uid, @Param("page") String page); - List getLimitSobs(@Param("uid") Long uid); + List getLimitSobs(@Param("uid") Long uid); + + List getLimitTaxAgents(@Param("uid") Long uid); List getOptsByPage(@Param("uid") Long uid, @Param("page") String page); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index 74e54ab2d..1ed2dcb4a 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -14,34 +14,30 @@ - - - - - - - - - - - + - + select resource.target + from hrsa_auth_role_emp emp + left join hrsa_auth_role role on emp.role_id = role.id and emp.delete_type = 0 and role.delete_type = 0 + left join hrsa_auth_resource resource on resource.role_id = role.id and resource.target_type=1 and resource.delete_type = 0 + where emp.employee_id = #{uid} diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java index 71ee8abe5..8ed87d861 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.java @@ -56,4 +56,6 @@ public interface SalarySobMapper { List listByTaxAgentId(Long taxAgentId); + + List listByTaxAgentIds(@Param("taxAgentIds") List taxAgentIds); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml index 0cc924b01..674402d4f 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml @@ -512,7 +512,21 @@ SELECT FROM hrsa_salary_sob t - WHERE t.delete_type = 0 and t.id in (select sob_id from hrsa_sob_tax_link where delete_type=0 and tax_agent_id=#{taxAgentId}) + WHERE t.delete_type = 0 and t.id in (select sob_id from hrsa_sob_tax_link where delete_type=0 and + tax_agent_id=#{taxAgentId}) + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml index ef377aa5f..b447e511f 100644 --- a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml @@ -78,6 +78,12 @@ #{id} + + AND tax_agent_id IN + + #{taxAgentId} + + ORDER BY id DESC diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 21f660f49..6d026cdac 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -143,15 +143,6 @@ public interface SalarySobService { */ SalarySobCycleDTO getSalarySobCycle(Long id, YearMonth salaryMonth); - /** - * 按权限过滤掉无权限的薪资账套 - * - * 总管理员拥有权限 - * @param salarySobPOS - * @return - */ - List filterByAuthority(List salarySobPOS); - /** * 根据扣缴义务人查询 * @param taxAgentIds diff --git a/src/com/engine/salary/service/TaxAgentManageRangeService.java b/src/com/engine/salary/service/TaxAgentManageRangeService.java index 00cc7eb76..bfc5ce4f2 100644 --- a/src/com/engine/salary/service/TaxAgentManageRangeService.java +++ b/src/com/engine/salary/service/TaxAgentManageRangeService.java @@ -38,6 +38,8 @@ public interface TaxAgentManageRangeService { */ PageInfo listPageByParamAndIncludeType(TaxAgentRangeQueryParam queryParam, Integer includeType); + List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType); + /** * 根据分管理员id集合查询范围列表 * diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index c93ccbe0f..61abe4825 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollUtil; -import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; @@ -15,13 +14,10 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; import com.engine.salary.mapper.auth.AuthRoleEmpMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; -import com.engine.salary.service.TaxAgentService; -import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; -import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; @@ -42,11 +38,6 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } - private TaxAgentService getTaxAgentService(User user) { - return ServiceUtil.getService(TaxAgentServiceImpl.class, user); - } - - @Override public List list(Long roleId) { return getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build()); diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index ebe6bf81f..a65125557 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -79,7 +79,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { } @Override - public Long saveRole(AuthRoleSaveParam param) { + public Long saveRole(AuthRoleSaveParam param) { Date now = new Date(); Long id = param.getId(); String name = param.getName(); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 701a92a5a..cb6638e62 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -5,15 +5,16 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.annotation.Auth; import com.engine.salary.entity.auth.dto.AuthDTO; -import com.engine.salary.entity.auth.dto.AuthLimitDTO; import com.engine.salary.entity.auth.dto.EmpOpt; -import com.engine.salary.entity.auth.dto.RoleLimit; import com.engine.salary.entity.auth.vo.Permission; +import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMapper; +import com.engine.salary.service.SalarySobService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.SalarySobServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -29,6 +30,10 @@ public class AuthServiceImpl extends Service implements AuthService { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + private AuthRoleService getAuthRoleService(User user) { return ServiceUtil.getService(AuthRoleServiceImpl.class, user); } @@ -61,9 +66,9 @@ public class AuthServiceImpl extends Service implements AuthService { //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); if (isChief) { - list.forEach(t -> { - try { - if (filterType == AuthFilterTypeEnum.DATA_OPT) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + list.forEach(t -> { + try { Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); Set opts = (Set) optsFieldGetterMethod.invoke(t); if (opts == null) { @@ -74,51 +79,82 @@ public class AuthServiceImpl extends Service implements AuthService { Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); optsFieldSetterMethod.invoke(t, opts); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); } - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - throw new SalaryRunTimeException(e); - } - }); - + }); + } return list; } + List resultList = new ArrayList<>(); + + String page = auth.page(); + AuthCheckTypeEnum checkType = auth.checkType(); + //给各管理员赋值对应的扣缴义务人权限 List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - try { - T t = iterator.next(); - Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); - Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); + if (checkType == AuthCheckTypeEnum.TAX || checkType == AuthCheckTypeEnum.TAX_EMP) { + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); + Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); - if (adminTaxAgentIds.contains(taxAgentId)) { - if (filterType == AuthFilterTypeEnum.DATA_OPT) { - Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); - Set opts = (Set) optsFieldGetterMethod.invoke(t); - if (opts == null) { - opts = new HashSet<>(); + if (adminTaxAgentIds.contains(taxAgentId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); } - opts.add("query"); - opts.add("admin"); - - Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); - optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); } - } else { - iterator.remove(); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); + } + } + } else if (checkType == AuthCheckTypeEnum.SOB) { + List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(adminTaxAgentIds); + Set adminSobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); + while (iterator.hasNext()) { + try { + T t = iterator.next(); + Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); + Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); + if (adminSobIds.contains(sobId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.add("query"); + opts.add("admin"); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); + } + resultList.add(t); + } + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + throw new SalaryRunTimeException(e); } - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - throw new SalaryRunTimeException(e); } } - return list; } + list.removeAll(resultList); + //给各角色赋权 - String page = auth.page(); - AuthCheckTypeEnum checkType = auth.checkType(); List authDTOS = getAuthMapper().getAuth((long) user.getUID(), page); Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, AuthDTO::getTaxAgentId, AuthDTO::getEmps); @@ -150,50 +186,45 @@ public class AuthServiceImpl extends Service implements AuthService { Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); optsFieldSetterMethod.invoke(t, opts); } - } else { - iterator.remove(); + resultList.add(t); } - } else { - iterator.remove(); } } } else if (checkType == AuthCheckTypeEnum.SOB) { - List limitSobs = getAuthMapper().getLimitSobs((long) user.getUID()); - Map> taxLimitSobs = SalaryEntityUtil.convert2Map(limitSobs, AuthLimitDTO::getTaxAgentId, AuthLimitDTO::getRoleLimits); + List limits = getAuthMapper().getLimitSobs((long) user.getUID()); + + while (iterator.hasNext()) { + T t = iterator.next(); + Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); + Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); + + if (limits.contains(sobId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + + } + resultList.add(t); + } + } + } else if (checkType == AuthCheckTypeEnum.TAX) { + List limits = getAuthMapper().getLimitTaxAgents((long) user.getUID()); while (iterator.hasNext()) { T t = iterator.next(); Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); - Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); - Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); - if (taxLimitSobs.containsKey(taxAgentId)) { - boolean hasAuth = false; - List roleLimits = taxLimitSobs.get(taxAgentId); - for (RoleLimit roleLimit : roleLimits) { - List sobIds = roleLimit.getSobIds(); - if (CollectionUtil.isEmpty(sobIds)) { - hasAuth = true; - } else { - hasAuth = sobIds.contains(sobId); - } - if (hasAuth) { - break; - } + if (limits.contains(taxAgentId)) { + if (filterType == AuthFilterTypeEnum.DATA_OPT) { + } - if (!hasAuth) { - iterator.remove(); - } - } else { - iterator.remove(); + resultList.add(t); } } } } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { throw new SalaryRunTimeException(e); } - return list; + return resultList; } @Override diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 414f5cafd..079dfdea3 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -18,10 +18,8 @@ import com.engine.salary.entity.salarysob.config.SalarySobConfig; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.*; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; -import com.engine.salary.entity.taxagent.param.TaxAgentRangeQueryParam; -import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO; import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO; +import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; @@ -50,7 +48,6 @@ import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; @@ -233,13 +230,13 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return Collections.emptyList(); } List salarySobPOS = salarySobMapper.listByParam(SalarySobPO.builder().name(nameLike).build()); - return filterByAuthority(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override public List listByDisable(Integer disable) { List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().disable(disable).build()); - return filterByAuthority(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override @@ -264,7 +261,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public List listByAdmin() { List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().build()); - return filterByAdmin(salarySobPOS); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.ONLY_DATA, SalarySobPO.class); } @Override @@ -279,14 +276,6 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public PageInfo listPageByParam(SalarySobListQueryParam queryParam) { - long employeeId = user.getUID(); - // 分页参数 - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); - // 判断是否是“总管理员” - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 总管理员拥有全部权限 // 开启分权后需要过滤薪资账套 String name = queryParam.getName(); // 查询所有的薪资账套 @@ -303,59 +292,25 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySobPO.class); - -// if (BooleanUtils.isTrue(openDevolution) && !isChief) { -// List salarySobPOS = salarySobMapper.listSome(build); -// // 根据权限过滤 -// List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); -// if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { -// return page; -// } -// List subSalarySobs = SalaryPageUtil.subList((int) page.getPageNum(), (int) page.getPageSize(), salarySobsFilterByAuthority); -// page.setTotal(salarySobsFilterByAuthority.size()); -// page.setList(subSalarySobs); -// return page; -// } else { -// List salarySobPOS = salarySobMapper.listSome(build); -// return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salarySobPOS, SalarySobPO.class); -// } } @Override public List listByParam(SalarySobListQueryParam queryParam) { - long employeeId = user.getUID(); - // 判断是否是“总管理员” - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 总管理员拥有全部权限 - // 开启分权后需要过滤薪资账套 + String name = queryParam.getName(); // 查询所有的薪资账套 SalarySobPO build = SalarySobPO.builder().build(); if (StringUtils.isNotBlank(name)) { build.setName(name); } - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(employeeId); - //非管理员 - if (!adminEnable) { - return new ArrayList<>(); - } - - List salarySobPOS = salarySobMapper.listSome(build); - - // 根据权限过滤 - List salarySobsFilterByAuthority = filterByAuthority(salarySobPOS); - if (CollectionUtils.isEmpty(salarySobsFilterByAuthority)) { - return new ArrayList<>(); - } - return salarySobsFilterByAuthority; - - } else { - return salarySobMapper.listSome(build); + if (queryParam.getTaxAgentId() != null) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(queryParam.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } + + List list = salarySobMapper.listSome(build); + + return getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); } @Override @@ -385,7 +340,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext); //保存个税扣缴义务人联系 - saveSobTaxLink(saveParam, salarySobPO); + saveSobTaxLink(saveParam.getTaxAgentIds(), salarySobPO); // 新建薪资账套时,保存默认的员工信息字段 saveDefaultEmpField(salarySobPO); // 新建薪资账套时,保存默认的薪资项目 @@ -396,9 +351,8 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return salarySobPO.getId(); } - private void saveSobTaxLink(SalarySobBasicSaveParam saveParam, SalarySobPO salarySobPO) { + private void saveSobTaxLink(List taxAgentIds, SalarySobPO salarySobPO) { getSobTaxLinkMapper().deleteBySobId(salarySobPO.getId()); - List taxAgentIds = saveParam.getTaxAgentIds(); for (Long taxAgentId : taxAgentIds) { SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() .id(IdGenerator.generate()) @@ -504,31 +458,33 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @date 2022/10/9 15:30 */ public void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { - // 获取人员范围列表 - TaxAgentRangeQueryParam queryParam = TaxAgentRangeQueryParam.builder().taxAgentId(salarySobPO.getTaxAgentId()).build(); - queryParam.setCurrent(1); - queryParam.setPageSize(100000); - List includeList = (List) getTaxAgentManageRangeService(user).listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ONE).getList(); - includeList.stream().forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); - }); - // 获取从范围中排除 - List excludeList = (List) getTaxAgentManageRangeService(user).listPageByParamAndIncludeType(queryParam, NumberUtils.INTEGER_ZERO).getList(); - excludeList.stream().forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); - }); - // 将TaxAgentManageRangeListDTO转换为SalarySobRangePO - List rangeList = convert2SalarySobRangePO(salarySobPO.getId(), includeList, excludeList); - // 保存SalarySobRangePO - if (CollectionUtils.isNotEmpty(rangeList)) { - salarySobRangeBiz.batchInsert(rangeList); - } + Long sobId = salarySobPO.getId(); + salarySobPO = getByIdWithTax(sobId); - //非系统人员 - List taxAgentExtRangePOS = getTaxAgentExtRangeMapper().listSome(TaxAgentExtRangePO.builder().taxAgentId(salarySobPO.getTaxAgentId()).build()); - taxAgentExtRangePOS.forEach(po -> { - SalarySobRangeExtSaveParam build = SalarySobRangeExtSaveParam.builder().salarySobId(salarySobPO.getId()).targetIds(Collections.singletonList(po.getTargetId())).targetType(1L).build(); - getSalarySobExtRangeService(user).saveExtRange(build); + salarySobPO.getTaxAgentIds().forEach(taxAgentId -> { + // 获取人员范围列表 + List includeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ONE); + includeList.forEach(item -> { + item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); + }); + // 获取从范围中排除 + List excludeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ZERO); + excludeList.forEach(item -> { + item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); + }); + // 将TaxAgentManageRangeListDTO转换为SalarySobRangePO + List rangeList = convert2SalarySobRangePO(sobId, includeList, excludeList); + // 保存SalarySobRangePO + if (CollectionUtils.isNotEmpty(rangeList)) { + salarySobRangeBiz.batchInsert(rangeList); + } + + //非系统人员 + List taxAgentExtRangePOS = getTaxAgentExtRangeMapper().listSome(TaxAgentExtRangePO.builder().taxAgentId(taxAgentId).build()); + taxAgentExtRangePOS.forEach(po -> { + SalarySobRangeExtSaveParam build = SalarySobRangeExtSaveParam.builder().salarySobId(sobId).targetIds(Collections.singletonList(po.getTargetId())).targetType(1L).build(); + getSalarySobExtRangeService(user).saveExtRange(build); + }); }); @@ -541,14 +497,14 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @author Harryxzy * @date 2022/10/9 16:06 */ - private List convert2SalarySobRangePO(Long salarySobID, List includeList, List excludeList) { + private List convert2SalarySobRangePO(Long salarySobID, List includeList, List excludeList) { Date now = new Date(); ArrayList result = new ArrayList(); // 关联人员范围 includeList.stream().forEach(item -> { SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder() .salarySobId(salarySobID) - .targetType(item.getTargetType().getValue()) + .targetType(item.getTargetType()) .targetId(item.getTargetId()) .target(item.getTarget()) .employeeStatuses(item.getEmployeeStatus()) @@ -565,7 +521,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { excludeList.stream().forEach(item -> { SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder() .salarySobId(salarySobID) - .targetType(item.getTargetType().getValue()) + .targetType(item.getTargetType()) .targetId(item.getTargetId()) .target(item.getTarget()) .employeeStatuses(item.getEmployeeStatus()) @@ -626,7 +582,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { BeanUtils.copyProperties(salarySobPO, newSalarySobPO); newSalarySobPO.setId(saveParam.getId()) .setName(saveParam.getName()) - .setTaxAgentId(saveParam.getTaxAgentId()) + .setTaxAgentId(saveParam.getTaxAgentIds().get(0)) .setIncomeCategory(saveParam.getTaxableItems()) .setSalaryCycleType(saveParam.getSalaryCycleType()) .setSalaryCycleFromDay(saveParam.getSalaryCycleFromDay()) @@ -639,7 +595,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { salarySobMapper.updateById(newSalarySobPO); //保存个税扣缴义务人联系 - saveSobTaxLink(saveParam, salarySobPO); + saveSobTaxLink(saveParam.getTaxAgentIds(), salarySobPO); // 记录日志 SalarySobPO salarySobPO4log = getSalarySobMapper().getById(newSalarySobPO.getId()); @@ -766,15 +722,6 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "薪资账套名称已存在")); } - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (openDevolution) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - if (!taxAgentIds.contains(duplicateParam.getTaxAgentId())) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98403, "该扣缴义务人不在权限范围内!")); - } - } - // 查询薪资账套的员工信息字段 List salarySobEmpFieldPOS = salarySobEmpFieldService.listSome(SalarySobEmpFieldPO.builder().salarySobId(duplicateParam.getId()).build()); // 查询薪资账套的薪资项目副本 @@ -794,7 +741,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { // 复制薪资账套的基础设置 SalarySobPO newSalarySob = SalarySobPO.builder() .name(duplicateParam.getName()) - .taxAgentId(duplicateParam.getTaxAgentId()) + .taxAgentId(duplicateParam.getTaxAgentIds().get(0)) .incomeCategory(salarySobPO.getIncomeCategory()) .salaryCycleType(salarySobPO.getSalaryCycleType()) .salaryCycleFromDay(salarySobPO.getSalaryCycleFromDay()) @@ -810,6 +757,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { .deleteType(NumberUtils.INTEGER_ZERO) .build(); salarySobMapper.insert(newSalarySob); + + + saveSobTaxLink(duplicateParam.getTaxAgentIds(), salarySobPO); // 复制 SalarySobDuplicateBO salarySobDuplicateBO = new SalarySobDuplicateBO(newSalarySob, salarySobEmpFieldPOS, salarySobItemPOS, salarySobItemGroupPOS, salarySobAdjustRulePOS, salarySobCheckRulePOS, salarySobBackItemPOS); @@ -864,40 +814,12 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return SalarySobCycleBO.buildSalarySobCycle(salarySobPO, salaryMonth); } - @Override - public List filterByAuthority(List salarySobPOS) { - long employeeId = user.getUID(); - // 判断是否是“总管理员” - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 开启分权后 - // 总管理员都能看见 - // 管理员自己管理的个税下的 - if (!openDevolution || isChief) { - return salarySobPOS; - } - // 查询所有的个税扣缴义务人 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 查询个税扣缴义务人的管理员 - List taxAgentAdminPOS = getTaxAgentAdminService(user).listByTaxAgentIds(allTaxAgentIds); - Map> adminMap = SalaryEntityUtil.group2Map(taxAgentAdminPOS, TaxAgentAdminPO::getEmployeeId, TaxAgentAdminPO::getTaxAgentId); - return salarySobPOS.stream().filter(salarySobPO -> { - Set taxAgentIds = adminMap.get(employeeId); - if (CollectionUtils.isEmpty(taxAgentIds)) { - return false; - } - return taxAgentIds.contains(salarySobPO.getTaxAgentId()); - }).collect(Collectors.toList()); - } - @Override public List listByTaxAgentIds(List taxAgentIds) { if (CollectionUtils.isEmpty(taxAgentIds)) { return new ArrayList<>(); } - return getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentIds(taxAgentIds).build()); + return getSalarySobMapper().listByTaxAgentIds(taxAgentIds); } @Override @@ -1096,29 +1018,4 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return getSalarySobMapper().listSome(sobPO); } - - public List filterByAdmin(List salarySobPOS) { - long employeeId = user.getUID(); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - // 开启分权后 - // 管理员自己管理的个税下的 - if (!openDevolution) { - return salarySobPOS; - } - // 查询所有的个税扣缴义务人 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 查询个税扣缴义务人的管理员 - List taxAgentAdminPOS = getTaxAgentAdminService(user).listByTaxAgentIds(allTaxAgentIds); - Map> adminMap = SalaryEntityUtil.group2Map(taxAgentAdminPOS, TaxAgentAdminPO::getEmployeeId, TaxAgentAdminPO::getTaxAgentId); - return salarySobPOS.stream().filter(salarySobPO -> { - Set taxAgentIds = adminMap.get(employeeId); - if (CollectionUtils.isEmpty(taxAgentIds)) { - return false; - } - return taxAgentIds.contains(salarySobPO.getTaxAgentId()); - }).collect(Collectors.toList()); - } - } diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index b21ece557..2fdbe45c7 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -272,7 +272,8 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @param includeType * @return */ - private List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType) { + @Override + public List listByTaxAgentIdAndIncludeType(Long taxAgentId, Integer includeType) { return getTaxAgentManageRangeMapper().listSome(TaxAgentManageRangePO.builder().taxAgentId(taxAgentId).rangeType(TaxAgentRangeTypeEnum.TAXAGENT.getValue()).includeType(includeType).build()); } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 2a064fea4..066b24e24 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -2,9 +2,9 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; @@ -15,6 +15,7 @@ import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryPara import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -22,6 +23,8 @@ import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -87,6 +90,10 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public List listByTaxCycleAndTaxAgentIds(YearMonth taxCycle, Collection taxAgentIds) { if (Objects.isNull(taxCycle) || CollectionUtils.isEmpty(taxAgentIds)) { @@ -99,8 +106,6 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration @Override public PageInfo listPageByParam(TaxDeclarationListQueryParam queryParam) { - long currentEmployeeId = user.getUID(); - // 分页参数 TaxDeclarationPO po = TaxDeclarationPO.builder().build(); LocalDateRange localDateRange = new LocalDateRange(); @@ -112,21 +117,11 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration } po.setSalaryMonths(localDateRange); - - // 分权 - Boolean openDevolution = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (openDevolution) { - // 查询负责管理的个税扣缴义务人 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - if (CollectionUtils.isEmpty(taxAgentPOS)) { - return new PageInfo<>(new ArrayList<>()); - } - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - po.setTaxAgentIds(taxAgentIds); - } - // 查询个税申报表 List taxDeclarationPOS = getTaxDeclarationMapper().listSome(po); + + taxDeclarationPOS = getAuthService(user).auth(taxDeclarationPOS, AuthFilterTypeEnum.ONLY_DATA, TaxDeclarationPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxDeclarationPOS, TaxDeclarationPO.class); From 4b0eee479879f398ad52c2d04b048e47d079c5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Sep 2024 15:39:54 +0800 Subject: [PATCH 039/184] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E8=B7=A8?= =?UTF-8?q?=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA=E5=8F=91=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryBill/bo/SalaryBillBO.java | 53 +++++---------- .../salaryBill/dto/SalaryBillSendDTO.java | 2 +- .../salary/service/SalaryBillService.java | 3 +- .../service/impl/SalaryBillServiceImpl.java | 43 ++----------- .../service/impl/SalarySendServiceImpl.java | 64 +++++++++---------- 5 files changed, 58 insertions(+), 107 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 1bdae5dda..f71994e72 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -119,53 +119,34 @@ public class SalaryBillBO { /** * 构建工资单中的人员信息 * - * @param simpleEmployee */ - public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, DataCollectionEmployee simpleEmployee) { + public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, Map empInfo) { SalaryTemplateSalaryItemSetListDTO employeeInformation = salaryBillSendParam.getEmployeeInformation(); Map employeeField = salaryBillSendParam.getEmployeeField(); - if (employeeInformation == null || simpleEmployee == null) { + if (employeeInformation == null || empInfo == null) { return; } if (CollectionUtils.isNotEmpty(employeeInformation.getItems())) { //获取员工信息的字段名和中文描述的map关系 SalaryFormulaEmployeeDTO salaryFormulaEmployeeDTO = SalaryFormulaEmployeeDTO.builder() - .employeeId(simpleEmployee.getEmployeeId()) - .taxAgentName(salaryBillSendParam.getTaxAgentName()) - .departmentName(simpleEmployee.getDepartmentName()) - .companystartdate(simpleEmployee.getCompanystartdate()) - .email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail()) - .sex(simpleEmployee.getSex() == null ? "" : simpleEmployee.getSex()) - .mobile(StringUtils.isEmpty(simpleEmployee.getMobile()) ? "" : simpleEmployee.getMobile()).jobtitleName(simpleEmployee.getJobtitleName()) - .status(StringUtils.isEmpty(simpleEmployee.getStatus()) ? "" : simpleEmployee.getStatus()) - .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) - .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) - .workcode(simpleEmployee.getWorkcode()) - .idNo(simpleEmployee.getIdNo()) - .statusName(simpleEmployee.getStatusName()) + .employeeId((long) empInfo.getOrDefault("employeeId", 0L)) + .taxAgentName(Util.null2String(empInfo.get("taxAgentName"))) + .departmentName(Util.null2String(empInfo.get("departmentName"))) + .companystartdate(Util.null2String(empInfo.get("companystartdate"))) + .email(Util.null2String(empInfo.get("email"))) + .sex(Util.null2String(empInfo.get("sex"))) + .mobile(Util.null2String(empInfo.get("mobile"))) + .jobtitleName(Util.null2String(empInfo.get("jobtitleName"))) + .status(Util.null2String(empInfo.get("status"))) + .telephone(Util.null2String(empInfo.get("telephone"))) + .username(Util.null2String(empInfo.get("username"))) + .workcode(Util.null2String(empInfo.get("workcode"))) + .idNo(Util.null2String(empInfo.get("idNo"))) + .statusName(Util.null2String(empInfo.get("statusName"))) .build(); List items = employeeInformation.getItems(); - // 1.SalaryAcctResultBO.buildEmployeeFieldName()的取法 -// Set> entries = employeeField.entrySet(); -// for (SalaryTemplateSalaryItemListDTO e : items) { -// Optional> entry = entries.stream().filter(f -> Objects.equals(e.getName(), f.getValue())).findFirst(); -// if (entry.isPresent()) { -// String key = entry.get().getKey(); -// if (StringUtils.isNotBlank(key)) { -// String getter = "get" + key.substring(0, 1).toUpperCase() + key.substring(1); -// try { -// Method method = salaryFormulaEmployeeDTO.getClass().getMethod(getter); -// Object invoke = method.invoke(salaryFormulaEmployeeDTO); -// e.setSalaryItemValue((String) invoke); -// } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { -// log.error("no such method", e); -// } -// } -// } -// } - // 2.SalaryBillBO.buildEmployeeFieldName() for (SalaryTemplateSalaryItemListDTO e : items) { String employeeFieldName = employeeField.get(e.getName()); if (!StringUtils.isEmpty(employeeFieldName)) { @@ -262,7 +243,7 @@ public class SalaryBillBO { } Util_Message.store(messageBean); } catch (IOException e) { - log.error("消息发送失败",e); + log.error("消息发送失败", e); } } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java index c77c0bd7a..dc9d31b73 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillSendDTO.java @@ -59,7 +59,7 @@ public class SalaryBillSendDTO { private String picUrl; //扣缴义务人名称 - private String taxAgentName; +// private String taxAgentName; //工资单模板-薪资项目设置 private List salaryItemSetList; diff --git a/src/com/engine/salary/service/SalaryBillService.java b/src/com/engine/salary/service/SalaryBillService.java index 4878df87b..755d98542 100644 --- a/src/com/engine/salary/service/SalaryBillService.java +++ b/src/com/engine/salary/service/SalaryBillService.java @@ -58,11 +58,10 @@ public interface SalaryBillService { /** * 构建发放参数 * @param salarySend - * @param taxAgentName * @param salaryTemplate * @return */ - SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate); + SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, SalaryTemplatePO salaryTemplate); /** * 工资单撤回 diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 060f15cb2..322581129 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -6,13 +6,12 @@ import com.alibaba.fastjson.JSONArray; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.biz.SalarySendBiz; import com.engine.salary.biz.SalarySendInfoBiz; import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.HrmSalaryPayrollConf; -import com.engine.hrmelog.entity.dto.LoggerContext; -import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.progress.ProgressDTO; import com.engine.salary.entity.salaryBill.bo.SalaryBillBO; import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO; @@ -26,7 +25,6 @@ import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.salarybill.*; import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; @@ -46,7 +44,6 @@ import com.weaver.util.threadPool.entity.LocalRunnable; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; @@ -225,9 +222,8 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } } try { - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySob.getTaxAgentId()); // 1.构建发送参数 - SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, taxAgentPO.getName(), salaryTemplate); + SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, salaryTemplate); // 2.获取可发送的列表,此步最耗时,需要解密核算数据 List sendStatusList = Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue(), SalarySendStatusEnum.ALREADYSEND.getValue()); List> enableSendList = getEnableSendList(salarySend, ids, salaryBillSendParam, sendStatusList); @@ -255,10 +251,8 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService private void handleGrant(SalarySendPO salarySend, List ids, SalarySobPO salarySob, SalaryTemplatePO salaryTemplate) { try { - TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(salarySob.getTaxAgentId()); - // 1.构建发送参数 - SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, taxAgentPO.getName(), salaryTemplate); + SalaryBillSendDTO salaryBillSendParam = buildSendParams(salarySend, salaryTemplate); // 2.获取可发送的列表,此步最耗时,需要解密核算数据 List sendStatusList = Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()); @@ -309,12 +303,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } private void genPdf(SalaryBillSendDTO salaryBillSendParam, List> enableSendList) { - // 获取人员完整信息 - Map allEmployeeMap = getEmployeeWholeInfo(enableSendList); //生成工资单pdf enableSendList.forEach(e -> { // 构建人员信息 - SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); + SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, e); SalaryBillBO.genPdf(e, salaryBillSendParam); }); @@ -333,11 +325,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService * 构建发送参数 * * @param salarySend - * @param taxAgentName * @param salaryTemplate * @return */ - public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, String taxAgentName, SalaryTemplatePO salaryTemplate) { + public SalaryBillSendDTO buildSendParams(SalarySendPO salarySend, SalaryTemplatePO salaryTemplate) { // 发送通道 Set sendChannels = SalaryBillBO.buildSendChannels(salaryTemplate); if (CollectionUtils.isEmpty(sendChannels)) { @@ -408,8 +399,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService .backgroundBase64(backgroundBase64) // 云桥工资单消息图 .picUrl(picUrl) - // 扣缴义务人名称 - .taxAgentName(taxAgentName) // 工资单模板-薪资项目设置 .salaryItemSetList(salaryItemSetList) // 工资单模板-员工基本信息 @@ -462,11 +451,10 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService } } -// // 是否是合并计税 -// boolean isMerge = this.getSalarySendService(user).isMergeBySalarySend(salarySend); List salaryAcctEmployeeList = this.getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salarySend.getSalaryAccountingId()); List acctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()); list = list.stream().filter(f -> acctEmployeeIds.contains(f.getEmployeeId())).collect(Collectors.toList()); + SalaryI18nUtil.i18nList(list); List employeeIds = list.stream().map(SalarySendInfoListDTO::getEmployeeId).collect(Collectors.toList()); @@ -666,9 +654,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService Set sendChannels = salaryBillSendParam.getSendChannels(); - // 获取人员完整信息 - Map allEmployeeMap = this.getEmployeeWholeInfo(enableSendList); - List sendInfoUpdateList = Lists.newArrayList(); AtomicInteger index = new AtomicInteger(0); AtomicInteger part = new AtomicInteger(0); @@ -681,7 +666,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService if (sendChannels.contains(MessageChannelEnum.EMAIL) || sendChannels.contains(MessageChannelEnum.SMS)) { // 构建人员信息 - SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, allEmployeeMap.get(e.get("employeeId").toString())); + SalaryBillBO.buildEmployeeInfo(salaryBillSendParam, e); //发送邮件 if (sendChannels.contains(MessageChannelEnum.EMAIL)) { @@ -715,20 +700,6 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService return sendInfoUpdateList.stream().map(SalarySendInfoPO::getId).collect(Collectors.toList()); } - /** - * 获取人员完整信息 - * - * @param enableSendList - * @return - */ - private Map getEmployeeWholeInfo(List> enableSendList) { - - List ids = enableSendList.stream().map(e -> Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList()); - - // 获取所有人员信息 - List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(ids); - return SalaryEntityUtil.convert2Map(simpleEmployees, e -> e.getEmployeeId() + ""); - } // /** 工资单发放 end **********************************************************************/ /** diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 120cbd78a..5ee35419d 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1036,7 +1036,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return listMaps; } // 所有个税扣缴义务人 -// Map taxAgentMap = SalaryEntityUtil.convert2Map(getTaxAgentService(user).listAll(), TaxAgentPO::getId, TaxAgentPO::getName); + Map taxAgentMap = SalaryEntityUtil.convert2Map(getTaxAgentService(user).listAll(), TaxAgentPO::getId, TaxAgentPO::getName); // 按人员分组核算数据 // Map> relationSalaryAcctEmployeeMap = SalaryEntityUtil.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getEmployeeId); Map salaryAcctEmployeeMap = SalaryEntityUtil.convert2Map(salaryAcctEmployees, salaryAcctEmployee -> salaryAcctEmployee.getEmployeeId() + "-" + salaryAcctEmployee.getTaxAgentId()); @@ -1058,42 +1058,42 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Map finalEmpSubComMap = empComMap; boolean finalIsOrigin = isOrigin; list.forEach(e -> { + + SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.getOrDefault(e.getEmployeeId() + "-" + e.getTaxAgentId(), new SalaryAcctEmployeePO()); + DataCollectionEmployee hrmDepartmentComInfo = finalEmpSubComMap.getOrDefault(e.getEmployeeId(), new DataCollectionEmployee()); Map map = new LinkedHashMap<>(); - map.put("id", e.getId() + ""); - DataCollectionEmployee hrmDepartmentComInfo = finalEmpSubComMap.get(e.getEmployeeId()); - if (hrmDepartmentComInfo != null) { - map.put("subCompanyName", hrmDepartmentComInfo.getSubcompanyName()); - } else { - map.put("subCompanyName", ""); - } - if (hrmDepartmentComInfo != null) { - map.put("department", e.getDepartment()); - } - map.put("employeeId", e.getEmployeeId() + ""); - map.put("username", e.getUsername()); + map.put("id", e.getId()); + map.put("employeeId", e.getEmployeeId()); + map.put("taxAgentName", taxAgentMap.getOrDefault(salaryAcctEmployee.getTaxAgentId(), "")); + map.put("taxAgentId", salaryAcctEmployee.getTaxAgentId()); + map.put("username", hrmDepartmentComInfo.getUsername()); + + map.put("departmentName", salaryAcctEmployee.getDepartmentName()); + map.put("departmentId", salaryAcctEmployee.getDepartmentId()); + + map.put("subcompanyName", salaryAcctEmployee.getSubcompanyName()); + map.put("subcompanyId", salaryAcctEmployee.getSubcompanyId()); + map.put("jobtitleName", salaryAcctEmployee.getJobtitleName()); + map.put("jobtitleId", salaryAcctEmployee.getJobtitleId()); + map.put("companystartdate", hrmDepartmentComInfo.getCompanystartdate()); map.put("mobile", e.getMobile()); - map.put("jobNum", e.getJobNum()); - map.put("email", e.getEmail()); + map.put("dissmissdate", hrmDepartmentComInfo.getDismissdate()); + map.put("status", salaryAcctEmployee.getStatus()); + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(Integer.valueOf(salaryAcctEmployee.getStatus()))); + map.put("workcode", hrmDepartmentComInfo.getWorkcode()); + map.put("sex", "0".equals(hrmDepartmentComInfo.getSex()) ? "男" : "女"); + map.put("idNo", hrmDepartmentComInfo.getIdNo()); + map.put("email", hrmDepartmentComInfo.getEmail()); + map.put("telephone", hrmDepartmentComInfo.getTelephone()); + map.put("jobcall", hrmDepartmentComInfo.getJobcall()); + map.put("jobcallId", hrmDepartmentComInfo.getJobcallId()); + map.put("birthday", hrmDepartmentComInfo.getBirthday()); + // map.put("employeeType", SalarySendEmployeeTypeEnum.getNameByValue(e.getEmployeeType())); // 单个人的核算数据 List resultValues = Lists.newArrayList(); - // 个税扣缴义务人 -// if (incomeCategorys.size() > 1) { -// List acctEmployees = relationSalaryAcctEmployeeMap.getOrDefault(e.getEmployeeId(), Collections.emptyList()); -// for (SalaryAcctEmployeePO salaryAcctEmployee : acctEmployees) { -// if (singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { -// resultValues.add(singleEmpAcctMap.get(salaryAcctEmployee.getId())); -// } -// } -// } else { -// SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(e.getEmployeeId() + "-" + e.getTaxAgent()); -// if (salaryAcctEmployee != null && singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { -// resultValues.add(singleEmpAcctMap.get(salaryAcctEmployee.getId())); -// } -// } - SalaryAcctEmployeePO salaryAcctEmployee = salaryAcctEmployeeMap.get(e.getEmployeeId() + "-" + e.getTaxAgentId()); - if (salaryAcctEmployee != null && singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { + if (singleEmpAcctMap.containsKey(salaryAcctEmployee.getId())) { resultValues.addAll(singleEmpAcctMap.get(salaryAcctEmployee.getId())); } // 薪资项目 @@ -1862,7 +1862,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService if (CollectionUtils.isEmpty(salaryTemplates)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送")); } - SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(salarySendPO, taxAgentPO.getName(), salaryTemplates.get(0)); + SalaryBillSendDTO salaryBillSendDTO = getSalaryBillService(user).buildSendParams(salarySendPO, salaryTemplates.get(0)); SalaryTemplatePO salaryTemplate = salaryBillSendDTO.getSalaryTemplate(); if (salaryTemplate == null) { From 920b0e31c4573f3515d614783185229a4d81da6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 Sep 2024 10:26:52 +0800 Subject: [PATCH 040/184] =?UTF-8?q?=E8=B4=A6=E5=A5=97=E6=89=A3=E7=BC=B4?= =?UTF-8?q?=E4=B9=89=E5=8A=A1=E4=BA=BA=E8=81=9A=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SalaryAcctRecordListDTO.java | 8 +- .../entity/salarysob/bo/SalarySobBO.java | 36 +------ .../salarysob/dto/SalarySobBasicFormDTO.java | 12 ++- .../salarysob/dto/SalarySobListDTO.java | 4 +- .../mapper/salarysob/SalarySobMapper.xml | 97 ++++++++++--------- .../mapper/salarysob/SobTaxLinkMapper.java | 3 + .../mapper/salarysob/SobTaxLinkMapper.xml | 5 + .../salary/service/SalarySobService.java | 6 +- .../impl/AttendQuoteDataServiceImpl.java | 2 +- .../impl/SalaryAcctEmployeeServiceImpl.java | 6 +- .../impl/SalaryAcctRecordServiceImpl.java | 4 +- .../service/impl/SalaryItemServiceImpl.java | 2 +- .../service/impl/SalarySobServiceImpl.java | 63 ++++++------ .../impl/TaxDeclarationServiceImpl.java | 2 +- .../wrapper/SalaryAcctRecordWrapper.java | 4 +- .../salary/wrapper/SalarySobWrapper.java | 27 +++++- 16 files changed, 148 insertions(+), 133 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index e4b659776..7f6aa98f8 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -26,14 +26,14 @@ public class SalaryAcctRecordListDTO { //主键id private Long id; - @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName") - private String taxAgentName; + @TableTitle(title = "薪资所属月", dataIndex = "salaryMonth", key = "salaryMonth") + private String salaryMonth; @TableTitle(title = "薪资账套", dataIndex = "salarySobName", key = "salarySobName") private String salarySobName; - @TableTitle(title = "薪资所属月", dataIndex = "salaryMonth", key = "salaryMonth") - private String salaryMonth; + @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName") + private String taxAgentName; @TableTitle(title = "是否回算过", dataIndex = "backCalcStatus", key = "backCalcStatus") private Integer backCalcStatus; diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java index 7c9f29966..cf06eec07 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobBO.java @@ -2,18 +2,16 @@ package com.engine.salary.entity.salarysob.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.salarysob.dto.SalarySobBasicFormDTO; -import com.engine.salary.entity.salarysob.dto.SalarySobListDTO; import com.engine.salary.entity.salarysob.param.SalarySobBasicSaveParam; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.SalaryCycleTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.SalaryI18nUtil; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Date; +import java.util.Objects; /** * 薪资账套 @@ -57,37 +55,13 @@ public class SalarySobBO { .build(); } - /** - * 薪资账套po转换成列表dto - * - * @param salarySobs 薪资账套po - * @return - */ - public static List convert2ListDTO(Collection salarySobs,Map taxAgentIdTONameMap) { - if (CollectionUtils.isEmpty(salarySobs)) { - return Collections.emptyList(); - } - return salarySobs.stream() - .map(salarySobPO -> SalarySobListDTO.builder() - .id(salarySobPO.getId()) - .name(salarySobPO.getName()) - .taxAgentName(taxAgentIdTONameMap.get(salarySobPO.getTaxAgentId())) - .taxAgentId(salarySobPO.getTaxAgentId()) - .salaryCycle(buildSalaryCycle(salarySobPO)) - .disable(salarySobPO.getDisable()) - .description(salarySobPO.getDescription()) -// .opts(salarySobPO.getOpts()) - .build()) - .collect(Collectors.toList()); - } - /** * 解析薪资账套列表的薪资周期 * * @param salarySobPO * @return */ - private static String buildSalaryCycle(SalarySobPO salarySobPO) { + public static String buildSalaryCycle(SalarySobPO salarySobPO) { String salaryCycleStr; SalaryCycleTypeEnum salaryCycleTypeEnum = SalaryCycleTypeEnum.parseByValue(salarySobPO.getSalaryCycleType()); if (salaryCycleTypeEnum == null) { @@ -131,7 +105,7 @@ public class SalarySobBO { * @param salarySobPO 薪资账套po * @return */ - public static SalarySobBasicFormDTO convert2FormDTO(SalarySobBasicFormDTO basicForm,SalarySobPO salarySobPO) { + public static SalarySobBasicFormDTO convert2FormDTO(SalarySobBasicFormDTO basicForm, SalarySobPO salarySobPO) { return basicForm .setId(salarySobPO.getId()) .setName(salarySobPO.getName()) @@ -143,7 +117,7 @@ public class SalarySobBO { .setAttendCycleType(salarySobPO.getAttendCycleType()) .setAttendCycleFromDay(salarySobPO.getAttendCycleFromDay()) .setSocialSecurityCycleType(salarySobPO.getSocialSecurityCycleType()) - .setTaxAgentId(salarySobPO.getTaxAgentId()) + .setTaxAgentIds(salarySobPO.getTaxAgentIds()) .setDescription(salarySobPO.getDescription()); } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java index 131668372..77b7221d7 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobBasicFormDTO.java @@ -30,16 +30,20 @@ import java.util.List; @AllArgsConstructor public class SalarySobBasicFormDTO { - //主键id") + //主键 @JsonSerialize(using = ToStringSerializer.class) private Long id; -// //薪资账套的名称") + /** + * 名称 + */ private String name; - private Long taxAgentId; -// private String taxAgentName; + /** + * 扣缴义务人 + */ + private List taxAgentIds; /** * 薪资类型 diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java index 0d1227764..885fe0d0a 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java @@ -12,6 +12,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * 薪资账套列表 *

Copyright: Copyright (c) 2022

@@ -47,7 +49,7 @@ public class SalarySobListDTO { private String taxAgentName; // 个税扣缴义务人ID - private Long taxAgentId; + private List taxAgentIds; @SalaryTableColumn(text = "薪资周期", width = "10%", column = "salaryCycle", transmethod = "com.engine.salary.transmethod.TransMethod.buildSalaryCycle", otherPara = "column:salaryCycleFromDay") @TableTitle(title = "薪资周期", key = "salaryCycle", dataIndex = "salaryCycle") diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml index 674402d4f..dc81cec68 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobMapper.xml @@ -2,7 +2,7 @@ - + @@ -19,6 +19,11 @@ + + + + + @@ -42,6 +47,7 @@ , t.delete_type , t.tenant_key , t.tax_agent_id + , l.tax_agent_id as taxAgentId
@@ -49,7 +55,8 @@ SELECT FROM hrsa_salary_sob t - WHERE delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 @@ -57,7 +64,8 @@ SELECT FROM hrsa_salary_sob t - WHERE id = #{id} AND delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.id = #{id} AND t.delete_type = 0 @@ -65,69 +73,70 @@ SELECT FROM hrsa_salary_sob t - WHERE delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 - AND id = #{id} + AND t.id = #{id} - AND income_category = #{incomeCategory} + AND t.income_category = #{incomeCategory} - AND salary_cycle_type = #{salaryCycleType} + AND t.salary_cycle_type = #{salaryCycleType} - AND salary_cycle_from_day = #{salaryCycleFromDay} + AND t.salary_cycle_from_day = #{salaryCycleFromDay} - AND tax_cycle_type = #{taxCycleType} + AND t.tax_cycle_type = #{taxCycleType} - AND attend_cycle_type = #{attendCycleType} + AND t.attend_cycle_type = #{attendCycleType} - AND attend_cycle_from_day = #{attendCycleFromDay} + AND t.attend_cycle_from_day = #{attendCycleFromDay} - AND social_security_cycle_type = #{socialSecurityCycleType} + AND t.social_security_cycle_type = #{socialSecurityCycleType} - AND disable = #{disable} + AND t.disable = #{disable} - AND description = #{description} + AND t.description = #{description} - AND creator = #{creator} + AND t.creator = #{creator} - AND create_time = #{createTime} + AND t.create_time = #{createTime} - AND update_time = #{updateTime} + AND t.update_time = #{updateTime} - AND delete_type = #{deleteType} + AND t.delete_type = #{deleteType} - AND tenant_key = #{tenantKey} + AND t.tenant_key = #{tenantKey} - AND id IN + AND t.id IN #{id} - AND tax_agent_id = #{taxAgentId} + AND t.tax_agent_id = #{taxAgentId} - AND tax_agent_id IN + AND t.tax_agent_id IN #{taxAgentId} - ORDER BY create_time DESC + ORDER BY t.create_time DESC @@ -454,79 +463,79 @@ - SELECT FROM hrsa_salary_sob t - WHERE - delete_type = 0 + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 - AND name like CONCAT('%',#{param.name},'%') + AND t.name like CONCAT('%',#{param.name},'%') - AND name like '%'||#{param.name}||'%' + AND t.name like '%'||#{param.name}||'%' - AND name like '%'+#{param.name}+'%' + AND t.name like '%'+#{param.name}+'%' - AND name like CONCAT('%',#{name},'%') + AND t.name like CONCAT('%',#{name},'%') - AND name like '%'||#{name}||'%' + AND t.name like '%'||#{name}||'%' - AND name like '%'+#{name}+'%' + AND t.name like '%'+#{name}+'%' - SELECT FROM hrsa_salary_sob t - WHERE - delete_type = 0 - and name = #{name} + left join hrsa_sob_tax_link l on l.sob_id = t.id and l.delete_type = 0 + WHERE t.delete_type = 0 + and t.name = #{name} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java index 8192f5e21..da9b6b444 100644 --- a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.java @@ -70,4 +70,7 @@ public interface SobTaxLinkMapper { void deleteByIds(@Param("ids") Collection ids); void deleteBySobId(Long id); + + int count(); + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml index b447e511f..8fe16ab03 100644 --- a/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SobTaxLinkMapper.xml @@ -218,4 +218,9 @@ AND sob_id=#{sobId} + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 6d026cdac..665fc7099 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -30,8 +30,6 @@ public interface SalarySobService { */ SalarySobPO getById(Long id); - SalarySobPO getByIdWithTax(Long id); - /** * 根据主键id查询薪资账套 * @@ -39,7 +37,6 @@ public interface SalarySobService { * @return */ List listByIds(Collection ids); - List listByIdsWithTax(Collection ids); /** * 根据名称精确匹配查询薪资账套 @@ -155,4 +152,7 @@ public interface SalarySobService { List parseConfig(Long taxAgentId, List salarySobConfigs); List list(SalarySobQueryParam param); + + void handleHistory(); + } diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index da369b9ef..7218aad10 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -352,7 +352,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa for (Long salarySobId : salarySobIds) { // 获取薪资账套 SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salarySobId, YearMonth.of(year, month)); - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salarySobId); + SalarySobPO salarySobPO = getSalarySobService(user).getById(salarySobId); // 根据薪资账套查询人员 List salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salarySobId); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index c183b043d..923ee55c8 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -402,7 +402,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 根据薪资账套查询薪资周期 SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth())); //获取核算的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "薪资账套不存在或已被删除")); } @@ -529,7 +529,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //查询账套对应的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); List taxAgentIds = salarySobPO.getTaxAgentIds(); // 查询薪资档案,获取人员的个税扣缴义务人 @@ -561,7 +561,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } //查询账套对应的扣缴义务人 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); //过滤掉不属于当前账套扣缴义务人的人员 List taxAgentIds = salarySobPO.getTaxAgentIds(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 0c4ce8e4a..9e8ee21ca 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -338,7 +338,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } //获取账套所属个税扣缴义务人的核算记录 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(saveParam.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getById(saveParam.getSalarySobId()); List taxAgentIds = salarySobPO.getTaxAgentIds(); taxAgentIds.forEach(taxAgentId->{ //查询扣缴义务人下的所有账套 @@ -632,7 +632,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } // 查询税款所在年的该个税扣缴义务人所有薪资核算记录 // 获取账套所属个税扣缴义务人的核算记录 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); List taxAgentIds = salarySobPO.getTaxAgentIds(); //查询扣缴义务人下的所有账套 List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(taxAgentIds); diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 3a21abcaa..374244c1a 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -458,7 +458,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService // 查询所有启用的薪资账套 List salarySobItemList = getSalarySobItemService(user).listBySalaryItemIds(Collections.singleton(salaryItemId)); Set salarySobIds = SalaryEntityUtil.properties(salarySobItemList, SalarySobItemPO::getSalarySobId); - List salarySobs = getSalarySobService(user).listByIdsWithTax(salarySobIds); + List salarySobs = getSalarySobService(user).listByIds(salarySobIds); // 获取能够管理的义务人 Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); if (!isChief) { diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 079dfdea3..fe5358ff2 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -173,46 +173,17 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public SalarySobPO getById(Long id) { - return salarySobMapper.getById(id); + handleHistory(); + return getSalarySobMapper().getById(id); } - @Override - public SalarySobPO getByIdWithTax(Long id) { - SalarySobPO sobPO = getSalarySobMapper().getById(id); - List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().sobId(id).build()); - List taxAgentIds = sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList()); - //处理历史数据 - if (CollectionUtil.isEmpty(taxAgentIds)) { - SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() - .id(IdGenerator.generate()) - .taxAgentId(sobPO.getTaxAgentId()) - .sobId(sobPO.getId()) - .creator((long) user.getUID()) - .createTime(new Date()) - .updateTime(new Date()) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); - - taxAgentIds.add(sobPO.getTaxAgentId()); - } - - sobPO.setTaxAgentIds(taxAgentIds); - return sobPO; - } @Override public List listByIds(Collection ids) { if (CollectionUtils.isEmpty(ids)) { return Collections.emptyList(); } - return salarySobMapper.listSome(SalarySobPO.builder().ids(ids).build()); - } - - @Override - public List listByIdsWithTax(Collection ids) { - return ids.stream().map(this::getByIdWithTax).collect(Collectors.toList()); + return getSalarySobMapper().listSome(SalarySobPO.builder().ids(ids).build()); } @Override @@ -288,9 +259,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } - List list = salarySobMapper.listSome(build); + List list = getSalarySobMapper().listSome(build); list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SalarySobPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalarySobPO.class); } @@ -459,7 +431,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { */ public void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { Long sobId = salarySobPO.getId(); - salarySobPO = getByIdWithTax(sobId); + salarySobPO = getById(sobId); salarySobPO.getTaxAgentIds().forEach(taxAgentId -> { // 获取人员范围列表 @@ -1018,4 +990,27 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { return getSalarySobMapper().listSome(sobPO); } + @Override + public void handleHistory() { + + int count = getSobTaxLinkMapper().count(); + if(count>0){ + return; + } + + List salarySobPOS = getSalarySobMapper().listAll(); + salarySobPOS.forEach(sobPO -> { + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(sobPO.getTaxAgentId()) + .sobId(sobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + }); + } } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 066b24e24..a0b2f9f18 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -277,7 +277,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration @Override public void delete(SalaryAcctRecordPO salaryAcctRecordPO) { - SalarySobPO sobPO = getSalarySobService(user).getByIdWithTax(salaryAcctRecordPO.getSalarySobId()); + SalarySobPO sobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); if (sobPO == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "账套信息异常")); } diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index dc27e7167..58754e9b0 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -87,6 +87,8 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord // 处理历史数据将薪资账套中将关联人员状态转换为List SalarySobUtil.handleEmployeeStatusHistory(); + getSalarySobService(user).handleHistory(); + // 处理工资单发放历史数据 getSalarySendService(user).handleHistory(); // 查询薪资核算记录(分页) @@ -99,7 +101,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord if (CollectionUtils.isNotEmpty(list)) { // 查询薪资账套 Set salarySobIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getSalarySobId); - List salarySobPOS = getSalarySobService(user).listByIdsWithTax(salarySobIds); + List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); // 查询薪资核算记录的创建人员的人员信息 List employeeIds = SalaryEntityUtil.properties(list, SalaryAcctRecordPO::getCreator, Collectors.toList()); List employeeComInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index 8cdbe79cd..d74a9b124 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -79,13 +79,34 @@ public class SalarySobWrapper extends Service { // 处理历史数据,将薪资账套中将关联人员状态转换为List SalarySobUtil.handleEmployeeStatusHistory(); + getSalarySobService(user).handleHistory(); + + // 查询薪资账套 PageInfo page = getSalarySobService(user).listPageByParam(queryParam); // 薪资账套po转换成薪资账套列表dto List taxAgentPOS = getTaxAgentService(user).listAll(); - Map taxAgentIdTONameMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getId, TaxAgentPO::getName); - List salarySobListDTOS = SalarySobBO.convert2ListDTO(page.getList(), taxAgentIdTONameMap); + + List salarySobListDTOS = page.getList().stream() + .map(salarySobPO -> { + List taxAgentIds = salarySobPO.getTaxAgentIds(); + String taxAgentName = taxAgentPOS.stream().filter(po -> taxAgentIds.contains(po.getId())).map(TaxAgentPO::getName).collect(Collectors.joining(",")); + return SalarySobListDTO.builder() + .id(salarySobPO.getId()) + .name(salarySobPO.getName()) + .taxAgentName(taxAgentName) + .taxAgentIds(taxAgentIds) + .salaryCycle(SalarySobBO.buildSalaryCycle(salarySobPO)) + .disable(salarySobPO.getDisable()) + .description(salarySobPO.getDescription()) +// .opts(salarySobPO.getOpts()) + .build(); + + }) + .collect(Collectors.toList()); + + PageInfo dtoPage = new PageInfo<>(salarySobListDTOS, SalarySobListDTO.class); dtoPage.setTotal(page.getTotal()); dtoPage.setPageNum(page.getPageNum()); @@ -259,7 +280,7 @@ public class SalarySobWrapper extends Service { */ public boolean canEdit(Long id, Long employeeId) { // 查询薪资账套 - SalarySobPO salarySobPO = getSalarySobService(user).getByIdWithTax(id); + SalarySobPO salarySobPO = getSalarySobService(user).getById(id); if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除")); } From 4d9f1e6ff426eca47eeb57bf780f30d892da3f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 Sep 2024 17:31:01 +0800 Subject: [PATCH 041/184] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/dto/SobOptAuth.java | 19 +++++ .../dto/{AuthDTO.java => TaxEmpOptAuth.java} | 2 +- .../salary/entity/auth/dto/TaxOptAuth.java | 19 +++++ .../engine/salary/mapper/auth/AuthMapper.java | 10 ++- .../engine/salary/mapper/auth/AuthMapper.xml | 79 +++++++++++++++---- .../salary/service/auth/AuthService.java | 3 - .../salary/service/auth/AuthServiceImpl.java | 45 +++++++---- .../engine/salary/wrapper/AuthWrapper.java | 2 +- 8 files changed, 143 insertions(+), 36 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/SobOptAuth.java rename src/com/engine/salary/entity/auth/dto/{AuthDTO.java => TaxEmpOptAuth.java} (91%) create mode 100644 src/com/engine/salary/entity/auth/dto/TaxOptAuth.java diff --git a/src/com/engine/salary/entity/auth/dto/SobOptAuth.java b/src/com/engine/salary/entity/auth/dto/SobOptAuth.java new file mode 100644 index 000000000..cbae0bfd7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/SobOptAuth.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SobOptAuth { + private Long sobId; + + private Set opts; +} + diff --git a/src/com/engine/salary/entity/auth/dto/AuthDTO.java b/src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java similarity index 91% rename from src/com/engine/salary/entity/auth/dto/AuthDTO.java rename to src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java index f2ebaef7b..fffb519db 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthDTO.java +++ b/src/com/engine/salary/entity/auth/dto/TaxEmpOptAuth.java @@ -11,7 +11,7 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -public class AuthDTO { +public class TaxEmpOptAuth { private Long taxAgentId; private List emps; diff --git a/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java b/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java new file mode 100644 index 000000000..57b4765c7 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/TaxOptAuth.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxOptAuth { + private Long taxAgentId; + + private Set opts; +} + diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index 1e3d64acc..7d941690d 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,13 +1,19 @@ package com.engine.salary.mapper.auth; -import com.engine.salary.entity.auth.dto.AuthDTO; +import com.engine.salary.entity.auth.dto.SobOptAuth; +import com.engine.salary.entity.auth.dto.TaxEmpOptAuth; +import com.engine.salary.entity.auth.dto.TaxOptAuth; import org.apache.ibatis.annotations.Param; import java.util.List; public interface AuthMapper { - List getAuth(@Param("uid") Long uid, @Param("page") String page); + List getTaxEmpOptAuth(@Param("uid") Long uid, @Param("page") String page); + + List getTaxOptAuth(@Param("uid") Long uid, @Param("page") String page); + + List getSobOptAuth(@Param("uid") Long uid, @Param("page") String page); List getLimitSobs(@Param("uid") Long uid); diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index 1ed2dcb4a..f6c482e16 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -1,7 +1,7 @@ - + @@ -13,30 +13,76 @@ - + select resource.target as tax_agent_id, d.employee_id, o.opt from hrsa_auth_role_emp emp - left join hrsa_auth_role role on emp.role_id = role.id and emp.delete_type = 0 and role.delete_type = 0 - left join hrsa_auth_resource resource on resource.role_id = role.id and resource.target_type=1 and resource.delete_type = 0 - left join hrsa_auth_role_data d on emp.role_id = d.role_id and d.delete_type = 0 - left join hrsa_auth_opt o on d.role_id = o.role_id and o.delete_type = 0 - where emp.employee_id = #{uid} and o.page = #{page} + left join hrsa_auth_role role on emp.role_id = role.id and emp.delete_type = 0 and role.delete_type = 0 + left join hrsa_auth_resource resource + on resource.role_id = role.id and resource.target_type = 1 and resource.delete_type = 0 + left join hrsa_auth_role_data d on emp.role_id = d.role_id and d.delete_type = 0 + left join hrsa_auth_opt o on d.role_id = o.role_id and o.delete_type = 0 + where emp.employee_id = #{uid} + and o.page = #{page} + + + + + + + + + + + + + + + + + + + + + + + + + @@ -45,9 +91,12 @@ select o.opt from hrsa_auth_role_emp emp left join hrsa_auth_role role on emp.role_id = role.id - left join hrsa_auth_opt o on role.id = o.role_id - where emp.delete_type = 0 and role.delete_type = 0 and o.delete_type = 0 - and emp.employee_id = #{uid} and o.page = #{page} + left join hrsa_auth_opt o on role.id = o.role_id + where emp.delete_type = 0 + and role.delete_type = 0 + and o.delete_type = 0 + and emp.employee_id = #{uid} + and o.page = #{page} diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index 693bc243d..d29f21a03 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -1,6 +1,5 @@ package com.engine.salary.service.auth; -import com.engine.salary.entity.auth.dto.AuthDTO; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.AuthFilterTypeEnum; @@ -18,7 +17,5 @@ public interface AuthService { List auth(List list, AuthFilterTypeEnum filterType, Class clazz); - List auth(String page); - Permission permission(String page); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index cb6638e62..7f6c966fa 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -4,8 +4,10 @@ import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.annotation.Auth; -import com.engine.salary.entity.auth.dto.AuthDTO; import com.engine.salary.entity.auth.dto.EmpOpt; +import com.engine.salary.entity.auth.dto.SobOptAuth; +import com.engine.salary.entity.auth.dto.TaxEmpOptAuth; +import com.engine.salary.entity.auth.dto.TaxOptAuth; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.auth.AuthCheckTypeEnum; @@ -155,13 +157,13 @@ public class AuthServiceImpl extends Service implements AuthService { list.removeAll(resultList); //给各角色赋权 - List authDTOS = getAuthMapper().getAuth((long) user.getUID(), page); - Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, AuthDTO::getTaxAgentId, AuthDTO::getEmps); - try { Iterator iterator = list.iterator(); if (checkType == AuthCheckTypeEnum.TAX_EMP) { + List authDTOS = getAuthMapper().getTaxEmpOptAuth((long) user.getUID(), page); + Map> authMap = SalaryEntityUtil.convert2Map(authDTOS, TaxEmpOptAuth::getTaxAgentId, TaxEmpOptAuth::getEmps); + while (iterator.hasNext()) { T t = iterator.next(); //混合验证 @@ -191,30 +193,50 @@ public class AuthServiceImpl extends Service implements AuthService { } } } else if (checkType == AuthCheckTypeEnum.SOB) { - List limits = getAuthMapper().getLimitSobs((long) user.getUID()); - + List sobOptAuth = getAuthMapper().getSobOptAuth((long) user.getUID(), page); + Map> sobOpts = SalaryEntityUtil.convert2Map(sobOptAuth, SobOptAuth::getSobId, SobOptAuth::getOpts); while (iterator.hasNext()) { T t = iterator.next(); Method sobIdFieldGetterMethod = t.getClass().getMethod(sobIdFieldGetter); Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); - if (limits.contains(sobId)) { + if (sobOpts.containsKey(sobId)) { if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Set optSets = sobOpts.getOrDefault(sobId, new HashSet<>()); + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); } resultList.add(t); } } } else if (checkType == AuthCheckTypeEnum.TAX) { - List limits = getAuthMapper().getLimitTaxAgents((long) user.getUID()); + List authDTOS = getAuthMapper().getTaxOptAuth((long) user.getUID(), page); + Map> taxOpts = SalaryEntityUtil.convert2Map(authDTOS, TaxOptAuth::getTaxAgentId, TaxOptAuth::getOpts); while (iterator.hasNext()) { T t = iterator.next(); Method taxAgentIdFieldGetterMethod = t.getClass().getMethod(taxAgentIdFieldGetter); Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); - if (limits.contains(taxAgentId)) { + if (taxOpts.containsKey(taxAgentId)) { if (filterType == AuthFilterTypeEnum.DATA_OPT) { + Set optSets = taxOpts.getOrDefault(taxAgentId, new HashSet<>()); + Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); + Set opts = (Set) optsFieldGetterMethod.invoke(t); + if (opts == null) { + opts = new HashSet<>(); + } + opts.addAll(optSets); + + Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); + optsFieldSetterMethod.invoke(t, opts); } resultList.add(t); @@ -227,11 +249,6 @@ public class AuthServiceImpl extends Service implements AuthService { return resultList; } - @Override - public List auth(String page) { - return getAuthMapper().getAuth((long) user.getUID(), page); - } - @Override public Permission permission(String page) { long uid = user.getUID(); diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index d75e86efb..9f0485f56 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -147,7 +147,7 @@ public class AuthWrapper extends Service { } public Object auth(String page) { - return getAuthMapper().getAuth((long) user.getUID(), page); + return getAuthMapper().getTaxEmpOptAuth((long) user.getUID(), page); } public Permission permission(String page) { From 17afe873563ea26b684805ee4f1249d95c64b2c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 Sep 2024 18:14:02 +0800 Subject: [PATCH 042/184] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E8=A1=A8=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 9 +++++++-- .../entity/taxdeclaration/bo/TaxDeclarationBO.java | 1 + .../entity/taxdeclaration/dto/TaxDeclarationListDTO.java | 4 ++++ .../entity/taxdeclaration/po/TaxDeclarationPO.java | 2 ++ .../salary/service/impl/TaxDeclarationServiceImpl.java | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 42853e06c..80c777de9 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -3,6 +3,11 @@ + + + + + @@ -26,8 +31,8 @@ - - + + diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index e9500c680..66aec4865 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -71,6 +71,7 @@ public class TaxDeclarationBO { .operateEmployeeName(employeeNameMap.getOrDefault(taxDeclarationPO.getCreator(), "")) .operateTime(SalaryDateUtil.getFormatLocalDateTime(taxDeclarationPO.getCreateTime())) .description(taxDeclarationPO.getDescription()) + .opts(taxDeclarationPO.getOpts()) .build(); }) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java index f52ce6a86..5104871b5 100644 --- a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java +++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationListDTO.java @@ -13,6 +13,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 个税申报记录列表 @@ -63,4 +64,7 @@ public class TaxDeclarationListDTO { @TableTitle(title = "备注", dataIndex = "description", key = "description") private String description; + + private Set opts; + } diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java index 447dff3d1..7a02a14d2 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * 个税申报记录 @@ -91,4 +92,5 @@ public class TaxDeclarationPO { private Collection taxAgentIds; + private Set opts; } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index a0b2f9f18..4c667b730 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -120,7 +120,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration // 查询个税申报表 List taxDeclarationPOS = getTaxDeclarationMapper().listSome(po); - taxDeclarationPOS = getAuthService(user).auth(taxDeclarationPOS, AuthFilterTypeEnum.ONLY_DATA, TaxDeclarationPO.class); + taxDeclarationPOS = getAuthService(user).auth(taxDeclarationPOS, AuthFilterTypeEnum.DATA_OPT, TaxDeclarationPO.class); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxDeclarationPOS, TaxDeclarationPO.class); From 09fb9898e7d353bf0da9d85253c191b4122a2ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Sep 2024 11:13:10 +0800 Subject: [PATCH 043/184] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E5=92=8C=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/auth/param/AuthRoleSaveParam.java | 1 - .../param/SalarySobListQueryParam.java | 13 ++--- .../salarysob/param/SalarySobQueryParam.java | 14 +++++- .../taxagent/param/TaxAgentQueryParam.java | 6 +++ .../salary/enums/auth/AuthFilterTypeEnum.java | 3 +- .../salary/service/SalarySobService.java | 2 +- .../salary/service/TaxAgentService.java | 4 +- .../service/auth/AuthRoleServiceImpl.java | 4 +- .../salary/service/auth/AuthServiceImpl.java | 37 ++++++++++++--- .../impl/SalaryArchiveServiceImpl.java | 2 +- .../service/impl/SalarySobServiceImpl.java | 27 ++++++----- .../service/impl/TaxAgentServiceImpl.java | 10 +++- .../salary/web/SalarySobController.java | 47 +++++++++---------- .../engine/salary/web/TaxAgentController.java | 8 ++++ .../salary/wrapper/SalarySobWrapper.java | 4 +- .../salary/wrapper/TaxAgentWrapper.java | 6 ++- 16 files changed, 123 insertions(+), 65 deletions(-) diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java index 42ce2c5bf..f1075d4ab 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleSaveParam.java @@ -33,7 +33,6 @@ public class AuthRoleSaveParam { /** * 扣缴义务人资源 */ - @DataCheck(require = true, message = "扣缴义务人不允许为空") private List taxAgentIds; diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobListQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobListQueryParam.java index e8811bf3f..e71a6e449 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobListQueryParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobListQueryParam.java @@ -5,12 +5,13 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * @description: 薪资账套列表查询参数 - * @author: xiajun - * @modified By: xiajun - * @date: Created in 1/18/22 3:04 PM - * @version:v1.0 - */ + * 账套查询 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Data @EqualsAndHashCode(callSuper = true) public class SalarySobListQueryParam extends BaseQueryParam { diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java index 92688dfde..52c32eb89 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salarysob.param; import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -9,9 +10,18 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) public class SalarySobQueryParam extends BaseQueryParam { - //薪资账套名称") + /** + * 名称 + */ private String name; - // 薪资账套id + /** + * 扣缴义务人id + */ private Long taxAgentId; + + /** + * 数据过滤级别 + */ + private AuthFilterTypeEnum filterType; } diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java index 410b0b2b4..a8663b5cd 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.taxagent.param; import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -26,4 +27,9 @@ public class TaxAgentQueryParam extends BaseQueryParam { //个税扣缴义务人名称 private String name; + + /** + * 数据过滤级别 + */ + private AuthFilterTypeEnum filterType; } diff --git a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java index 752a8944c..166783cce 100644 --- a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java +++ b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java @@ -16,7 +16,8 @@ import java.util.Objects; public enum AuthFilterTypeEnum implements BaseEnum { DATA_OPT("DATA_OPT", "数据&功能权限", 87626), - ONLY_DATA("ONLY_DATA", "仅数据权限", 87627); + QUERY_DATA("QUERY_DATA", "获取可查询数据", 87627), + ADMIN_DATA("ADMIN_DATA", "获取可管理数据", 87627); // ONLY_OPT("ONLY_OPT", "仅功能权限", 87626) ; diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index 665fc7099..7d0596097 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -64,7 +64,7 @@ public interface SalarySobService { List listAll(); - List listAllByAuth(); + List listAuth(SalarySobQueryParam param); /** * 获取拥有管理权限的账套 diff --git a/src/com/engine/salary/service/TaxAgentService.java b/src/com/engine/salary/service/TaxAgentService.java index 188f2d911..f6df75965 100644 --- a/src/com/engine/salary/service/TaxAgentService.java +++ b/src/com/engine/salary/service/TaxAgentService.java @@ -107,6 +107,8 @@ public interface TaxAgentService { */ List listAll(); + List listAuth(TaxAgentQueryParam taxAgentQueryParam); + /** * 根据id获取单个个税扣缴义务人 * @@ -128,7 +130,7 @@ public interface TaxAgentService { * @param currentEmployeeId 当前登录人id * @return */ - Collection listAllTaxAgents(Long currentEmployeeId); + List listAllTaxAgents(Long currentEmployeeId); /** * 获取作为管理员的所有个税扣缴义务人列表 diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index a65125557..1ac54bf8b 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -63,15 +63,15 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { List authRoleEmpDTOS = getAuthMemberService(user).listRoleEmp(roleId); List authOptPOS = getAuthOptService(user).listOpts(roleId); List authRoleDataDTOS = getAuthDataService(user).listRoleData(roleId); + List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); return AuthRoleDTO.builder().id(roleId) .name(po.getName()) .members(authRoleEmpDTOS.size()) .opts(authOptPOS.size()) .datas(authRoleDataDTOS.size()) - .resources(0) + .resources(authResources.size()) .build(); - }).collect(Collectors.toList()); PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), collect, AuthRoleDTO.class); pageInfo.setTotal(total); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 7f6c966fa..2d0e70dfa 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -176,8 +176,8 @@ public class AuthServiceImpl extends Service implements AuthService { List orDefault = authMap.getOrDefault(taxAgentId, new ArrayList<>()); Map> optsMap = SalaryEntityUtil.convert2Map(orDefault, EmpOpt::getEmployeeId, EmpOpt::getOpts); if (optsMap.containsKey(employeeId)) { + Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()); if (filterType == AuthFilterTypeEnum.DATA_OPT) { - Set optSets = optsMap.getOrDefault(employeeId, new HashSet<>()); Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); Set opts = (Set) optsFieldGetterMethod.invoke(t); if (opts == null) { @@ -187,8 +187,16 @@ public class AuthServiceImpl extends Service implements AuthService { Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } } - resultList.add(t); } } } @@ -201,8 +209,8 @@ public class AuthServiceImpl extends Service implements AuthService { Long sobId = (Long) sobIdFieldGetterMethod.invoke(t); if (sobOpts.containsKey(sobId)) { + Set optSets = sobOpts.getOrDefault(sobId, new HashSet<>()); if (filterType == AuthFilterTypeEnum.DATA_OPT) { - Set optSets = sobOpts.getOrDefault(sobId, new HashSet<>()); Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); Set opts = (Set) optsFieldGetterMethod.invoke(t); if (opts == null) { @@ -212,8 +220,16 @@ public class AuthServiceImpl extends Service implements AuthService { Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); optsFieldSetterMethod.invoke(t, opts); + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } } - resultList.add(t); } } } else if (checkType == AuthCheckTypeEnum.TAX) { @@ -226,8 +242,8 @@ public class AuthServiceImpl extends Service implements AuthService { Long taxAgentId = (Long) taxAgentIdFieldGetterMethod.invoke(t); if (taxOpts.containsKey(taxAgentId)) { + Set optSets = taxOpts.getOrDefault(taxAgentId, new HashSet<>()); if (filterType == AuthFilterTypeEnum.DATA_OPT) { - Set optSets = taxOpts.getOrDefault(taxAgentId, new HashSet<>()); Method optsFieldGetterMethod = t.getClass().getMethod(optsFieldGetter); Set opts = (Set) optsFieldGetterMethod.invoke(t); if (opts == null) { @@ -237,9 +253,16 @@ public class AuthServiceImpl extends Service implements AuthService { Method optsFieldSetterMethod = t.getClass().getMethod(optsFieldSetter, Set.class); optsFieldSetterMethod.invoke(t, opts); - + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.QUERY_DATA) { + resultList.add(t); + } + if (filterType == AuthFilterTypeEnum.ADMIN_DATA) { + if (optSets.contains("admin")) { + resultList.add(t); + } } - resultList.add(t); } } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 665ce3a76..7efe48768 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -1070,7 +1070,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe List list = getSalaryArchiveMapper().listAll(); - list = getAuthService(user).auth(list,AuthFilterTypeEnum.ONLY_DATA,SalaryArchivePO.class); + list = getAuthService(user).auth(list,AuthFilterTypeEnum.QUERY_DATA,SalaryArchivePO.class); long pendingTotal = 0L; long fixedTotal = 0L; diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index fe5358ff2..bea398499 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -20,7 +20,6 @@ import com.engine.salary.entity.salarysob.param.*; import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO; import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.enums.auth.AuthFilterTypeEnum; @@ -216,23 +215,27 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { } @Override - public List listAllByAuth() { - long uid = user.getUID(); - boolean isChief = getTaxAgentService(user).isChief(uid); - if (isChief) { - // 薪酬总管理员能看到所有数据 - return listAll(); + public List listAuth(SalarySobQueryParam param) { + // 开启分权后需要过滤薪资账套 + String name = param.getName(); + // 查询所有的薪资账套 + SalarySobPO build = SalarySobPO.builder().build(); + if (StringUtils.isNotBlank(name)) { + build.setName(name); } - Collection canManageTaxAgentList = getTaxAgentService(user).listAllTaxAgentsAsAdmin(uid); - List taxAgentIds = canManageTaxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - List salarySobPOS = listByTaxAgentIds(taxAgentIds); - return salarySobPOS; + if (param.getTaxAgentId() != null) { + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentId(param.getTaxAgentId()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + } + + List list = getSalarySobMapper().listSome(build); + return getAuthService(user).auth(list, param.getFilterType(), SalarySobPO.class); } @Override public List listByAdmin() { List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().build()); - return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.ONLY_DATA, SalarySobPO.class); + return getAuthService(user).auth(salarySobPOS, AuthFilterTypeEnum.QUERY_DATA, SalarySobPO.class); } @Override diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 36b78998f..6128fa729 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -29,6 +29,7 @@ import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentSaveParam; import com.engine.salary.entity.taxagent.po.*; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; @@ -279,6 +280,13 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return getTaxAgentMapper().listAll(); } + @Override + public List listAuth(TaxAgentQueryParam queryParam) { + List taxAgents = getTaxAgentMapper().listBySome(queryParam); + AuthFilterTypeEnum filterType = queryParam.getFilterType(); + return handleForDevolution(taxAgents, (long) user.getUID(), filterType == AuthFilterTypeEnum.QUERY_DATA); + } + @Override public TaxAgentPO getById(Long id) { return getTaxAgentMapper().getById(id); @@ -291,7 +299,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } @Override - public Collection listAllTaxAgents(Long employeeId) { + public List listAllTaxAgents(Long employeeId) { List taxAgents = getTaxAgentMapper().listAll(); return handleForDevolution(taxAgents, employeeId, true); } diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 026ff516d..6592c607c 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -88,7 +88,7 @@ public class SalarySobController { } /** - * 薪资账套列表 + * 根据扣缴义务人查询 */ @POST @Path("/listByTaxAgent") @@ -114,11 +114,11 @@ public class SalarySobController { * 薪资账套列表(分权) */ @POST - @Path("/listAllByAuth") + @Path("/listAuth") @Produces(MediaType.APPLICATION_JSON) - public String listAllByAuth(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public String listAllByAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySobWrapper(user)::listAllByAuth); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listAuth,queryParam); } @@ -282,13 +282,13 @@ public class SalarySobController { public Response downloadSobRangeTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salarySobId") Long salarySobId) { User user = HrmUserVarify.getUser(request, response); SalarySobPO salarySobPO = Objects.isNull(salarySobId) ? null : getSalarySobWrapper(user).getSalarySobService(user).getById(salarySobId); - if(Objects.isNull(salarySobPO)){ + if (Objects.isNull(salarySobPO)) { throw new SalaryRunTimeException("薪资账套不存在或已被删除"); } try { XSSFWorkbook workbook = getSalarySobRangeWrapper(user).exportImportTemplate(); String time = LocalDate.now().toString(); - String fileName = salarySobPO.getName() + "人员范围导入模板" + time ; + String fileName = salarySobPO.getName() + "人员范围导入模板" + time; try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); } catch (UnsupportedEncodingException e) { @@ -299,18 +299,16 @@ public class SalarySobController { outputStream.flush(); }; response.setContentType("application/octet-stream"); - return Response.ok(output). - header("Content-disposition", "attachment;filename=" + fileName). - header("Cache-Control", "no-cache").build(); + return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); } catch (Exception e) { - log.error("人员范围导入失败",e); + log.error("人员范围导入失败", e); throw e; } } /** - * @description 薪资账套人员范围导入预览 * @return String + * @description 薪资账套人员范围导入预览 * @author Harryxzy * @date 2023/1/9 13:32 */ @@ -323,8 +321,8 @@ public class SalarySobController { } /** - * @description 薪资账套人员范围导入 * @return String + * @description 薪资账套人员范围导入 * @author Harryxzy * @date 2023/1/9 13:32 */ @@ -348,7 +346,7 @@ public class SalarySobController { @Produces(MediaType.APPLICATION_JSON) public String listSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult >(user).run(getSalarySobItemWrapper(user)::listPage4SalaryItem, queryParam); + return new ResponseResult>(user).run(getSalarySobItemWrapper(user)::listPage4SalaryItem, queryParam); } @@ -418,30 +416,28 @@ public class SalarySobController { } - /**********************************薪资账套的薪资项目 end*********************************/ - /**********************************薪资账套的回算项目 start*********************************/ - + /** - * @description 薪资账套回算项目列表 * @return String + * @description 薪资账套回算项目列表 * @author Harryxzy * @date 2022/11/16 14:01 */ @GET @Path("/backitem/getAggregate") @Produces(MediaType.APPLICATION_JSON) - public String getSalarySobBackItemAggregate(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "salarySobId") Long salarySobId) { + public String getSalarySobBackItemAggregate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salarySobId") Long salarySobId) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalarySobBackItemWrapper(user)::getAggregate, salarySobId); + return new ResponseResult(user).run(getSalarySobBackItemWrapper(user)::getAggregate, salarySobId); } /** - * @description 薪资账套回算项目详情(编辑前获取) * @return null + * @description 薪资账套回算项目详情(编辑前获取) * @author Harryxzy * @date 2022/11/16 14:02 */ @@ -449,29 +445,28 @@ public class SalarySobController { @Path("/backitem/getForm") @ApiOperation("薪资账套回算项目详情") @Produces(MediaType.APPLICATION_JSON) - public String getSalarySobBackItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value ="id") Long id) { + public String getSalarySobBackItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalarySobBackItemWrapper(user)::getForm, id); + return new ResponseResult(user).run(getSalarySobBackItemWrapper(user)::getForm, id); } /** - * @description 保存薪资账套回算项目 * @return String + * @description 保存薪资账套回算项目 * @author Harryxzy * @date 2022/11/16 15:05 */ @POST @Path("/backitem/save") @Produces(MediaType.APPLICATION_JSON) - public String saveSalarySobBackItem(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody SalarySobBackItemSaveParam saveParam) { + public String saveSalarySobBackItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobBackItemSaveParam saveParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalarySobBackItemWrapper(user)::save, saveParam); + return new ResponseResult>(user).run(getSalarySobBackItemWrapper(user)::save, saveParam); } /**********************************薪资账套的回算项目 end*********************************/ - /**********************************调薪计薪规则 start*********************************/ diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 7aee3ea8b..6965fcd69 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -118,6 +118,14 @@ public class TaxAgentController { return new ResponseResult>>(user).run(getTaxAgentWrapper(user)::list, queryParam); } + @POST + @Path("/listAuth") + @Produces(MediaType.APPLICATION_JSON) + public String selectList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxAgentQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getTaxAgentWrapper(user)::listAuth, queryParam); + } + //查询个税扣缴义务人下面的代缴机构") @GET @Path("/paymentAgency/list") diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index d74a9b124..f34eb171a 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -132,8 +132,8 @@ public class SalarySobWrapper extends Service { * * @return */ - public List listAllByAuth() { - return getSalarySobService(user).listAllByAuth(); + public List listAuth(SalarySobQueryParam param) { + return getSalarySobService(user).listAuth(param); } private void handleSalarySobBackItemHistory(SalarySobListQueryParam queryParam) { diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index ce128d83c..6a0618f3b 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -5,7 +5,6 @@ import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; -import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.hrm.HrmStatus; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; @@ -21,7 +20,6 @@ import com.engine.salary.service.*; import com.engine.salary.service.auth.AuthRoleService; import com.engine.salary.service.auth.AuthRoleServiceImpl; import com.engine.salary.service.impl.*; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -170,6 +168,10 @@ public class TaxAgentWrapper extends Service { } + public List listAuth(TaxAgentQueryParam taxAgentQueryParam) { + return getTaxAgentService(user).listAuth(taxAgentQueryParam); + } + public List> paymentAgencyList(TaxAgentQueryParam queryParam) { // List taxAgentPOS = getTaxAgentService(user).listByIds(queryParam.getIds()); // List paymentAgencyPOS = paymentAgencyService.listAll(currentTenantKey); From a0fb036bcea1bc638460f45db17d8cfb732cd86c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Sep 2024 19:10:40 +0800 Subject: [PATCH 044/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 4 + .../engine/salary/common/BaseQueryParam.java | 3 + .../salary/entity/auth/dto/AuthRoleDTO.java | 15 ++ .../datacollection/dto/AddUpDeductionDTO.java | 5 + .../salaryBill/dto/SalarySendListDTO.java | 22 +- .../salary/service/SalarySendService.java | 1 + .../salary/service/auth/AuthRoleService.java | 2 + .../service/auth/AuthRoleServiceImpl.java | 28 ++- .../salary/service/auth/AuthServiceImpl.java | 4 +- .../impl/AddUpDeductionServiceImpl.java | 210 ++++++------------ .../impl/SalaryArchiveExcelServiceImpl.java | 19 +- .../impl/SalaryArchiveServiceImpl.java | 22 +- .../service/impl/SalarySendServiceImpl.java | 12 + src/com/engine/salary/web/AuthController.java | 8 + .../engine/salary/wrapper/AuthWrapper.java | 4 + .../salary/wrapper/SalarySendWrapper.java | 23 +- 16 files changed, 181 insertions(+), 201 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 80c777de9..b08c0f340 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -29,6 +29,10 @@
+ + + +
diff --git a/src/com/engine/salary/common/BaseQueryParam.java b/src/com/engine/salary/common/BaseQueryParam.java index dd9a8bc3c..6bf519434 100644 --- a/src/com/engine/salary/common/BaseQueryParam.java +++ b/src/com/engine/salary/common/BaseQueryParam.java @@ -1,5 +1,6 @@ package com.engine.salary.common; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.sys.entity.vo.OrderRuleVO; import lombok.AllArgsConstructor; import lombok.Data; @@ -24,4 +25,6 @@ public class BaseQueryParam { * 排序规则 */ private OrderRuleVO orderRule; + + private AuthFilterTypeEnum filterType ; } diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java index 0e228e77f..cb680172f 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java @@ -1,11 +1,15 @@ package com.engine.salary.entity.auth.dto; import com.engine.salary.annotation.TableTitle; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** * 角色 */ @@ -23,6 +27,16 @@ public class AuthRoleDTO { @TableTitle(title = "描述", dataIndex = "description", key = "description") private String description; + /** + * 扣缴义务人资源 + */ + private List taxAgentIds; + + /** + * 账套资源 + */ + private List sobIds; + @TableTitle(title = "成员", dataIndex = "members", key = "members") private Integer members; @@ -35,4 +49,5 @@ public class AuthRoleDTO { @TableTitle(title = "数据", dataIndex = "datas", key = "datas") private Integer datas; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java index b16ebacf6..d0124efdf 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java @@ -9,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 数据采集-累计专项附加扣除 *

Copyright: Copyright (c) 2022

@@ -24,6 +26,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-4275-adn9-7d06e54y67j8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "查看明细") }) +@Auth(page = "addUpDeduction") public class AddUpDeductionDTO { /** @@ -164,4 +167,6 @@ public class AddUpDeductionDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private String operate; + + private Set opts; } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java index 915045c89..ff2bb7d2a 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendListDTO.java @@ -1,8 +1,10 @@ package com.engine.salary.entity.salaryBill.dto; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.SalaryTableOperate; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; @@ -10,6 +12,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * @Description: 工资单发放 @@ -19,10 +22,11 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "a4f85287-289dff07669d7a23de0ef88d2f7129e7", operates = { - @SalaryTableOperate(index = "0", text = "发放" ), + @SalaryTableOperate(index = "0", text = "发放"), @SalaryTableOperate(index = "1", text = "查看详情"), @SalaryTableOperate(index = "2", text = "更新模板") }) +@Auth(page = "salaryBill", checkType = AuthCheckTypeEnum.SOB, sobIdField = "salarySobId") public class SalarySendListDTO { // 主键id @@ -37,7 +41,7 @@ public class SalarySendListDTO { // ) // @JsonFormat(pattern = "yyyy-MM") -// 薪资所属月 + // 薪资所属月 @SalaryTableColumn(text = "薪资所属月", width = "10%", column = "salaryYearMonth") private Date salaryYearMonth; @@ -54,15 +58,15 @@ public class SalarySendListDTO { // tableColumn = @TableColumn(width = "35%") // ) -// 薪资账套 + // 薪资账套 @SalaryTableColumn(text = "薪资账套", width = "35%", column = "username") private String salarySob; -// 核算次数") + // 核算次数") // 核算次数 private String acctTimes; -// 工资单模板") + // 工资单模板") // @WeaFormat( // label = "工资单模板", // labelId = 93214, @@ -72,7 +76,7 @@ public class SalarySendListDTO { // 工资单模板 private String template; -// 工资单模板Id") + // 工资单模板Id") // 工资单模板Id @SalaryTableColumn(text = "工资单模板id", width = "0%", column = "templateId", display = false) private Long templateId; @@ -91,7 +95,7 @@ public class SalarySendListDTO { @SalaryTableColumn(text = "发送总数", width = "0%", column = "sendTotal", display = false) private Integer sendTotal; -// 已发放") + // 已发放") // @WeaFormat( // label = "已发放", // labelId = 93212, @@ -101,7 +105,7 @@ public class SalarySendListDTO { @SalaryTableColumn(text = "已发放", width = "15%", column = "sendSituation") private String sendSituation; -// 最后发送时间") + // 最后发送时间") // @WeaFormat( // label = "最后发送时间", // labelId = 93213, @@ -146,5 +150,5 @@ public class SalarySendListDTO { */ private Integer ackFeedbackStatus; - + private Set opts; } diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index 4f570039b..15747572a 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -52,6 +52,7 @@ public interface SalarySendService { * @return */ PageInfo listPage(SalarySendQueryParam queryParam); + List list(SalarySendQueryParam queryParam); /** * 工资单发放 diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index 98a43b0fa..d94b737a1 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -19,6 +19,8 @@ public interface AuthRoleService { PageInfo roleList(AuthRoleListQueryParam param); + AuthRoleDTO getRole(Long id); + /** * 添加角色 * @param param diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 1ac54bf8b..345da7ae1 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -24,6 +24,7 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import weaver.hrm.User; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @@ -79,7 +80,32 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { } @Override - public Long saveRole(AuthRoleSaveParam param) { + public AuthRoleDTO getRole(Long id) { + AuthRolePO po = getAuthRoleMapper().getById(id); + Long roleId = po.getId(); + List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); + + List taxAgentIds = new ArrayList<>(); + List sobIds = new ArrayList<>(); + authResources.forEach(resource -> { + if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { + taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { + sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } + }); + + return AuthRoleDTO.builder() + .id(roleId) + .name(po.getName()) + .description(po.getDescription()) + .taxAgentIds(taxAgentIds) + .sobIds(sobIds) + .build(); + } + + @Override + public Long saveRole(AuthRoleSaveParam param) { Date now = new Date(); Long id = param.getId(); String name = param.getName(); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 2d0e70dfa..ba55a4644 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -67,6 +67,7 @@ public class AuthServiceImpl extends Service implements AuthService { //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); +// Boolean isChief = false; if (isChief) { if (filterType == AuthFilterTypeEnum.DATA_OPT) { list.forEach(t -> { @@ -95,7 +96,8 @@ public class AuthServiceImpl extends Service implements AuthService { AuthCheckTypeEnum checkType = auth.checkType(); //给各管理员赋值对应的扣缴义务人权限 - List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); +// List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); + List adminTaxAgentIds = new ArrayList<>(); if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { Iterator iterator = list.iterator(); if (checkType == AuthCheckTypeEnum.TAX || checkType == AuthCheckTypeEnum.TAX_EMP) { diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 6a7e15884..36db3ed92 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -32,11 +32,14 @@ import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AddUpDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -116,6 +119,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction return ServiceUtil.getService(SpecialAddDeductionServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + + @Override public Map getSearchCondition(Map params) { Map apidatas = new HashMap(); @@ -219,12 +227,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction Date now = new Date(); //待插入数据库对象 - AddUpDeduction addUpDeduction = AddUpDeduction.builder() - .tenantKey(DEFAULT_TENANT_KEY) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .declareMonth(declareMonth).build(); + AddUpDeduction addUpDeduction = AddUpDeduction.builder().tenantKey(DEFAULT_TENANT_KEY).createTime(now).updateTime(now).creator((long) user.getUID()).declareMonth(declareMonth).build(); //异常点数量 int errorSum = 0; @@ -256,9 +259,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction errorSum += 1; } else if (employeeSameIds.size() > 1) { //存在离职和在职状态取在职状态 - employeeSameIds = employeeSameIds.stream() - .filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())) - .collect(Collectors.toList()); + employeeSameIds = employeeSameIds.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).collect(Collectors.toList()); if (employeeSameIds.size() != 1) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowIndex + "员工信息不存在或者存在多个员工"); @@ -480,8 +481,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + addUpDeduction.getId()); loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); loggerContext.setOperateTypeName(name); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil - .getI18nLabel(0, "编辑")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil.getI18nLabel(0, "编辑")); loggerContext.setOldValues(byId); loggerContext.setNewValues(newValue); loggerContext.setUser(user); @@ -518,12 +518,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction List taxAgentEmployees = Lists.newArrayList(); Date now = new Date(); //待插入数据库对象 - AddUpDeduction addUpDeduction = AddUpDeduction.builder() - .tenantKey(DEFAULT_TENANT_KEY) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .declareMonth(declareMonth).build(); + AddUpDeduction addUpDeduction = AddUpDeduction.builder().tenantKey(DEFAULT_TENANT_KEY).createTime(now).updateTime(now).creator((long) user.getUID()).declareMonth(declareMonth).build(); boolean employeeSameId = employees.stream().anyMatch(e -> Objects.equals(e.getEmployeeId(), addUpDeductionRecordParam.getEmployeeId())); if (!employeeSameId) { throw new SalaryRunTimeException("员工信息不存在"); @@ -647,8 +642,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + e.getId()); loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil - .getI18nLabel(0, "删除")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil.getI18nLabel(0, "删除")); loggerContext.setOldValues(e); loggerContext.setUser(user); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); @@ -702,16 +696,14 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // 记录日志 Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); + List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())).map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetName(name); loggerContext.setOperateType(OperateTypeEnum.CLEAR.getValue()); loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "一键清空")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil - .getI18nLabel(0, "一键清空:") + name); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil.getI18nLabel(0, "一键清空:") + name); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); } @@ -745,8 +737,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction try { Util_DataCache.setObjVal(cacheKey, true); //如果是定时任务直接查询所有,isAdmin传true - boolean isChief = Boolean.TRUE.equals(isAdmin) - || getTaxAgentService(user).isChief((long) user.getUID()); + boolean isChief = Boolean.TRUE.equals(isAdmin) || getTaxAgentService(user).isChief((long) user.getUID()); Collection taxAgents; if (isChief) { taxAgents = getTaxAgentService(user).listAll(); @@ -759,25 +750,18 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } LocalDateTime yearMonthTime = DateUtil.toLocalDateTime(yearMonth); //设置时间到下一年1月1号 - Instant instant = yearMonthTime.plusYears(1L) - .withMonth(1).withDayOfMonth(1) - .atZone(ZoneOffset.systemDefault()).toInstant(); + Instant instant = yearMonthTime.plusYears(1L).withMonth(1).withDayOfMonth(1).atZone(ZoneOffset.systemDefault()).toInstant(); Date nextYearStart = Date.from(instant); - int countByDeclareAfter = getAddUpDeductionMapper() - .countByDeclareAfter(yearMonth, nextYearStart, - taxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList()) - ); + int countByDeclareAfter = getAddUpDeductionMapper().countByDeclareAfter(yearMonth, nextYearStart, taxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList())); if (countByDeclareAfter > 0) { throw new SalaryRunTimeException("无法累计,请检查当前累计年度内该月后是否有累计专项附加扣除记录!"); } List updateList = new ArrayList<>(); List insertList = new ArrayList<>(); List errorMessages = new ArrayList<>(); - List accountedEmployeeData = - getAccountedEmployeeData(DateUtil.format(yearMonth, "yyyy-MM")); + List accountedEmployeeData = getAccountedEmployeeData(DateUtil.format(yearMonth, "yyyy-MM")); for (TaxAgentPO taxAgent : taxAgents) { - List employeePOs = getSpecialAddDeductionService(user) - .getSpecialAddDeductionPOByEmployee(null, taxAgent.getId()); + List employeePOs = getSpecialAddDeductionService(user).getSpecialAddDeductionPOByEmployee(null, taxAgent.getId()); //获取上月员工数据,用于累加 @@ -797,17 +781,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction employeePOs.forEach(employeePO -> { Long employeeId = employeePO.getEmployeeId(); // 如果该员工当前月份已经核算,不做累计 - SalaryAcctEmployeePO anyAccountedEmployee = accountedEmployeeData.stream() - .filter(e -> e.getEmployeeId().equals(employeeId)) - .filter(e -> e.getTaxAgentId().equals(taxAgent.getId())) - .findAny().orElse(null); + SalaryAcctEmployeePO anyAccountedEmployee = accountedEmployeeData.stream().filter(e -> e.getEmployeeId().equals(employeeId)).filter(e -> e.getTaxAgentId().equals(taxAgent.getId())).findAny().orElse(null); if (anyAccountedEmployee != null) { errorMessages.add(employeeId); return; } - AddUpDeduction addUpDeduction = Optional.ofNullable(lastEmpInfo.get(employeeId)) - .flatMap(list -> list.stream().findFirst()) - .orElseGet(AddUpDeduction::new); + AddUpDeduction addUpDeduction = Optional.ofNullable(lastEmpInfo.get(employeeId)).flatMap(list -> list.stream().findFirst()).orElseGet(AddUpDeduction::new); this.combine(addUpDeduction, employeePO); addUpDeduction.setEmployeeId(employeeId); @@ -817,9 +796,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction addUpDeduction.setTenantKey(DEFAULT_TENANT_KEY); //确认当期是否有已经累计的记录 - AddUpDeduction oldInfo = Optional.ofNullable(currentEmpInfo.get(employeeId)) - .flatMap(c -> c.stream().findFirst()) - .orElse(null); + AddUpDeduction oldInfo = Optional.ofNullable(currentEmpInfo.get(employeeId)).flatMap(c -> c.stream().findFirst()).orElse(null); Date now = new Date(); if (oldInfo == null) { addUpDeduction.setCreateTime(now); @@ -833,10 +810,8 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } }); } - Lists.partition(insertList, 100) - .forEach(l -> getAddUpDeductionMapper().insertData((List) l)); - Lists.partition(updateList, 100) - .forEach(l -> getAddUpDeductionMapper().updateDataAndDeclareMonth((List) l)); + Lists.partition(insertList, 100).forEach(l -> getAddUpDeductionMapper().insertData((List) l)); + Lists.partition(updateList, 100).forEach(l -> getAddUpDeductionMapper().updateDataAndDeclareMonth((List) l)); // 记录日志 // 根据月份、人员id查出保存的数据 @@ -863,11 +838,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } if (!errorMessages.isEmpty()) { - String userNames = getSalaryEmployeeService(user) - .getEmployeeByIdsAll(errorMessages) - .stream() - .map(DataCollectionEmployee::getUsername) - .collect(Collectors.joining(",")); + String userNames = getSalaryEmployeeService(user).getEmployeeByIdsAll(errorMessages).stream().map(DataCollectionEmployee::getUsername).collect(Collectors.joining(",")); return "一键累计完成!员工" + userNames + "在该年月已核算归档,跳过本次累计"; } return "一键累计完成!"; @@ -907,16 +878,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } private String plus(String var0, String var1) { - return SalaryEntityUtil.string2BigDecimalDefault0(var0) - .add(SalaryEntityUtil.string2BigDecimalDefault0(var1)) - .toString(); + return SalaryEntityUtil.string2BigDecimalDefault0(var0).add(SalaryEntityUtil.string2BigDecimalDefault0(var1)).toString(); } private Map> getEmpInfoByYearMonth(TaxAgentPO taxAgent, List employeePOs, YearMonth lastMonth) { List addUpDeductionList = getAddUpDeductionList(lastMonth, employeePOs.stream().map(SpecialAddDeductionPO::getEmployeeId).collect(Collectors.toList()), Collections.singletonList(taxAgent.getId())); - return addUpDeductionList.stream() - .filter(addUpDeduction -> taxAgent.getId().equals(addUpDeduction.getTaxAgentId())) - .collect(Collectors.groupingBy(AddUpDeduction::getEmployeeId)); + return addUpDeductionList.stream().filter(addUpDeduction -> taxAgent.getId().equals(addUpDeduction.getTaxAgentId())).collect(Collectors.groupingBy(AddUpDeduction::getEmployeeId)); } @@ -975,26 +942,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam.setDeclareMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpDeductionDTO.class); - } - // 过滤义务人筛选框 - if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { - taxAgentIdsAsAdmin = taxAgentIdsAsAdmin.stream().filter(id -> queryParam.getTaxAgentIds().contains(id)).collect(Collectors.toList()); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } - //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); List list = getAddUpDeductionMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AddUpDeductionDTO.class); PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionDTO.class); encryptUtil.decryptList(pageInfo.getList(), AddUpDeductionDTO.class); return pageInfo; @@ -1014,8 +967,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } List list = getAddUpDeductionMapper().recordList(queryParam); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), - list, AddUpDeductionRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionRecordDTO.class); encryptUtil.decryptList(page.getList(), AddUpDeductionRecordDTO.class); return page; } @@ -1081,26 +1033,23 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); //查询详细信息 List list = new AddUpDeductionBiz().recordList(param); - final List> dataRowList = Optional.ofNullable(list) - .map(List::stream) - .map(operatorStream -> operatorStream.map(dto -> { - List cellList = new ArrayList<>(); - cellList.add(Util.null2String(dto.getUsername())); - cellList.add(Util.null2String(dto.getDeclareMonth() == null ? "" : formatter.format(dto.getDeclareMonth()))); - cellList.add(Util.null2String(dto.getTaxAgentName())); - cellList.add(Util.null2String(dto.getDepartmentName())); - cellList.add(Util.null2String(dto.getJobNum())); - cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) :Util.null2String(dto.getAddUpContinuingEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) :Util.null2String(dto.getAddUpHousingLoanInterest())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) :Util.null2String(dto.getAddUpHousingRent())); - cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) :Util.null2String(dto.getAddUpSupportElderly())); - cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) :Util.null2String(dto.getAddUpIllnessMedical())); - cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) :Util.null2String(dto.getAddUpInfantCare())); + final List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { + List cellList = new ArrayList<>(); + cellList.add(Util.null2String(dto.getUsername())); + cellList.add(Util.null2String(dto.getDeclareMonth() == null ? "" : formatter.format(dto.getDeclareMonth()))); + cellList.add(Util.null2String(dto.getTaxAgentName())); + cellList.add(Util.null2String(dto.getDepartmentName())); + cellList.add(Util.null2String(dto.getJobNum())); + cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); + cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); + cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); + cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); - return cellList; - }).collect(Collectors.toList())) - .orElse(Collections.emptyList()); + return cellList; + }).collect(Collectors.toList())).orElse(Collections.emptyList()); // 开启分权并且不是薪酬模块总管理员 @@ -1112,8 +1061,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // 作为管理员 taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) // 作为分管理员 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId()) - ).collect(Collectors.toList()); + || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId())).collect(Collectors.toList()); } @@ -1137,22 +1085,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction public XSSFWorkbook downloadTemplate(boolean isChief, AddUpDeductionQueryParam queryParam) { String sheetName = SalaryI18nUtil.getI18nLabel(101603, "累计专项附加扣除导入模板"); - String[] header = { - SalaryI18nUtil.getI18nLabel(85429, "姓名"), - SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), - SalaryI18nUtil.getI18nLabel(86185, "部门"), - SalaryI18nUtil.getI18nLabel(86186, "手机号"), - SalaryI18nUtil.getI18nLabel(86317, "工号"), - SalaryI18nUtil.getI18nLabel(86318, "证件号码"), - SalaryI18nUtil.getI18nLabel(86319, "入职日期"), - SalaryI18nUtil.getI18nLabel(86321, "累计子女教育"), - SalaryI18nUtil.getI18nLabel(86323, "累计继续教育"), - SalaryI18nUtil.getI18nLabel(86324, "累计住房贷款利息"), - SalaryI18nUtil.getI18nLabel(86325, "累计住房租金"), - SalaryI18nUtil.getI18nLabel(86326, "累计赡养老人"), - SalaryI18nUtil.getI18nLabel(105142, "累计大病医疗"), - SalaryI18nUtil.getI18nLabel(105142, "累计婴幼儿照护") - }; + String[] header = {SalaryI18nUtil.getI18nLabel(85429, "姓名"), SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), SalaryI18nUtil.getI18nLabel(86185, "部门"), SalaryI18nUtil.getI18nLabel(86186, "手机号"), SalaryI18nUtil.getI18nLabel(86317, "工号"), SalaryI18nUtil.getI18nLabel(86318, "证件号码"), SalaryI18nUtil.getI18nLabel(86319, "入职日期"), SalaryI18nUtil.getI18nLabel(86321, "累计子女教育"), SalaryI18nUtil.getI18nLabel(86323, "累计继续教育"), SalaryI18nUtil.getI18nLabel(86324, "累计住房贷款利息"), SalaryI18nUtil.getI18nLabel(86325, "累计住房租金"), SalaryI18nUtil.getI18nLabel(86326, "累计赡养老人"), SalaryI18nUtil.getI18nLabel(105142, "累计大病医疗"), SalaryI18nUtil.getI18nLabel(105142, "累计婴幼儿照护")}; List headerList = Arrays.asList(header); @@ -1225,31 +1158,27 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // 作为管理员 taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) // 作为分管理员 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId()) - ).collect(Collectors.toList()); + || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId())).collect(Collectors.toList()); } - List> dataRowList = Optional.ofNullable(list) - .map(List::stream) - .map(operatorStream -> operatorStream.map(dto -> { - List cellList = new ArrayList<>(); - cellList.add(Util.null2String(dto.getUsername())); - cellList.add(Util.null2String(dto.getTaxAgentName())); - cellList.add(Util.null2String(dto.getDepartmentName())); - cellList.add(Util.null2String(dto.getMobile())); - cellList.add(Util.null2String(dto.getJobNum())); - cellList.add(Util.null2String(dto.getIdNo())); - cellList.add(Util.null2String(dto.getHiredate())); - cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) :Util.null2String(dto.getAddUpContinuingEducation())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) :Util.null2String(dto.getAddUpHousingLoanInterest())); - cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) :Util.null2String(dto.getAddUpHousingRent())); - cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) :Util.null2String(dto.getAddUpSupportElderly())); - cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) :Util.null2String(dto.getAddUpIllnessMedical())); - cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) :Util.null2String(dto.getAddUpInfantCare())); - return cellList; - }).collect(Collectors.toList())) - .orElse(Collections.emptyList()); + List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { + List cellList = new ArrayList<>(); + cellList.add(Util.null2String(dto.getUsername())); + cellList.add(Util.null2String(dto.getTaxAgentName())); + cellList.add(Util.null2String(dto.getDepartmentName())); + cellList.add(Util.null2String(dto.getMobile())); + cellList.add(Util.null2String(dto.getJobNum())); + cellList.add(Util.null2String(dto.getIdNo())); + cellList.add(Util.null2String(dto.getHiredate())); + cellList.add(NumberUtil.isNumber(dto.getAddUpChildEducation()) ? new BigDecimal(dto.getAddUpChildEducation()) : Util.null2String(dto.getAddUpChildEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpContinuingEducation()) ? new BigDecimal(dto.getAddUpContinuingEducation()) : Util.null2String(dto.getAddUpContinuingEducation())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingLoanInterest()) ? new BigDecimal(dto.getAddUpHousingLoanInterest()) : Util.null2String(dto.getAddUpHousingLoanInterest())); + cellList.add(NumberUtil.isNumber(dto.getAddUpHousingRent()) ? new BigDecimal(dto.getAddUpHousingRent()) : Util.null2String(dto.getAddUpHousingRent())); + cellList.add(NumberUtil.isNumber(dto.getAddUpSupportElderly()) ? new BigDecimal(dto.getAddUpSupportElderly()) : Util.null2String(dto.getAddUpSupportElderly())); + cellList.add(NumberUtil.isNumber(dto.getAddUpIllnessMedical()) ? new BigDecimal(dto.getAddUpIllnessMedical()) : Util.null2String(dto.getAddUpIllnessMedical())); + cellList.add(NumberUtil.isNumber(dto.getAddUpInfantCare()) ? new BigDecimal(dto.getAddUpInfantCare()) : Util.null2String(dto.getAddUpInfantCare())); + return cellList; + }).collect(Collectors.toList())).orElse(Collections.emptyList()); return dataRowList; } @@ -1282,10 +1211,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction YearMonth month = YearMonth.parse(yearMonth); LocalDate salaryMonthDate = month.atDay(1); LocalDate salaryMonthEndDate = month.atEndOfMonth(); - List salaryAcctRecords = getSalaryAcctRecordService(user).listByTaxCycle( - LocalDateRange.builder().fromDate(SalaryDateUtil.localDateToDate(salaryMonthDate)) - .endDate(SalaryDateUtil.localDateToDate(salaryMonthEndDate)).build(), - null); + List salaryAcctRecords = getSalaryAcctRecordService(user).listByTaxCycle(LocalDateRange.builder().fromDate(SalaryDateUtil.localDateToDate(salaryMonthDate)).endDate(SalaryDateUtil.localDateToDate(salaryMonthEndDate)).build(), null); salaryAcctRecords.forEach(e -> { boolean isAccounted = e.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue(); if (isAccounted) { diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index acc81e362..3257860d9 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -21,11 +21,14 @@ import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -89,6 +92,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + private SalaryArchiveBiz salaryArchiveMapper = new SalaryArchiveBiz(); private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz(); @@ -311,17 +318,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch rows.add(header); // 获取所有个税扣缴义务人 Collection taxAgentList = getTaxAgentService(user).listAll(); - Collection salaryArchives = salaryArchiveService(user).getSalaryArchiveList(queryParam); + List salaryArchives = salaryArchiveService(user).getSalaryArchiveList(queryParam); + salaryArchives = getAuthService(user).auth(salaryArchives, AuthFilterTypeEnum.ADMIN_DATA, SalaryArchiveListDTO.class); - long employeeId = user.getUID(); - if (getTaxAgentService(user).isNeedAuth(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - salaryArchives = salaryArchives.stream() - .filter(f -> - // 作为管理员 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } if (queryParam.getHasData()) { List> listMaps = salaryArchiveService(user) .buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 7efe48768..13c4de06f 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -547,29 +547,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - Collection salaryArchives = getSalaryArchiveList(queryParam); + List salaryArchives = getSalaryArchiveList(queryParam); //分权 - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(employeeId); - if (!adminEnable) { - salaryArchives = new ArrayList<>(); - } else { + salaryArchives = getAuthService(user).auth(salaryArchives, AuthFilterTypeEnum.QUERY_DATA, SalaryArchiveListDTO.class); - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //获取管理扣缴单位薪资档案 - salaryArchives = salaryArchives.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - //过滤档案状态 - if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) { - //过滤档案状态 - salaryArchives = salaryArchives.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList()); - } - } - } List> listMaps = buildSalaryArchiveData(salaryArchives, taxAgentList, salaryItems, Boolean.FALSE); // 组装数据 diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 5ee35419d..bcc0f71d1 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -58,6 +58,8 @@ import com.engine.salary.mapper.salarybill.SalarySendInfoMapper; import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -199,6 +201,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SalarySendPO getById(Long salarySendId) { return mapper.getById(salarySendId); @@ -430,6 +436,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return pageInfo; } + @Override + public List list(SalarySendQueryParam queryParam) { + List list = mapper.list(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), SalarySendListDTO.class); + } + @Override public SalarySendBaseInfoDTO getBaseInfo(Long id) { SalarySendPO salarySend = mapper.getById(id); diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 0c95482e7..d03c668c3 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -45,6 +45,14 @@ public class AuthController { return new ResponseResult>(user).run(getAuthWrapper(user)::roleList, param); } + @GET + @Path("/role/getRole") + @Produces(MediaType.APPLICATION_JSON) + public String getRole(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::getRole, id); + } + @POST @Path("/role/save") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 9f0485f56..5e3faa0e0 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -53,6 +53,10 @@ public class AuthWrapper extends Service { return getAuthRoleService(user).roleList(param); } + public AuthRoleDTO getRole(Long id) { + return getAuthRoleService(user).getRole(id); + } + public Long saveRole(AuthRoleSaveParam param) { ValidUtil.doValidator(param); return getAuthRoleService(user).saveRole(param); diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 0fccfecd0..3e2983871 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -22,9 +22,9 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarybill.SalarySendStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; -import com.engine.salary.mapper.salarybill.SalarySendMapper; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; import com.engine.salary.sys.constant.SalarySysConstant; @@ -33,7 +33,6 @@ import com.engine.salary.sys.enums.PayrollCheckTypeEnum; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryTokenUtil; import com.engine.salary.util.page.PageInfo; @@ -112,23 +111,11 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy try { queryParam.setSalaryMonth(queryParam.getSalaryYearMonth().stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryMonthDate(queryParam.getSalaryYearMonth().stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); - //分权,获取当前人员管理的账套 - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - List list = new ArrayList<>(); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (CollectionUtils.isNotEmpty(salarySobIds)) { - queryParam.setSalarySobIds(salarySobIds); - SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - list = salarySendMapper.list(queryParam); - } - } else { - SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - list = salarySendMapper.list(queryParam); - } + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); - list.stream().forEach(dto -> { + List list = getSalarySendService(user).list(queryParam); + + list.forEach(dto -> { // 回算过,但是查看的是普通工资单(不能查看详情);回算过,但是查看的是回算工资单(可以发);记录没回算过(可以发) if(Objects.equals(dto.getSalaryAcctRecordType(), NumberUtils.INTEGER_ONE) && Objects.equals(dto.getSalaryAcctType(),NumberUtils.INTEGER_ZERO)){ dto.setCanSeeDetail(false); From 3614f89982f61f7ef28724eac8b5b5628fffe52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Sep 2024 13:37:21 +0800 Subject: [PATCH 045/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/vo/Permission.java | 20 ++++++++++++++++ .../service/auth/AuthDataServiceImpl.java | 12 +++++----- .../service/auth/AuthOptServiceImpl.java | 4 ++-- .../salary/service/auth/AuthServiceImpl.java | 24 ++++++++++++------- 4 files changed, 43 insertions(+), 17 deletions(-) diff --git a/src/com/engine/salary/entity/auth/vo/Permission.java b/src/com/engine/salary/entity/auth/vo/Permission.java index 14fe635bf..73a5ca8e5 100644 --- a/src/com/engine/salary/entity/auth/vo/Permission.java +++ b/src/com/engine/salary/entity/auth/vo/Permission.java @@ -12,9 +12,29 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor public class Permission { + /** + * 是否开启了分权 + */ + private boolean isOpenDevolution; + /** + * 是否总管理员 + */ + private boolean isChief; + + /** + * 是否扣缴义务人管理员 + */ + private boolean isAdminEnable; + + /** + * 当前页面是否有权限 + */ private boolean able; + /** + * 权限项 + */ private List opts; } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index d48303e62..737a1fd06 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -65,7 +65,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { throw new SalaryRunTimeException("角色不存在!"); } - if(param.getId() == null){ + if (param.getId() == null) { AuthDataPO dataPO = AuthDataPO.builder() .id(IdGenerator.generate()) .roleId(param.getRoleId()) @@ -73,7 +73,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { .targetType(param.getTargetType().getValue()) .target(param.getTarget()) .targetName(param.getTargetName()) - .sortedIndex(param.getSortedIndex()) + .sortedIndex(param.getSortedIndex() == null ? 0 : param.getSortedIndex()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -81,7 +81,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) .build(); getAuthDataMapper().insertIgnoreNull(dataPO); - }else{ + } else { getAuthDataMapper().getById(param.getId()); AuthDataPO dataPO = AuthDataPO.builder() .id(param.getId()) @@ -89,7 +89,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { .targetType(param.getTargetType().getValue()) .target(param.getTarget()) .targetName(param.getTargetName()) - .sortedIndex(param.getSortedIndex()) + .sortedIndex(param.getSortedIndex() == null ? 0 : param.getSortedIndex()) .creator((long) user.getUID()) .updateTime(now) .deleteType(0) @@ -101,7 +101,7 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { @Override public void delete(List ids) { - if(CollectionUtil.isNotEmpty(ids)){ + if (CollectionUtil.isNotEmpty(ids)) { getAuthDataMapper().deleteByIds(ids); } } @@ -152,6 +152,6 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { @Override public List listRoleData(Long roleId) { - return getAuthRoleDataMapper().listRoleData(roleId); + return getAuthRoleDataMapper().listRoleData(roleId); } } diff --git a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java index 03335b8e2..f482a0096 100644 --- a/src/com/engine/salary/service/auth/AuthOptServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthOptServiceImpl.java @@ -38,8 +38,8 @@ public class AuthOptServiceImpl extends Service implements AuthOptService { Map> pageOpts = SalaryEntityUtil.group2Map(authOptPOS, AuthOptPO::getPage, AuthOptPO::getOpt); XStream xStream = new XStream(); String resource = GCONST.getRootPath() + "WEB-INF" + File.separatorChar + "salaryoptconfig.xml"; - File file = new File("H:\\code\\salary\\resource\\WEB-INF\\salaryoptconfig.xml"); -// File file = new File(resource); +// File file = new File("H:\\code\\salary\\resource\\WEB-INF\\salaryoptconfig.xml"); + File file = new File(resource); xStream.addPermission(AnyTypePermission.ANY); xStream.processAnnotations(AuthOptDTO.class); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index ba55a4644..ed1d78075 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -277,27 +277,33 @@ public class AuthServiceImpl extends Service implements AuthService { @Override public Permission permission(String page) { long uid = user.getUID(); - boolean able = false; List opts = new ArrayList<>(); + //获取是否开启分权模式 + Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief(uid); - //给各管理员赋值对应的扣缴义务人权限 Boolean adminEnable = getTaxAgentService(user).isAdminEnable(uid); + boolean able = false; + + //如果是管理员,赋值管理权限返回 if (isChief || adminEnable) { opts.add("admin"); - return Permission.builder().able(true).opts(opts).build(); - } - - opts = getAuthMapper().getOptsByPage(uid, page); - - if (CollectionUtil.isNotEmpty(opts)) { able = true; + } else { + opts = getAuthMapper().getOptsByPage(uid, page); + able = CollectionUtil.isNotEmpty(opts); } - return Permission.builder().able(able).opts(opts).build(); + return Permission.builder() + .isOpenDevolution(isOpenDevolution) + .isChief(isChief) + .isAdminEnable(adminEnable) + .able(able) + .opts(opts) + .build(); } } From 5e67b5937d770459b8721f24f1187757783394db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Sep 2024 14:42:08 +0800 Subject: [PATCH 046/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/auth/AuthServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index ed1d78075..9d9d1f09b 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -96,8 +96,8 @@ public class AuthServiceImpl extends Service implements AuthService { AuthCheckTypeEnum checkType = auth.checkType(); //给各管理员赋值对应的扣缴义务人权限 -// List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); - List adminTaxAgentIds = new ArrayList<>(); + List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); +// List adminTaxAgentIds = new ArrayList<>(); if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { Iterator iterator = list.iterator(); if (checkType == AuthCheckTypeEnum.TAX || checkType == AuthCheckTypeEnum.TAX_EMP) { From c7659e07173904424582b8b7155e0b96d644c224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 11 Sep 2024 10:28:20 +0800 Subject: [PATCH 047/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=87=87=E9=9B=86?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 16 ++++++ .../engine/salary/biz/AddUpSituationBiz.java | 19 ------- .../salary/entity/auth/vo/Permission.java | 6 +-- .../datacollection/dto/AddUpSituationDTO.java | 5 ++ .../dto/OtherDeductionListDTO.java | 6 +++ .../service/auth/AuthRoleServiceImpl.java | 1 + .../impl/AddUpSituationServiceImpl.java | 32 +++++------- .../impl/OtherDeductionServiceImpl.java | 30 ++++------- .../impl/SalaryArchiveServiceImpl.java | 1 + .../service/impl/SalarySobServiceImpl.java | 52 +++++++------------ 10 files changed, 76 insertions(+), 92 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index b08c0f340..006a55326 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -33,6 +33,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/com/engine/salary/biz/AddUpSituationBiz.java b/src/com/engine/salary/biz/AddUpSituationBiz.java index 68515ff23..41068ef88 100644 --- a/src/com/engine/salary/biz/AddUpSituationBiz.java +++ b/src/com/engine/salary/biz/AddUpSituationBiz.java @@ -2,11 +2,9 @@ package com.engine.salary.biz; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; -import com.engine.salary.entity.datacollection.dto.AddUpSituationDTO; import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; import com.engine.salary.entity.datacollection.param.AddUpSituationQueryParam; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; -import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; @@ -20,23 +18,6 @@ public class AddUpSituationBiz extends BaseBean { private EncryptUtil encryptUtil = new EncryptUtil(); - /** - * 关联查询查询列表 - * - * @param param - * @return - */ - public List list(AddUpSituationQueryParam param) { - SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); - try { - AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); - List list = mapper.list(param); - encryptUtil.decryptList(list, AddUpSituationDTO.class); - return SalaryI18nUtil.i18nList(list); - } finally { - sqlSession.close(); - } - } /** * 条件查询 diff --git a/src/com/engine/salary/entity/auth/vo/Permission.java b/src/com/engine/salary/entity/auth/vo/Permission.java index 73a5ca8e5..6faaa3a62 100644 --- a/src/com/engine/salary/entity/auth/vo/Permission.java +++ b/src/com/engine/salary/entity/auth/vo/Permission.java @@ -15,17 +15,17 @@ public class Permission { /** * 是否开启了分权 */ - private boolean isOpenDevolution; + private Boolean isOpenDevolution; /** * 是否总管理员 */ - private boolean isChief; + private Boolean isChief; /** * 是否扣缴义务人管理员 */ - private boolean isAdminEnable; + private Boolean isAdminEnable; /** * 当前页面是否有权限 diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java index bd4a80aaa..7d0b347dd 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java @@ -10,6 +10,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 数据采集-累计情况表 */ @@ -20,6 +22,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-7841-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "查看明细") }) +@Auth(page = "addUpSituation") public class AddUpSituationDTO { //主键id @JsonSerialize(using = ToStringSerializer.class) @@ -216,4 +219,6 @@ public class AddUpSituationDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private String operate; + + private Set opts; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java index 94f3580d0..a3c68530c 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java @@ -2,12 +2,15 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.util.excel.ExcelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 数据采集-其他免税扣除列表 *

Copyright: Copyright (c) 2022

@@ -23,6 +26,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "查看明细") }) +@Auth(page = "otherDeduction", checkType = AuthCheckTypeEnum.TAX_EMP) public class OtherDeductionListDTO { @@ -119,4 +123,6 @@ public class OtherDeductionListDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private String operate; + + private Set opts; } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 345da7ae1..916ba8106 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -68,6 +68,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { return AuthRoleDTO.builder().id(roleId) .name(po.getName()) + .description(po.getDescription()) .members(authRoleEmpDTOS.size()) .opts(authOptPOS.size()) .datas(authRoleDataDTOS.size()) diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index be0924a5d..5851987cf 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -25,6 +25,7 @@ import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AddUpSituationMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; @@ -32,6 +33,8 @@ import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.AddUpSituationService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -98,6 +101,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public Map getSearchCondition() { Map apidatas = new HashMap(); @@ -197,19 +204,12 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpSituationDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } List list = getAddUpSituationMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AddUpSituationDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpSituationDTO.class); encryptUtil.decryptList(page.getList(), AddUpSituationDTO.class); + SalaryI18nUtil.i18nList(list); return page; } @@ -302,14 +302,10 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = biz.list(param); - // 开启分权并且不是薪酬模块总管理员 - if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } + List list = getAddUpSituationMapper().list(param); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, AddUpSituationDTO.class); + encryptUtil.decryptList(list, AddUpSituationDTO.class); + SalaryI18nUtil.i18nList(list); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index d376e4af9..95daa72a2 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.OtherDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; @@ -28,6 +29,8 @@ import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.OtherDeductionService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -96,6 +99,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public OtherDeductionPO getById(Long id) { return getOtherDeductionMapper().getById(id); @@ -115,17 +122,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(OtherDeductionListDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } List list = getOtherDeductionMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, OtherDeductionListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, OtherDeductionListDTO.class); encryptUtil.decryptList(page.getList(), OtherDeductionListDTO.class); @@ -257,7 +256,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction List employeeSameIds = new ArrayList<>(); //筛选导入人员信息可以在人力资源池中匹配到的人员信息 - List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo,null); + List emps = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); //含在职和离职,选在职数据 if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { employeeSameIds = emps.stream() @@ -514,16 +513,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction param.setOrderRule(orderRule); List list = getOtherDeductionMapper().list(param); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, OtherDeductionListDTO.class); encryptUtil.decryptList(list, OtherDeductionListDTO.class); SalaryI18nUtil.i18nList(list); - // 开启分权并且不是薪酬模块总管理员 - if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - // 作为管理员 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - ).collect(Collectors.toList()); - } final List> dataRowList = Optional.ofNullable(list) .map(List::stream) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 13c4de06f..f96f2dec7 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -501,6 +501,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe map.put("payEndDate", SalaryDateUtil.getFormatLocalDate(e.getPayEndDate())); map.put("companystartdate", e.getCompanystartdate()); map.put("dismissdate", e.getDismissdate()); + map.put("opts", e.getOpts()); // 薪资项目动态 Optional> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index bea398499..5c68903a4 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -24,7 +24,6 @@ import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; -import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobMapper; import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; @@ -440,12 +439,12 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { // 获取人员范围列表 List includeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ONE); includeList.forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); + item.setEmployeeStatus(parseJson2ValueStr(item.getEmployeeStatus())); }); // 获取从范围中排除 List excludeList = getTaxAgentManageRangeService(user).listByTaxAgentIdAndIncludeType(taxAgentId, NumberUtils.INTEGER_ZERO); excludeList.forEach(item -> { - item.setEmployeeStatus(parseEnum2ValueStr(item.getEmployeeStatus())); + item.setEmployeeStatus(parseJson2ValueStr(item.getEmployeeStatus())); }); // 将TaxAgentManageRangeListDTO转换为SalarySobRangePO List rangeList = convert2SalarySobRangePO(sobId, includeList, excludeList); @@ -514,25 +513,12 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { /** - * @return String - * @description 将枚举的defaultLabel转换为value - * @author Harryxzy - * @date 2022/10/9 16:56 + * ["0","1","2","3","4","5","6"] -> 0,1,2,3,4,5,6 + * @param employeeStatus + * @return */ - private String parseEnum2ValueStr(String employeeStatus) { - String[] split = employeeStatus.split(","); - StringBuilder sb = new StringBuilder(); - for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) { - for (int i = 0; i < split.length; i++) { - if (statusEnum.getDefaultLabel().equals(split[i])) { - sb.append(statusEnum.getValue()); - if (i + 1 != split.length) { - sb.append(","); - } - } - } - } - return sb.toString(); + private String parseJson2ValueStr(String employeeStatus) { + return employeeStatus.replace("[","").replace("]","").replaceAll("\"", ""); } @@ -997,23 +983,23 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { public void handleHistory() { int count = getSobTaxLinkMapper().count(); - if(count>0){ + if (count > 0) { return; } List salarySobPOS = getSalarySobMapper().listAll(); salarySobPOS.forEach(sobPO -> { - SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() - .id(IdGenerator.generate()) - .taxAgentId(sobPO.getTaxAgentId()) - .sobId(sobPO.getId()) - .creator((long) user.getUID()) - .createTime(new Date()) - .updateTime(new Date()) - .deleteType(0) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build(); - getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); + SobTaxLinkPO taxLinkPO = SobTaxLinkPO.builder() + .id(IdGenerator.generate()) + .taxAgentId(sobPO.getTaxAgentId()) + .sobId(sobPO.getId()) + .creator((long) user.getUID()) + .createTime(new Date()) + .updateTime(new Date()) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getSobTaxLinkMapper().insertIgnoreNull(taxLinkPO); }); } } From 87d601c65b453f114c0b4cee5057ca46a864e3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 11 Sep 2024 15:25:50 +0800 Subject: [PATCH 048/184] =?UTF-8?q?=E8=B4=A6=E5=A5=97=E5=92=8C=E6=A0=B8?= =?UTF-8?q?=E7=AE=97=E5=88=97=E8=A1=A8=E7=9A=84=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctRecordBO.java | 1 + .../salaryacct/dto/SalaryAcctRecordListDTO.java | 3 +++ .../entity/salarysob/dto/SalarySobListDTO.java | 3 ++- .../salary/service/auth/AuthServiceImpl.java | 6 +++--- .../impl/SalaryAcctRecordServiceImpl.java | 17 ----------------- .../impl/SalaryAcctSobConfigServiceImpl.java | 2 +- .../engine/salary/wrapper/SalarySobWrapper.java | 4 ++-- 7 files changed, 12 insertions(+), 24 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index fc587cf43..c94b2a079 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -98,6 +98,7 @@ public class SalaryAcctRecordBO { .updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime())) .description(salaryAcctRecordPO.getDescription()) .operate(btnList) + .opts(salaryAcctRecordPO.getOpts()) .build(); }).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index 7f6aa98f8..89fbad04d 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Set; /** * 薪资核算列表 @@ -65,4 +66,6 @@ public class SalaryAcctRecordListDTO { @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private List operate; + + private Set opts; } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java index 885fe0d0a..4d892d643 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobListDTO.java @@ -13,6 +13,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Set; /** * 薪资账套列表 @@ -68,5 +69,5 @@ public class SalarySobListDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", key = "operate", dataIndex = "operate") - private String opts; + private Set opts; } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 9d9d1f09b..df2752c2d 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -284,12 +284,12 @@ public class AuthServiceImpl extends Service implements AuthService { //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief(uid); //给各管理员赋值对应的扣缴义务人权限 - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(uid); + Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable(uid); boolean able = false; //如果是管理员,赋值管理权限返回 - if (isChief || adminEnable) { + if (isChief || isAdminEnable) { opts.add("admin"); able = true; } else { @@ -300,7 +300,7 @@ public class AuthServiceImpl extends Service implements AuthService { return Permission.builder() .isOpenDevolution(isOpenDevolution) .isChief(isChief) - .isAdminEnable(adminEnable) + .isAdminEnable(isAdminEnable) .able(able) .opts(opts) .build(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 9e8ee21ca..129e660ac 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -192,23 +192,6 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } po.setSalaryMonths(localDateRange); - -// // 判断是否开启了分权 -// Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); -// if (needAuth) { -// List salarySobPOS = getSalarySobService(user).listByAdmin(); -// List salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId, Collectors.toList()); -// -// if (CollectionUtils.isEmpty(salarySobIds)) { -// return new PageInfo<>(); -// } -// Collection sobIds = po.getSalarySobIds(); -// if (CollectionUtils.isNotEmpty(sobIds)) { -// salarySobIds = (List) SalaryEntityUtil.intersectionForList(salarySobIds, sobIds); -// } -// po.setSalarySobIds(salarySobIds); -// } - // 查询薪资核算记录 List salaryAcctRecordPOS = getSalaryAcctRecordMapper().listSome(po); salaryAcctRecordPOS = getAuthService(user).auth(salaryAcctRecordPOS, AuthFilterTypeEnum.DATA_OPT, SalaryAcctRecordPO.class); diff --git a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java index 085abe60e..a8ebe8b94 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctSobConfigServiceImpl.java @@ -163,7 +163,7 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc } @Override - public void save(SalaryAcctSobConfigPO salaryAcctSobConfig) { + public synchronized void save(SalaryAcctSobConfigPO salaryAcctSobConfig) { deleteBySalaryAcctRecordIds(Collections.singleton(salaryAcctSobConfig.getSalaryAcctRecordId())); getSalaryAcctSobConfigMapper().insertIgnoreNull(salaryAcctSobConfig); String cacheIndex = salaryAcctSobConfig.getSalaryAcctRecordId().toString(); diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index f34eb171a..97a016cfe 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -88,7 +88,7 @@ public class SalarySobWrapper extends Service { List taxAgentPOS = getTaxAgentService(user).listAll(); - List salarySobListDTOS = page.getList().stream() + List salarySobListDTOS = page.getList().stream() .map(salarySobPO -> { List taxAgentIds = salarySobPO.getTaxAgentIds(); String taxAgentName = taxAgentPOS.stream().filter(po -> taxAgentIds.contains(po.getId())).map(TaxAgentPO::getName).collect(Collectors.joining(",")); @@ -100,7 +100,7 @@ public class SalarySobWrapper extends Service { .salaryCycle(SalarySobBO.buildSalaryCycle(salarySobPO)) .disable(salarySobPO.getDisable()) .description(salarySobPO.getDescription()) -// .opts(salarySobPO.getOpts()) + .opts(salarySobPO.getOpts()) .build(); }) From 383562c9cf0a5a02dd5d927f71b8fbaf5ef79e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Sep 2024 11:50:18 +0800 Subject: [PATCH 049/184] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=8D=95=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=87=87=E9=9B=86=E6=9D=83=E9=99=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryBill/dto/SalaryTemplateListDTO.java | 12 ++-- .../salarysob/param/SalarySobQueryParam.java | 4 ++ .../salary/entity/taxagent/po/TaxAgentPO.java | 6 ++ .../engine/salary/mapper/auth/AuthMapper.xml | 26 ++++---- .../salarybill/SalaryTemplateMapper.xml | 3 + .../service/auth/AuthRoleServiceImpl.java | 17 +++--- .../salary/service/auth/AuthServiceImpl.java | 2 - .../impl/AddUpDeductionServiceImpl.java | 8 --- .../impl/AddUpSituationServiceImpl.java | 8 --- .../impl/OtherDeductionServiceImpl.java | 8 --- .../service/impl/SalarySobServiceImpl.java | 5 ++ .../impl/SalaryTemplateServiceImpl.java | 33 +++------- .../service/impl/TaxAgentServiceImpl.java | 8 ++- .../salary/wrapper/SalaryTemplateWrapper.java | 61 +------------------ 14 files changed, 68 insertions(+), 133 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java index 3538a3387..5fdaaef98 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateListDTO.java @@ -1,15 +1,15 @@ package com.engine.salary.entity.salaryBill.dto; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * @Description: 工资单模板 */ @@ -24,6 +24,7 @@ import lombok.NoArgsConstructor; @SalaryTableOperate(index = "3", text = "操作日志" ) }) @ElogTransform(name = "工资单模板") +@Auth(page = "salaryBill", checkType = AuthCheckTypeEnum.SOB) public class SalaryTemplateListDTO { //主键id @@ -65,4 +66,7 @@ public class SalaryTemplateListDTO { // 薪资账套id private Long salarySobId; + + + private Set opts; } diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java index 52c32eb89..d0555321d 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobQueryParam.java @@ -5,6 +5,8 @@ import com.engine.salary.enums.auth.AuthFilterTypeEnum; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + @Data @EqualsAndHashCode(callSuper = true) @@ -20,6 +22,8 @@ public class SalarySobQueryParam extends BaseQueryParam { */ private Long taxAgentId; + private List taxAgentIds; + /** * 数据过滤级别 */ diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java index a8b6a2422..f84602b40 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.taxagent.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamOmitField; @@ -11,6 +13,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * 个税扣缴义务人 hrsa_tax_agent @@ -26,6 +29,7 @@ import java.util.Date; @AllArgsConstructor @ElogTransform(name = "个税扣缴义务人") @XStreamAlias("TaxAgent") +@Auth(page = "", checkType = AuthCheckTypeEnum.TAX,taxAgentIdField = "id") public class TaxAgentPO { /** @@ -107,4 +111,6 @@ public class TaxAgentPO { private Collection ids; + + Set opts; } diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index f6c482e16..df9ddc0b1 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -37,13 +37,14 @@ @@ -58,13 +59,14 @@ diff --git a/src/com/engine/salary/mapper/salarybill/SalaryTemplateMapper.xml b/src/com/engine/salary/mapper/salarybill/SalaryTemplateMapper.xml index 0d866f7af..b6e9d4003 100644 --- a/src/com/engine/salary/mapper/salarybill/SalaryTemplateMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalaryTemplateMapper.xml @@ -369,6 +369,7 @@ t.name, t.replenish_name as replenishName, s.name as salarysob, + s.id as salarySobId, t.use_type as useType, t.description, t.salary_sob_id @@ -402,6 +403,7 @@ t.name, t.replenish_name as replenishName, s.name as salarysob, + s.id as salarySobId, t.use_type as useType, t.description, t.salary_sob_id @@ -435,6 +437,7 @@ t.name, t.replenish_name as replenishName, s.name as salarysob, + s.id as salarySobId, t.use_type as useType, t.description, t.salary_sob_id diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 916ba8106..085512c70 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -83,18 +83,21 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { @Override public AuthRoleDTO getRole(Long id) { AuthRolePO po = getAuthRoleMapper().getById(id); + if (po == null){ + throw new SalaryRunTimeException("业务线不存在"); + } Long roleId = po.getId(); List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); List taxAgentIds = new ArrayList<>(); List sobIds = new ArrayList<>(); - authResources.forEach(resource -> { - if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { - taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); - } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { - sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); - } - }); +// authResources.forEach(resource -> { +// if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { +// taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); +// } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { +// sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); +// } +// }); return AuthRoleDTO.builder() .id(roleId) diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index df2752c2d..b8862f028 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -67,7 +67,6 @@ public class AuthServiceImpl extends Service implements AuthService { //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); -// Boolean isChief = false; if (isChief) { if (filterType == AuthFilterTypeEnum.DATA_OPT) { list.forEach(t -> { @@ -97,7 +96,6 @@ public class AuthServiceImpl extends Service implements AuthService { //给各管理员赋值对应的扣缴义务人权限 List adminTaxAgentIds = getTaxAgentService(user).getAdminTaxAgentIds((long) user.getUID()); -// List adminTaxAgentIds = new ArrayList<>(); if (CollectionUtil.isNotEmpty(adminTaxAgentIds)) { Iterator iterator = list.iterator(); if (checkType == AuthCheckTypeEnum.TAX || checkType == AuthCheckTypeEnum.TAX_EMP) { diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 36db3ed92..55cc9fb38 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -709,10 +709,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction @Override public AddUpDeductionRecordDTO getAddUpDeduction(AddUpDeductionQueryParam param) { - long uid = user.getUID(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(param.getId()); AddUpDeductionQueryParam build = AddUpDeductionQueryParam.builder().ids(ids).build(); @@ -720,10 +716,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction if (addUpDeductionRecordDTOS == null || addUpDeductionRecordDTOS.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); } - String taxAgentName = addUpDeductionRecordDTOS.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("您无权查看该数据!"); - } return addUpDeductionRecordDTOS.get(0); } diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index 5851987cf..3ea83beca 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -1181,10 +1181,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public AddUpSituationRecordDTO getAddUpSituation(AddUpSituationParam addUpSituationParam) { - long uid = user.getUID(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(addUpSituationParam.getId()); AddUpSituationQueryParam build = AddUpSituationQueryParam.builder().ids(ids).build(); @@ -1192,10 +1188,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation if (list == null || list.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); } - String taxAgentName = list.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("您无权查看该数据!"); - } return list.get(0); } diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 95daa72a2..2089476f9 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -890,10 +890,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public OtherDeductionRecordDTO getOtherDeduction(OtherDeductionParam otherDeductionParam) { - long uid = user.getUID(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(uid); - List taxAgentNames = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); ArrayList ids = new ArrayList<>(); ids.add(otherDeductionParam.getId()); OtherDeductionQueryParam build = OtherDeductionQueryParam.builder().ids(ids).build(); @@ -903,10 +899,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction if (list == null || list.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); } - String taxAgentName = list.get(0).getTaxAgentName(); - if (!taxAgentNames.contains(taxAgentName)) { - throw new SalaryRunTimeException("您无权查看该数据!"); - } return list.get(0); } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 5c68903a4..626bcbbc5 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -227,6 +227,11 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); } + if(CollectionUtil.isNotEmpty(param.getTaxAgentIds())){ + List sobTaxLinkPOS = getSobTaxLinkMapper().listSome(SobTaxLinkPO.builder().taxAgentIds(param.getTaxAgentIds()).build()); + build.setIds(sobTaxLinkPOS.stream().map(SobTaxLinkPO::getTaxAgentId).collect(Collectors.toList())); + } + List list = getSalarySobMapper().listSome(build); return getAuthService(user).auth(list, param.getFilterType(), SalarySobPO.class); } diff --git a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java index f6f7e8b18..aaa2dfcde 100644 --- a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java @@ -27,11 +27,14 @@ import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarybill.SalaryTemplateWhetherEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper; import com.engine.salary.report.entity.po.SalaryStatisticsReportPO; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; @@ -86,6 +89,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate return MapperProxyFactory.getProxy(SalarySobEmpFieldMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SalaryTemplatePO getById(Long id) { return mapper.getById(id); @@ -492,30 +499,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate @Override public PageInfo listPage(SalaryTemplateQueryParam queryParam) { - List salaryTemplateDTOList = Collections.emptyList(); - // 分权 - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salarySobIds)) { - // 查询 - salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder() - .salarySobId(queryParam.getSalarySobId()) - .name(queryParam.getName()) - .salarySobIds(salarySobIds).build()); - } else { - return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); - } - } else { - // 查询 - salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder().salarySobId(queryParam.getSalarySobId()).name(queryParam.getName()).build()); - } + List salaryTemplateDTOList = mapper.listDTO(SalaryTemplatePO.builder().salarySobId(queryParam.getSalarySobId()).name(queryParam.getName()).build()); + salaryTemplateDTOList = getAuthService(user).auth(salaryTemplateDTOList, AuthFilterTypeEnum.DATA_OPT, SalaryTemplateListDTO.class); - // 分页参数 - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); - return page; + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryTemplateDTOList, SalaryTemplateListDTO.class); } @Override diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 6128fa729..83de92b5f 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -45,6 +45,8 @@ import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.UploadConfigResponse; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -147,6 +149,10 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { return MapperProxyFactory.getProxy(InsuranceAccountBatchMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + // private PaymentAgencyMapper paymentAgencyMapper; @@ -284,7 +290,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { public List listAuth(TaxAgentQueryParam queryParam) { List taxAgents = getTaxAgentMapper().listBySome(queryParam); AuthFilterTypeEnum filterType = queryParam.getFilterType(); - return handleForDevolution(taxAgents, (long) user.getUID(), filterType == AuthFilterTypeEnum.QUERY_DATA); + return getAuthService(user).auth(taxAgents, filterType, TaxAgentPO.class); } @Override diff --git a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java index 3d04d3341..b78eae261 100644 --- a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java @@ -86,67 +86,8 @@ public class SalaryTemplateWrapper extends Service { public PageInfo list(SalaryTemplateQueryParam queryParam) { PageInfo listPage = getSalaryTemplateService(user).listPage(queryParam); return listPage; -// SalaryWeaTable table = new SalaryWeaTable(user, SalaryTemplateListDTO.class); -// -// String fields = " t.id" + -// " , t.name" + -// " , t.replenish_name as replenishName" + -// " , s.name as salarySob" + -// " , t.use_type as useType" + -// " , t.description"; -// -// String from = " from hrsa_salary_template t left join hrsa_salary_sob s on t.salary_sob_id = s.id "; -// -// table.setBackfields(fields); -// table.setSqlform(from); -// table.setSqlwhere(makeSqlWhere(queryParam)); -// table.setSqlorderby("t.id DESC"); -// table.setSqlprimarykey("t.id"); -// table.setSqlisdistinct("false"); -// -// WeaResultMsg result = new WeaResultMsg(false); -// result.putAll(table.makeDataResult()); -// result.success(); -// return result.getResultMap(); - } -// private String makeSqlWhere(SalaryTemplateQueryParam queryParam) { -// DBType dbType = DBType.get(new RecordSet().getDBType()); -// -// String sqlWhere = " t.delete_type = 0 "; -// -// String name = queryParam.getName(); -// if (StringUtils.isNotBlank(name)) { -// sqlWhere += " AND t.name " + dbType.like(name); -// } -// -// Collection ids = queryParam.getIds(); -// -// if (ids != null && ids.size() > 0) { -// sqlWhere += " AND t.id in (" + ids.stream().map(Object::toString).collect(Collectors.joining(",")) + ") "; -// } -// -// Long salarySobId = queryParam.getSalarySobId(); -// -// if (salarySobId != null) { -// sqlWhere += " AND t.salary_sob_id = " + salarySobId; -// } -// -// long currentEmployeeId = user.getUID(); -// Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); -// if (needAuth) { -// List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); -// Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); -// if (CollectionUtils.isNotEmpty(salarySobIds)) { -// sqlWhere += " AND t.salary_sob_id in (" + salarySobIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") "; -// } else { -// sqlWhere += " AND 1=2 "; -// } -// } -// -// -// return sqlWhere; -// } + } /** * 获取工资单模板基础设置表单 From 46f94ddd3d290aa74009e75d2b9c4dbdd84a488f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Sep 2024 14:48:51 +0800 Subject: [PATCH 050/184] =?UTF-8?q?=E6=A1=A3=E6=A1=88=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=8F=91=E8=96=AA=E3=80=81=E5=81=9C=E8=96=AA=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryArchiveServiceImpl.java | 60 ++++--------------- 1 file changed, 13 insertions(+), 47 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index f96f2dec7..9adc2c92d 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -21,7 +21,6 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -369,36 +368,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public List list(SalaryArchiveQueryParam queryParam) { - long currentEmployeeId = user.getUID(); - //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //不是管理员看不到数据,返回空 - if (!adminEnable) { - return new ArrayList<>(); - } - - //获取管理的人员范围 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeId = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - - //获取所有薪资档案 - List list = getSalaryArchiveList(queryParam); - List finalAllArchive = list.stream().filter(dto -> employeeId.contains(dto.getEmployeeId()) && taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList()); - - return finalAllArchive; - } else { - return getSalaryArchiveList(queryParam); - } + List list = getSalaryArchiveList(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), SalaryArchiveListDTO.class); } /** @@ -1053,7 +1028,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe List list = getSalaryArchiveMapper().listAll(); - list = getAuthService(user).auth(list,AuthFilterTypeEnum.QUERY_DATA,SalaryArchivePO.class); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, SalaryArchivePO.class); long pendingTotal = 0L; long fixedTotal = 0L; @@ -1176,8 +1151,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map allGotoFixed(SalaryArchiveQueryParam queryParam) { queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue())); - List salaryArchiveIds = this.list(queryParam) - .stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List salaryArchiveIds = this.list(queryParam).stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); return this.gotoFixed(salaryArchiveIds); } @@ -1230,6 +1205,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe @Override public Map allGotoStop(SalaryArchiveQueryParam queryParam) { queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.SUSPEND.getValue())); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); List salaryArchiveIds = this.list(queryParam) .stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); return this.gotoStop(salaryArchiveIds); @@ -1300,24 +1276,14 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误")); } - List oldList = listSome( - SalaryArchivePO.builder() - .ids(ids) - .runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) - .build()); + SalaryArchivePO param = SalaryArchivePO.builder() + .ids(ids) + .runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) + .build(); + List oldList = listSome(param); + oldList = getAuthService(user).auth(oldList, AuthFilterTypeEnum.ADMIN_DATA, SalaryArchivePO.class); - - if (CollectionUtils.isEmpty(oldList)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "档案不存在!")); - } - - - List taxAgentManageRangeEmployees = getTaxAgentService(user).listAllTaxAgentAndEmployee(); - List oldPendingList = oldList.stream().filter(f -> f.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())).collect(Collectors.toList()); - boolean isNotExist = oldPendingList.stream().anyMatch(te -> taxAgentManageRangeEmployees.stream().noneMatch(p -> p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getTaxAgentId()))); - if (isNotExist) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "不在当前个税扣缴义人的人员范围中,不可取消停薪")); - } + ids = SalaryEntityUtil.properties(oldList, SalaryArchivePO::getId); // 从停薪到待定薪 getSalaryArchiveMapper().gotoPendingFromStop(ids); // 从停薪到定薪 From 4d40deeada94344e63bc32d590e89b77df973ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Sep 2024 16:32:19 +0800 Subject: [PATCH 051/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E8=B5=84?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/auth/AuthRoleServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 085512c70..d71f107d5 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -91,13 +91,13 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { List taxAgentIds = new ArrayList<>(); List sobIds = new ArrayList<>(); -// authResources.forEach(resource -> { -// if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { -// taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); -// } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { -// sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); -// } -// }); + authResources.forEach(resource -> { + if (ResourceTargetTypeEnum.TAX_AGENT.getValue().equals(resource.getTargetType())) { + taxAgentIds.add(TaxAgentPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } else if (ResourceTargetTypeEnum.SOB.getValue().equals(resource.getTargetType())) { + sobIds.add(SalarySobPO.builder().id(resource.getTarget()).name(resource.getTargetName()).build()); + } + }); return AuthRoleDTO.builder() .id(roleId) From de0728665b3dbfadcee54fde4652d84e49bc5b42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 13 Sep 2024 17:32:15 +0800 Subject: [PATCH 052/184] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=BE=80=E6=9C=9F?= =?UTF-8?q?=E7=B4=AF=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 37 +++++++ .../engine/salary/common/BaseQueryParam.java | 3 + .../entity/datacollection/AddUpSituation.java | 10 +- .../dto/AttendQuoteListDTO.java | 10 +- .../taxagent/param/TaxAgentQueryParam.java | 6 -- .../impl/AddUpSituationServiceImpl.java | 97 +++++++------------ .../service/impl/AttendQuoteServiceImpl.java | 42 +++----- 7 files changed, 100 insertions(+), 105 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 006a55326..2539fcf90 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -2,7 +2,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/engine/salary/common/BaseQueryParam.java b/src/com/engine/salary/common/BaseQueryParam.java index 6bf519434..703231be8 100644 --- a/src/com/engine/salary/common/BaseQueryParam.java +++ b/src/com/engine/salary/common/BaseQueryParam.java @@ -26,5 +26,8 @@ public class BaseQueryParam { */ private OrderRuleVO orderRule; + /** + * 数据过滤级别 + */ private AuthFilterTypeEnum filterType ; } diff --git a/src/com/engine/salary/entity/datacollection/AddUpSituation.java b/src/com/engine/salary/entity/datacollection/AddUpSituation.java index b6d456bb8..b9d7278c6 100644 --- a/src/com/engine/salary/entity/datacollection/AddUpSituation.java +++ b/src/com/engine/salary/entity/datacollection/AddUpSituation.java @@ -1,9 +1,6 @@ package com.engine.salary.entity.datacollection; -import com.engine.salary.annotation.Encrypt; -import com.engine.salary.annotation.SalaryFormulaVar; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableOperate; +import com.engine.salary.annotation.*; import com.engine.hrmelog.annotation.ElogTransform; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,6 +10,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Set; /** * 数据采集-累计情况表 @@ -24,6 +22,7 @@ import java.util.List; @SalaryTable(pageId = "a4f83287-e3f9-4275-9527-7d06e54y6238", fields = "id,addUpSubtraction", operates = {@SalaryTableOperate(text = "删除",index = "0")}) //hrsa_add_up_situation @ElogTransform(name = "往期累计情况") +@Auth(page = "addUpSituation") public class AddUpSituation { /** * 主键id @@ -234,4 +233,7 @@ public class AddUpSituation { Collection employeeIds; Collection taxAgentIds; + + private Set opts; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java index f058c3d91..f5c6fce5f 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AttendQuoteListDTO.java @@ -1,9 +1,7 @@ package com.engine.salary.entity.datacollection.dto; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -13,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 数据采集-考勤引用列表 @@ -30,6 +29,7 @@ import java.util.Date; @SalaryTableOperate(text = "查看", index = "0"), @SalaryTableOperate(text = "删除", index = "1") }) +@Auth(page = "attendQuote",checkType = AuthCheckTypeEnum.SOB) public class AttendQuoteListDTO { @SalaryTableColumn(column = "id", display = false) @@ -79,4 +79,6 @@ public class AttendQuoteListDTO { * 薪资账套id */ private Long salarySobId; + + private Set opts; } diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java index a8663b5cd..410b0b2b4 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentQueryParam.java @@ -1,7 +1,6 @@ package com.engine.salary.entity.taxagent.param; import com.engine.salary.common.BaseQueryParam; -import com.engine.salary.enums.auth.AuthFilterTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -27,9 +26,4 @@ public class TaxAgentQueryParam extends BaseQueryParam { //个税扣缴义务人名称 private String name; - - /** - * 数据过滤级别 - */ - private AuthFilterTypeEnum filterType; } diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index 3ea83beca..f5fb1e6bf 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.NumberUtil; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; @@ -22,6 +23,7 @@ import com.engine.salary.entity.datacollection.param.AddUpSituationParam; import com.engine.salary.entity.datacollection.param.AddUpSituationQueryParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; @@ -264,6 +266,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public XSSFWorkbook export(AddUpSituationQueryParam queryParam) { + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); // 获取操作按钮资源 List> rowList = getExcelRowList(queryParam, true); @@ -302,10 +305,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = getAddUpSituationMapper().list(param); - list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, AddUpSituationDTO.class); - encryptUtil.decryptList(list, AddUpSituationDTO.class); - SalaryI18nUtil.i18nList(list); + List list = listAuth(param); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) @@ -345,6 +345,14 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation return rowList; } + private List listAuth(AddUpSituationQueryParam param) { + List list = getAddUpSituationMapper().list(param); + list = getAuthService(user).auth(list, param.getFilterType(), AddUpSituationDTO.class); + encryptUtil.decryptList(list, AddUpSituationDTO.class); + SalaryI18nUtil.i18nList(list); + return list; + } + /** * 导出详情 @@ -449,6 +457,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public XSSFWorkbook downloadTemplate(AddUpSituationQueryParam queryParam) { + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); String sheetName = SalaryI18nUtil.getI18nLabel(101605, "往期累计情况导入模板"); // 获取操作按钮资源 List> rowList = getExcelRowList(queryParam, queryParam.isHasData()); @@ -520,10 +529,8 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public Map importAddUpSituation(AddUpSituationImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); Map apidatas = new HashMap(); - AddUpSituationBiz biz = new AddUpSituationBiz(); //查询对于人员信息导入筛选的全局配置 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); @@ -540,7 +547,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation Long currentEmployeeId = (long) user.getUID(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 获取租户下所有的人员 List employees = getSalaryEmployeeService(user).listEmployee(); // 已经核算过的不可操作 @@ -607,7 +616,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation String idNo = dto.getIdNo(); //筛选导入人员信息可以在人力资源池中匹配到的人员信息 - List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo,null); + List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null); //当人员信息导入筛选的全局配置为"0"时,姓名才是必填项 if (StringUtils.isBlank(userName) && "0".equals(confValue)) { @@ -658,10 +667,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //个税扣缴义务人不存在 Map errorMessageMap = Maps.newHashMap(); @@ -671,17 +679,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } } - // fixme 分权判断,若员工离职后,不在扣缴义务人范围内,会有异常 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "该条数据不在个税扣缴义务人人员范围内,不可导入"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } - // 判断是否有核算过 if (CollectionUtils.isNotEmpty(salaryAcctEmployees) && !Objects.equals(taxYearMonthStr.split("-")[1], "12")) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId()) && f.getTaxAgentId().equals(po.getTaxAgentId())).findFirst(); @@ -932,12 +929,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation */ @Override public void createAddUpSituation(AddUpSituationParam addUpSituationParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - AddUpSituationBiz biz = new AddUpSituationBiz(); - //查询对于人员信息导入筛选的全局配置 - //SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); - //String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; Long currentEmployeeId = (long) user.getUID(); //税款所属期 String taxYearMonthStr = Util.null2String(addUpSituationParam.getTaxYearMonth()); @@ -989,16 +981,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } } - // fixme 分权判断,若员工离职后,不在扣缴义务人范围内,会有异常 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(po.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "该条数据不在个税扣缴义务人人员范围内,不可导入"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } // 判断是否有核算过 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { @@ -1063,9 +1045,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public void deleteSelectAddUpSituation(AddUpSituationDeleteParam deleteParam) { - long currentEmployeeId = user.getUID(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); AddUpSituationBiz biz = new AddUpSituationBiz(); String declareMonthStr = deleteParam.getTaxYearMonth(); List deleteIds = deleteParam.getIds(); @@ -1078,17 +1057,24 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation // 判断是否有核算过 List deletePOList = new ArrayList<>(); List deleteList = new ArrayList<>(); + + AddUpSituationQueryParam param = AddUpSituationQueryParam.builder().ids(deleteIds).build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List addUpSituationDTOS = listAuth(param); + if (CollectionUtil.isEmpty(addUpSituationDTOS)) { + throw new SalaryRunTimeException("无权限删除数据!"); + } + + deleteIds = SalaryEntityUtil.properties(addUpSituationDTOS, AddUpSituationDTO::getId, Collectors.toList()); + + for (int i = 0; i < deleteIds.size(); i++) { Long id = deleteIds.get(i); AddUpSituation byId = biz.getById(id); if (byId == null) { throw new SalaryRunTimeException("数据不存在或已被删除!"); } - // 判断是否在个税扣缴义务人范围内 - Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getTaxAgentId(), byId.getTaxAgentId())).findFirst(); - if (!first.isPresent()) { - throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内"); - } + // 判断用户是否存在 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(byId.getEmployeeId()) && f.getTaxAgentId().equals(byId.getTaxAgentId())).findFirst(); @@ -1119,11 +1105,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public void deleteAllAddUpSituation(AddUpSituationDeleteParam deleteParam) { String declareMonthStr = deleteParam.getTaxYearMonth(); - long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); AddUpSituationBiz biz = new AddUpSituationBiz(); Date declareMonthDate = new Date(); try { @@ -1131,24 +1113,20 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } catch (Exception e) { throw new SalaryRunTimeException("日期异常"); } - AddUpSituation queryParam = null; + AddUpSituation queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).build(); if (deleteParam.getTaxAgentId() != null && !deleteParam.getTaxAgentId().isEmpty()) { // 设置了个税扣缴义务人 Long taxAgentId = SalaryEntityUtil.string2Long(deleteParam.getTaxAgentId()); - boolean canDelete = taxAgentIds.stream().anyMatch(t -> Objects.equals(t, taxAgentId)); - if (!canDelete) { - throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内!"); - } ArrayList tai = new ArrayList<>(); tai.add(taxAgentId); - queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).taxAgentIds(tai).build(); - } else { - queryParam = AddUpSituation.builder().taxYearMonth(declareMonthDate).taxAgentIds(taxAgentIds).build(); + queryParam.setTaxAgentIds(tai); } // 获取所有想要删除的数据 List list = biz.listSome(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.ADMIN_DATA, AddUpSituation.class); + LocalDate salaryMonthDate = LocalDate.parse(declareMonthStr + "-01", SalaryDateUtil.DATE_FORMATTER); String format = salaryMonthDate.plusMonths(1).atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM")); // 获取已经核算的数据 @@ -1165,10 +1143,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation biz.batchDeleteByIDS(deleteIds); // 记录日志 - Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); - String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); + String name = declareMonthStr +"-"+ deleteParam.getTaxAgentId(); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setTargetName(name); loggerContext.setOperateType(OperateTypeEnum.CLEAR.getValue()); diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index b61987dde..5a0e2f28a 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -10,7 +10,7 @@ import com.engine.salary.entity.datacollection.dto.AttendQuoteListDTO; import com.engine.salary.entity.datacollection.param.AttendQuoteQueryParam; import com.engine.salary.entity.datacollection.po.AttendQuotePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; -import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AttendQuoteMapper; @@ -18,20 +18,22 @@ import com.engine.salary.service.AttendQuoteService; import com.engine.salary.service.SalaryAcctRecordService; import com.engine.salary.service.SalarySobService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.SalaryLoggerUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; import java.time.LocalDate; import java.time.YearMonth; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -56,42 +58,21 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic private TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } @Override public PageInfo listPage(AttendQuoteQueryParam queryParam) { List declareMonth = queryParam.getSalaryYearMonth(); -// SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO(); if (CollectionUtils.isNotEmpty(declareMonth)) { queryParam.setSalaryYearMonth(declareMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList())); queryParam.setSalaryYearMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); -// LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00")) -// .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build(); -// queryRecordParam.setSalaryMonths(salaryMonth); } - - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List salarySobPOS = getSalarySobService(user).listByDisable(NumberUtils.INTEGER_ZERO); - Set salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId); - if (CollectionUtils.isEmpty(salarySobIds)) { - return new PageInfo<>(AttendQuoteListDTO.class); - } - queryParam.setSalarySobIds(salarySobIds); -// queryRecordParam.setSalarySobIds(salarySobIds); - } - - // 获取已经归档的记录 -// List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam); -// List archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()) -// .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId()) -// .collect(Collectors.toList()); - - List list = getAttendQuoteMapper().list(queryParam); -// list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) )); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AttendQuoteListDTO.class); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteListDTO.class); @@ -103,8 +84,9 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic throw new SalaryRunTimeException("参数错误"); } List attendQuotes = biz.list(AttendQuoteQueryParam.builder().ids(ids).build()); + attendQuotes = getAuthService(user).auth(attendQuotes, AuthFilterTypeEnum.ADMIN_DATA, AttendQuoteListDTO.class); if (CollectionUtils.isEmpty(attendQuotes)) { - throw new SalaryRunTimeException("要删除的数据不存在或已删除"); + throw new SalaryRunTimeException("无权限删除数据!"); } List accountingAttendQuotes = attendQuotes.stream().filter(e -> e.getSalaryAccountingStatus().equals(1)).collect(Collectors.toList()); From a48d4cea1157af8a2269c446424d858618824bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sat, 14 Sep 2024 09:36:52 +0800 Subject: [PATCH 053/184] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryacct/bo/CalculateFormulaVarBO.java | 2 +- src/com/engine/salary/service/VariableArchiveService.java | 2 +- .../salary/service/impl/SalaryAcctCalculateServiceImpl.java | 2 +- .../salary/service/impl/VariableArchiveServiceImpl.java | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index b341f162d..7a10e019b 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -253,7 +253,7 @@ public class CalculateFormulaVarBO { } private void handleVariableArchiveData(SalaryAcctCalculateBO salaryAcctCalculateBO, Map> resultMap) { - Map> variableArchiveMap = SalaryEntityUtil.convert2Map(variableArchiveList, map -> map.getOrDefault("taxAgentIds", "").toString() + "-" + map.getOrDefault("employeeId", "").toString()); + Map> variableArchiveMap = SalaryEntityUtil.convert2Map(variableArchiveList, map -> map.getOrDefault("taxAgentId", "").toString() + "-" + map.getOrDefault("employeeId", "").toString()); // 填充到返回结果集中 for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) { List formulaVarValues = resultMap.computeIfAbsent(salaryAcctEmployeePO.getEmployeeId() + "_" + salaryAcctEmployeePO.getTaxAgentId(), diff --git a/src/com/engine/salary/service/VariableArchiveService.java b/src/com/engine/salary/service/VariableArchiveService.java index f82fcc031..a57147909 100644 --- a/src/com/engine/salary/service/VariableArchiveService.java +++ b/src/com/engine/salary/service/VariableArchiveService.java @@ -69,5 +69,5 @@ public interface VariableArchiveService { void deleteSelectVariableArchive(Collection deleteIds); - List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId); + List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, List taxAgentIds); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index 45ce23703..c8820ff5e 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -165,7 +165,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc sw.stop(); // 查询浮动薪资 sw.start("查询浮动薪资"); - List> variableArchiveList = getVariableArchiveService(user).listBySalaryMonthAndEmployeeIds(salarySobCycleDTO.getSalaryMonth(), employeeIds, taxAgentId); + List> variableArchiveList = getVariableArchiveService(user).listBySalaryMonthAndEmployeeIds(salarySobCycleDTO.getSalaryMonth(), employeeIds, taxAgentIds); sw.stop(); // 薪资回算时回算前的核算结果 (没有回算项) sw.start("查询薪资回算时回算前的核算结果"); diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index 0018859a9..f440f4cf7 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -169,7 +169,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi Map map = new LinkedHashMap<>(); map.put("id", e.getId()); map.put("taxAgentName", e.getTaxAgentName()); - map.put("taxAgentIds", e.getTaxAgentId()); + map.put("taxAgentId", e.getTaxAgentId()); map.put("username", e.getUsername()); map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(e.getSalaryMonth())); map.put("employeeId", e.getEmployeeId()); @@ -583,12 +583,12 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi } @Override - public List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, Long taxAgentId) { + public List> listBySalaryMonthAndEmployeeIds(YearMonth salaryMonth, List employeeIds, List taxAgentIds) { VariableArchiveQueryParam queryParam = VariableArchiveQueryParam.builder() .employeeIds(employeeIds) .salaryMonth(SalaryDateUtil.getFormatYearMonth(salaryMonth)) .salaryMonthDate(SalaryDateUtil.toDate(salaryMonth, 1)) - .taxAgentIds(Collections.singletonList(taxAgentId)) + .taxAgentIds(taxAgentIds) .build(); List variableArchiveListDTO = list(queryParam); return buildVariableArchiveData(variableArchiveListDTO); From 174838382a7f73266bc1f285db2bcd9c547837f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sat, 14 Sep 2024 10:52:06 +0800 Subject: [PATCH 054/184] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=89=A3=E7=BC=B4?= =?UTF-8?q?=E4=B9=89=E5=8A=A1=E4=BA=BA=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/enums/auth/DataTargetTypeEnum.java | 57 ++++++++++++------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java index dc9b76e56..25f850efb 100644 --- a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java +++ b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java @@ -3,10 +3,14 @@ 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.entity.taxagent.po.TaxAgentEmpPO; import com.engine.salary.enums.BaseEnum; +import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import com.engine.salary.service.impl.TaxAgentEmpServiceImpl; import com.engine.salary.util.SalaryEntityUtil; +import com.google.common.collect.Lists; import weaver.conn.RecordSet; import java.util.*; @@ -77,27 +81,27 @@ public enum DataTargetTypeEnum implements BaseEnum { return memberList; } }, - ALL(7, "所有人", 87626) { - @Override - public Set getEmpIds(String target, Object... param) { - Set memberList = new HashSet<>(); - RecordSet rs = new RecordSet(); - if (rs.execute("select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) ")) { - while (rs.next()) { - memberList.add(Long.parseLong(rs.getString("id"))); - } - } - return memberList; - } - }, - LOGIN_PERSON(8, "登录人", 87626) { - //参数1,登录人信息 - @Override - public Set getEmpIds(String target, Object... param) { - LoginPersonTargetTypeEnum loginPersonTargetTypeEnum = LoginPersonTargetTypeEnum.parseByValue(Integer.parseInt(target)); - return loginPersonTargetTypeEnum.getEmpIds((DataCollectionEmployee) param[0]); - } - }, +// ALL(7, "所有人", 87626) { +// @Override +// public Set getEmpIds(String target, Object... param) { +// Set memberList = new HashSet<>(); +// RecordSet rs = new RecordSet(); +// if (rs.execute("select id from hrmresource where status not in (7) and (accounttype is null or accounttype = 0) ")) { +// while (rs.next()) { +// memberList.add(Long.parseLong(rs.getString("id"))); +// } +// } +// return memberList; +// } +// }, +// LOGIN_PERSON(8, "登录人", 87626) { +// //参数1,登录人信息 +// @Override +// public Set getEmpIds(String target, Object... param) { +// LoginPersonTargetTypeEnum loginPersonTargetTypeEnum = LoginPersonTargetTypeEnum.parseByValue(Integer.parseInt(target)); +// return loginPersonTargetTypeEnum.getEmpIds((DataCollectionEmployee) param[0]); +// } +// }, SOB(9, "账套", 87626) { @Override public Set getEmpIds(String target, Object... param) { @@ -106,7 +110,16 @@ public enum DataTargetTypeEnum implements BaseEnum { return SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); } }, - SQL(10, "sql", 87626) { + TAX(10, "扣缴义务人", 87626) { + @Override + public Set getEmpIds(String target, Object... param) { + TaxAgentEmpServiceImpl taxAgentEmpServiceImpl = new TaxAgentEmpServiceImpl(); + List taxIds = Lists.newArrayList(Long.valueOf(target)); + List taxAgentEmpPOS = taxAgentEmpServiceImpl.listByTaxAgentIds(taxIds, UseEmployeeTypeEnum.ORG); + return SalaryEntityUtil.properties(taxAgentEmpPOS, TaxAgentEmpPO::getEmployeeId); + } + }, + SQL(11, "SQL", 87626) { @Override public Set getEmpIds(String target, Object... param) { //参数1,登录人信息 From 6e7ccb233946497662901c3fbdb3d0abaa1e1681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 18 Sep 2024 18:19:58 +0800 Subject: [PATCH 055/184] =?UTF-8?q?=E6=B5=AE=E5=8A=A8=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E5=88=86=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 6 ++- .../bo/VariableArchiveExcelBO.java | 8 ++-- .../datacollection/dto/AddUpDeductionDTO.java | 2 - .../datacollection/dto/AddUpSituationDTO.java | 2 - .../dto/SpecialAddDeductionListDTO.java | 9 ++-- .../dto/SpecialAddDeductionRecordDTO.java | 6 +-- .../dto/VariableArchiveListDTO.java | 5 ++ .../VariableArchiveImportHandleParam.java | 4 +- .../salary/enums/auth/AuthFilterTypeEnum.java | 4 +- .../salary/service/auth/AuthServiceImpl.java | 2 +- .../impl/SpecialAddDeductionServiceImpl.java | 45 +++++++----------- .../impl/VariableArchiveServiceImpl.java | 47 +++++++++---------- 12 files changed, 66 insertions(+), 74 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 2539fcf90..657964a6f 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -61,7 +61,7 @@ - + @@ -86,6 +86,10 @@ + + + + diff --git a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java index 313ddc1d4..aaa4f71b4 100644 --- a/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java +++ b/src/com/engine/salary/entity/datacollection/bo/VariableArchiveExcelBO.java @@ -8,7 +8,7 @@ import com.engine.salary.entity.datacollection.param.VariableArchiveImportHandle import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; import com.engine.salary.util.SalaryI18nUtil; @@ -178,7 +178,7 @@ public class VariableArchiveExcelBO extends Service { // 个税扣缴义务人 String taxAgentCellVal = Optional.ofNullable(map.get(taxAgentI18n)).orElse("").toString(); map.put("taxAgent", taxAgentCellVal); - Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getTaxAgentName().equals(taxAgentCellVal)).findFirst(); + Optional optionalTaxAgent = importHandleParam.getTaxAgentList().stream().filter(m -> m.getName().equals(taxAgentCellVal)).findFirst(); if (!optionalTaxAgent.isPresent()) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowindex + "个税扣缴义务人不存在,或不在权限范围内"); @@ -186,12 +186,12 @@ public class VariableArchiveExcelBO extends Service { isError = true; return isError; } - Long taxAgentId = optionalTaxAgent.get().getTaxAgentId(); + Long taxAgentId = optionalTaxAgent.get().getId(); map.put("taxAgentId", taxAgentId); // 用于初始化导入数据校验 map.put("employeeId", employeeId); - String repeatKey = optionalTaxAgent.get().getTaxAgentId() + "-" + employeeId.toString(); + String repeatKey = optionalTaxAgent.get().getId() + "-" + employeeId.toString(); if (allTodoVariableArchives.contains(repeatKey)) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowindex + "存在重复数据"); diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java index d0124efdf..78b4ac20a 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java @@ -166,7 +166,5 @@ public class AddUpDeductionDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", dataIndex = "operate", key = "operate") - private String operate; - private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java index 7d0b347dd..e4aac1565 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java @@ -218,7 +218,5 @@ public class AddUpSituationDTO { @SalaryTableColumn(text = "操作", width = "20%", column = "operate") @TableTitle(title = "操作", dataIndex = "operate", key = "operate") - private String operate; - private Set opts; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java index 5e480bb21..c5444d2f5 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java @@ -8,6 +8,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * 数据采集-专项附加扣除列表 *

Copyright: Copyright (c) 2022

@@ -23,6 +25,7 @@ import lombok.NoArgsConstructor; @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = { @SalaryTableOperate(text = "查看明细") }) +@Auth(page = "specialAddDeduction") public class SpecialAddDeductionListDTO { @@ -131,7 +134,7 @@ public class SpecialAddDeductionListDTO { @Encrypt private String infantCare; - @SalaryTableColumn(text = "操作", width = "20%", column = "operate") - @TableTitle(title = "操作", dataIndex = "operate", key = "operate") - private String operate; + @SalaryTableColumn(text = "操作", width = "20%", column = "opts") + @TableTitle(title = "操作", dataIndex = "opts", key = "opts") + private Set opts; } diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java index f872279e1..f371232f5 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.Encrypt; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -23,6 +20,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "a4f85287-e3f9-6612-adn9-7d98e54y6rj8", tableType = WeaTableType.CHECKBOX) +@Auth(page = "specialAddDeduction") public class SpecialAddDeductionRecordDTO { //主键id diff --git a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java index de5c0fd22..a7cc6d014 100644 --- a/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/VariableArchiveListDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.TableTitle; @@ -10,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * 浮动薪资档案列表 @@ -24,6 +26,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @SalaryTable(pageId = "bd985583-f84j-p2aj-p288-2hw3hosy6r6,", tableType = WeaTableType.CHECKBOX) +@Auth(page = "variableArchive") public class VariableArchiveListDTO { @TableTitle(title = "id", dataIndex = "id", key = "id") @@ -96,4 +99,6 @@ public class VariableArchiveListDTO { */ private String dismissdate; + private Set opts; + } diff --git a/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java index ab12ad1a0..b5ef4a61a 100644 --- a/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/datacollection/param/VariableArchiveImportHandleParam.java @@ -4,7 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -75,7 +75,7 @@ public class VariableArchiveImportHandleParam { /** * 获取所有个税扣缴义务人 */ - Collection taxAgentList; + Collection taxAgentList; /** * 当前时间 diff --git a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java index 166783cce..c9af4e243 100644 --- a/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java +++ b/src/com/engine/salary/enums/auth/AuthFilterTypeEnum.java @@ -17,8 +17,8 @@ public enum AuthFilterTypeEnum implements BaseEnum { DATA_OPT("DATA_OPT", "数据&功能权限", 87626), QUERY_DATA("QUERY_DATA", "获取可查询数据", 87627), - ADMIN_DATA("ADMIN_DATA", "获取可管理数据", 87627); -// ONLY_OPT("ONLY_OPT", "仅功能权限", 87626) ; + ADMIN_DATA("ADMIN_DATA", "获取可管理数据", 87627), + NO_AUTH("ADMIN_DATA", "获取可管理数据", 87627); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index b8862f028..cff43bdb0 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -67,7 +67,7 @@ public class AuthServiceImpl extends Service implements AuthService { //给总管理员赋值最大权限 Boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - if (isChief) { + if (isChief || filterType == AuthFilterTypeEnum.NO_AUTH) { if (filterType == AuthFilterTypeEnum.DATA_OPT) { list.forEach(t -> { try { diff --git a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java index a8e066705..0cadab86e 100644 --- a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java @@ -20,9 +20,11 @@ import com.engine.salary.entity.datacollection.param.SpecialAddDeductionRecordDe import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.SpecialAddDeductionMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; @@ -30,6 +32,8 @@ import com.engine.salary.service.AddUpDeductionService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SpecialAddDeductionService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -93,6 +97,10 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public SpecialAddDeductionPO getById(Long id) { return getSpecialAddDeductionBiz().getById(id); @@ -104,14 +112,9 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - putQueryRange(queryParam); - } List list = getSpecialAddDeductionMapper().listByParam(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, SpecialAddDeductionListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SpecialAddDeductionListDTO.class); encryptUtil.decryptList(page.getList(), SpecialAddDeductionListDTO.class); @@ -120,12 +123,6 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd @Override public PageInfo recordListPage(SpecialAddDeductionQueryParam queryParam) { - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - putQueryRange(queryParam); - } List list = getSpecialAddDeductionMapper().listDtoByParam(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SpecialAddDeductionRecordDTO.class); @@ -174,8 +171,6 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd public Map importData(SpecialAddDeductionImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - long currentEmployeeId = user.getUID(); Map apidatas = new HashMap(); SpecialAddDeductionBiz SpecialAddDeductionBiz = new SpecialAddDeductionBiz(); @@ -205,11 +200,10 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //人员信息 List employees = getSalaryEmployeeService(user).listEmployee(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - // 查询已有数据 - List list = getSpecialAddDeductionBiz() - .listByTaxAgentIds(null); + // 获取个税扣缴义务人 + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 错误excel内容 List errorData = new ArrayList<>(); @@ -293,16 +287,16 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) { + if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getId().equals(Long.valueOf(taxAgentId))) { //个税扣缴义务人与导入时选择的不一致 Map errorMessageMap = new HashMap<>(); errorMessageMap.put("message", rowIndex + "个税扣缴义务人与导入时选择的不一致"); errorData.add(errorMessageMap); errorSum += 1; } else { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); + po.setTaxAgentId(optionalTemp.get().getId()); } } else { //个税扣缴义务人不存在 @@ -701,11 +695,8 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - - if (getTaxAgentService(user).isOpenDevolution()) { - putQueryRange(param); - } List list = getSpecialAddDeductionBiz().listByParam(param); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, SpecialAddDeductionListDTO.class); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index f440f4cf7..bd7ddd35f 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -16,12 +16,15 @@ import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO; import com.engine.salary.entity.datacollection.po.VariableArchivePO; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveInitImportDTO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableArchiveMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -37,7 +40,6 @@ import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.ss.usermodel.Sheet; @@ -84,7 +86,11 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi } private SalaryEmployeeService getSalaryEmployeeService(User user) { - return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); } private int deleteByIds(List deleteIds) { @@ -102,6 +108,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi */ @Override public PageInfo listPage(VariableArchiveQueryParam queryParam) { + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); List variableArchiveList = list(queryParam); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), variableArchiveList, VariableArchiveListDTO.class); } @@ -109,24 +116,6 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi @Override public List list(VariableArchiveQueryParam queryParam) { ValidUtil.doValidator(queryParam); - Long employeeId = Long.valueOf(user.getUID()); - // 判断是否是“总管理员” - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); - List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIds)) { - // 无权限 - return Collections.emptyList(); - } - if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { - taxAgentIds = taxAgentIds.stream().filter(queryParam.getTaxAgentIds()::contains).collect(Collectors.toList()); - } - queryParam.setTaxAgentIds(taxAgentIds); - } - // 浮动薪酬档案列表 if (Objects.nonNull(queryParam.getSalaryMonth())) { queryParam.setSalaryMonthDate(SalaryDateUtil.dateStrToLocalYearMonth(queryParam.getSalaryMonth())); @@ -134,7 +123,8 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - return getVariableArchiveMapper().list(queryParam); + List list = getVariableArchiveMapper().list(queryParam); + return getAuthService(user).auth(list, queryParam.getFilterType(), VariableArchiveListDTO.class); } /** @@ -310,10 +300,11 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi // 2.表头 List> rows = new ArrayList<>(); rows.add(header); - // 获取档案信息 - List variableArchiveList = list(param); if (param.isHasData()) { + // 获取档案信息 + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List variableArchiveList = list(param); List> listMaps = buildVariableArchiveData(variableArchiveList); // 组装数据 listMaps.forEach(e -> { @@ -457,8 +448,10 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List variableArchiveItemPOS = getVariableArchiveItemService(user).listByVariableArchiveIds(variableArchiveIds); Map> variableArchiveItemMap = SalaryEntityUtil.group2Map(variableArchiveItemPOS, k -> k.getVariableArchiveId() + "-" + k.getVariableItemId()); - Collection taxAgentList; - taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree((long) user.getUID()); + // 获取个税扣缴义务人 + TaxAgentQueryParam queryParam = TaxAgentQueryParam.builder().build(); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(queryParam); return VariableArchiveImportHandleParam.builder() @@ -537,6 +530,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi List> rows = new ArrayList<>(); rows.add(header.stream().map(WeaTableColumn::getText).collect(Collectors.toList())); // 获取档案信息 + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List variableArchiveList = list(param); List> listMaps = buildVariableArchiveData(variableArchiveList); // 组装数据 @@ -590,6 +584,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi .salaryMonthDate(SalaryDateUtil.toDate(salaryMonth, 1)) .taxAgentIds(taxAgentIds) .build(); + queryParam.setFilterType(AuthFilterTypeEnum.NO_AUTH); List variableArchiveListDTO = list(queryParam); return buildVariableArchiveData(variableArchiveListDTO); } From ee535fc2bfb8b9e8bcf249b962b1f5cd271e9d28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 Sep 2024 16:46:36 +0800 Subject: [PATCH 056/184] =?UTF-8?q?1=E3=80=81=E4=B8=9A=E5=8A=A1=E7=BA=BF-?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=B4=AF=E8=AE=A1=E4=B8=93=E9=A1=B9=E9=99=84?= =?UTF-8?q?=E5=8A=A0=E6=89=A3=E9=99=A4=202=E3=80=81=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF-=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 34 +++++--- resource/wiki/常用查询.md | 7 +- .../salaryacct/po/SalaryAcctEmployeePO.java | 2 + .../SalaryStatisticsEmployeeServiceImpl.java | 77 +++++-------------- .../service/SalaryAcctEmployeeService.java | 1 + .../salary/service/auth/AuthService.java | 2 + .../salary/service/auth/AuthServiceImpl.java | 31 ++++++-- .../impl/AddUpDeductionServiceImpl.java | 22 ++---- .../impl/SalaryAcctEmployeeServiceImpl.java | 10 +++ 9 files changed, 97 insertions(+), 89 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 657964a6f..9e3d53351 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -10,6 +10,21 @@ + + + + + + + + + + + + + + + @@ -22,13 +37,7 @@ - - - - - - - + @@ -59,33 +68,40 @@ - - + + + + + + + + + diff --git a/resource/wiki/常用查询.md b/resource/wiki/常用查询.md index 368ed04c9..49fba1b6a 100644 --- a/resource/wiki/常用查询.md +++ b/resource/wiki/常用查询.md @@ -30,4 +30,9 @@ update hrsa_salary_sob_default_item set delete_type =3 where delete_type =0; update hrsa_salary_sob_item set delete_type= 3 where delete_type =0 and salary_item_id in (select id from hrsa_salary_item where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal') ); -UPDATE hrsa_salary_item set delete_type = 3 where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal'); \ No newline at end of file +UPDATE hrsa_salary_item set delete_type = 3 where delete_type=0 and system_type=1 and use_in_employee_salary =0 and code not in('ressueTotal','issuedTotal'); + + +# 开启系统算税 +update hrsa_salary_sys_conf set conf_value = '1' where conf_key = 'taxDeclarationFunction' + diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index d86941b8b..245f3b20c 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.salaryacct.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; @@ -28,6 +29,7 @@ import java.util.Date; @AllArgsConstructor //hrsa_salary_acct_emp @ElogTransform(name = "薪资核算人员") +@Auth(page = "salaryAcct") public class SalaryAcctEmployeePO { /** diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 3a6e00071..542988877 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -9,8 +9,10 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; @@ -23,6 +25,8 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeQueryParam; import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQueryParam; import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryDateUtil; @@ -33,7 +37,6 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.wbi.util.Util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -89,13 +92,19 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public PageInfo listPage(SalaryStatisticsEmployeeQueryParam queryParam) { List list = Collections.emptyList(); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); // 1.分权处理, 首先获取个税扣缴义务人参数 - Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam taxAgentQueryParam = new TaxAgentQueryParam(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentViews = getTaxAgentService(user).listAuth(taxAgentQueryParam); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(taxAgentIds)) { return page; @@ -109,39 +118,15 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 查询薪资核算人员 List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + salaryAcctEmployeeList = getAuthService(user).auth(salaryAcctEmployeeList, AuthFilterTypeEnum.QUERY_DATA,SalaryAcctEmployeePO.class,"report"); + if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return page; } -// if (queryParam.getEmployeeType() != null) { -// salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(s -> queryParam.getEmployeeType().getValue().equals(s.getEmployeeType())).collect(Collectors.toList()); -// } -// // 外部人员id -// Set extEmployeeIds = Sets.newHashSet(); - // 内部人员id - Set innerEmployeeIds = Sets.newHashSet(); - for (SalaryAcctEmployeePO sae : salaryAcctEmployeeList) { -// if (EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(sae.getEmployeeType())) { -// extEmployeeIds.add(sae.getEmployeeId()); -// } else if (EmployeeTypeEnum.ORGANIZATION.getValue().equals(sae.getEmployeeType())) { -// innerEmployeeIds.add(sae.getEmployeeId()); -// } - innerEmployeeIds.add(sae.getEmployeeId()); - } + Set innerEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeeList, SalaryAcctEmployeePO::getEmployeeId); // 3.关键字搜索参数 if (StringUtils.isNotEmpty(queryParam.getKeyword())) { -// if (CollectionUtils.isNotEmpty(extEmployeeIds)) { -// // 查询外部人员 -// List extEmployeeList = new LambdaQueryChainWrapper<>(extEmployeeMapper) -// .eq(ExtEmployeePO::getTenantKey, tenantKey) -// .eq(ExtEmployeePO::getDeleteType, 0) -// .list(); -// Set finalExtEmployeeIds = extEmployeeIds; -// extEmployeeIds = extEmployeeList.stream() -// .filter(e -> finalExtEmployeeIds.contains(e.getId()) && (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getCardNum()) && e.getCardNum().contains(queryParam.getKeyword())))) -// .map(ExtEmployeePO::getId) -// .collect(Collectors.toSet()); -// } if (CollectionUtils.isNotEmpty(innerEmployeeIds)) { List salaryEmployees = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); Set finalInnerEmployeeIds = innerEmployeeIds; @@ -149,38 +134,15 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .filter(e -> finalInnerEmployeeIds.contains(e.getEmployeeId()) && (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) .map(DataCollectionEmployee::getEmployeeId) .collect(Collectors.toSet()); -// Map idNoMap = idNoMapByEmployeeIds(finalInnerEmployeeIds); -// for (Long k : idNoMap.keySet()) { -// if (idNoMap.get(k) != null && idNoMap.get(k).contains(queryParam.getKeyword())) { -// innerEmployeeIds.addAll(idNoMap.keySet()); -// } -// } } } - List innerEmployeeIdList = innerEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); -// List extEmployeeIdList = extEmployeeIds.stream().sorted(Comparator.comparing(e -> e)).collect(Collectors.toList()); - // 排序,内部员工优先 - list = innerEmployeeIdList.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() - .id(e) -// .employeeType(EmployeeTypeEnum.ORGANIZATION.getValue()) - .build()).collect(Collectors.toList()); -// list.addAll(extEmployeeIdList.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder() -// .id(e) -// .employeeType(EmployeeTypeEnum.EXT_EMPLOYEE.getValue()) -// .build()).collect(Collectors.toList())); + list = innerEmployeeIds.stream().map(e -> SalaryStatisticsEmployeeListDTO.builder().id(e).build()).collect(Collectors.toList()); // 第一页数据显示处理 page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); List salaryStatisticsEmployeeListDTOs = page.getList(); List employeeIds = salaryStatisticsEmployeeListDTOs.stream().map(SalaryStatisticsEmployeeListDTO::getId).collect(Collectors.toList()); - // 查询外部人员 -// List extEmployeeList = CollectionUtils.isEmpty(extEmployeeIdList) ? Lists.newArrayList() : new LambdaQueryChainWrapper<>(extEmployeeMapper) -// .eq(ExtEmployeePO::getTenantKey, tenantKey) -// .eq(ExtEmployeePO::getDeleteType, 0) -// .in(ExtEmployeePO::getId, extEmployeeIdList) -// .list(); -// Map extEmployeeMap = extEmployeeList.stream().collect(Collectors.toMap(ExtEmployeePO::getId, v -> v)); List simpleEmployeeList = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); Map innerEmployeeMap = simpleEmployeeList.stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, v -> v)); salaryStatisticsEmployeeListDTOs.forEach(e -> { @@ -295,11 +257,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public PageInfo listSalaryAcctEmp(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { - List list = Collections.emptyList(); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); - // 1.分权处理, 首先获取个税扣缴义务人参数 - Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentViews = getTaxAgentService(user).listAuth(param); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(queryParam.getTaxAgentIds())) { taxAgentIds = taxAgentIds.stream().filter(queryParam.getTaxAgentIds()::contains).collect(Collectors.toList()); @@ -323,6 +284,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 查询薪资核算人员 List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + salaryAcctEmployeeList = getAuthService(user).auth(salaryAcctEmployeeList, AuthFilterTypeEnum.QUERY_DATA,SalaryAcctEmployeePO.class,"report"); + if (CollectionUtils.isNotEmpty(queryParam.getSubCompanyIds()) || CollectionUtils.isNotEmpty(queryParam.getDepartmentIds()) || StringUtils.isNotBlank(queryParam.getKeyword())) { // 根据分部、部门筛选 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); diff --git a/src/com/engine/salary/service/SalaryAcctEmployeeService.java b/src/com/engine/salary/service/SalaryAcctEmployeeService.java index 6c506cb04..546110745 100644 --- a/src/com/engine/salary/service/SalaryAcctEmployeeService.java +++ b/src/com/engine/salary/service/SalaryAcctEmployeeService.java @@ -255,6 +255,7 @@ public interface SalaryAcctEmployeeService { * @return */ List listByTaxAgentAndSalaryMonth(List taxAgentIds, Set salaryMonths); + List listBySobAndSalaryMonth(List salarySobIds, Set salaryMonths); /** * 锁定人员 diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index d29f21a03..b1962dc47 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -17,5 +17,7 @@ public interface AuthService { List auth(List list, AuthFilterTypeEnum filterType, Class clazz); + List auth(List list, AuthFilterTypeEnum filterType, Class clazz,String page); + Permission permission(String page); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index cff43bdb0..f2033cdb4 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -20,6 +20,7 @@ import com.engine.salary.service.impl.SalarySobServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; +import com.google.common.collect.Lists; import weaver.hrm.User; import java.lang.reflect.InvocationTargetException; @@ -44,9 +45,13 @@ public class AuthServiceImpl extends Service implements AuthService { return MapperProxyFactory.getProxy(AuthMapper.class); } - @Override public List auth(List list, AuthFilterTypeEnum filterType, Class clazz) { + return auth(list, filterType, clazz, null); + } + + @Override + public List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page) { Boolean isOpenDevolution = getTaxAgentService(user).isOpenDevolution(); boolean isAuth = clazz.isAnnotationPresent(Auth.class); @@ -91,7 +96,7 @@ public class AuthServiceImpl extends Service implements AuthService { List resultList = new ArrayList<>(); - String page = auth.page(); + page = page == null ? auth.page() : page; AuthCheckTypeEnum checkType = auth.checkType(); //给各管理员赋值对应的扣缴义务人权限 @@ -286,13 +291,27 @@ public class AuthServiceImpl extends Service implements AuthService { boolean able = false; - //如果是管理员,赋值管理权限返回 - if (isChief || isAdminEnable) { + //不需要鉴权的页面 + List noAuthPage = Lists.newArrayList("myBill"); + + //只允许总管理进去的界面 + List chiefPage = Lists.newArrayList("auth"); + + if (noAuthPage.contains(page)) { opts.add("admin"); able = true; + } else if (chiefPage.contains(page)) { + opts.add("admin"); + able = isChief; } else { - opts = getAuthMapper().getOptsByPage(uid, page); - able = CollectionUtil.isNotEmpty(opts); + //如果是管理员,赋值管理权限返回 + if (isChief || isAdminEnable) { + opts.add("admin"); + able = true; + } else { + opts = getAuthMapper().getOptsByPage(uid, page); + able = CollectionUtil.isNotEmpty(opts); + } } return Permission.builder() diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 55cc9fb38..46c8fef28 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -29,6 +29,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; @@ -500,7 +501,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction throw new SalaryRunTimeException("税款所属期不能为空!"); } // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); //个税扣缴义务人 String taxAgentId = Util.null2String(addUpDeductionRecordParam.getTaxAgentId()); // 获取租户下所有的人员 @@ -515,7 +518,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //查询对于人员信息导入筛选的全局配置 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); List insertData = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); Date now = new Date(); //待插入数据库对象 AddUpDeduction addUpDeduction = AddUpDeduction.builder().tenantKey(DEFAULT_TENANT_KEY).createTime(now).updateTime(now).creator((long) user.getUID()).declareMonth(declareMonth).build(); @@ -530,27 +532,15 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //个税扣缴义务人不能为空 throw new SalaryRunTimeException("个税扣缴义务人不能为空"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - addUpDeduction.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + addUpDeduction.setTaxAgentId(optionalTemp.get().getId()); } else { //个税扣缴义务人不存在或不在权限范围内 throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内"); } } - //fixme 分权判断 -// if (openDevolution) { -// Optional optionalTaxAgentEmp = taxAgentEmployees.stream().filter(f -> f.getEmployeeId().equals(addUpDeduction.getEmployeeId())).findFirst(); -// if (!optionalTaxAgentEmp.isPresent()) { -// Map errorMessageMap = Maps.newHashMap(); -// errorMessageMap.put("message", rowIndex + "该条数据不在个税扣缴义务人人员范围内,不可导入"); -// errorData.add(errorMessageMap); -// errorSum += 1; -// } -// } - // 判断是否有核算过 if (CollectionUtils.isNotEmpty(salaryAcctEmployees)) { Optional optionalAcctEmp = salaryAcctEmployees.stream().filter(f -> f.getEmployeeId().equals(addUpDeduction.getEmployeeId()) && f.getTaxAgentId().equals(addUpDeduction.getTaxAgentId())).findFirst(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index ec0db954c..fcba40a85 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -27,6 +27,8 @@ import com.engine.salary.mapper.salarysob.SobTaxLinkMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -79,6 +81,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return ServiceUtil.getService(SalaryAcctReportServiceImpl.class, user); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + // private SalaryCheckResultDetailService salaryCheckResultDetailService; // private SalaryComparisonResultService salaryComparisonResultService; @@ -785,6 +791,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().taxAgentIds(taxAgentIds).salaryMonths(salaryMonths).build()); } + @Override + public List listBySobAndSalaryMonth(List salarySobIds, Set salaryMonths) { + return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().salarySobIds(salarySobIds).salaryMonths(salaryMonths).build()); + } @Override public void lockEmp(SalaryAcctResultUpdateLockStatusParam updateParam) { From 0f1d710cc1709f63e5d087fd09c4deac72bb344d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 19 Sep 2024 17:57:48 +0800 Subject: [PATCH 057/184] =?UTF-8?q?=E7=A9=BF=E6=A2=AD=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/web/SalaryItemController.java | 8 ++++++++ src/com/engine/salary/wrapper/SalaryItemWrapper.java | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/src/com/engine/salary/web/SalaryItemController.java b/src/com/engine/salary/web/SalaryItemController.java index 91fa153ad..50c610056 100644 --- a/src/com/engine/salary/web/SalaryItemController.java +++ b/src/com/engine/salary/web/SalaryItemController.java @@ -67,6 +67,14 @@ public class SalaryItemController { return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listPage, searchParam); } + @POST + @Path("/listAuth") + @Produces(MediaType.APPLICATION_JSON) + public String listAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam searchParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listAuth, searchParam); + } + /** * 可删除的薪资项目列表 diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index 15e935539..fc61561fa 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -321,4 +321,8 @@ public class SalaryItemWrapper extends Service { public XSSFWorkbook downloadTemplate(SalaryItemDownloadTemplateParam param) { return getSalaryItemService(user).downloadTemplate(param); } + + public void listAuth(SalaryItemSearchParam param) { + getSalaryItemService(user).listByName(param.getName()); + } } From 7ea6278e4ea03146fd9a642ac37422b8cf322f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 20 Sep 2024 15:58:05 +0800 Subject: [PATCH 058/184] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E4=B8=93=E9=A1=B9?= =?UTF-8?q?=E9=99=84=E5=8A=A0=E6=89=A3=E9=99=A4=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/biz/AddUpDeductionBiz.java | 4 +- .../salary/entity/auth/dto/AuthRoleDTO.java | 6 +- .../salary/service/AddUpDeductionService.java | 7 +- .../impl/AddUpDeductionServiceImpl.java | 78 ++++++++----------- .../salary/web/SalaryItemController.java | 3 +- .../salary/wrapper/AddUpDeductionWrapper.java | 8 +- .../salary/wrapper/SalaryItemWrapper.java | 4 +- 7 files changed, 48 insertions(+), 62 deletions(-) diff --git a/src/com/engine/salary/biz/AddUpDeductionBiz.java b/src/com/engine/salary/biz/AddUpDeductionBiz.java index 14ba5933c..3e7f8330c 100644 --- a/src/com/engine/salary/biz/AddUpDeductionBiz.java +++ b/src/com/engine/salary/biz/AddUpDeductionBiz.java @@ -96,7 +96,9 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List addUpDeductionRecordStrDTOS = mapper.recordList(param); - return encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); + encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(addUpDeductionRecordStrDTOS); + return addUpDeductionRecordStrDTOS; } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java index cb680172f..2dac34f8f 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDTO.java @@ -37,15 +37,15 @@ public class AuthRoleDTO { */ private List sobIds; + @TableTitle(title = "资源", dataIndex = "resources", key = "resources") + private Integer resources; + @TableTitle(title = "成员", dataIndex = "members", key = "members") private Integer members; @TableTitle(title = "权限", dataIndex = "opts", key = "opts") private Integer opts; - @TableTitle(title = "资源", dataIndex = "resources", key = "resources") - private Integer resources; - @TableTitle(title = "数据", dataIndex = "datas", key = "datas") private Integer datas; diff --git a/src/com/engine/salary/service/AddUpDeductionService.java b/src/com/engine/salary/service/AddUpDeductionService.java index ef3b259ba..5d7e2211d 100644 --- a/src/com/engine/salary/service/AddUpDeductionService.java +++ b/src/com/engine/salary/service/AddUpDeductionService.java @@ -86,10 +86,9 @@ public interface AddUpDeductionService { * 导出详情 * * @param beLongEmployeeId - * @param isChief * @param queryParam */ - XSSFWorkbook exportDetail(Long beLongEmployeeId, boolean isChief, AddUpDeductionQueryParam queryParam); + XSSFWorkbook exportDetail(Long beLongEmployeeId, AddUpDeductionQueryParam queryParam); /** * 获取累计专项附加扣除数据 @@ -155,5 +154,7 @@ public interface AddUpDeductionService { * @return void * @author lfc */ - String autoAddAll(Date yearMonth, Boolean isAdmin, List taxAgentIds); + String autoAddAll(Date yearMonth, boolean isAdmin, List taxAgentIds); + + List listAuth(AddUpDeductionQueryParam param); } diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 46c8fef28..bf5850e5a 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -10,10 +10,10 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.biz.AddUpDeductionBiz; import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -26,8 +26,6 @@ import com.engine.salary.entity.datacollection.param.AddUpDeductionRecordParam; import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; -import com.engine.salary.entity.taxagent.bo.TaxAgentBO; -import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -646,8 +644,10 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); ArrayList declareMonthDate = new ArrayList<>(); try { @@ -659,10 +659,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction if (deleteParam.getTaxAgentId() != null && (!deleteParam.getTaxAgentId().equals(""))) { // 设置了个税扣缴义务人 Long taxAgentId = SalaryEntityUtil.string2Long(deleteParam.getTaxAgentId()); - boolean canDelete = taxAgentIds.stream().anyMatch(t -> Objects.equals(t, taxAgentId)); - if (!canDelete) { - throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内!"); - } ArrayList tai = new ArrayList<>(); tai.add(taxAgentId); queryParam = AddUpDeductionQueryParam.builder().declareMonthDate(declareMonthDate).taxAgentIds(tai).build(); @@ -670,7 +666,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam = AddUpDeductionQueryParam.builder().declareMonthDate(declareMonthDate).taxAgentIds(taxAgentIds).build(); } // 获取所有想要删除的数据 - List list = addUpDeductionBiz.list(queryParam); + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List list = listAuth(queryParam); + // 获取已经核算的数据 List salaryAcctEmployees = getAccountedEmployeeDataByTaxYearMonth(declareMonthStr); for (AddUpDeductionDTO item : list) { @@ -686,7 +684,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction // 记录日志 Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())).map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); + List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getId())).map(TaxAgentPO::getName).collect(Collectors.toList()); String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); @@ -710,7 +708,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } @Override - public String autoAddAll(Date yearMonth, Boolean isAdmin, List taxAgentIds) { + public String autoAddAll(Date yearMonth, boolean isAdmin, List taxAgentIds) { String cacheKey = "addUpDeduction_autoAddAll_processing"; Object objVal = Util_DataCache.getObjVal(cacheKey); if (objVal != null) { @@ -719,12 +717,13 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction try { Util_DataCache.setObjVal(cacheKey, true); //如果是定时任务直接查询所有,isAdmin传true - boolean isChief = Boolean.TRUE.equals(isAdmin) || getTaxAgentService(user).isChief((long) user.getUID()); Collection taxAgents; - if (isChief) { + if (isAdmin) { taxAgents = getTaxAgentService(user).listAll(); } else { - taxAgents = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + taxAgents = getTaxAgentService(user).listAuth(param); } // 过滤个税扣缴义务人选择框 if (CollectionUtils.isNotEmpty(taxAgentIds)) { @@ -829,6 +828,15 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction } } + @Override + public List listAuth(AddUpDeductionQueryParam param) { + List list = getAddUpDeductionMapper().list(param); + list = getAuthService(user).auth(list, param.getFilterType(), AddUpDeductionDTO.class); + encryptUtil.decryptList(list, AddUpDeductionDTO.class); + SalaryI18nUtil.i18nList(list); + return list; + } + /** * 对每个扣除项做加法 * @@ -928,8 +936,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - List list = getAddUpDeductionMapper().list(queryParam); - list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, AddUpDeductionDTO.class); + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); + List list = listAuth(queryParam); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionDTO.class); encryptUtil.decryptList(pageInfo.getList(), AddUpDeductionDTO.class); return pageInfo; @@ -961,7 +970,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction * @return */ @Override - public XSSFWorkbook exportDetail(Long beLongEmployeeId, boolean isChief, AddUpDeductionQueryParam queryParam) { + public XSSFWorkbook exportDetail(Long beLongEmployeeId, AddUpDeductionQueryParam queryParam) { queryParam.setEmployeeId(beLongEmployeeId); AddUpDeductionBiz biz = new AddUpDeductionBiz(); @@ -991,7 +1000,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //获取操作按钮资源 - List> rowList = getExcelRowDetailList(isChief, queryParam); + List> rowList = getExcelRowDetailList(queryParam); //获取excel @@ -1005,8 +1014,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction * @param param * @return */ - private List> getExcelRowDetailList(boolean isChief, AddUpDeductionQueryParam param) { - long employeeId = user.getUID(); + private List> getExcelRowDetailList(AddUpDeductionQueryParam param) { //excel标题 List title = Arrays.asList("姓名", "申报月份", "个税扣缴义务人", "部门", "工号", "累计子女教育", "累计继续教育", "累计住房贷款利息", "累计住房租金", "累计赡养老人", "累计大病医疗", "累计婴幼儿照护"); @@ -1034,19 +1042,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction }).collect(Collectors.toList())).orElse(Collections.emptyList()); - // 开启分权并且不是薪酬模块总管理员 - if (getTaxAgentService(user).isOpenDevolution() && !isChief) { - List taxAgentEmployees = getTaxAgentService(user).listTaxAgentAndEmployee(employeeId); - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); -// List lastList = getLastListByModifier(employeeId, tenantKey); - list = list.stream().filter(f -> - // 作为管理员 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - // 作为分管理员 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId())).collect(Collectors.toList()); - } - - List> rowList = new ArrayList<>(); rowList.add(title); rowList.addAll(dataRowList); @@ -1075,6 +1070,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction List> rows = new ArrayList<>(); rows.add(headerList); if (queryParam.isHasData()) { + queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); List> datas = getLists(queryParam); rows.addAll(datas); } @@ -1102,6 +1098,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //excel标题 List title = Arrays.asList("姓名", "个税扣缴义务人", "部门", "手机号", "工号", "证件号码", "入职日期", "累计子女教育", "累计继续教育", "累计住房贷款利息", "累计住房租金", "累计赡养老人", "累计大病医疗", "累计婴幼儿照护"); + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List> dataRowList = getLists(queryParam); List> rowList = new ArrayList<>(); @@ -1130,18 +1127,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = new AddUpDeductionBiz().list(param); - - // 开启分权并且不是薪酬模块总管理员 - if (getTaxAgentService(user).isNeedAuth(uid)) { - List taxAgentEmployees = getTaxAgentService(user).listTaxAgentAndEmployee(uid); - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(uid).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - list = list.stream().filter(f -> - // 作为管理员 - taxAgentIdsAsAdmin.contains(f.getTaxAgentId()) - // 作为分管理员 - || TaxAgentBO.checkTaxAgentAndEmployee(taxAgentEmployees, f.getTaxAgentId(), f.getEmployeeId())).collect(Collectors.toList()); - } + List list = listAuth(param); List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { List cellList = new ArrayList<>(); diff --git a/src/com/engine/salary/web/SalaryItemController.java b/src/com/engine/salary/web/SalaryItemController.java index 50c610056..115719b2c 100644 --- a/src/com/engine/salary/web/SalaryItemController.java +++ b/src/com/engine/salary/web/SalaryItemController.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO; import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; import com.engine.salary.entity.salaryitem.dto.SysSalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.*; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryI18nUtil; @@ -72,7 +73,7 @@ public class SalaryItemController { @Produces(MediaType.APPLICATION_JSON) public String listAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam searchParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listAuth, searchParam); + return new ResponseResult>(request, response, user).run(getSalaryItemWrapper(user)::listAuth, searchParam); } diff --git a/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java b/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java index 68c8e6c4d..a4e3bf86f 100644 --- a/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java +++ b/src/com/engine/salary/wrapper/AddUpDeductionWrapper.java @@ -115,9 +115,8 @@ public class AddUpDeductionWrapper extends Service { if (po == null) { throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100338, "累计专项附加扣除不存在") + "[id:%s]", id)); } - boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - return getAddUpDeductionService(user).exportDetail(po.getEmployeeId(), isChief, queryParam); + return getAddUpDeductionService(user).exportDetail(po.getEmployeeId(), queryParam); } /** @@ -168,12 +167,9 @@ public class AddUpDeductionWrapper extends Service { public String autoAddAll(AddDeductionAutoAddParam param) { Date yearMonth = param.getYearMonthDate(); - if (isLog) { - log.info("一键累计, 操作人 「{}」", user.getUsername()); - } if (yearMonth == null) { throw new SalaryRunTimeException("一键累计传入日期格式错误"); } - return getAddUpDeductionService(user).autoAddAll(yearMonth, null, param.getTaxAgentIds()); + return getAddUpDeductionService(user).autoAddAll(yearMonth, false, param.getTaxAgentIds()); } } diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index fc61561fa..2a510d8db 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -322,7 +322,7 @@ public class SalaryItemWrapper extends Service { return getSalaryItemService(user).downloadTemplate(param); } - public void listAuth(SalaryItemSearchParam param) { - getSalaryItemService(user).listByName(param.getName()); + public List listAuth(SalaryItemSearchParam param) { + return getSalaryItemService(user).listByName(param.getName()); } } From 619af1a76a02526c6cc6199f671d10fa04eed094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 20 Sep 2024 16:45:35 +0800 Subject: [PATCH 059/184] =?UTF-8?q?=E5=85=B6=E4=BB=96=E5=85=8D=E7=A8=8E?= =?UTF-8?q?=E6=89=A3=E9=99=A4=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacollection/po/OtherDeductionPO.java | 4 +- .../salary/service/OtherDeductionService.java | 2 + .../impl/AddUpDeductionServiceImpl.java | 6 +- .../impl/OtherDeductionServiceImpl.java | 88 +++++++++---------- 4 files changed, 52 insertions(+), 48 deletions(-) diff --git a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java index 83f1ec932..033c82842 100644 --- a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java +++ b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java @@ -1,8 +1,9 @@ package com.engine.salary.entity.datacollection.po; +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryFormulaVar; -import com.engine.hrmelog.annotation.ElogTransform; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -20,6 +21,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @ElogTransform( name = "其他免税扣除") +@Auth(page = "otherDeduction") public class OtherDeductionPO { /** diff --git a/src/com/engine/salary/service/OtherDeductionService.java b/src/com/engine/salary/service/OtherDeductionService.java index dbe8de31a..18b743cda 100644 --- a/src/com/engine/salary/service/OtherDeductionService.java +++ b/src/com/engine/salary/service/OtherDeductionService.java @@ -112,4 +112,6 @@ public interface OtherDeductionService { OtherDeductionRecordDTO getOtherDeduction(OtherDeductionParam otherDeductionParam); String extendToLastMonth(OtherDeductionExtendLastParam param); + + List listAuth(OtherDeductionQueryParam queryParam); } diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index bf5850e5a..dcc1bf162 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -832,8 +832,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction public List listAuth(AddUpDeductionQueryParam param) { List list = getAddUpDeductionMapper().list(param); list = getAuthService(user).auth(list, param.getFilterType(), AddUpDeductionDTO.class); - encryptUtil.decryptList(list, AddUpDeductionDTO.class); - SalaryI18nUtil.i18nList(list); return list; } @@ -941,6 +939,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpDeductionDTO.class); encryptUtil.decryptList(pageInfo.getList(), AddUpDeductionDTO.class); + SalaryI18nUtil.i18nList(pageInfo.getList()); return pageInfo; } @@ -1122,12 +1121,13 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction private List> getLists(AddUpDeductionQueryParam param) { - long uid = user.getUID(); //排序配置 OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); List list = listAuth(param); + encryptUtil.decryptList(list, AddUpDeductionDTO.class); + SalaryI18nUtil.i18nList(list); List> dataRowList = Optional.ofNullable(list).map(List::stream).map(operatorStream -> operatorStream.map(dto -> { List cellList = new ArrayList<>(); diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index 2089476f9..e3d5d2736 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.salary.entity.datacollection.param.*; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; @@ -122,19 +123,18 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - List list = getOtherDeductionMapper().list(queryParam); - list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, OtherDeductionListDTO.class); + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List list = listAuth(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, OtherDeductionListDTO.class); encryptUtil.decryptList(page.getList(), OtherDeductionListDTO.class); + SalaryI18nUtil.i18nList(page.getList()); return page; } @Override public PageInfo recordListPage(OtherDeductionQueryParam queryParam) { - long employeeId = user.getUID(); - //申报月份 List declareMonth = queryParam.getDeclareMonth(); if (CollectionUtils.isNotEmpty(declareMonth)) { @@ -142,18 +142,11 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction queryParam.setDeclareMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList())); } - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(OtherDeductionRecordDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } List list = getOtherDeductionMapper().recordList(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, OtherDeductionRecordDTO.class); encryptUtil.decryptList(page.getList(), OtherDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(page.getList()); return page; } @@ -215,7 +208,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //人员信息 List employees = getSalaryEmployeeService(user).listEmployee(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); //税款所属期 Date declareMonth = SalaryDateUtil.stringToDate(declareMonthStr + "-01"); // 获取已经核算的数据 @@ -228,7 +223,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //合规数据 List eligibleData = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); for (int i = 0; i < OtherDeductions.size(); i++) { OtherDeductionListDTO dto = OtherDeductions.get(i); @@ -305,17 +299,16 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction errorData.add(errorMessageMap); errorSum += 1; } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getTaxAgentId().equals(Long.valueOf(taxAgentId))) { + if (StringUtils.isNotEmpty(taxAgentId) && !optionalTemp.get().getId().equals(Long.valueOf(taxAgentId))) { //个税扣缴义务人与导入时选择的不一致 Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowIndex + "个税扣缴义务人与导入时选择的不一致"); errorData.add(errorMessageMap); errorSum += 1; } else { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } } else { //个税扣缴义务人不存在 @@ -501,7 +494,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction * @return 导出数据行集合 */ private List> getExcelRowList(OtherDeductionQueryParam param, boolean hasData) { - long employeeId = user.getUID(); //excel标题 List title = Arrays.asList("姓名", "个税扣缴义务人", "部门", "手机号", "工号", "证件号码", "入职日期", "商业健康保险", "税延养老保险", "其他", "准予扣除的捐赠额", "个人养老金"); List> rowList = new ArrayList<>(); @@ -512,8 +504,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - List list = getOtherDeductionMapper().list(param); - list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, OtherDeductionListDTO.class); + param.setFilterType( AuthFilterTypeEnum.QUERY_DATA); + List list = listAuth(param); encryptUtil.decryptList(list, OtherDeductionListDTO.class); SalaryI18nUtil.i18nList(list); @@ -601,6 +593,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //查询详细信息 List list = getOtherDeductionMapper().recordList(param); encryptUtil.decryptList(list, OtherDeductionRecordDTO.class); + SalaryI18nUtil.i18nList(list); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { @@ -641,15 +634,16 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction String declareMonthStr = otherDeductionParam.getDeclareMonth(); OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); - Long currentEmployeeId = (long) user.getUID(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); OtherDeductionPO byId = OtherDeductionBiz.getById(otherDeductionParam.getId()); if (byId == null) { throw new SalaryRunTimeException("该数据不存在!"); } Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); + boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getId(), taxAgentId)); if (!canEdit) { //没有编辑权限 throw new SalaryRunTimeException("该个税扣缴义务人无权限编辑此数据!"); @@ -695,8 +689,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public void createData(OtherDeductionParam otherDeductionParam) { long currentEmployeeId = user.getUID(); - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); //查询对于人员信息导入筛选的全局配置 SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; @@ -706,7 +698,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //人员信息 List employees = getSalaryEmployeeService(user).listEmployee(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); //税款所属期 Date declareMonth = SalaryDateUtil.stringToDate(declareMonthStr + "-01"); // 获取已经核算的数据 @@ -736,10 +730,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction //个税扣缴义务人不能为空 throw new SalaryRunTimeException("个税扣缴义务人不能为空"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //个税扣缴义务人不存在或不在权限范围内 throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内"); @@ -779,9 +772,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction @Override public void deleteSelectData(AddUpDeductionRecordDeleteParam deleteParam) { - long currentEmployeeId = user.getUID(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); OtherDeductionBiz otherDeductionBiz = new OtherDeductionBiz(); String declareMonthStr = deleteParam.getDeclareMonth(); List deleteIds = deleteParam.getIds(); @@ -798,7 +792,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction throw new SalaryRunTimeException("数据不存在或已被删除!"); } // 判断是否在个税扣缴义务人范围内 - Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getTaxAgentId(), byId.getTaxAgentId())).findFirst(); + Optional first = taxAgentList.stream().filter(m -> Objects.equals(m.getId(), byId.getTaxAgentId())).findFirst(); if (!first.isPresent()) { throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内"); } @@ -834,8 +828,10 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction long currentEmployeeId = user.getUID(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - List taxAgentIds = taxAgentList.stream().map(TaxAgentManageRangeEmployeeDTO::getTaxAgentId).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); OtherDeductionBiz otherDeductionBiz = new OtherDeductionBiz(); Date declareMonthDate = null; try { @@ -860,6 +856,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } // 获取所有想要删除的数据 List list = otherDeductionBiz.listSome(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.ADMIN_DATA, OtherDeductionPO.class); // 获取已经核算的数据 List salaryAcctEmployees = getAddUpDeductionService(user).getAccountedEmployeeData(declareMonthStr); for (OtherDeductionPO item : list) { @@ -875,8 +872,8 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction // 记录日志 Collection finalTaxAgentIds = queryParam.getTaxAgentIds(); - List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getTaxAgentId())) - .map(TaxAgentManageRangeEmployeeDTO::getTaxAgentName).collect(Collectors.toList()); + List taxAgentNames = taxAgentList.stream().filter(t -> finalTaxAgentIds.contains(t.getId())) + .map(TaxAgentPO::getName).collect(Collectors.toList()); String name = declareMonthStr + " " + StringUtils.join(taxAgentNames, ","); LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setTargetName(name); @@ -913,13 +910,9 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction i -> i.getTaxAgentId() + "" + i.getEmployeeId())); // 查找到所有个税扣缴义务人 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - Collection taxAgentPOS; - if (needAuth) { - taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()); - } else { - taxAgentPOS = getTaxAgentService(user).listAll(); - } + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(taxAgentQueryParam); List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); //查询上月数据 @@ -990,6 +983,13 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction return ""; } + @Override + public List listAuth(OtherDeductionQueryParam queryParam) { + List list = getOtherDeductionMapper().list(queryParam); + list = getAuthService(user).auth(list, queryParam.getFilterType(), OtherDeductionListDTO.class); + return list; + } + @Override public XSSFWorkbook downloadTemplate(OtherDeductionQueryParam param) { // 1.工作簿名称 From 0ece125d18c6cc4b130e06200e5ed9df2434251c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 20 Sep 2024 16:49:46 +0800 Subject: [PATCH 060/184] =?UTF-8?q?=E5=85=B6=E4=BB=96=E5=85=8D=E7=A8=8E?= =?UTF-8?q?=E6=89=A3=E9=99=A4=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/OtherDeductionServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index e3d5d2736..6f947a437 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -123,7 +123,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + queryParam.setFilterType(AuthFilterTypeEnum.DATA_OPT); List list = listAuth(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), @@ -174,9 +174,6 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction public Map importData(OtherDeductionImportParam importParam) { - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - - long currentEmployeeId = user.getUID(); Map apidatas = new HashMap(); OtherDeductionBiz OtherDeductionBiz = new OtherDeductionBiz(); From f62dfa17be7f38e06a519150c4f11145b9a3b0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 20 Sep 2024 17:01:37 +0800 Subject: [PATCH 061/184] =?UTF-8?q?=E5=BE=80=E6=9C=9F=E7=B4=AF=E8=AE=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AddUpSituationServiceImpl.java | 35 ++++++------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index f5fb1e6bf..2f3ef6afd 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -218,17 +218,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public PageInfo recordListPage(AddUpSituationQueryParam queryParam) { - long employeeId = user.getUID(); - - Boolean needAuth = getTaxAgentService(user).isNeedAuth(employeeId); - if (needAuth) { - List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIdsAsAdmin)) { - return new PageInfo<>(AddUpSituationRecordDTO.class); - } - queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); - } - List list = getAddUpSituationMapper().recordList(queryParam); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), @@ -252,7 +241,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100353, "参数有误:税款所属期必传")); } - AddUpSituationBiz biz = new AddUpSituationBiz(); List addUpSituations = biz.listSome(AddUpSituation.builder().taxAgentId(taxAgentId).taxYearMonth(taxCycle).build()); Set addUpSituationIds = SalaryEntityUtil.properties(addUpSituations, AddUpSituation::getId); @@ -266,8 +254,8 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation @Override public XSSFWorkbook export(AddUpSituationQueryParam queryParam) { - queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); // 获取操作按钮资源 + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List> rowList = getExcelRowList(queryParam, true); // 记录日志 @@ -291,7 +279,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation * @return 导出数据行集合 */ private List> getExcelRowList(AddUpSituationQueryParam param, boolean hasData) { - long employeeId = user.getUID(); // excel标题 final List title = Arrays.asList("姓名", "个税扣缴义务人", "部门", "手机号", "工号", "证件号码", "入职日期", "累计收入额", "累计减除费用", "累计社保个人合计", "累计公积金个人合计", "累计子女教育", "累计继续教育", "累计住房贷款利息", "累计住房租金", "累计赡养老人", @@ -544,8 +531,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //税款所属期 String taxYearMonthStr = Util.null2String(importParam.getTaxYearMonth()); - Long currentEmployeeId = (long) user.getUID(); - // 获取所有个税扣缴义务人 TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); @@ -857,18 +842,19 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation */ @Override public void editAddUpSituation(AddUpSituationParam addUpSituationParam) { - Long currentEmployeeId = (long) user.getUID(); AddUpSituationBiz biz = new AddUpSituationBiz(); //税款所属期 String taxYearMonthStr = addUpSituationParam.getTaxYearMonth(); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); AddUpSituation byId = biz.getById(addUpSituationParam.getId()); if (byId == null) { throw new SalaryRunTimeException("该数据不存在!"); } Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); + boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getId(), taxAgentId)); if (!canEdit) { //没有编辑权限 throw new SalaryRunTimeException("该个税扣缴义务人无权限编辑此数据!"); @@ -934,7 +920,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //税款所属期 String taxYearMonthStr = Util.null2String(addUpSituationParam.getTaxYearMonth()); // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); // 获取租户下所有的人员 List employees = getSalaryEmployeeService(user).listEmployee(); // 已经核算过的不可操作 @@ -948,8 +936,6 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //合规数据 List insertList = new ArrayList<>(); - List taxAgentEmployees = Lists.newArrayList(); - //待插入数据库对象 AddUpSituation po = AddUpSituation.builder().tenantKey(DEFAULT_TENANT_KEY) .createTime(now) @@ -971,10 +957,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation //个税扣缴义务人不能为空 throw new SalaryRunTimeException("个税扣缴义务人不能为空"); } else { - Optional optionalTemp = taxAgentList.stream().filter(m -> m.getTaxAgentName().equals(taxAgentName)).findFirst(); + Optional optionalTemp = taxAgentList.stream().filter(m -> m.getName().equals(taxAgentName)).findFirst(); if (optionalTemp.isPresent()) { - po.setTaxAgentId(optionalTemp.get().getTaxAgentId()); - taxAgentEmployees = optionalTemp.get().getEmployeeList(); + po.setTaxAgentId(optionalTemp.get().getId()); } else { //个税扣缴义务人不存在 throw new SalaryRunTimeException("个税扣缴义务人不存在或不在权限范围内"); From f0f6943eb0ac136e7f1c6182945b9abf4846d60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 23 Sep 2024 10:17:36 +0800 Subject: [PATCH 062/184] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AttendQuoteDataServiceImpl.java | 2 +- .../service/impl/SalaryItemServiceImpl.java | 50 ++++++++----------- 2 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index ae7789697..e6c5f6e24 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -382,7 +382,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); // 转换成薪资核算人员po - Date salaryDate = SalaryDateUtil.dateStrToLocalTime(salaryYearMonth + "-01"); + Date salaryDate = SalaryDateUtil.dateStrToLocalDate(salaryYearMonth + "-01"); List salaryAcctEmployeePOS = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryDate).build(), salaryArchiveDataDTOS, (long) user.getUID()); //过滤掉不属于当前账套扣缴义务人的人员 diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index 73233e891..298bb2ebe 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -23,8 +23,10 @@ import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.*; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryformula.ReferenceTypeEnum; import com.engine.salary.enums.salaryformula.ReturnTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; @@ -169,36 +171,26 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService @Override public PageInfo listPageByParam(SalaryItemSearchParam searchParam) { - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - Boolean isAdminEnable = getTaxAgentService(user).isAdminEnable((long) user.getUID()); List salaryItemPOS = salaryItemBiz.listByParam(searchParam); - if (needAuth) { - if (isAdminEnable) { - //管理员 - Set userTaxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()) - .stream().map(TaxAgentPO::getId).collect(Collectors.toSet()); - salaryItemPOS = salaryItemPOS.stream() - .filter(po -> filterInRange(userTaxAgentIds, po)) - .sorted(new Comparator() { - @Override - public int compare(SalaryItemPO o1, SalaryItemPO o2) { - if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { - Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); - Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); - return systemType1.compareTo(systemType2); - } else { - Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); - Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); - return sortedIndex2.compareTo(sortedIndex1); - } - } - }) - .collect(Collectors.toList()); - } else { - //普通用户 - salaryItemPOS = new ArrayList<>(); - } - } + + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + List taxAgentPOS = getTaxAgentService(user).listAuth(param); + Set userTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS,TaxAgentPO::getId); + salaryItemPOS = salaryItemPOS.stream() + .filter(po -> filterInRange(userTaxAgentIds, po)) + .sorted((o1, o2) -> { + if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { + Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); + Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); + return systemType1.compareTo(systemType2); + } else { + Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); + Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); + return sortedIndex2.compareTo(sortedIndex1); + } + }) + .collect(Collectors.toList()); return SalaryPageUtil.buildPage(searchParam.getCurrent(), searchParam.getPageSize(), salaryItemPOS); } From 1bb5dd63fbac65e93c5ae20f52963b172004732f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 23 Sep 2024 13:20:59 +0800 Subject: [PATCH 063/184] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=B3=E6=8A=A5?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TaxAgentServiceImpl.java | 3 ++- .../impl/TaxDeclarationServiceImpl.java | 23 ++++++++++++------- .../salary/wrapper/TaxAgentWrapper.java | 22 +----------------- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 83de92b5f..5443c1b45 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -265,7 +265,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override public PageInfo listPage(TaxAgentQueryParam queryParam) { - List taxAgentPOS = getTaxAgentMapper().listBySome(queryParam); + queryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List taxAgentPOS = listAuth(queryParam); return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), taxAgentPOS, TaxAgentPO.class); } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index 4c667b730..9712f53fb 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -206,14 +206,24 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); } + // 查询薪资账套 + Set salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId); + List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); + Map salarySobNameMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getId, SalarySobPO::getName); + Set salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId); salaryAcctRecordPOS = salaryAcctRecordPOS.stream().filter(salaryAcctRecordPO -> salaryAcctRecordIds.contains(salaryAcctRecordPO.getId())).collect(Collectors.toList()); // 如果存在未归档的,也不允许生成个税申报表 - boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())); - if (notArchived) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}有未归档数据,请全部归档后再申报") - .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); - } + salaryAcctRecordPOS.forEach(salaryAcctRecordPO -> { + if (Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())){ + throw new SalaryRunTimeException( + String.format("%s%s账套有未归档数据,请全部归档后再申报" + ,SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()) + ,salarySobNameMap.getOrDefault(salaryAcctRecordPO.getSalarySobId(),"") + ) + ); + } + }); // 如果当前薪资所属月下存在不同的税款所属期,属于异常业务场景,不允许生成个税申报表 Date taxCycle = salaryAcctRecordPOS.get(0).getTaxCycle(); boolean differentTaxCycle = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctRecordPO.getTaxCycle().compareTo(taxCycle) != 0); @@ -221,9 +231,6 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98876, "{0}存在不同的税款所属期,无法正常生成个税申报表,请调整账套设置,重新核算后再生成个税申报表") .replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth()))); } - // 查询薪资账套 - Set salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId); - List salarySobPOS = getSalarySobService(user).listByIds(salarySobIds); // 查询所有薪资项目 List salaryItemPOS = getSalaryItemService(user).listAll(); diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index 6a0618f3b..7c3c1a903 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -22,7 +22,6 @@ import com.engine.salary.service.auth.AuthRoleServiceImpl; import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; -import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -122,26 +121,7 @@ public class TaxAgentWrapper extends Service { // 是否开启分权 boolean isOpenDevolution = getTaxAgentBaseService(user).isOpenDevolution(); - PageInfo page = null; - // 分权情况下,根据自己作为管理员过滤列表 - if (isOpenDevolution && !isChief) { - List list = getTaxAgentService(user).list(queryParam); - // 1.判断自己是否是管理员, 如果是管理员,就是能够操作所属个税扣缴义务人下的所有人的数据 - List taxAgentAdminList = getTaxAgentAdminService(user).listByTaxAgentIdsAndEmployeeId(list.stream().map(TaxAgentPO::getId).collect(Collectors.toList()), (long) user.getUID()); - // 是管理员的列表 - List adminTaxAgentIds = taxAgentAdminList.stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); - list = list.stream().filter(f -> adminTaxAgentIds.contains(f.getId())).collect(Collectors.toList()); - // 分页参数 - // 填充总数和当页数据 - PageInfo dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); - dtoPage.setTotal(list.size()); - dtoPage.setPageNum(queryParam.getCurrent()); - dtoPage.setPageSize(queryParam.getPageSize()); - dtoPage.setList(SalaryPageUtil.subList(dtoPage.getPageNum(), dtoPage.getPageSize(), list)); - page = dtoPage; - } else { - page = getTaxAgentService(user).listPage(queryParam); - } + PageInfo page = getTaxAgentService(user).listPage(queryParam); List taxAgentPOS = page.getList(); PageInfo> listPage = new PageInfo<>(); From cc6deee04c3eefb4cba5caf504a5d5708241898c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 23 Sep 2024 14:35:51 +0800 Subject: [PATCH 064/184] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=88=86=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 5 --- .../SalaryStatisticsReportWrapper.java | 44 +++++++++---------- .../impl/SalaryAcctEmployeeServiceImpl.java | 24 +++++----- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 962e3b135..001222eb0 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -405,11 +405,6 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary @Override public PageInfo> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, List salaryStatisticsItemList) { Map checkMap = SalaryStatisticsReportBO.checkLoad(salaryStatisticsItemList); - // 如果一个都没有,直接返回 -// if (!checkMap.get("isNow")) { -// return new PageInfo>(); -// } - // 获取本期报表分权后的核算人员 List list = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(param); diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 22fb6261f..7556b7bf8 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } - if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { - //报表中缓存的条件 - salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); - if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { - Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); - if (param.getDimensionId().equals(empDimensionId)) { - // 人员维度需要分页 - Map finalResultMap = new HashMap<>(); - PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); - PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); - finalPageInfo.setTotal(pageInfo.getList().size()); - finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); - finalResultMap.put("pageInfo", finalPageInfo); - finalResultMap.put("columns", result.get("columns")); - finalResultMap.put("countResult", result.get("countResult")); - finalResultMap.put("reportId", id); - return finalResultMap; - } - - return result; - } - } +// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { +// //报表中缓存的条件 +// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); +// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { +// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); +// if (param.getDimensionId().equals(empDimensionId)) { +// // 人员维度需要分页 +// Map finalResultMap = new HashMap<>(); +// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); +// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); +// finalPageInfo.setTotal(pageInfo.getList().size()); +// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); +// finalResultMap.put("pageInfo", finalPageInfo); +// finalResultMap.put("columns", result.get("columns")); +// finalResultMap.put("countResult", result.get("countResult")); +// finalResultMap.put("reportId", id); +// return finalResultMap; +// } +// +// return result; +// } +// } // 列表data diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index fcba40a85..16388e1cc 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -16,9 +16,12 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; +import com.engine.salary.entity.salarysob.param.SalarySobQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -608,15 +611,14 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // lambdaQueryChainWrapper.setTaxAgentIds(Collections.singletonList(0L)); // } - // 是否是薪酬总管理员 - boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - // 获取能够管理的扣缴义务人 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID())); - List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(param.getTaxAgent())) { lambdaQueryChainWrapper.setTaxAgentIds(param.getTaxAgent()); - } else if (!isChief) { - // 不是薪酬总管理员,分权 + } else { + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(taxAgentQueryParam); + List canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + // 分权 if (CollectionUtils.isEmpty(canManageTaxAgentIds)) { // 无权限 return Collections.emptyList(); @@ -626,9 +628,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isNotEmpty(param.getSalarySob())) { lambdaQueryChainWrapper.setSalarySobIds(param.getSalarySob()); - } else if (!isChief) { - // 不是薪酬总管理员,分权 - List salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds); + } else { + // 分权 + SalarySobQueryParam salarySobQueryParam = new SalarySobQueryParam(); + salarySobQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List salarySobPOS = getSalarySobService(user).listAuth(salarySobQueryParam); if (CollectionUtils.isEmpty(salarySobPOS)) { // 无权限 return Collections.emptyList(); From a659821be8b852e87c2f6f4828d980886573d13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 09:50:46 +0800 Subject: [PATCH 065/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E9=AB=98?= =?UTF-8?q?=E7=BA=A7=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/auth/dto/AuthTreeDTO.java | 62 +++++++++++++ .../auth/param/AuthRoleListQueryParam.java | 42 +++++++++ .../entity/auth/param/AuthTreeQueryParam.java | 28 ++++++ .../engine/salary/mapper/auth/AuthMapper.java | 4 + .../engine/salary/mapper/auth/AuthMapper.xml | 67 +++++++++++++- .../salary/mapper/auth/AuthRoleMapper.java | 3 + .../salary/mapper/auth/AuthRoleMapper.xml | 88 +++++++++++++++++++ .../service/auth/AuthRoleServiceImpl.java | 3 +- .../salary/service/auth/AuthService.java | 6 +- .../salary/service/auth/AuthServiceImpl.java | 12 ++- src/com/engine/salary/web/AuthController.java | 20 ++++- .../engine/salary/wrapper/AuthWrapper.java | 9 +- 12 files changed, 328 insertions(+), 16 deletions(-) create mode 100644 src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java create mode 100644 src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java diff --git a/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java b/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java new file mode 100644 index 000000000..9583bce12 --- /dev/null +++ b/src/com/engine/salary/entity/auth/dto/AuthTreeDTO.java @@ -0,0 +1,62 @@ +package com.engine.salary.entity.auth.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthTreeDTO { + private Long roleEmpId; + + private List roles; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Role { + private Long roleId; + + private String roleName; + + private List resources; + private List opts; + private List datas; + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Resource { + private Long resourceId; + private String resourceName; + private String resourceType; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Opt { + private Long optId; + private String page; + private String opt; + } + + @lombok.Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Data { + private Long dataId; + private Long employeeId; + } + } +} + diff --git a/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java index 638e2cdd2..ab71eb23a 100644 --- a/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthRoleListQueryParam.java @@ -6,12 +6,54 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @Builder @NoArgsConstructor @AllArgsConstructor public class AuthRoleListQueryParam extends BaseQueryParam { + /** + * 业务线名称 + */ private String name; + /** + * 业务线id + */ + private List roleIds; + + /** + * 扣缴义务人资源 + */ + private List taxAgentIds; + + /** + * 账套资源 + */ + private List sobIds; + + /** + * 成员id + */ + private List roleEmpIds; + + + /** + * 权限页面 + */ + private List pages; + + /** + * 权限项 + */ + private List opts; + + + /** + * 数据id + */ + private List employeeIds; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java new file mode 100644 index 000000000..101faec0e --- /dev/null +++ b/src/com/engine/salary/entity/auth/param/AuthTreeQueryParam.java @@ -0,0 +1,28 @@ +package com.engine.salary.entity.auth.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthTreeQueryParam { + + private Long roleEmpId; + + private List roleIds; + + private List employeeIds; + + private List pages; + + private List opts; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.java b/src/com/engine/salary/mapper/auth/AuthMapper.java index 7d941690d..70533cafa 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthMapper.java @@ -1,8 +1,10 @@ package com.engine.salary.mapper.auth; +import com.engine.salary.entity.auth.dto.AuthTreeDTO; import com.engine.salary.entity.auth.dto.SobOptAuth; import com.engine.salary.entity.auth.dto.TaxEmpOptAuth; import com.engine.salary.entity.auth.dto.TaxOptAuth; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +22,6 @@ public interface AuthMapper { List getLimitTaxAgents(@Param("uid") Long uid); List getOptsByPage(@Param("uid") Long uid, @Param("page") String page); + + AuthTreeDTO authTree(AuthTreeQueryParam param); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index df9ddc0b1..07be9477a 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -59,9 +59,10 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.java b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java index 5a936de7e..1e958fb8f 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.java +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.auth; +import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; import com.engine.salary.entity.auth.po.AuthRolePO; import org.apache.ibatis.annotations.Param; @@ -70,4 +71,6 @@ public interface AuthRoleMapper { */ void deleteByIds(@Param("ids") Collection ids); + + List list(AuthRoleListQueryParam param); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml index f0515b718..8a25166da 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleMapper.xml @@ -204,5 +204,93 @@ + + \ No newline at end of file diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index d71f107d5..5f61ecd05 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -55,7 +55,8 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { @Override public PageInfo roleList(AuthRoleListQueryParam param) { - List authRolePOS = getAuthRoleMapper().listSome(AuthRolePO.builder().build()); + + List authRolePOS = getAuthRoleMapper().list(param); int total = authRolePOS.size(); List collect = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authRolePOS) diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index b1962dc47..147b63e35 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -1,5 +1,7 @@ package com.engine.salary.service.auth; +import com.engine.salary.entity.auth.dto.AuthTreeDTO; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.AuthFilterTypeEnum; @@ -17,7 +19,9 @@ public interface AuthService { List auth(List list, AuthFilterTypeEnum filterType, Class clazz); - List auth(List list, AuthFilterTypeEnum filterType, Class clazz,String page); + List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page); Permission permission(String page); + + AuthTreeDTO tree(AuthTreeQueryParam param); } diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index f2033cdb4..6d474fae0 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -4,10 +4,8 @@ import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.annotation.Auth; -import com.engine.salary.entity.auth.dto.EmpOpt; -import com.engine.salary.entity.auth.dto.SobOptAuth; -import com.engine.salary.entity.auth.dto.TaxEmpOptAuth; -import com.engine.salary.entity.auth.dto.TaxOptAuth; +import com.engine.salary.entity.auth.dto.*; +import com.engine.salary.entity.auth.param.AuthTreeQueryParam; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.auth.AuthCheckTypeEnum; @@ -323,4 +321,10 @@ public class AuthServiceImpl extends Service implements AuthService { .build(); } + @Override + public AuthTreeDTO tree(AuthTreeQueryParam param) { + AuthTreeDTO authTreeDTO = getAuthMapper().authTree(param); + return authTreeDTO; + } + } diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index d03c668c3..83db467d2 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -1,10 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.auth.dto.AuthDataDTO; -import com.engine.salary.entity.auth.dto.AuthMemberDTO; -import com.engine.salary.entity.auth.dto.AuthOptDTO; -import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.dto.*; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.util.ResponseResult; @@ -175,4 +172,19 @@ public class AuthController { } + /** + * 查询 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/tree") + @Produces(MediaType.APPLICATION_JSON) + public String tree(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthTreeQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::tree,param); + } + } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 5e3faa0e0..df8606007 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -2,10 +2,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.auth.dto.AuthDataDTO; -import com.engine.salary.entity.auth.dto.AuthMemberDTO; -import com.engine.salary.entity.auth.dto.AuthOptDTO; -import com.engine.salary.entity.auth.dto.AuthRoleDTO; +import com.engine.salary.entity.auth.dto.*; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; @@ -157,4 +154,8 @@ public class AuthWrapper extends Service { public Permission permission(String page) { return getAuthService(user).permission(page); } + + public AuthTreeDTO tree(AuthTreeQueryParam param) { + return getAuthService(user).tree(param); + } } From d959c75ce05d8005aa10b14b5a4193213f6c9a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 10:19:06 +0800 Subject: [PATCH 066/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/config/SalaryElogConfig.java | 5 ++ .../service/auth/AuthMemberServiceImpl.java | 71 +++++++++++-------- .../service/auth/AuthRoleServiceImpl.java | 64 +++++++++-------- 3 files changed, 81 insertions(+), 59 deletions(-) diff --git a/src/com/engine/salary/config/SalaryElogConfig.java b/src/com/engine/salary/config/SalaryElogConfig.java index 7d9f79321..909fdb9c4 100644 --- a/src/com/engine/salary/config/SalaryElogConfig.java +++ b/src/com/engine/salary/config/SalaryElogConfig.java @@ -317,4 +317,9 @@ public class SalaryElogConfig { * @return */ public static LoggerTemplate salaryStatReportLoggerTemplate = LoggerTemplateBuilder.build("hrsa", "statreport"); + + /** + * 业务线 + */ + public static LoggerTemplate authLinkLoggerTemplate = LoggerTemplateBuilder.build("hrsa", "authlink"); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 61abe4825..37fd81d48 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -2,6 +2,8 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; @@ -9,12 +11,14 @@ import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.entity.auth.po.AuthRoleEmpPO; import com.engine.salary.entity.auth.po.AuthRolePO; +import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthMemberMapper; import com.engine.salary.mapper.auth.AuthRoleEmpMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; @@ -67,15 +71,15 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .build(); getAuthMemberMapper().insertIgnoreNull(po); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); -// loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); -// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); -// loggerContext.setNewValues(po); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); } else { AuthMemberPO oldPO = getAuthMemberMapper().getById(param.getId()); AuthMemberPO newPo = AuthMemberPO.builder() @@ -89,16 +93,16 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService .build(); getAuthMemberMapper().updateIgnoreNull(newPo); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); -// loggerContext.setTargetName(rolePO.getName() + "成员:" + newPo.getId()); -// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); -// loggerContext.setOldValues(oldPO); -// loggerContext.setNewValues(newPo); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + newPo.getId()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "编辑成员")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(newPo); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); } }); @@ -115,16 +119,16 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService getAuthMemberMapper().deleteByIds(Collections.singleton(id)); -// AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(rolePO.getTaxAgentId() + ""); -// loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); -// loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); -// loggerContext.setNewValues(po); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); }); @@ -169,6 +173,15 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService List> partition = Lists.partition(roleEmpPOS, 100); partition.forEach(list -> getAuthRoleEmpMapper().batchInsert(list)); } + + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(rolePO.getId() + ""); + loggerContext.setTargetName(rolePO.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "同步成员")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "同步成员")); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); } @Override diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 5f61ecd05..e41144ca0 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -3,6 +3,8 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollectionUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; +import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; @@ -14,10 +16,12 @@ import com.engine.salary.entity.auth.po.AuthResourcePO; import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.auth.ResourceTargetTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.auth.AuthResourceMapper; import com.engine.salary.mapper.auth.AuthRoleMapper; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; @@ -130,20 +134,20 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .build(); getAuthRoleMapper().insertIgnoreNull(po); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(taxAgentId + ""); -// loggerContext.setTargetName("角色:" + name); -// loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增角色")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增角色")); -// loggerContext.setNewValues(po); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("业务线:" + name); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增业务线")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增业务线")); + loggerContext.setNewValues(po); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); } else { po = getAuthRoleMapper().getById(id); if (po == null) { - throw new SalaryRunTimeException("角色不存在!"); + throw new SalaryRunTimeException("业务线不存在!"); } AuthRolePO newPo = AuthRolePO.builder() .id(id) @@ -153,16 +157,16 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { .build(); getAuthRoleMapper().updateIgnoreNull(newPo); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(taxAgentId + ""); -// loggerContext.setTargetName("角色:" + name); -// loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新角色")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新角色")); -// loggerContext.setOldValues(po); -// loggerContext.setNewValues(newPo); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("业务线:" + name); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新业务线")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新业务线")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(newPo); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); } getAuthResourceMapper().deleteByRoleId(po.getId()); @@ -212,7 +216,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { ids.forEach(roleId -> { AuthRolePO po = getAuthRoleMapper().getById(roleId); if (po == null) { - throw new SalaryRunTimeException("角色不存在!"); + throw new SalaryRunTimeException("业务线不存在!"); } getAuthResourceMapper().deleteByRoleId(roleId); @@ -222,15 +226,15 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { getAuthRoleMapper().deleteByIds(Collections.singleton(roleId)); -// LoggerContext loggerContext = new LoggerContext<>(); -// loggerContext.setUser(user); -// loggerContext.setTargetId(po.getTaxAgentId() + ""); -// loggerContext.setTargetName("角色:" + po.getName()); -// loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); -// loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色")); -// loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色")); -// loggerContext.setNewValues(po); -// SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(po.getId() + ""); + loggerContext.setTargetName("业务线:" + po.getName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除业务线")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除业务线")); + loggerContext.setNewValues(po); + SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); }); } } From 0944efcf5e70ff7d654b3b0174b2ca5fc79af6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 11:04:44 +0800 Subject: [PATCH 067/184] =?UTF-8?q?=E7=89=A9=E7=90=86=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml index f2b55ec57..027331605 100644 --- a/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthRoleDataMapper.xml @@ -290,8 +290,7 @@ - UPDATE hrsa_auth_role_data - SET delete_type=1 + delete from hrsa_auth_role_data WHERE role_id = #{roleId} AND delete_type = 0 From a40814fa0b880e32dba0237e0d54d840362cc53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 14:37:46 +0800 Subject: [PATCH 068/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BFsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202409240201.sql | 24 ++++ resource/sqlupgrade/DM/sql202409240302.sql | 15 +++ resource/sqlupgrade/DM/sql202409240403.sql | 114 +++++++++++++++++ resource/sqlupgrade/GS/sql202409240201.sql | 24 ++++ resource/sqlupgrade/GS/sql202409240302.sql | 15 +++ resource/sqlupgrade/GS/sql202409240403.sql | 114 +++++++++++++++++ resource/sqlupgrade/JC/sql202409240201.sql | 24 ++++ resource/sqlupgrade/JC/sql202409240302.sql | 15 +++ resource/sqlupgrade/JC/sql202409240403.sql | 114 +++++++++++++++++ resource/sqlupgrade/Mysql/sql202409240201.sql | 16 +++ resource/sqlupgrade/Mysql/sql202409240302.sql | 10 ++ resource/sqlupgrade/Mysql/sql202409240403.sql | 121 ++++++++++++++++++ .../sqlupgrade/Oracle/sql202409240201.sql | 16 +++ .../sqlupgrade/Oracle/sql202409240302.sql | 10 ++ .../sqlupgrade/Oracle/sql202409240403.sql | 121 ++++++++++++++++++ resource/sqlupgrade/PG/sql202409240201.sql | 16 +++ resource/sqlupgrade/PG/sql202409240302.sql | 10 ++ resource/sqlupgrade/PG/sql202409240403.sql | 121 ++++++++++++++++++ .../sqlupgrade/SQLServer/sql202409240201.sql | 16 +++ .../sqlupgrade/SQLServer/sql202409240302.sql | 10 ++ .../sqlupgrade/SQLServer/sql202409240403.sql | 118 +++++++++++++++++ resource/sqlupgrade/ST/sql202409240201.sql | 24 ++++ resource/sqlupgrade/ST/sql202409240302.sql | 15 +++ resource/sqlupgrade/ST/sql202409240403.sql | 114 +++++++++++++++++ 24 files changed, 1197 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202409240201.sql create mode 100644 resource/sqlupgrade/DM/sql202409240302.sql create mode 100644 resource/sqlupgrade/DM/sql202409240403.sql create mode 100644 resource/sqlupgrade/GS/sql202409240201.sql create mode 100644 resource/sqlupgrade/GS/sql202409240302.sql create mode 100644 resource/sqlupgrade/GS/sql202409240403.sql create mode 100644 resource/sqlupgrade/JC/sql202409240201.sql create mode 100644 resource/sqlupgrade/JC/sql202409240302.sql create mode 100644 resource/sqlupgrade/JC/sql202409240403.sql create mode 100644 resource/sqlupgrade/Mysql/sql202409240201.sql create mode 100644 resource/sqlupgrade/Mysql/sql202409240302.sql create mode 100644 resource/sqlupgrade/Mysql/sql202409240403.sql create mode 100644 resource/sqlupgrade/Oracle/sql202409240201.sql create mode 100644 resource/sqlupgrade/Oracle/sql202409240302.sql create mode 100644 resource/sqlupgrade/Oracle/sql202409240403.sql create mode 100644 resource/sqlupgrade/PG/sql202409240201.sql create mode 100644 resource/sqlupgrade/PG/sql202409240302.sql create mode 100644 resource/sqlupgrade/PG/sql202409240403.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202409240201.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202409240302.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202409240403.sql create mode 100644 resource/sqlupgrade/ST/sql202409240201.sql create mode 100644 resource/sqlupgrade/ST/sql202409240302.sql create mode 100644 resource/sqlupgrade/ST/sql202409240403.sql diff --git a/resource/sqlupgrade/DM/sql202409240201.sql b/resource/sqlupgrade/DM/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/DM/sql202409240302.sql b/resource/sqlupgrade/DM/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/DM/sql202409240403.sql b/resource/sqlupgrade/DM/sql202409240403.sql new file mode 100644 index 000000000..a6281d399 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202409240403.sql @@ -0,0 +1,114 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202409240201.sql b/resource/sqlupgrade/GS/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/GS/sql202409240302.sql b/resource/sqlupgrade/GS/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/GS/sql202409240403.sql b/resource/sqlupgrade/GS/sql202409240403.sql new file mode 100644 index 000000000..a6281d399 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202409240403.sql @@ -0,0 +1,114 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202409240201.sql b/resource/sqlupgrade/JC/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/JC/sql202409240302.sql b/resource/sqlupgrade/JC/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/JC/sql202409240403.sql b/resource/sqlupgrade/JC/sql202409240403.sql new file mode 100644 index 000000000..a6281d399 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202409240403.sql @@ -0,0 +1,114 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202409240201.sql b/resource/sqlupgrade/Mysql/sql202409240201.sql new file mode 100644 index 000000000..b81eb2e8d --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) +; +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=char_length(labelname) ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=char_length(labelname) )) limit 1 +; +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) +; +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 +; diff --git a/resource/sqlupgrade/Mysql/sql202409240302.sql b/resource/sqlupgrade/Mysql/sql202409240302.sql new file mode 100644 index 000000000..8b215461e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +; +Delete from LeftMenuConfig where infoid=100220 +; +call LMConfig_U_ByInfoInsert (2,100181,0) +; +call LMInfo_Insert (100220,548105,'','',2,100181,5,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +; \ No newline at end of file diff --git a/resource/sqlupgrade/Mysql/sql202409240403.sql b/resource/sqlupgrade/Mysql/sql202409240403.sql new file mode 100644 index 000000000..4422851af --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202409240403.sql @@ -0,0 +1,121 @@ +CREATE TABLE hrsa_auth_data +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + link int(0) NOT NULL, + target_type int(0) NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + + +CREATE TABLE hrsa_auth_member +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + target_type int(0) NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_opt +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role +( + id bigint(0) NOT NULL, + tax_agent_id bigint(0) NOT NULL, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role_data +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + employee_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + employee_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_auth_resource +( + id bigint(0) NOT NULL, + role_id bigint(0) NOT NULL, + target_type int(0) NOT NULL, + target bigint(0) NOT NULL, + target_name varchar(255), + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_sob_tax_link +( + id bigint(0) NOT NULL, + sob_id bigint(0) NOT NULL, + tax_agent_id bigint(0) NOT NULL, + creator bigint(0) NOT NULL, + create_time datetime(0) NOT NULL, + update_time datetime(0) NOT NULL, + delete_type int(0) NOT NULL, + tenant_key varchar(10) , + PRIMARY KEY (id) USING BTREE +) ; diff --git a/resource/sqlupgrade/Oracle/sql202409240201.sql b/resource/sqlupgrade/Oracle/sql202409240201.sql new file mode 100644 index 000000000..83a4826ec --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) +/ +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409240302.sql b/resource/sqlupgrade/Oracle/sql202409240302.sql new file mode 100644 index 000000000..8435e8635 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +/ +Delete from LeftMenuConfig where infoid=100220 +/ +call LMConfig_U_ByInfoInsert (2,100181,0) +/ +call LMInfo_Insert (100220,548105,'','',2,100181,5,2) +/ +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202409240403.sql b/resource/sqlupgrade/Oracle/sql202409240403.sql new file mode 100644 index 000000000..0159366c2 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202409240403.sql @@ -0,0 +1,121 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +) +/ + + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ + + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240201.sql b/resource/sqlupgrade/PG/sql202409240201.sql new file mode 100644 index 000000000..42589c50b --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) ; +/ +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or length(labelname)!=octet_length(labelname) ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and length(labelname)=octet_length(labelname) )) limit 1 ; +/ +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) ; +/ +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) limit 1 ; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240302.sql b/resource/sqlupgrade/PG/sql202409240302.sql new file mode 100644 index 000000000..755116704 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +; +Delete from LeftMenuConfig where infoid=100220 +; +select LMConfig_U_ByInfoInsert (2,100181,0) +; +select LMInfo_Insert (100220,548105,'','',2,100181,5,2) +; +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202409240403.sql b/resource/sqlupgrade/PG/sql202409240403.sql new file mode 100644 index 000000000..e8e130ccd --- /dev/null +++ b/resource/sqlupgrade/PG/sql202409240403.sql @@ -0,0 +1,121 @@ +CREATE TABLE hrsa_auth_data +( + id bigint NOT NULL, + role_id bigint NOT NULL, + link int NOT NULL, + target_type int NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + + +CREATE TABLE hrsa_auth_member +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_opt +( + id bigint NOT NULL, + role_id bigint NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role +( + id bigint NOT NULL, + tax_agent_id bigint NOT NULL, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role_data +( + id bigint NOT NULL, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint NOT NULL, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL, + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_auth_resource +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target bigint NOT NULL, + target_name varchar(255), + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10), + PRIMARY KEY (id) +); + + +CREATE TABLE hrsa_sob_tax_link +( + id bigint NOT NULL, + sob_id bigint NOT NULL, + tax_agent_id bigint NOT NULL, + creator bigint NOT NULL, + create_time timestamp NOT NULL, + update_time timestamp NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) , + PRIMARY KEY (id) +) ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240201.sql b/resource/sqlupgrade/SQLServer/sql202409240201.sql new file mode 100644 index 000000000..1aa307c31 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240201.sql @@ -0,0 +1,16 @@ +delete from HtmlLabelIndex where id = 548105 and ( indexdesc is null or indexdesc = '' ) +GO +insert into HtmlLabelIndex(id,indexdesc) select top 1 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( indexdesc is not null and indexdesc <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( labelname is not null and labelname <> '' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is null or labelname = '' or labelname like '%[߹-]%' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( labelname is not null and labelname <> '' and labelname not like '%[߹-]%' )) +GO +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is null or labelname = '' ) +GO +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select top 1 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( labelname is not null and labelname <> '' )) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240302.sql b/resource/sqlupgrade/SQLServer/sql202409240302.sql new file mode 100644 index 000000000..718a8538f --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240302.sql @@ -0,0 +1,10 @@ +Delete from LeftMenuInfo where id=100220 +GO +Delete from LeftMenuConfig where infoid=100220 +GO +EXECUTE LMConfig_U_ByInfoInsert 2,100181,0 +GO +EXECUTE LMInfo_Insert 100220,548105,'','',2,100181,5,2 +GO +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202409240403.sql b/resource/sqlupgrade/SQLServer/sql202409240403.sql new file mode 100644 index 000000000..d4b207649 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202409240403.sql @@ -0,0 +1,118 @@ +CREATE TABLE hrsa_auth_data +( + id bigint primary key, + role_id bigint NOT NULL, + link int NOT NULL, + target_type int NOT NULL, + target varchar(4000), + target_name varchar(4000), + sorted_index int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_member +( + id bigint primary key, + role_id bigint NOT NULL, + target_type int NOT NULL, + target varchar(4000) NOT NULL, + target_name varchar(4000) NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_opt +( + id bigint primary key, + role_id bigint NOT NULL, + page varchar(200) NOT NULL, + opt varchar(200) NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + + +CREATE TABLE hrsa_auth_role +( + id bigint primary key, + tax_agent_id bigint NOT NULL, + name varchar(255) NOT NULL, + description varchar(400), + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + + +CREATE TABLE hrsa_auth_role_data +( + id bigint primary key, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + + +CREATE TABLE hrsa_auth_role_emp +( + id bigint primary key, + role_id bigint NOT NULL, + employee_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO + +CREATE TABLE hrsa_auth_resource +( + id bigint NOT NULL, + role_id bigint NOT NULL, + target_type int NOT NULL, + target bigint NOT NULL, + target_name varchar(255), + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO + +CREATE TABLE hrsa_sob_tax_link +( + id bigint NOT NULL, + sob_id bigint NOT NULL, + tax_agent_id bigint NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL, + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202409240201.sql b/resource/sqlupgrade/ST/sql202409240201.sql new file mode 100644 index 000000000..36b6745cc --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240201.sql @@ -0,0 +1,24 @@ +delete from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is null ) ; +/ + +insert into HtmlLabelIndex(id,indexdesc) select 548105,'ҵ߹' from HtmlLabelIndex where not exists (select id from HtmlLabelIndex where id = 548105 and ( trim(indexdesc) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'ҵ߹' as content,7 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=7 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is null or length(labelname)!=lengthb(labelname) ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Business Line Management' as content,8 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=8 and ( trim(labelname) is not null and length(labelname)=lengthb(labelname) )) and rownum = 1 ; +/ + +delete from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is null ) ; +/ + +insert into HtmlLabelInfo(indexid,labelname,languageid) select * from (select 548105 as indexid ,'Iվ' as content,9 as languageid from HtmlLabelInfo) t where not exists (select indexid,languageid from HtmlLabelInfo where indexid = 548105 and languageid=9 and ( trim(labelname) is not null )) and rownum = 1 ; +/ + diff --git a/resource/sqlupgrade/ST/sql202409240302.sql b/resource/sqlupgrade/ST/sql202409240302.sql new file mode 100644 index 000000000..9573a689b --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240302.sql @@ -0,0 +1,15 @@ +Delete from LeftMenuInfo where id=100220; +/ + +Delete from LeftMenuConfig where infoid=100220; +/ + +call LMConfig_U_ByInfoInsert (2,100181,0); +/ + +call LMInfo_Insert (100220,548105,'','',2,100181,5,2); +/ + +update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/roleManagement' where id = 100220; +/ + diff --git a/resource/sqlupgrade/ST/sql202409240403.sql b/resource/sqlupgrade/ST/sql202409240403.sql new file mode 100644 index 000000000..a6281d399 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202409240403.sql @@ -0,0 +1,114 @@ +CREATE TABLE hrsa_auth_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + link number NOT NULL, + target_type number NOT NULL, + target varchar2(4000), + target_name varchar2(4000), + sorted_index number NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_member +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target varchar2(4000) NOT NULL, + target_name varchar2(4000) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_opt +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + page varchar2(200) NOT NULL, + opt varchar2(200) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_auth_role +( + id NUMBER(38,0) primary key NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + name varchar2(255) NOT NULL, + description varchar2(400), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_data +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_role_emp +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + employee_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) NOT NULL +); +/ + +CREATE TABLE hrsa_auth_resource +( + id NUMBER(38,0) primary key NOT NULL, + role_id NUMBER(38,0) NOT NULL, + target_type number NOT NULL, + target NUMBER(38,0) NOT NULL, + target_name varchar2(255), + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_sob_tax_link +( + id NUMBER(38,0) primary key NOT NULL, + sob_id NUMBER(38,0) NOT NULL, + tax_agent_id NUMBER(38,0) NOT NULL, + creator NUMBER(38,0) NOT NULL, + create_time DATE NOT NULL, + update_time DATE NOT NULL, + delete_type number NOT NULL, + tenant_key varchar2(10) +); +/ + From 63c6a5af5ef04baf3757069ed07f3a2ce275bb76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 24 Sep 2024 19:02:40 +0800 Subject: [PATCH 069/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 62 ++++++++----------- .../salary/entity/auth/po/AuthRolePO.java | 2 +- 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index 9e3d53351..c986b7a83 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -2,42 +2,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -115,4 +80,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/engine/salary/entity/auth/po/AuthRolePO.java b/src/com/engine/salary/entity/auth/po/AuthRolePO.java index 61284e18b..0475c9b08 100644 --- a/src/com/engine/salary/entity/auth/po/AuthRolePO.java +++ b/src/com/engine/salary/entity/auth/po/AuthRolePO.java @@ -16,7 +16,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -@ElogTransform(name = "角色") +@ElogTransform(name = "业务线") public class AuthRolePO { private Long id; From 9b9d41532d9ead22fe92159d05aa446be5b81f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 10:35:46 +0800 Subject: [PATCH 070/184] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siaccount/po/InsuranceAccountBatchPO.java | 7 +- .../po/InsuranceArchivesEmployeePO.java | 6 ++ .../service/impl/SIAccountServiceImpl.java | 28 +++----- .../service/impl/SIArchivesServiceImpl.java | 66 +++++-------------- .../service/impl/SISchemeServiceImpl.java | 40 ++++------- 5 files changed, 52 insertions(+), 95 deletions(-) diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java index 362815eef..c623745f4 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java @@ -1,13 +1,16 @@ package com.engine.salary.entity.siaccount.po; -import com.engine.salary.annotation.Encrypt; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.annotation.Encrypt; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** @@ -22,6 +25,7 @@ import java.util.Date; @AllArgsConstructor //hrsa_bill_batch @ElogTransform(name = "福利台账主表") +@Auth(page = "siAccount", checkType = AuthCheckTypeEnum.TAX, taxAgentIdField = "paymentOrganization") public class InsuranceAccountBatchPO { /** @@ -129,5 +133,6 @@ public class InsuranceAccountBatchPO { @ElogTransform(name = "个税扣缴义务人id") private Long paymentOrganization; + private Set opts; } diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java index 2fb5297ce..9df1f4c3a 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java @@ -1,13 +1,16 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.I18n; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; +import java.util.Set; /** * @Author weaver_cl @@ -19,6 +22,7 @@ import java.math.BigDecimal; @Builder @NoArgsConstructor @AllArgsConstructor +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, taxAgentIdField = "paymentOrganization", employeeIdField = "employeeId") public class InsuranceArchivesEmployeePO { private Long employeeId;//员工id @@ -81,4 +85,6 @@ public class InsuranceArchivesEmployeePO { private Long fundId; private Long otherId; + + private Set opts; } diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index f85238077..7259bc692 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -35,6 +35,7 @@ import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.siaccount.*; import com.engine.salary.enums.sicategory.*; @@ -52,6 +53,8 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -241,30 +244,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return MapperProxyFactory.getProxy(EmployMapper.class); } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + @Override public Map listPage(InsuranceAccountBatchParam queryParam) { - Long employeeId = (long) user.getUID(); Map datas = new HashMap<>(); - List paymentOrganizationIds = queryParam.getTaxAgents(); - // 分权逻辑 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - if (needAuth) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); - List taxAgents = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgents)) { - //防止普通用户查询 - queryParam.setTaxAgents(Collections.singletonList(-1L)); - } else { - if (paymentOrganizationIds != null && paymentOrganizationIds.size() > 0) { - taxAgents.retainAll(paymentOrganizationIds); - } - queryParam.setTaxAgents(taxAgents); - } - } - - //福利台账列表 -// PageInfo pageInfo = getSiAccountBiz(user).listPage(queryParam); PageInfo pageInfo = siBatchListPage(queryParam); Collection insuranceAccountBatchPOS = pageInfo.getList(); @@ -5862,6 +5849,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public PageInfo siBatchListPage(InsuranceAccountBatchParam queryParam) { List list = getInsuranceAccountBatchMapper().list(queryParam); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.DATA_OPT, InsuranceAccountBatchPO.class); PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, InsuranceAccountBatchPO.class); encryptUtil.decryptList(page.getList(), InsuranceAccountBatchPO.class); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 1fe3ee033..125797620 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -37,6 +37,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; @@ -50,6 +51,8 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.*; +import com.engine.salary.service.auth.AuthService; +import com.engine.salary.service.auth.AuthServiceImpl; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -174,6 +177,11 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } + public AuthService getAuthService(User user) { + return ServiceUtil.getService(AuthServiceImpl.class, user); + } + + @Override public Map getTips(Map params) { return commandExecutor.execute(new SIArchivesTipsCmd(params, user)); @@ -3742,65 +3750,28 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService * @return list */ public Map listPageEmployeePOS(InsuranceArchivesListParam param, long operateId) { - //是否分权 - Boolean needAuth = param.getNeedAuth(); - StopWatch sw = new StopWatch(); Map datas = new HashMap<>(16); - List page = new ArrayList<>(); - PageInfo pageInfo = new PageInfo<>(InsuranceArchivesEmployeePO.class); - //获取福利档案列表数据 - if (needAuth) { - Collection taxAgentEmployeeIds = param.getTaxAgentEmployeeIds(); - Collection taxAgentIds = param.getTaxAgentIds(); - log.info("从数据库获取档案列表数据开始"); - sw.start("获取福利档案列表数据"); - if (param.isExtWelArchiveList()) { - page = getSocialSchemeMapper().queryExtEmployeeList(param); - } else { - page = getSocialSchemeMapper().queryEmployeeList(param); - } - sw.stop(); - log.info("从数据库获取档案列表数据完成!"); - page = page.stream().filter(f -> -// taxAgentEmployeeIds.contains(f.getEmployeeId())|| - taxAgentIds.contains(f.getPaymentOrganization()) - ).collect(Collectors.toList()); - // 填充总数和当页数据 - // 分页参数 - pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), InsuranceArchivesEmployeePO.class); - pageInfo.setTotal(page.size()); - pageInfo.setList(SalaryPageUtil.subList(pageInfo.getPageNum(), pageInfo.getPageSize(), page)); + List page; + if (param.isExtWelArchiveList()) { + page = getSocialSchemeMapper().queryExtEmployeeList(param); } else { - log.info("从数据库获取档案列表数据开始"); - sw.start("获取档案列表数据"); - if (param.isExtWelArchiveList()) { - page = getSocialSchemeMapper().queryExtEmployeeList(param); - } else { - page = getSocialSchemeMapper().queryEmployeeList(param); - } - sw.stop(); - log.info("从数据库获取档案列表数据完成!"); - pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), - page, InsuranceArchivesEmployeePO.class); + page = getSocialSchemeMapper().queryEmployeeList(param); } + page = getAuthService(user).auth(page, AuthFilterTypeEnum.DATA_OPT, InsuranceArchivesEmployeePO.class); + + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + page, InsuranceArchivesEmployeePO.class); + SalaryI18nUtil.i18nList(pageInfo.getList()); List> records = null; - log.info("buildTableData方法处理福利档案列表数据开始"); - sw.start("buildTableData方法处理福利档案列表数据"); if (param.getExportData() != null && param.getExportData()) { records = buildTableData(pageInfo.getList(), true); } else { records = buildTableData(pageInfo.getList(), false); } - sw.stop(); - log.info("buildTableData方法处理福利档案列表数据完成!"); - - log.info("buildWeaTableColumns方法处理福利档案列表数据开始"); - sw.start("buildWeaTableColumns方法处理福利档案列表数据"); List columns = buildWeaTableColumns(pageInfo.getList()); - sw.stop(); - log.info("buildWeaTableColumns方法处理福利档案列表数据完成!"); + WeaTable table = new WeaTable(); table.setColumns(columns); //设置check是否可用 @@ -3821,7 +3792,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService datas.put("columns", columns); datas.put("dataKey", result.getResultMap()); - log.info("各操作计时 {}", sw.prettyPrint()); return datas; } diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 699094813..d1de86348 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -31,11 +31,13 @@ import com.engine.salary.entity.sischeme.vo.SISchemeTableVO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalaryRoundingModeEnum; import com.engine.salary.enums.UserStatusEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.enums.sicategory.*; @@ -322,33 +324,19 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { if (queryParam.getPaymentTypeEnum() != null) { queryParam.setPaymentType(queryParam.getPaymentTypeEnum().getValue()); } - Long currentEmployeeId = (long) user.getUID(); - List insuranceSchemePOS; - Boolean needAuth = getTaxAgentService().isNeedAuth(currentEmployeeId); - if (needAuth) { -// insuranceSchemePOS = getInsuranceSchemeMapper().listByWelfareType(queryParam.getWelfareTypeEnum().getValue()); - insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam); - Boolean isAdminEnable = getTaxAgentService().isAdminEnable((long) user.getUID()); - if (isAdminEnable) { - //管理员 - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents(currentEmployeeId); - List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); - insuranceSchemePOS = insuranceSchemePOS.stream().filter(po -> { - String taxAgentIdsStr = po.getTaxAgentIds(); - List taxAgentIds = new ArrayList<>(); - if (StringUtils.isNotBlank(taxAgentIdsStr)) { - taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); - } - return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); - }).collect(Collectors.toList()); - } else { - //普通用户 - insuranceSchemePOS = new ArrayList<>(); + List insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam);; + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentList = getTaxAgentService().listAuth(param); + List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + insuranceSchemePOS = insuranceSchemePOS.stream().filter(po -> { + String taxAgentIdsStr = po.getTaxAgentIds(); + List taxAgentIds = new ArrayList<>(); + if (StringUtils.isNotBlank(taxAgentIdsStr)) { + taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); } - } else { -// insuranceSchemePOS = getInsuranceSchemeMapper().listByWelfareType(queryParam.getWelfareTypeEnum().getValue()); - insuranceSchemePOS = getInsuranceSchemeMapper().list(queryParam); - } + return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); + }).collect(Collectors.toList()); PageInfo dtoPage = new PageInfo<>(InsuranceSchemeListDTO.class); dtoPage.setPageNum(queryParam.getCurrent()); From 78c8d06200d754bc8b645467b61265cc081e03c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 11:24:12 +0800 Subject: [PATCH 071/184] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SIArchivesServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 125797620..3d3512440 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -33,6 +33,7 @@ import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; @@ -3818,8 +3819,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService .collect(Collectors.toList()) .stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getSchemeName())).collect(Collectors.toList()); - List> taxAgentList = getTaxAgentWrapper(user).selectListAsAdmin(); - List taxAgentOption = taxAgentList.stream().map(item -> new SearchConditionOption(item.get("id").toString(), item.get("content").toString())).collect(Collectors.toList()); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + List taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentOption = taxAgentList.stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getName())).collect(Collectors.toList()); Map apidatas = new HashMap(); ConditionFactory conditionFactory = new ConditionFactory(user); From 0d7cdeddb068292681497b2fee5fac3a976662ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 15:57:16 +0800 Subject: [PATCH 072/184] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siaccount/bo/InsuranceAccountBO.java | 1 + .../dto/InsuranceAccountBatchListDTO.java | 5 ++- .../po/InsuranceArchivesBaseInfoPO.java | 7 ++++ .../service/impl/SIAccountServiceImpl.java | 35 ----------------- .../service/impl/SIArchivesServiceImpl.java | 38 +++---------------- 5 files changed, 17 insertions(+), 69 deletions(-) diff --git a/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java b/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java index 8aa28ab09..f2af2ac95 100644 --- a/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java +++ b/src/com/engine/salary/entity/siaccount/bo/InsuranceAccountBO.java @@ -67,6 +67,7 @@ public class InsuranceAccountBO { .paymentOrganization(e.getPaymentOrganization() != null ? MapperProxyFactory.getProxy(TaxAgentMapper.class).getById(e.getPaymentOrganization()).getName() : "") .paymentOrganizationId(e.getPaymentOrganization()) .creator(e.getCreator()) + .opts(e.getOpts()) .build() ).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java b/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java index 23afba707..28939613b 100644 --- a/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java +++ b/src/com/engine/salary/entity/siaccount/dto/InsuranceAccountBatchListDTO.java @@ -2,7 +2,6 @@ package com.engine.salary.entity.siaccount.dto; import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.SalaryTableOperate; import com.engine.salary.annotation.TableTitle; import lombok.AllArgsConstructor; @@ -10,6 +9,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Set; + /** * @Author weaver_cl * @Description: 福利台账列表 @@ -111,6 +112,8 @@ public class InsuranceAccountBatchListDTO { @TableTitle(title = "备注", dataIndex = "remarks", key = "remarks") private String remarks; + private Set opts; + diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java index 7de87c044..fcd72acd7 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesBaseInfoPO.java @@ -1,6 +1,8 @@ package com.engine.salary.entity.siarchives.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.Auth; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum; import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import lombok.AllArgsConstructor; @@ -10,6 +12,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.Set; /** * @Author: sy @@ -22,6 +25,7 @@ import java.util.Date; @AllArgsConstructor //hrsa_insurance_base_info @ElogTransform(name = "福利档案主表") +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, employeeIdField = "employeeId", taxAgentIdField = "paymentOrganization") public class InsuranceArchivesBaseInfoPO { /** * 主键id @@ -107,4 +111,7 @@ public class InsuranceArchivesBaseInfoPO { //---------条件------- private Collection ids; private Collection employeeIds; + + + private Set opts; } diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 7259bc692..e2e35cc8f 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -270,27 +270,6 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { table.setColumns(weaTableColumn); - //table.getColumns().get(0).setFixed("left"); -// for (int i = 0; i < insuranceAccountBatchListDTOS.size(); i++) { -// InsuranceAccountBatchListDTO insuranceAccountBatchListDTO = insuranceAccountBatchListDTOS.get(i); -// if (Objects.equals(insuranceAccountBatchListDTO.getBillStatus(), BillStatusEnum.ARCHIVED.getDefaultLabel())) { -// table.getOperates().getOperate().get(i).getIndex(); -// -// resultTable.getOperatesPermission().get(i).get(0).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(1).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(2).setVisible(false); -// resultTable.getOperatesPermission().get(i).get(3).setVisible(false); -// resultTable.getOperates().get(4).setOuter(true); -// } -// if (Objects.equals(insuranceAccountBatchListDTO.getBillStatus(), BillStatusEnum.NOT_ARCHIVED.getDefaultLabel())) { -// resultTable.getOperatesPermission().get(i).get(4).setVisible(false); -// List insuranceAccountInspectPOS = siAccountInspectService.listByBillMonth(insuranceAccountBatchListDTO.getBillMonth(), tenantKey); -// if (CollectionUtils.isEmpty(insuranceAccountInspectPOS)) { -// resultTable.getOperatesPermission().get(i).get(2).setVisible(false); -// } -// } -// } - WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); @@ -299,20 +278,6 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { datas.put("operatesPermission", operatesPermission); datas.put("dataKey", result.getResultMap()); return datas; - -// WeaTable resultTable = FormatManager.getInstance() -// .genTable(InsuranceAccountBatchListDTO.class, insuranceAccountBatchListDTOPage); -// -// resultTable.getOperates().forEach(e -> { -// if (e.getIndex() == 0) { -// e.setOuter(true); -// } -// }); - -// resultTable.setModule("hrmsalary"); -// resultTable.getColumns().get(0).setFixed("left"); -// return WeaResult.success(resultTable); - } @Override diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 3d3512440..729a7df49 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -32,7 +32,6 @@ import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; -import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -272,16 +271,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); param.setOrderRule(orderRule); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - param.setNeedAuth(needAuth); - if (needAuth) { - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getTaxAgentId); - param.setTaxAgentEmployeeIds(employeeIds); - param.setTaxAgentIds(taxAgentIds); - } - Map apidatas = new HashMap<>(16); // apidatas = siArchivesBiz.listPage(param, (long) user.getUID()); apidatas = listPage(param, (long) user.getUID()); @@ -824,29 +813,11 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map queryInsuranceTabTotal() { - long currentEmployeeId = user.getUID(); // tab页签数量 Map result = new HashMap<>(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - //获取管理的人员范围 - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - Map> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList); - List list = null; - if (needAuth) { - // 获取作为管理员的所有个税扣缴义务人列表 - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); - Set taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - //获取所有福利档案基础信息 - List archiveListDTOS = getInsuranceBaseInfoMapper().listAll(); - list = archiveListDTOS.stream().filter(dto -> taxAgentIds.contains(dto.getPaymentOrganization())).collect(Collectors.toList()); - Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId); - //不是管理员看不到数据,返回空 - if (!adminEnable) { - list = new ArrayList<>(); - } - } else { - list = getInsuranceBaseInfoMapper().listAll(); - } + + List list = getInsuranceBaseInfoMapper().listAll(); + list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, InsuranceArchivesBaseInfoPO.class); long stayAddTotal = 0L; long payTotal = 0L; @@ -1716,8 +1687,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService map.put("fundSchemeId", item.getFundSchemeId()); map.put("otherSchemeId", item.getOtherSchemeId()); map.put("status", item.getUserStatus() != null ? UserStatusEnum.getDefaultLabelByValue(item.getUserStatus()) : ""); - map.put("baseInfo", item.getBaseInfoId()); + map.put("baseInfoId", item.getBaseInfoId()); map.put("paymentOrganization", item.getPaymentOrganization()); + map.put("opts", item.getOpts()); if (socialItem != null) { map.put("socialName", getInsuranceSchemeMapper().querySchemeName(socialItem.getSocialSchemeId())); Map socialJson = JSON.parseObject(socialItem.getSocialPaymentBaseString(), new TypeReference>() { From 7f17c2a9b7973b5eaae21bbfe94bb949042a3fc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 17:52:01 +0800 Subject: [PATCH 073/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/auth/AuthRoleService.java | 3 +++ .../salary/service/auth/AuthRoleServiceImpl.java | 5 +++++ src/com/engine/salary/timer/SyncTaxAgentEmpJob.java | 11 +++++++++++ src/com/engine/salary/web/AuthController.java | 12 ++++++++++++ src/com/engine/salary/wrapper/AuthWrapper.java | 13 +++++++++++++ 5 files changed, 44 insertions(+) diff --git a/src/com/engine/salary/service/auth/AuthRoleService.java b/src/com/engine/salary/service/auth/AuthRoleService.java index d94b737a1..32527ec54 100644 --- a/src/com/engine/salary/service/auth/AuthRoleService.java +++ b/src/com/engine/salary/service/auth/AuthRoleService.java @@ -3,6 +3,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.util.page.PageInfo; import java.util.List; @@ -34,4 +35,6 @@ public interface AuthRoleService { */ void deleteRole(List ids); + List listAll(); + } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index e41144ca0..fee967361 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -237,4 +237,9 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); }); } + + @Override + public List listAll() { + return getAuthRoleMapper().listAll(); + } } diff --git a/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java b/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java index ea16e2022..f4e3df83a 100644 --- a/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java +++ b/src/com/engine/salary/timer/SyncTaxAgentEmpJob.java @@ -1,6 +1,7 @@ package com.engine.salary.timer; import com.engine.common.util.ServiceUtil; +import com.engine.salary.wrapper.AuthWrapper; import com.engine.salary.wrapper.TaxAgentWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StopWatch; @@ -22,6 +23,11 @@ public class SyncTaxAgentEmpJob extends BaseCronJob { return ServiceUtil.getService(TaxAgentWrapper.class, user); } + private AuthWrapper getAuthWrapper(User user) { + return ServiceUtil.getService(AuthWrapper.class, user); + } + + @Override public void execute() { StopWatch stopWatch = new StopWatch(); @@ -37,7 +43,12 @@ public class SyncTaxAgentEmpJob extends BaseCronJob { */ private void start() { try { + User user = new User(); + user.setUid(1); getTaxAgentWrapper(null).syncAllRange(); + + //同步业务线 + getAuthWrapper(user).sync(); } catch (Exception e) { log.error("计划任务【SyncTaxAgentEmpJob】执行异常:" + e); } diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index 83db467d2..cd02c00ea 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -187,4 +187,16 @@ public class AuthController { return new ResponseResult(user).run(getAuthWrapper(user)::tree,param); } + + /** + * 同步 + */ + @POST + @Path("/sync") + @Produces(MediaType.APPLICATION_JSON) + public String sync(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getAuthWrapper(user)::sync); + } + } diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index df8606007..1692e51e4 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.auth.dto.*; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; +import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.auth.vo.Permission; import com.engine.salary.enums.auth.DataLinkEnum; import com.engine.salary.enums.auth.DataTargetTypeEnum; @@ -158,4 +159,16 @@ public class AuthWrapper extends Service { public AuthTreeDTO tree(AuthTreeQueryParam param) { return getAuthService(user).tree(param); } + + public String sync() { + List authRolePOS = getAuthRoleService(user).listAll(); + authRolePOS.forEach(po -> { + AuthSyncParam param = AuthSyncParam.builder() + .roleId(po.getId()) + .build(); + getAuthMemberService(user).sync(param); + getAuthDataService(user).sync(param); + }); + return ""; + } } From 222fe9facd11d2f95b86788c9f184cee34f92696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 26 Sep 2024 19:20:37 +0800 Subject: [PATCH 074/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/auth/dto/AuthRoleDataDTO.java | 6 +++--- .../salary/entity/auth/dto/AuthRoleEmpDTO.java | 4 ++-- .../entity/auth/param/AuthDataQueryParam.java | 2 ++ .../auth/param/AuthMemberQueryParam.java | 2 ++ .../salary/service/auth/AuthDataService.java | 3 ++- .../service/auth/AuthDataServiceImpl.java | 10 ++++++++-- .../salary/service/auth/AuthMemberService.java | 3 ++- .../service/auth/AuthMemberServiceImpl.java | 11 +++++++++-- .../service/auth/AuthRoleServiceImpl.java | 8 ++++++-- src/com/engine/salary/web/AuthController.java | 18 +++++++++++++++++- src/com/engine/salary/wrapper/AuthWrapper.java | 13 +++++++++++++ 11 files changed, 66 insertions(+), 14 deletions(-) diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java index 9be789b92..58ca3cc21 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleDataDTO.java @@ -16,10 +16,10 @@ public class AuthRoleDataDTO { private Long id; @TableTitle(title = "姓名",dataIndex = "username",key = "username") - private String name; + private String username; - @TableTitle(title = "工号",dataIndex = "workcode",key = "workcode") - private String workcode; + @TableTitle(title = "工号",dataIndex = "workCode",key = "workCode") + private String workCode; @I18n diff --git a/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java index 94901f09e..981bf9b0d 100644 --- a/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java +++ b/src/com/engine/salary/entity/auth/dto/AuthRoleEmpDTO.java @@ -16,10 +16,10 @@ public class AuthRoleEmpDTO { private Long id; @TableTitle(title = "姓名",dataIndex = "username",key = "username") - private String name; + private String username; @TableTitle(title = "工号",dataIndex = "workcode",key = "workcode") - private String workcode; + private String workCode; @I18n diff --git a/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java index 450d2fdc4..28f53f712 100644 --- a/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthDataQueryParam.java @@ -15,4 +15,6 @@ public class AuthDataQueryParam extends BaseQueryParam { private Long roleId; + private String username; + } diff --git a/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java index 6995d1645..e540a1590 100644 --- a/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java +++ b/src/com/engine/salary/entity/auth/param/AuthMemberQueryParam.java @@ -15,4 +15,6 @@ public class AuthMemberQueryParam extends BaseQueryParam { private Long roleId; + private String username; + } diff --git a/src/com/engine/salary/service/auth/AuthDataService.java b/src/com/engine/salary/service/auth/AuthDataService.java index 4f9da2efd..ca0848e60 100644 --- a/src/com/engine/salary/service/auth/AuthDataService.java +++ b/src/com/engine/salary/service/auth/AuthDataService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; import com.engine.salary.entity.auth.param.AuthDataSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; @@ -45,5 +46,5 @@ public interface AuthDataService { void deleteByRoleId(Long roleId); - List listRoleData(Long roleId); + List listRoleData( AuthDataQueryParam param); } diff --git a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java index 737a1fd06..582887859 100644 --- a/src/com/engine/salary/service/auth/AuthDataServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthDataServiceImpl.java @@ -1,9 +1,11 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; import com.engine.salary.entity.auth.param.AuthDataSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthDataPO; @@ -151,7 +153,11 @@ public class AuthDataServiceImpl extends Service implements AuthDataService { } @Override - public List listRoleData(Long roleId) { - return getAuthRoleDataMapper().listRoleData(roleId); + public List listRoleData( AuthDataQueryParam param) { + List authRoleDataDTOS = getAuthRoleDataMapper().listRoleData(param.getRoleId()); + if (StrUtil.isNotEmpty(param.getUsername())){ + authRoleDataDTOS = authRoleDataDTOS.stream().filter(authRoleDataDTO -> authRoleDataDTO.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + } + return authRoleDataDTOS; } } diff --git a/src/com/engine/salary/service/auth/AuthMemberService.java b/src/com/engine/salary/service/auth/AuthMemberService.java index 3a0a43769..f977e131a 100644 --- a/src/com/engine/salary/service/auth/AuthMemberService.java +++ b/src/com/engine/salary/service/auth/AuthMemberService.java @@ -1,6 +1,7 @@ package com.engine.salary.service.auth; import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; @@ -44,5 +45,5 @@ public interface AuthMemberService { void deleteByRoleId(Long roleId); - List listRoleEmp(Long roleId); + List listRoleEmp(AuthMemberQueryParam param); } diff --git a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java index 37fd81d48..b3a5232b6 100644 --- a/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthMemberServiceImpl.java @@ -1,11 +1,13 @@ package com.engine.salary.service.auth; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthMemberSaveParam; import com.engine.salary.entity.auth.param.AuthSyncParam; import com.engine.salary.entity.auth.po.AuthMemberPO; @@ -191,7 +193,12 @@ public class AuthMemberServiceImpl extends Service implements AuthMemberService } @Override - public List listRoleEmp(Long roleId) { - return getAuthRoleEmpMapper().getByRoleId(roleId); + public List listRoleEmp(AuthMemberQueryParam param) { + List empDTOS = getAuthRoleEmpMapper().getByRoleId(param.getRoleId()); + if(StrUtil.isNotEmpty(param.getUsername())){ + empDTOS = empDTOS.stream().filter(item -> item.getUsername().contains(param.getUsername())).collect(Collectors.toList()); + } + + return empDTOS; } } diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index fee967361..2d4d214d8 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -9,6 +9,8 @@ import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.auth.dto.AuthRoleDTO; import com.engine.salary.entity.auth.dto.AuthRoleDataDTO; import com.engine.salary.entity.auth.dto.AuthRoleEmpDTO; +import com.engine.salary.entity.auth.param.AuthDataQueryParam; +import com.engine.salary.entity.auth.param.AuthMemberQueryParam; import com.engine.salary.entity.auth.param.AuthRoleListQueryParam; import com.engine.salary.entity.auth.param.AuthRoleSaveParam; import com.engine.salary.entity.auth.po.AuthOptPO; @@ -66,9 +68,11 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { List collect = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authRolePOS) .stream().map(po -> { Long roleId = po.getId(); - List authRoleEmpDTOS = getAuthMemberService(user).listRoleEmp(roleId); + AuthMemberQueryParam roleQueryParam = AuthMemberQueryParam.builder().roleId(roleId).build(); + List authRoleEmpDTOS = getAuthMemberService(user).listRoleEmp(roleQueryParam); List authOptPOS = getAuthOptService(user).listOpts(roleId); - List authRoleDataDTOS = getAuthDataService(user).listRoleData(roleId); + AuthDataQueryParam dataQueryParam = AuthDataQueryParam.builder().roleId(roleId).build(); + List authRoleDataDTOS = getAuthDataService(user).listRoleData(dataQueryParam); List authResources = getAuthResourceMapper().listSome(AuthResourcePO.builder().roleId(roleId).build()); return AuthRoleDTO.builder().id(roleId) diff --git a/src/com/engine/salary/web/AuthController.java b/src/com/engine/salary/web/AuthController.java index cd02c00ea..c16e5ab52 100644 --- a/src/com/engine/salary/web/AuthController.java +++ b/src/com/engine/salary/web/AuthController.java @@ -74,6 +74,14 @@ public class AuthController { return new ResponseResult>(user).run(getAuthWrapper(user)::memberList, param); } + @POST + @Path("/member/detail") + @Produces(MediaType.APPLICATION_JSON) + public String memberDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthMemberQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::memberDetail, param); + } + @POST @Path("/member/save") @Produces(MediaType.APPLICATION_JSON) @@ -118,11 +126,19 @@ public class AuthController { @POST @Path("/data/list") @Produces(MediaType.APPLICATION_JSON) - public String memberList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { + public String dataList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getAuthWrapper(user)::dataList, param); } + @POST + @Path("/data/detail") + @Produces(MediaType.APPLICATION_JSON) + public String dataDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AuthDataQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getAuthWrapper(user)::dataDetail, param); + } + @POST @Path("/data/save") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/salary/wrapper/AuthWrapper.java b/src/com/engine/salary/wrapper/AuthWrapper.java index 1692e51e4..a05276a71 100644 --- a/src/com/engine/salary/wrapper/AuthWrapper.java +++ b/src/com/engine/salary/wrapper/AuthWrapper.java @@ -84,6 +84,12 @@ public class AuthWrapper extends Service { return authMemberDTOPageInfo; } + + public PageInfo memberDetail(AuthMemberQueryParam param) { + List list = getAuthMemberService(user).listRoleEmp(param); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, AuthRoleEmpDTO.class); + } + public void saveMember(List param) { param.forEach(ValidUtil::modify); @@ -130,6 +136,12 @@ public class AuthWrapper extends Service { } + + public PageInfo dataDetail(AuthDataQueryParam param) { + List authRoleDataDTOS = getAuthDataService(user).listRoleData(param); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), authRoleDataDTOS, AuthRoleDataDTO.class); + } + public void saveData(List params) { params.forEach(ValidUtil::modify); @@ -171,4 +183,5 @@ public class AuthWrapper extends Service { }); return ""; } + } From 4b60c83df2545f6d1fe27695b28d636aae5409f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 10:02:22 +0800 Subject: [PATCH 075/184] =?UTF-8?q?=E5=87=BA=E5=8E=BB=E5=A4=9A=E4=BD=99sql?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202409240403.sql | 1 - resource/sqlupgrade/GS/sql202409240403.sql | 1 - resource/sqlupgrade/JC/sql202409240403.sql | 1 - resource/sqlupgrade/Mysql/sql202409240403.sql | 1 - resource/sqlupgrade/Oracle/sql202409240403.sql | 1 - resource/sqlupgrade/PG/sql202409240403.sql | 1 - resource/sqlupgrade/SQLServer/sql202409240403.sql | 1 - resource/sqlupgrade/ST/sql202409240403.sql | 1 - 8 files changed, 8 deletions(-) diff --git a/resource/sqlupgrade/DM/sql202409240403.sql b/resource/sqlupgrade/DM/sql202409240403.sql index a6281d399..10b2b4813 100644 --- a/resource/sqlupgrade/DM/sql202409240403.sql +++ b/resource/sqlupgrade/DM/sql202409240403.sql @@ -47,7 +47,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id NUMBER(38,0) primary key NOT NULL, - tax_agent_id NUMBER(38,0) NOT NULL, name varchar2(255) NOT NULL, description varchar2(400), creator NUMBER(38,0) NOT NULL, diff --git a/resource/sqlupgrade/GS/sql202409240403.sql b/resource/sqlupgrade/GS/sql202409240403.sql index a6281d399..10b2b4813 100644 --- a/resource/sqlupgrade/GS/sql202409240403.sql +++ b/resource/sqlupgrade/GS/sql202409240403.sql @@ -47,7 +47,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id NUMBER(38,0) primary key NOT NULL, - tax_agent_id NUMBER(38,0) NOT NULL, name varchar2(255) NOT NULL, description varchar2(400), creator NUMBER(38,0) NOT NULL, diff --git a/resource/sqlupgrade/JC/sql202409240403.sql b/resource/sqlupgrade/JC/sql202409240403.sql index a6281d399..10b2b4813 100644 --- a/resource/sqlupgrade/JC/sql202409240403.sql +++ b/resource/sqlupgrade/JC/sql202409240403.sql @@ -47,7 +47,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id NUMBER(38,0) primary key NOT NULL, - tax_agent_id NUMBER(38,0) NOT NULL, name varchar2(255) NOT NULL, description varchar2(400), creator NUMBER(38,0) NOT NULL, diff --git a/resource/sqlupgrade/Mysql/sql202409240403.sql b/resource/sqlupgrade/Mysql/sql202409240403.sql index 4422851af..17c461f3c 100644 --- a/resource/sqlupgrade/Mysql/sql202409240403.sql +++ b/resource/sqlupgrade/Mysql/sql202409240403.sql @@ -51,7 +51,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id bigint(0) NOT NULL, - tax_agent_id bigint(0) NOT NULL, name varchar(255) NOT NULL, description varchar(400), creator bigint(0) NOT NULL, diff --git a/resource/sqlupgrade/Oracle/sql202409240403.sql b/resource/sqlupgrade/Oracle/sql202409240403.sql index 0159366c2..cf2f25c2e 100644 --- a/resource/sqlupgrade/Oracle/sql202409240403.sql +++ b/resource/sqlupgrade/Oracle/sql202409240403.sql @@ -51,7 +51,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id NUMBER(38,0) primary key NOT NULL, - tax_agent_id NUMBER(38,0) NOT NULL, name varchar2(255) NOT NULL, description varchar2(400), creator NUMBER(38,0) NOT NULL, diff --git a/resource/sqlupgrade/PG/sql202409240403.sql b/resource/sqlupgrade/PG/sql202409240403.sql index e8e130ccd..1e8fb2d15 100644 --- a/resource/sqlupgrade/PG/sql202409240403.sql +++ b/resource/sqlupgrade/PG/sql202409240403.sql @@ -51,7 +51,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id bigint NOT NULL, - tax_agent_id bigint NOT NULL, name varchar(255) NOT NULL, description varchar(400), creator bigint NOT NULL, diff --git a/resource/sqlupgrade/SQLServer/sql202409240403.sql b/resource/sqlupgrade/SQLServer/sql202409240403.sql index d4b207649..6edd92d19 100644 --- a/resource/sqlupgrade/SQLServer/sql202409240403.sql +++ b/resource/sqlupgrade/SQLServer/sql202409240403.sql @@ -50,7 +50,6 @@ GO CREATE TABLE hrsa_auth_role ( id bigint primary key, - tax_agent_id bigint NOT NULL, name varchar(255) NOT NULL, description varchar(400), creator bigint NOT NULL, diff --git a/resource/sqlupgrade/ST/sql202409240403.sql b/resource/sqlupgrade/ST/sql202409240403.sql index a6281d399..10b2b4813 100644 --- a/resource/sqlupgrade/ST/sql202409240403.sql +++ b/resource/sqlupgrade/ST/sql202409240403.sql @@ -47,7 +47,6 @@ CREATE TABLE hrsa_auth_opt CREATE TABLE hrsa_auth_role ( id NUMBER(38,0) primary key NOT NULL, - tax_agent_id NUMBER(38,0) NOT NULL, name varchar2(255) NOT NULL, description varchar2(400), creator NUMBER(38,0) NOT NULL, From ffb4b5f0b41c95dfc09e517ea5c5021b0c9eb924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 10:16:48 +0800 Subject: [PATCH 076/184] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/auth/AuthRoleServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java index 2d4d214d8..b9d205f89 100644 --- a/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java @@ -238,7 +238,7 @@ public class AuthRoleServiceImpl extends Service implements AuthRoleService { loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除业务线")); loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除业务线")); loggerContext.setNewValues(po); - SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext); + SalaryElogConfig.authLinkLoggerTemplate.write(loggerContext); }); } From 1d43e980e72b0488ed4576962c70756eb3056e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 11:34:01 +0800 Subject: [PATCH 077/184] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E6=B5=AE?= =?UTF-8?q?=E5=8A=A8=E6=95=B0=E6=8D=AE=E4=B8=9A=E5=8A=A1=E7=BA=BF=202?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E6=B5=AE=E5=8A=A8=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF=203=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E4=B8=93=E9=A1=B9=E9=99=84=E5=8A=A0=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AddUpDeductionServiceImpl.java | 25 +++++++----------- .../service/impl/VariableItemServiceImpl.java | 26 +++++-------------- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index dcc1bf162..a9b161f8d 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -443,16 +443,17 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); String declareMonthStr = addUpDeduction.getDeclareMonth(); - Long currentEmployeeId = (long) user.getUID(); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId); - AddUpDeduction byId = addUpDeductionBiz.getById(addUpDeduction.getId()); - if (byId == null) { + AddUpDeduction po = addUpDeductionBiz.getById(addUpDeduction.getId()); + if (po == null) { throw new SalaryRunTimeException("该数据不存在!"); } - Long taxAgentId = byId.getTaxAgentId(); - boolean canEdit = taxAgentList.stream().anyMatch(t -> Objects.equals(t.getTaxAgentId(), taxAgentId)); - if (!canEdit) { + // 获取所有个税扣缴义务人 + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List taxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + Long taxAgentId = po.getTaxAgentId(); + if (!taxAgentIds.contains(taxAgentId)) { //没有编辑权限 throw new SalaryRunTimeException("该个税扣缴义务人无权限编辑此数据!"); } @@ -481,7 +482,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); loggerContext.setOperateTypeName(name); loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "累计专项附加扣除") + "-" + SalaryI18nUtil.getI18nLabel(0, "编辑")); - loggerContext.setOldValues(byId); + loggerContext.setOldValues(po); loggerContext.setNewValues(newValue); loggerContext.setUser(user); SalaryElogConfig.addUpDeductionLoggerTemplate.write(loggerContext); @@ -489,10 +490,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction @Override public void createAddUpDeduction(AddUpDeductionRecordParam addUpDeductionRecordParam) { - long currentEmployeeId = user.getUID(); - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - AddUpDeductionBiz addUpDeductionBiz = new AddUpDeductionBiz(); - //税款所属期 String declareMonthStr = addUpDeductionRecordParam.getDeclareMonth(); if (declareMonthStr.equals("")) { @@ -502,8 +499,6 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); Collection taxAgentList = getTaxAgentService(user).listAuth(param); - //个税扣缴义务人 - String taxAgentId = Util.null2String(addUpDeductionRecordParam.getTaxAgentId()); // 获取租户下所有的人员 List employees = getSalaryEmployeeService(user).listEmployee(); // 已经核算过的不可操作 diff --git a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java index 7ae749ae3..41d30ea0d 100644 --- a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java @@ -9,7 +9,6 @@ import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryformula.po.FormulaPO; import com.engine.salary.entity.salaryformula.po.FormulaVar; -import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableItemMapper; @@ -22,14 +21,16 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; import weaver.conn.util.IdGenerator; import weaver.hrm.User; -import java.util.*; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -95,20 +96,6 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ @Override public PageInfo listPage(VariableItemQueryParam queryParam) { List variableItemPOS = listAll(); - Long employeeId = Long.valueOf(user.getUID()); - // 判断是否是“总管理员” - Boolean isChief = getTaxAgentService(user).isChief(employeeId); - // 是否开启分权 - Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); - if (BooleanUtils.isTrue(openDevolution) && !isChief) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); - List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentIds)) { - // 无权限 - return new PageInfo<>(); - } - } - if (StringUtils.isNotBlank(queryParam.getItemName())) { variableItemPOS = variableItemPOS.stream().filter(po -> po.getName().contains(queryParam.getItemName())).collect(Collectors.toList()); } @@ -146,7 +133,7 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ .name(saveParam.getName()) .code(IdGenerator.getUUID()) .dataType(saveParam.getDataType()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .deleteType(NumberUtils.INTEGER_ZERO) .createTime(now) .updateTime(now) @@ -241,8 +228,7 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ if (CollectionUtils.containsAny(usingVariableItemIds, itemIds)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "浮动薪资档案中正在使用该薪资项目,不允许删除")); } - itemIds.stream().forEach(id -> getVariableItemMapper().delete(VariableItemPO.builder().id(id).build())); - ; + itemIds.forEach(id -> getVariableItemMapper().delete(VariableItemPO.builder().id(id).build())); } @Override From 6e03afecc268c9316de1f7426d0ff60ac1177dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 16:15:01 +0800 Subject: [PATCH 078/184] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SISchemeServiceImpl.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index d1de86348..27cdcd086 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -953,15 +953,12 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { //获取所有福利类型的id-name结合 Map schemeNameIdMap = schemeNameIdMap(); Map welfareMap = welfareMap(); - // 获取所有个税扣缴义务人的名称和id的map - Map paymentNameIdMap; //分权 Boolean openDevolution = getTaxAgentService().isOpenDevolution(); - if (openDevolution) { - paymentNameIdMap = getTaxAgentService().listAllTaxAgentsAsAdmin((long) user.getUID()).stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); - } else { - paymentNameIdMap = getTaxAgentService().listAll().stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); - } + // 获取所有个税扣缴义务人的名称和id的map + TaxAgentQueryParam build = TaxAgentQueryParam.builder().build(); + build.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Map paymentNameIdMap = getTaxAgentService().listAuth(build).stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId));; //获取所以个税扣缴义务人树型 List taxAgentManageRangeEmployeeTree = getTaxAgentService().listTaxAgentAndEmployeeTree(); @@ -1217,13 +1214,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { taxAgentRangeSaveParam.setTargetParams(Collections.singletonList(taxAgentSubAdminRangeTargetParam)); taxAgentRangeSaveParam.setSync(true); param.setTaxAgentRanges(Collections.singletonList(taxAgentRangeSaveParam)); - } else { - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(100312, "该条数据不在个税扣缴义务人人员范围内,不可导入")); - excelComments.add(errorMessageMap); - isError = true; } - } } From 4a8e96ebe6da1467ea73411b8a4abc5914abadf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Sep 2024 18:10:21 +0800 Subject: [PATCH 079/184] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=A3=E7=BC=B4?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/VariableArchiveServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java index ea3c5e91a..bb5695b29 100644 --- a/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableArchiveServiceImpl.java @@ -166,7 +166,7 @@ public class VariableArchiveServiceImpl extends Service implements VariableArchi Map map = new LinkedHashMap<>(); map.put("id", e.getId()); map.put("taxAgentName", e.getTaxAgentName()); - map.put("taxAgentId", e.getTaxAgentId()); + map.put("taxAgentIds", e.getTaxAgentId()); map.put("username", e.getUsername()); map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(e.getSalaryMonth())); map.put("employeeId", e.getEmployeeId()); From d54dd4e237af1f84b11b48d7513a0573bf8bb19a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 10:52:04 +0800 Subject: [PATCH 080/184] =?UTF-8?q?fix=E5=88=B7=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8A=9F=E8=83=BD=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctEmployeeServiceImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 682ce36b4..22e20a454 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -580,15 +580,14 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //查询账套对应的扣缴义务人 SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); - Long taxAgentId = salarySobPO.getTaxAgentId(); + List taxAgentIds = salarySobPO.getTaxAgentIds(); // 查询薪资档案,获取人员的个税扣缴义务人 List employeeIds = SalaryEntityUtil.properties(salaryEmployees, DataCollectionEmployee::getEmployeeId, Collectors.toList()); - List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentId); + List salaryArchiveDataDTOS = getSalaryArchiveService(user).getSalaryArchiveTaxAgentData(salarySobCycleDTO.getSalaryCycle(), employeeIds, taxAgentIds); + // 转换成薪资核算人员po List newEmps = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); - //过滤掉不属于当前账套扣缴义务人的人员 - newEmps = newEmps.stream().filter(po -> Objects.equals(taxAgentId, po.getTaxAgentId())).collect(Collectors.toList()); Map newEmpMap = SalaryEntityUtil.convert2Map(newEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); From 7f233145d4172e2a64134a7b67840706806b999d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 11:07:48 +0800 Subject: [PATCH 081/184] =?UTF-8?q?fix=E5=88=B7=E6=96=B0=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8A=9F=E8=83=BD=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctEmployeeServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 22e20a454..8619ba2a9 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -436,7 +436,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 记录日志 String targetName = salarySobPO.getName() + ":" + SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()); - LoggerContext loggerContext = new LoggerContext<>(); + LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId("" + salaryAcctRecordPO.getId()); loggerContext.setTargetName(targetName); @@ -508,7 +508,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } // 记录日志 String targetName = salarySobPO.getName() + ":" + SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()); - LoggerContext loggerContext = new LoggerContext<>(); + LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId("" + salaryAcctRecordPO.getId()); loggerContext.setTargetName(targetName); From 800f03427d4899167b66e385c21ae96e02530f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 14:34:44 +0800 Subject: [PATCH 082/184] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/InsuranceArchivesBaseHistoryDTO.java | 7 + .../salary/service/SIArchivesService.java | 2 - .../salary/service/auth/AuthService.java | 2 + .../salary/service/auth/AuthServiceImpl.java | 10 +- .../service/impl/SIArchivesServiceImpl.java | 232 ++++++------------ .../impl/SalaryAcctEmployeeServiceImpl.java | 4 +- 6 files changed, 90 insertions(+), 167 deletions(-) diff --git a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java index a0c2d57e8..97f88e52c 100644 --- a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java +++ b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesBaseHistoryDTO.java @@ -1,12 +1,15 @@ package com.engine.salary.entity.siarchives.dto; +import com.engine.salary.annotation.Auth; import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.auth.AuthCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.Set; /** * @Author: sy @@ -17,6 +20,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor +@Auth(page = "siArchive", checkType = AuthCheckTypeEnum.TAX_EMP, taxAgentIdField = "paymentOrganization", employeeIdField = "employeeId") public class InsuranceArchivesBaseHistoryDTO { private Long id; @@ -94,4 +98,7 @@ public class InsuranceArchivesBaseHistoryDTO { private String operatorName; @TableTitle(title = "操作时间", dataIndex = "operateTime", key = "operateTime") private Date operateTime; + + + private Set opts; } diff --git a/src/com/engine/salary/service/SIArchivesService.java b/src/com/engine/salary/service/SIArchivesService.java index b6ff23d69..3b7b18c98 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -121,8 +121,6 @@ public interface SIArchivesService { void handleStayDelData(long currentEmployeeId); - PageInfo getAdjustHistoryList(SIArchiveBaseHistoryListParam param); - PageInfo historyListByEmployeeIdAndOperator(SIArchiveBaseHistoryListParam param); List> buildTableData(List insuranceArchivesEmployeePOS); diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index 147b63e35..fd45761f4 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -17,6 +17,8 @@ import java.util.List; **/ public interface AuthService { + boolean auth(T t, AuthFilterTypeEnum filterType, Class clazz); + List auth(List list, AuthFilterTypeEnum filterType, Class clazz); List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page); diff --git a/src/com/engine/salary/service/auth/AuthServiceImpl.java b/src/com/engine/salary/service/auth/AuthServiceImpl.java index 6d474fae0..e988f796d 100644 --- a/src/com/engine/salary/service/auth/AuthServiceImpl.java +++ b/src/com/engine/salary/service/auth/AuthServiceImpl.java @@ -43,9 +43,17 @@ public class AuthServiceImpl extends Service implements AuthService { return MapperProxyFactory.getProxy(AuthMapper.class); } + @Override + public boolean auth(T t, AuthFilterTypeEnum filterType, Class clazz) { + List list = new ArrayList(); + list.add(t); + list = auth(list, filterType, clazz, null); + return list.size() > 0; + } + @Override public List auth(List list, AuthFilterTypeEnum filterType, Class clazz) { - return auth(list, filterType, clazz, null); + return auth(list, filterType, clazz, null); } @Override diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 729a7df49..e0c917e21 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -31,7 +32,6 @@ import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; -import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -189,18 +189,14 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Override public Map getBaseForm(Map params) { - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentPOS = getTaxAgentService(user).listAuth(param); Map apidatas = new HashMap<>(16); -// SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); -//// siArchivesBiz.setNeedAuth(needAuth); -//// siArchivesBiz.setTaxAgentPOS(taxAgentPOS); WelfareTypeEnum welfareTypeEnum = (WelfareTypeEnum) params.get("welfareTypeEnum"); Long employeeId = Long.valueOf(Util.null2String(params.get("employeeId"))); Long paymentOrganization = welfareTypeEnum != null ? Long.valueOf(Util.null2String(params.get("paymentOrganization"))) : null; -// apidatas = siArchivesBiz.getBaseForm(welfareTypeEnum, employeeId, (long) user.getUID(), user, paymentOrganization); apidatas = getBaseForm(welfareTypeEnum, employeeId, paymentOrganization, taxAgentPOS); return apidatas; } @@ -366,24 +362,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService Util_DataCache.setObjVal("welfareChangeSign", "0"); return; } - // 当前可以管辖的人员 - Collection taxAgentList = new ArrayList<>(); - if (currentEmployeeId != 1L) { - taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - Collection finalTaxAgentList = taxAgentList; - taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { - Util_DataCache.setObjVal("welfareChangeSign", "0"); - return; - } - } -// Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); -// log.info("当前可以管辖的个税扣缴义务人数量 {}:", taxAgentList.size()); -// taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> taxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); -// if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { -// Util_DataCache.setObjVal("welfareChangeSign", "0"); -// return; -// } + log.info("根据当前可以管辖的个税扣缴义务人筛选出的可处理增量数据数量 {}:", taxAgentEmpChangeList.size()); // 所有福利档案基础信息数据 List baseInfoPOList = getInsuranceBaseInfoMapper().listAll(); @@ -492,13 +471,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService throw new SalaryRunTimeException("不允许删除社保福利档案,请先开启删除档案规则配置!"); } List insuranceArchivesList = getInsuranceBaseInfoMapper().listByIds(archiveIds); + insuranceArchivesList = getAuthService(user).auth(insuranceArchivesList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); - //查询当前登录人员管理的个税扣缴义务人 - List canDeleteTaxAgentIds = getTaxAgentService(user).listAllTaxAgentsAsAdmin((long) user.getUID()) - .stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - boolean err = insuranceArchivesList.stream().anyMatch(po -> !canDeleteTaxAgentIds.contains(po.getPaymentOrganization())); - - if (CollectionUtils.isEmpty(insuranceArchivesList) || err) { + if (CollectionUtils.isEmpty(insuranceArchivesList)) { throw new SalaryRunTimeException("社保档案不存在,或没有权限删除该社保案!"); } @@ -689,7 +664,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService List> partitionInfo = Lists.partition((List) baseInfoEmployeeIds, 1000); partitionInfo.forEach(part -> moreBaseInfoPOS.addAll( getInsuranceBaseInfoMapper().getInsuranceBaseInfoListByInsuranceDetail(part))); - + List newInsuranceArchivesBaseInfoList = new ArrayList<>(); //设置社保、公积金、其他福利档案id log.info("设置社保、公积金、其他福利档案id"); @@ -766,6 +741,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } request.setPageSize(null); request.setStartNum(null); + request.setFilterType(AuthFilterTypeEnum.QUERY_DATA); List insuranceArchivesEmployeePOS = listPageEmployeePOS(request); if (insuranceArchivesEmployeePOS == null) { insuranceArchivesEmployeePOS = new ArrayList<>(); @@ -796,16 +772,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService @Override public List listPageEmployeePOS(InsuranceArchivesListParam param) { - long currentEmployeeId = user.getUID(); - Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId); - if (needAuth) { - List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); - Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); - List list = getSocialSchemeMapper().queryEmployeeList(param); - return list.stream().filter(f -> employeeIds.contains(f.getEmployeeId())).collect(Collectors.toList()); - } - - return getSocialSchemeMapper().queryEmployeeList(param); + List list = getSocialSchemeMapper().queryEmployeeList(param); + list = getAuthService(user).auth(list, param.getFilterType(), InsuranceArchivesEmployeePO.class); + return list; } /** @@ -883,17 +852,17 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "没有可以操作的记录")); } List pos = getInsuranceBaseInfoMapper().listByIds(ids); + pos = pos.stream().filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) + ||f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue())).collect(Collectors.toList()); + pos = getAuthService(user).auth(pos, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); + + if (CollectionUtil.isEmpty(pos)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "不在当前个税扣缴义人的人员范围中,不可取消停缴")); + } List stayAddIds = new ArrayList<>(); List stayDelIds = new ArrayList<>(); - List taxAgentManageRangeEmployees = getTaxAgentService(user).listTaxAgentAndEmployee((long) user.getUID()); - List oldStayAddList = pos.stream().filter(f -> f.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())).collect(Collectors.toList()); - - boolean isNotExist = oldStayAddList.stream().anyMatch(te -> taxAgentManageRangeEmployees.stream().noneMatch(p -> p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getPaymentOrganization()))); - if (isNotExist) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "不在当前个税扣缴义人的人员范围中,不可取消停缴")); - } for(InsuranceArchivesBaseInfoPO po : pos) { if (po.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())) { //来自待增员的停缴->待增员 @@ -1103,15 +1072,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map allStayDelToStop() { - long currentEmployeeId = user.getUID(); List allBaseInfoList = getInsuranceBaseInfoMapper().listAll(); + allBaseInfoList = getAuthService(user).auth(allBaseInfoList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); if (allBaseInfoList.size() > 0) { - //筛选当前人员可管辖(个税扣缴义务人)范围 - Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - List paymentOrganizationList = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - Collection stayDelIds = allBaseInfoList.stream().filter(f->f.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue()) - && paymentOrganizationList.contains(f.getPaymentOrganization()) && (f.getEmployeeType() == null || Objects.equals(f.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))) .map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList()); if (stayDelIds.size() > 0) { @@ -1295,15 +1259,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService */ @Override public Map allStayAddToPay() { - long currentEmployeeId = user.getUID(); List allBaseInfoList = getInsuranceBaseInfoMapper().listAll(); + allBaseInfoList = getAuthService(user).auth(allBaseInfoList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); if (allBaseInfoList.size() > 0) { - //筛选当前人员可管辖(个税扣缴义务人)范围 - Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - List paymentOrganizationList = taxAgentList.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - Collection stayAddIds = allBaseInfoList.stream().filter(f->f.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue()) - && paymentOrganizationList.contains(f.getPaymentOrganization()) && (f.getEmployeeType() == null || Objects.equals(f.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue()))) .map(InsuranceArchivesBaseInfoPO::getId).collect(Collectors.toList()); if (stayAddIds.size() > 0) { @@ -1328,96 +1287,59 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())) { List> baseInfoIdsPartition = Lists.partition((List) insuranceArchivesBaseInfoPO.getIds(), 100); List nowList = new ArrayList<>(); - baseInfoIdsPartition.forEach(part -> { + for (List part : baseInfoIdsPartition) { nowList.addAll(getInsuranceBaseInfoMapper().listByIds(part)); - }); + } //判断当前被操作人员是否都在对应的个税扣缴义务人下 - List taxAgentManageRangeEmployees = getTaxAgentService(user).listTaxAgentAndEmployee((long) user.getUID()); - - boolean isNotExist = nowList.stream().anyMatch(te -> - taxAgentManageRangeEmployees.stream().noneMatch(p -> - p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getPaymentOrganization()))); - - if (isNotExist) { + nowList = getAuthService(user).auth(nowList, AuthFilterTypeEnum.ADMIN_DATA, InsuranceArchivesBaseInfoPO.class); + if (CollectionUtil.isEmpty(nowList)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "个税扣缴义务人不存在或不在权限范围内,删除失败!")); } //置空社保、公积金、其他福利档案的最后缴纳月信息,并将福利档案基础信息表的状态置为“正在缴纳” - if (nowList.size() > 0) { - List socialIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); - List fundIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); - List otherIds = nowList.stream() - .map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); + List socialIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getSocialArchivesId).collect(Collectors.toList()); + List fundIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getFundArchivesId).collect(Collectors.toList()); + List otherIds = nowList.stream() + .map(InsuranceArchivesBaseInfoPO::getOtherArchivesId).collect(Collectors.toList()); - List> socialIdsPartition = Lists.partition(socialIds, 100); - socialIdsPartition.forEach(getSocialSchemeMapper()::batchUpdateEndTimeToNull); + List> socialIdsPartition = Lists.partition(socialIds, 100); + socialIdsPartition.forEach(getSocialSchemeMapper()::batchUpdateEndTimeToNull); - List> fundIdsPartition = Lists.partition(fundIds, 100); - fundIdsPartition.forEach(getFundSchemeMapper()::batchUpdateEndTimeToNull); + List> fundIdsPartition = Lists.partition(fundIds, 100); + fundIdsPartition.forEach(getFundSchemeMapper()::batchUpdateEndTimeToNull); - List> otherIdsPartition = Lists.partition(otherIds, 100); - otherIdsPartition.forEach(getOtherSchemeMapper()::batchUpdateEndTimeToNull); - - baseInfoIdsPartition.forEach(part -> { - getInsuranceBaseInfoMapper().updateRunStatusByIds(InsuranceArchivesBaseInfoPO.builder() - .ids(part) - .runStatus(EmployeeStatusEnum.PAYING.getValue()) - .build()); - }); - nowList.forEach(targetPO -> { - DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(targetPO.getEmployeeId()); - TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization()); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(targetPO.getId())); - loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "待减员档案-删除待办")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "待减员档案-删除待办") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername()); -// loggerContext.setNewValues(targetPO); - SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext); - }); - } + List> otherIdsPartition = Lists.partition(otherIds, 100); + otherIdsPartition.forEach(getOtherSchemeMapper()::batchUpdateEndTimeToNull); + baseInfoIdsPartition.forEach(part -> { + getInsuranceBaseInfoMapper().updateRunStatusByIds(InsuranceArchivesBaseInfoPO.builder() + .ids(part) + .runStatus(EmployeeStatusEnum.PAYING.getValue()) + .build()); + }); + nowList.forEach(targetPO -> { + DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(targetPO.getEmployeeId()); + TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization()); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(targetPO.getId())); + loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "待减员档案-删除待办")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "待减员档案-删除待办") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername()); + SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext); + }); } } - @Override - public PageInfo getAdjustHistoryList(SIArchiveBaseHistoryListParam param) { - - if (param.getWelfareTypeEnum() == null) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "参数错误")); - } -// List adjustHistoryDTOS = siArchivesBiz.getAdjustHistoryList(param.getPaymentOrganization(), param.getEmployeeId()); - List adjustHistoryDTOS = getAdjustHistoryList(param.getPaymentOrganization(), param.getEmployeeId()); - - List targetHistory = adjustHistoryDTOS.stream() - .filter(f -> f.getWelfareType().equals(param.getWelfareTypeEnum().getValue())).collect(Collectors.toList()); - - PageInfo listPage = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), - targetHistory , InsuranceArchivesBaseHistoryDTO.class); - - return listPage; - } - @Override public PageInfo historyListByEmployeeIdAndOperator(SIArchiveBaseHistoryListParam param) { // List adjustHistoryDTOS = siArchivesBiz.getBaseHistoryByEmployeeIdAndOperator(param.getOperator(), param.getEmployeeId()); List adjustHistoryDTOS = getBaseHistoryByEmployeeIdAndOperator(param.getOperator(), param.getEmployeeId()); // 分权逻辑 - Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID()); - if (needAuth) { - Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); - List taxAgents = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgents)) { - //防止普通用户查询 - adjustHistoryDTOS = new ArrayList<>(); - } else { - adjustHistoryDTOS = adjustHistoryDTOS.stream().filter(f -> taxAgents.contains(f.getPaymentOrganization())).collect(Collectors.toList()); - } - } + adjustHistoryDTOS = getAuthService(user).auth(adjustHistoryDTOS, AuthFilterTypeEnum.QUERY_DATA, InsuranceArchivesBaseHistoryDTO.class); adjustHistoryDTOS.forEach(f -> { if (StringUtils.isNotBlank(f.getPaymentScope())) { @@ -2351,10 +2273,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return data; } -// List list = siSchemeBiz.listAll(); - List list = getSISchemeService(user).listAll(); - // 过滤可见性范围 - list = filterList(list, taxAgentPOS); + List list = listAuthScheme(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); List paymentOptions = paymentOrganizationOptions(taxAgentPOS); @@ -2422,32 +2341,21 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return data; } - /*** - * @description 过滤没有权限访问的 - * @return List - * @author Harryxzy - * @date 2022/9/19 18:32 - */ - List filterList(List list, Collection taxAgentPOS){ - List ids = taxAgentPOS.stream().map(i -> String.valueOf(i.getId())).collect(Collectors.toList()); - List result = list.stream().filter(item -> { - boolean flag = true; - if (item.getSharedType()!= null && item.getSharedType().equals("1")) { - flag = false; - String taxAgentIds = item.getTaxAgentIds(); - if(org.apache.commons.lang.StringUtils.isNotBlank(taxAgentIds)){ - String splitFlag = ","; - String[] split = taxAgentIds.split(splitFlag); - for (int i = 0; i < split.length; i++) { - if (ids.contains(split[i])) { - flag = true; - } - } - } + private List listAuthScheme() { + List list = getSISchemeService(user).listAll(); + TaxAgentQueryParam param = TaxAgentQueryParam.builder().build(); + param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA); + Collection taxAgentList = getTaxAgentService(user).listAuth(param); + List authTaxAgentIds = SalaryEntityUtil.properties(taxAgentList, TaxAgentPO::getId, Collectors.toList()); + list = list.stream().filter(po -> { + String taxAgentIdsStr = po.getTaxAgentIds(); + List taxAgentIds = new ArrayList<>(); + if (StringUtils.isNotBlank(taxAgentIdsStr)) { + taxAgentIds = Arrays.stream(taxAgentIdsStr.split(",")).map(Long::valueOf).collect(Collectors.toList()); } - return flag; + return StringUtils.isBlank(po.getSharedType()) || SharedTypeEnum.PUBLIC.getValue().equals(po.getSharedType()) || (SharedTypeEnum.PRIVATE.getValue().equals(po.getSharedType()) && SalaryEntityUtil.judgeIntersection(authTaxAgentIds, taxAgentIds)); }).collect(Collectors.toList()); - return result; + return list; } /** diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 8619ba2a9..22e20a454 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -436,7 +436,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 记录日志 String targetName = salarySobPO.getName() + ":" + SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()); - LoggerContext loggerContext = new LoggerContext<>(); + LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId("" + salaryAcctRecordPO.getId()); loggerContext.setTargetName(targetName); @@ -508,7 +508,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } // 记录日志 String targetName = salarySobPO.getName() + ":" + SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()); - LoggerContext loggerContext = new LoggerContext<>(); + LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId("" + salaryAcctRecordPO.getId()); loggerContext.setTargetName(targetName); From 237ea8fcd87ae6db9c9830fdc251bb96a09e3f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 19:47:18 +0800 Subject: [PATCH 083/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/auth/AuthService.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index fd45761f4..ad09913d6 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -17,13 +17,53 @@ import java.util.List; **/ public interface AuthService { + /** + * 单一对象权限识别 + * + * @param t 对象实体 + * @param filterType 数据过滤方式,默认采用“数据&功能权限”方式过滤 + * @param clazz 反射类,需加@Auth注解定义权限项 + * @param 对象泛型 + * @return 是否有权限 + */ boolean auth(T t, AuthFilterTypeEnum filterType, Class clazz); + /** + * 对象权限识别 + * + * @param list 对象集合 + * @param filterType <>数据过滤方式,默认采用“数据&功能权限”方式过滤 + * @param clazz 反射类,需加@Auth注解定义权限项 + * @param 对象泛型 + * @return 有权限的对象集合 + */ List auth(List list, AuthFilterTypeEnum filterType, Class clazz); + /** + * 对象权限识别 + * + * @param list 对象集合 + * @param filterType 数据过滤方式,默认采用“数据&功能权限”方式过滤 + * @param clazz 反射类,需加@Auth注解定义权限项 + * @param page 页面标识,用于获取权限项 + * @param 对象泛型 + * @return 有权限的对象集合 + */ List auth(List list, AuthFilterTypeEnum filterType, Class clazz, String page); + /** + * 单页权限识别 + * + * @param page 页面标识,用于获取权限项 + * @return 权限树 + */ Permission permission(String page); + /** + * 权限树 + * + * @param param 查询参数 + * @return 权限树 + */ AuthTreeDTO tree(AuthTreeQueryParam param); } From c2b200d843938b423fea0a41d95ab7fef553e45e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 19:47:45 +0800 Subject: [PATCH 084/184] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/auth/AuthService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/auth/AuthService.java b/src/com/engine/salary/service/auth/AuthService.java index ad09913d6..95d7e367c 100644 --- a/src/com/engine/salary/service/auth/AuthService.java +++ b/src/com/engine/salary/service/auth/AuthService.java @@ -8,7 +8,7 @@ import com.engine.salary.enums.auth.AuthFilterTypeEnum; import java.util.List; /** - * 权限 + * 权限控制单元 *

Copyright: Copyright (c) 2024

*

Company: 泛微软件

* From 63928ddc598d03d66abc83418d76c936dd13365f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 28 Oct 2024 15:08:10 +0800 Subject: [PATCH 085/184] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=8A=B6=E6=80=81null=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySendServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 1fd3b4970..9827dfd87 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -719,7 +719,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService MonthTypeEnum monthType = salaryBillViewingLimitSetting.getMonthType(); LocalDate localDate; if (monthType == MonthTypeEnum.SALARY_DATE) { - localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()+1).withDayOfMonth(1); + localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth() + 1).withDayOfMonth(1); } else { localDate = LocalDate.now().plusMonths(-salaryBillViewingLimitSetting.getLimitMonth()); } @@ -1110,7 +1110,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("mobile", e.getMobile()); map.put("dissmissdate", hrmDepartmentComInfo.getDismissdate()); map.put("status", salaryAcctEmployee.getStatus()); - map.put("statusName", UserStatusEnum.getDefaultLabelByValue(Integer.valueOf(salaryAcctEmployee.getStatus()))); + map.put("statusName", UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(salaryAcctEmployee.getStatus(), 1))); map.put("workcode", hrmDepartmentComInfo.getWorkcode()); map.put("sex", "0".equals(hrmDepartmentComInfo.getSex()) ? "男" : "女"); map.put("idNo", hrmDepartmentComInfo.getIdNo()); From 909782d7d632197c8d63476a1a7ef581f40768c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 31 Oct 2024 10:46:02 +0800 Subject: [PATCH 086/184] =?UTF-8?q?=E8=B0=83=E8=96=AA=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/salaryoptconfig.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resource/WEB-INF/salaryoptconfig.xml b/resource/WEB-INF/salaryoptconfig.xml index c986b7a83..cc4c607b8 100644 --- a/resource/WEB-INF/salaryoptconfig.xml +++ b/resource/WEB-INF/salaryoptconfig.xml @@ -24,6 +24,11 @@ + + + + + From 84aa4caf543144b6031058a47da4dd7bc3d3203b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 13 Nov 2024 11:24:19 +0800 Subject: [PATCH 087/184] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryBill/bo/SalaryBillBO.java | 36 +++++++++---------- .../service/impl/SalarySendServiceImpl.java | 3 ++ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java index 2c62b8cde..b36deb78b 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillBO.java @@ -120,34 +120,34 @@ public class SalaryBillBO { /** * 构建工资单中的人员信息 * - * @param simpleEmployee */ - public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, DataCollectionEmployee simpleEmployee) { + public static void buildEmployeeInfo(SalaryBillSendDTO salaryBillSendParam, Map empInfo) { SalaryTemplateSalaryItemSetListDTO employeeInformation = salaryBillSendParam.getEmployeeInformation(); Map employeeField = salaryBillSendParam.getEmployeeField(); - if (employeeInformation == null || simpleEmployee == null) { + if (employeeInformation == null || empInfo == null) { return; } if (CollectionUtils.isNotEmpty(employeeInformation.getItems())) { //获取员工信息的字段名和中文描述的map关系 SalaryFormulaEmployeeDTO salaryFormulaEmployeeDTO = SalaryFormulaEmployeeDTO.builder() - .employeeId(simpleEmployee.getEmployeeId()) - .taxAgentName(salaryBillSendParam.getTaxAgentName()) - .departmentName(simpleEmployee.getDepartmentName()) - .companystartdate(simpleEmployee.getCompanystartdate()) - .email(StringUtils.isEmpty(simpleEmployee.getEmail()) ? "" : simpleEmployee.getEmail()) - .sex(simpleEmployee.getSex() == null ? "" : simpleEmployee.getSex()) - .mobile(StringUtils.isEmpty(simpleEmployee.getMobile()) ? "" : simpleEmployee.getMobile()).jobtitleName(simpleEmployee.getJobtitleName()) - .status(StringUtils.isEmpty(simpleEmployee.getStatus()) ? "" : simpleEmployee.getStatus()) - .telephone(StringUtils.isEmpty(simpleEmployee.getTelephone()) ? "" : simpleEmployee.getTelephone()) - .username(StringUtils.isEmpty(simpleEmployee.getUsername()) ? "" : simpleEmployee.getUsername()) - .workcode(simpleEmployee.getWorkcode()) - .idNo(simpleEmployee.getIdNo()) - .statusName(simpleEmployee.getStatusName()) - .accountType(simpleEmployee.getAccountType()) - .accountTypeName(simpleEmployee.getAccountTypeName()) + .employeeId((long) empInfo.getOrDefault("employeeId", 0L)) + .taxAgentName(Util.null2String(empInfo.get("taxAgentName"))) + .departmentName(Util.null2String(empInfo.get("departmentName"))) + .companystartdate(Util.null2String(empInfo.get("companystartdate"))) + .email(Util.null2String(empInfo.get("email"))) + .sex(Util.null2String(empInfo.get("sex"))) + .mobile(Util.null2String(empInfo.get("mobile"))) + .jobtitleName(Util.null2String(empInfo.get("jobtitleName"))) + .status(Util.null2String(empInfo.get("status"))) + .telephone(Util.null2String(empInfo.get("telephone"))) + .username(Util.null2String(empInfo.get("username"))) + .workcode(Util.null2String(empInfo.get("workcode"))) + .idNo(Util.null2String(empInfo.get("idNo"))) + .statusName(Util.null2String(empInfo.get("statusName"))) +// .accountType((Integer) empInfo.getOrDefault("accountType",0)) + .accountTypeName(Util.null2String(empInfo.get("accountTypeName"))) .build(); List items = employeeInformation.getItems(); for (SalaryTemplateSalaryItemListDTO e : items) { diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 210433c5a..c26d04070 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1122,6 +1122,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService map.put("jobcallId", hrmDepartmentComInfo.getJobcallId()); map.put("birthday", hrmDepartmentComInfo.getBirthday()); + map.put("accountType", hrmDepartmentComInfo.getAccountType()); + map.put("accountTypeName", hrmDepartmentComInfo.getAccountTypeName()); + // map.put("employeeType", SalarySendEmployeeTypeEnum.getNameByValue(e.getEmployeeType())); // 单个人的核算数据 List resultValues = Lists.newArrayList(); From a40697ec3356306084cf9560f80e66ff732030bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 15 Nov 2024 13:57:35 +0800 Subject: [PATCH 088/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/api/salary/web/PushController.java | 8 + .../push/param/PushSettingItemSaveParam.java | 65 +++++ .../push/param/PushSettingSaveParam.java | 59 ++++ .../entity/push/po/PushSettingItemPO.java | 95 +++++++ .../salary/entity/push/po/PushSettingPO.java | 93 ++++++ .../salary/enums/push/PushItemFieldEnum.java | 73 +++++ .../salary/enums/push/PushItemSourceEnum.java | 70 +++++ .../mapper/push/PushSettingItemMapper.java | 72 +++++ .../mapper/push/PushSettingItemMapper.xml | 268 ++++++++++++++++++ .../salary/mapper/push/PushSettingMapper.java | 73 +++++ .../salary/mapper/push/PushSettingMapper.xml | 268 ++++++++++++++++++ .../engine/salary/service/PushService.java | 21 ++ .../salary/service/impl/PushServiceImpl.java | 134 +++++++++ src/com/engine/salary/web/PushController.java | 53 ++++ .../engine/salary/wrapper/PushWrapper.java | 28 ++ 15 files changed, 1380 insertions(+) create mode 100644 src/com/api/salary/web/PushController.java create mode 100644 src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java create mode 100644 src/com/engine/salary/entity/push/param/PushSettingSaveParam.java create mode 100644 src/com/engine/salary/entity/push/po/PushSettingItemPO.java create mode 100644 src/com/engine/salary/entity/push/po/PushSettingPO.java create mode 100644 src/com/engine/salary/enums/push/PushItemFieldEnum.java create mode 100644 src/com/engine/salary/enums/push/PushItemSourceEnum.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingItemMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingItemMapper.xml create mode 100644 src/com/engine/salary/mapper/push/PushSettingMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingMapper.xml create mode 100644 src/com/engine/salary/service/PushService.java create mode 100644 src/com/engine/salary/service/impl/PushServiceImpl.java create mode 100644 src/com/engine/salary/web/PushController.java create mode 100644 src/com/engine/salary/wrapper/PushWrapper.java diff --git a/src/com/api/salary/web/PushController.java b/src/com/api/salary/web/PushController.java new file mode 100644 index 000000000..854a3b9b7 --- /dev/null +++ b/src/com/api/salary/web/PushController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/push") +public class PushController extends com.engine.salary.web.PushController{ + +} diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java new file mode 100644 index 000000000..af96be721 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -0,0 +1,65 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.push.PushItemSourceEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; + +/** + * 数据推送配置明细 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemSaveParam { + + + private Long id; + + /** + * 设置id + */ + @DataCheck(require = true, message = "设置id为空") + private Long settingId; + + /** + * 项目 + */ + @DataCheck(require = true, message = "项目为空") + private String item; + + /** + * 项目名 + */ + @DataCheck(require = true, message = "项目名为空") + private String itemName; + + /** + * 项目类型 + */ + @DataCheck(require = true, message = "数据来源") + private PushItemSourceEnum source; + + /** + * 数据库字段 + */ + @DataCheck(require = true, message = "数据库字段为空") + private String fieldName; + + /** + * 字段类型 + */ + @DataCheck(require = true, message = "字段类型为空") + private PushItemFieldEnum fieldType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java new file mode 100644 index 000000000..cdc28d327 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java @@ -0,0 +1,59 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.ValidTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingSaveParam { + + private Long id; + + /** + * 任务名称 + */ + @DataCheck(require = true, type = ValidTypeEnum.STRING, max = 50, labelId = 86185, message = "任务名称为空") + private String name; + + /** + * 是否启用,0否 1是 + */ + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, message = "是否启用为空") + private Integer able; + + + /** + * 薪资帐套集合 + */ + private List salarySobIds; + + /** + * 建模id + */ + private Integer modeId; + + /** + * 模块名称 + */ + private String modeName; + + + /** + * 数据库表 + */ + @DataCheck(require = true, message = "数据库表为空") + private String tableName; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java new file mode 100644 index 000000000..fdd9b1442 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -0,0 +1,95 @@ +package com.engine.salary.entity.push.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 PushSettingItemPO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 设置id + */ + @ElogTransform(name = "设置id") + private Long settingId; + + /** + * 项目 + */ + @ElogTransform(name = "项目") + private String item; + + /** + * 项目名 + */ + @ElogTransform(name = "项目名") + private String itemName; + + /** + * 项目类型 + */ + @ElogTransform(name = "项目类型") + private Integer source; + + /** + * 数据库字段 + */ + @ElogTransform(name = "数据库字段") + private String fieldName; + + /** + * 字段类型 + */ + @ElogTransform(name = "字段类型") + private Integer fieldType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingPO.java b/src/com/engine/salary/entity/push/po/PushSettingPO.java new file mode 100644 index 000000000..a997593f9 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingPO.java @@ -0,0 +1,93 @@ +package com.engine.salary.entity.push.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; +import java.util.List; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingPO { + + @ElogTransform(name = "") + private Long id; + + /** + * 是否启用,0否 1是 + */ + @ElogTransform(name = "是否启用,0否 1是") + private Integer able; + + + @ElogTransform(name = "任务名称") + private String name; + + /** + * 薪资帐套集合 + */ + @ElogTransform(name = "薪资帐套集合") + private List salarySobIds; + + /** + * 建模id + */ + @ElogTransform(name = "建模id") + private Integer modeId; + + /** + * 模块名称 + */ + @ElogTransform(name = "模块名称") + private String modeName; + + /** + * 数据库表 + */ + @ElogTransform(name = "数据库表") + private String tableName; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/push/PushItemFieldEnum.java b/src/com/engine/salary/enums/push/PushItemFieldEnum.java new file mode 100644 index 000000000..fee779972 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushItemFieldEnum.java @@ -0,0 +1,73 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送数据来源 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushItemFieldEnum implements BaseEnum { + + NUMBER(1, "数值", 87625), + TEXT(2, "文本", 85393), + DATE(3, "日期", 85393), + YEAR(4, "日期文本-年", 85393), + YEAR_MONTH(5, "日期文本-年月", 85393), + YEAR_MONTH_DAY(6, "日期文本-年月日", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushItemFieldEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushItemFieldEnum parseByValue(int value) { + for (PushItemFieldEnum salaryDataSourceEnum : PushItemFieldEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushItemFieldEnum[] enumAry = PushItemFieldEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushItemSourceEnum.java b/src/com/engine/salary/enums/push/PushItemSourceEnum.java new file mode 100644 index 000000000..ec9ee71bd --- /dev/null +++ b/src/com/engine/salary/enums/push/PushItemSourceEnum.java @@ -0,0 +1,70 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送数据来源 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushItemSourceEnum implements BaseEnum { + + EMPLOYEE_INFO(0, "员工基本信息", 85366), + SALARY_ACCT_EMPLOYEE(1, "核算信息", 85368), + SALARY_CYCLE(2, "核算日期", 85368), + SALARY_ITEM(3, "薪资项目", 84960); + private int value; + + private String defaultLabel; + + private int labelId; + + PushItemSourceEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushItemSourceEnum parseByValue(int value) { + for (PushItemSourceEnum salaryDataSourceEnum : PushItemSourceEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushItemSourceEnum[] enumAry = PushItemSourceEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (Integer.valueOf(enumAry[i].getValue()).equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.java b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java new file mode 100644 index 000000000..3f550b532 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingItemPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingItemMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushSettingItemPO pushSettingItem); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushSettingItemPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushSettingItem 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 修改,修改所有字段 + * + * @param pushSettingItem 修改的记录 + * @return 返回影响行数 + */ + int update(PushSettingItemPO pushSettingItem); + + /** + * 修改,忽略null字段 + * + * @param pushSettingItem 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 删除记录 + * + * @param pushSettingItem 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushSettingItemPO pushSettingItem); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml new file mode 100644 index 000000000..f708ed48c --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.field_name + , t.field_type + , t.id + , t.item + , t.item_name + , t.source + , t.setting_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting_item + + + + create_time, + + + creator, + + + delete_type, + + + field_name, + + + field_type, + + + id, + + + item, + + + item_name, + + + source, + + + setting_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{fieldName}, + + + #{fieldType}, + + + #{id}, + + + #{item}, + + + #{itemName}, + + + #{source}, + + + #{settingId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting_item + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + field_name=#{fieldName}, + field_type=#{fieldType}, + item=#{item}, + item_name=#{itemName}, + source=#{source}, + setting_id=#{settingId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + field_name=#{fieldName}, + + + field_type=#{fieldType}, + + + item=#{item}, + + + item_name=#{itemName}, + + + source=#{source}, + + + setting_id=#{settingId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting_item + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.java b/src/com/engine/salary/mapper/push/PushSettingMapper.java new file mode 100644 index 000000000..dcfe71ccc --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushSettingPO pushSetting); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushSettingPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushSetting 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushSettingPO pushSetting); + + + /** + * 修改,修改所有字段 + * + * @param pushSetting 修改的记录 + * @return 返回影响行数 + */ + int update(PushSettingPO pushSetting); + + /** + * 修改,忽略null字段 + * + * @param pushSetting 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushSettingPO pushSetting); + + /** + * 删除记录 + * + * @param pushSetting 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushSettingPO pushSetting); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.xml b/src/com/engine/salary/mapper/push/PushSettingMapper.xml new file mode 100644 index 000000000..fa162f0b8 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + able + , t.create_time + , t.creator + , t.delete_type + , t.name + , t.id + , t.mode_id + , t.mode_name + , t.salary_sob_ids + , t.table_name + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting + + + + able, + + + create_time, + + + creator, + + + delete_type, + + + name, + + + id, + + + mode_id, + + + mode_name, + + + salary_sob_ids, + + + table_name, + + + tenant_key, + + + update_time, + + + + + #{able}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{name}, + + + #{id}, + + + #{modeId}, + + + #{modeName}, + + + #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{tableName}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting + + able=#{able}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + mode_id=#{modeId}, + mode_name=#{modeName}, + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + table_name=#{tableName}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + + + able=#{able}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + mode_id=#{modeId}, + + + mode_name=#{modeName}, + + + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + table_name=#{tableName}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java new file mode 100644 index 000000000..3c9e60f66 --- /dev/null +++ b/src/com/engine/salary/service/PushService.java @@ -0,0 +1,21 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; + +public interface PushService { + + /** + * 保存推送配置 + * @param param + */ + PushSettingPO save(PushSettingSaveParam param); + + /** + * 保存明细配置 + * @param param + */ + PushSettingItemPO saveItem(PushSettingItemSaveParam param); +} diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java new file mode 100644 index 000000000..2fa5678ac --- /dev/null +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -0,0 +1,134 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.push.PushSettingItemMapper; +import com.engine.salary.mapper.push.PushSettingMapper; +import com.engine.salary.service.PushService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.ValidUtil; +import weaver.hrm.User; + +import java.util.Date; + +/** + * 推送服务 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class PushServiceImpl extends Service implements PushService { + + private PushSettingMapper getPushSettingMapper() { + return MapperProxyFactory.getProxy(PushSettingMapper.class); + } + + private PushSettingItemMapper getPushSettingItemMapper() { + return MapperProxyFactory.getProxy(PushSettingItemMapper.class); + } + + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + @Override + public PushSettingPO save(PushSettingSaveParam param) { + ValidUtil.doValidator(param); + + Date now = new Date(); + + Long id = param.getId(); + PushSettingPO po; + if (id == null) { + po = PushSettingPO.builder() + .id(IdGenerator.generate()) + .able(param.getAble()) + .name(param.getName()) + .salarySobIds(param.getSalarySobIds()) + .modeId(param.getModeId()) + .modeName(param.getModeName()) + .tableName(param.getTableName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("推送配置不存在!"); + } + po.setAble(param.getAble()); + po.setAble(param.getAble()); + po.setName(param.getName()); + po.setSalarySobIds(param.getSalarySobIds()); + po.setModeId(param.getModeId()); + po.setModeName(param.getModeName()); + po.setTableName(param.getTableName()); + po.setUpdateTime(now); + + getPushSettingMapper().update(po); + } + + return po; + } + + @Override + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + ValidUtil.doValidator(param); + Date now = new Date(); + Long id = param.getId(); + PushSettingItemPO po; + if (id == null) { + po = PushSettingItemPO.builder() + .id(IdGenerator.generate()) + .settingId(param.getSettingId()) + .item(param.getItem()) + .itemName(param.getItemName()) + .source(param.getSource().getValue()) + .fieldName(param.getFieldName()) + .fieldType(param.getFieldType().getValue()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingItemMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingItemMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("推送配置明细不存在!"); + } + po.setSettingId(param.getSettingId()); + po.setItem(param.getItem()); + po.setItemName(param.getItemName()); + po.setSource(param.getSource().getValue()); + po.setFieldName(param.getFieldName()); + po.setFieldType(param.getFieldType().getValue()); + po.setUpdateTime(now); + + getPushSettingItemMapper().update(po); + + } + + return po; + } +} diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java new file mode 100644 index 000000000..f85626da1 --- /dev/null +++ b/src/com/engine/salary/web/PushController.java @@ -0,0 +1,53 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.wrapper.PushWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 数据推送 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class PushController { + + private PushWrapper getPushWrapper(User user) { + return ServiceUtil.getService(PushWrapper.class, user); + } + + @POST + @Path("/setting/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::save, param); + } + + + @POST + @Path("/item/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveitem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::saveItem, param); + } + +} diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java new file mode 100644 index 000000000..3c552f608 --- /dev/null +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -0,0 +1,28 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.service.PushService; +import com.engine.salary.service.impl.PushServiceImpl; +import weaver.hrm.User; + + +public class PushWrapper extends Service { + + private PushService getPushService(User user) { + return ServiceUtil.getService(PushServiceImpl.class, user); + } + + + public PushSettingPO save(PushSettingSaveParam param) { + return getPushService(user).save(param); + } + + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + return getPushService(user).saveItem(param); + } +} From 7644e27e05c81c43678ebd9f79821b2896614db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 15 Nov 2024 14:25:07 +0800 Subject: [PATCH 089/184] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctRecordServiceImpl.java | 8 ++++++++ .../engine/salary/wrapper/SalaryAcctRecordWrapper.java | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 8f630609c..69c4c79f0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -119,6 +119,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(AuthServiceImpl.class, user); } + private PushService getPushService(User user) { + return ServiceUtil.getService(PushServiceImpl.class, user); + } + @Override public SalaryAcctRecordPO getById(Long id) { @@ -539,6 +543,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe getSalaryStatisticsReportService(user).removeReportCache(); + //获取推送配置 +// getPushService(user).initPushConfig(salaryAcctRecordId); + + // 记录日志 String targetName = getLogTargetNameById(salaryAcctRecordId); LoggerContext loggerContext = new LoggerContext<>(); diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 595868144..b9d6f766d 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -146,9 +146,6 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord List salarySendCheckResult = getSalarySendService(user).getSalarySendCheckResult(salaryAcctRecordIds); List taxAgentPOS = getTaxAgentService(user).listAll(); - - Set taxAgentIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getTaxAgentId); - List taxAgentPOS = getTaxAgentService(user).listByIds(taxAgentIds); // 转换成列表dto List salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc); dtoPage.setList(salaryAcctRecordListDTOS); From db99fc12e2c9534970dd5112bb3f049dca020b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 15 Nov 2024 15:50:32 +0800 Subject: [PATCH 090/184] =?UTF-8?q?=E4=B8=93=E9=A1=B9=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/datacollection/dto/SpecialAddDeductionListDTO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java index c5444d2f5..5a993906f 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java @@ -134,7 +134,7 @@ public class SpecialAddDeductionListDTO { @Encrypt private String infantCare; - @SalaryTableColumn(text = "操作", width = "20%", column = "opts") - @TableTitle(title = "操作", dataIndex = "opts", key = "opts") + @SalaryTableColumn(text = "操作", width = "20%", column = "operate") + @TableTitle(title = "操作", dataIndex = "operate", key = "operate") private Set opts; } From 527bd5e1ed6a447357422fc0853b219447a89096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 18 Nov 2024 16:41:48 +0800 Subject: [PATCH 091/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/push/dto/PushSettingDTO.java | 39 +++++ .../salary/entity/push/param/PushParam.java | 19 +++ .../push/param/PushSettingItemSaveParam.java | 4 +- .../entity/push/po/PushSettingItemPO.java | 4 +- .../salary/enums/push/PushItemFieldEnum.java | 69 ++++++++- .../salary/handle/LongListTypeHandler.java | 49 ++++++ .../salary/mapper/push/PushSettingMapper.xml | 10 +- .../engine/salary/service/PushService.java | 13 ++ .../salary/service/impl/PushServiceImpl.java | 142 +++++++++++++++++- src/com/engine/salary/web/PushController.java | 8 + .../engine/salary/wrapper/PushWrapper.java | 5 + 11 files changed, 341 insertions(+), 21 deletions(-) create mode 100644 src/com/engine/salary/entity/push/dto/PushSettingDTO.java create mode 100644 src/com/engine/salary/entity/push/param/PushParam.java create mode 100644 src/com/engine/salary/handle/LongListTypeHandler.java diff --git a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java new file mode 100644 index 000000000..ed4e7006c --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java @@ -0,0 +1,39 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.salary.entity.push.po.PushSettingItemPO; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingDTO { + + private String sql; + + /** + * 建模id + */ + private Integer modeId; + + /** + * 模块名称 + */ + private String modeName; + + /** + * 数据库表 + */ + private String tableName; + + private List items; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushParam.java b/src/com/engine/salary/entity/push/param/PushParam.java new file mode 100644 index 000000000..24f8c257e --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushParam.java @@ -0,0 +1,19 @@ +package com.engine.salary.entity.push.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushParam { + + + private Long salaryAcctRecordId; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java index af96be721..408a12bc6 100644 --- a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -1,7 +1,7 @@ package com.engine.salary.entity.push.param; import com.engine.salary.enums.push.PushItemFieldEnum; -import com.engine.salary.enums.push.PushItemSourceEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; @@ -44,7 +44,7 @@ public class PushSettingItemSaveParam { * 项目类型 */ @DataCheck(require = true, message = "数据来源") - private PushItemSourceEnum source; + private SalarySQLReferenceEnum source; /** * 数据库字段 diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java index fdd9b1442..97693097d 100644 --- a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.push.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -42,9 +43,10 @@ public class PushSettingItemPO { /** * 项目类型 + * @see SalarySQLReferenceEnum */ @ElogTransform(name = "项目类型") - private Integer source; + private String source; /** * 数据库字段 diff --git a/src/com/engine/salary/enums/push/PushItemFieldEnum.java b/src/com/engine/salary/enums/push/PushItemFieldEnum.java index fee779972..84b4bbbb4 100644 --- a/src/com/engine/salary/enums/push/PushItemFieldEnum.java +++ b/src/com/engine/salary/enums/push/PushItemFieldEnum.java @@ -1,10 +1,17 @@ package com.engine.salary.enums.push; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import com.engine.salary.enums.BaseEnum; +import com.engine.salary.util.SalaryDateUtil; +import org.apache.commons.lang3.StringUtils; +import java.math.BigDecimal; import java.util.Arrays; import java.util.Objects; +import static com.engine.salary.util.SalaryDateUtil.DATE_TIME_FORMATTER_PATTERN; + /** * 推送数据来源 *

Copyright: Copyright (c) 2024

@@ -15,12 +22,56 @@ import java.util.Objects; **/ public enum PushItemFieldEnum implements BaseEnum { - NUMBER(1, "数值", 87625), - TEXT(2, "文本", 85393), - DATE(3, "日期", 85393), - YEAR(4, "日期文本-年", 85393), - YEAR_MONTH(5, "日期文本-年月", 85393), - YEAR_MONTH_DAY(6, "日期文本-年月日", 85393); + NUMBER(1, "数值", 87625) { + @Override + public Object convertValue(String value) { + if (NumberUtil.isNumber(value)) { + return new BigDecimal(value).toPlainString(); + } + return "null"; + } + }, + TEXT(2, "文本", 85393) { + @Override + public Object convertValue(String value) { + return StrUtil.isEmpty(value) ? "''" : value; + } + }, + // DATE(3, "日期", 85393) { +// @Override +// public Object convertValue(String value) { +// +// //to_date('2022-05-10 16:03:02','yyyy-MM-dd HH24:mi:ss') +// return value; +// } +// }, + YEAR(4, "日期文本-年", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + value = value.substring(0, 4); + } + return StrUtil.isEmpty(value) ? "''" : value; + } + }, + YEAR_MONTH(5, "日期文本-年月", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + value = value.substring(0, 7); + } + return StrUtil.isEmpty(value) ? "''" : value; + } + }, + YEAR_MONTH_DAY(6, "日期文本-年月日", 85393) { + @Override + public Object convertValue(String value) { + if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + value = value.substring(0, 10); + } + return StrUtil.isEmpty(value) ? "''" : value; + } + }; private int value; @@ -49,13 +100,15 @@ public enum PushItemFieldEnum implements BaseEnum { return labelId; } + public abstract Object convertValue(String value); + public static PushItemFieldEnum parseByValue(int value) { for (PushItemFieldEnum salaryDataSourceEnum : PushItemFieldEnum.values()) { if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { return salaryDataSourceEnum; } } - return null; + return TEXT; } public static String getDefaultLabelByValue(Integer value) { @@ -63,7 +116,7 @@ public enum PushItemFieldEnum implements BaseEnum { return ""; } PushItemFieldEnum[] enumAry = PushItemFieldEnum.values(); - for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { if (enumAry[i].getValue().equals(value)) { return enumAry[i].getDefaultLabel(); } diff --git a/src/com/engine/salary/handle/LongListTypeHandler.java b/src/com/engine/salary/handle/LongListTypeHandler.java new file mode 100644 index 000000000..43b175a6f --- /dev/null +++ b/src/com/engine/salary/handle/LongListTypeHandler.java @@ -0,0 +1,49 @@ +package com.engine.salary.handle; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +/** + * 集合的转换 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class LongListTypeHandler extends BaseTypeHandler> { + + @Override + public void setNonNullParameter(PreparedStatement preparedStatement, int i, List list, JdbcType jdbcType) throws SQLException { + preparedStatement.setString(i, JSON.toJSONString(list)); + } + + @Override + public List getNullableResult(ResultSet resultSet, String s) throws SQLException { + List jsonArray = JSONArray.parseArray(resultSet.getString(s), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } + + @Override + public List getNullableResult(ResultSet resultSet, int i) throws SQLException { + List jsonArray = JSONArray.parseArray(resultSet.getString(i), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } + + @Override + public List getNullableResult(CallableStatement callableStatement, int i) throws SQLException { + List jsonArray = JSONArray.parseArray(callableStatement.getString(i), Long.class); + return jsonArray == null ? new ArrayList<>() : jsonArray; + } +} diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.xml b/src/com/engine/salary/mapper/push/PushSettingMapper.xml index fa162f0b8..c421fa71f 100644 --- a/src/com/engine/salary/mapper/push/PushSettingMapper.xml +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.xml @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@ AND mode_name = #{modeName} - AND salary_sob_ids = #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler} + AND salary_sob_ids = #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler} AND table_name = #{tableName} @@ -170,7 +170,7 @@ #{modeName}, - #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, #{tableName}, @@ -195,7 +195,7 @@ name=#{name}, mode_id=#{modeId}, mode_name=#{modeName}, - salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, table_name=#{tableName}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -230,7 +230,7 @@ mode_name=#{modeName}, - salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.LongListTypeHandler}, table_name=#{tableName}, diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 3c9e60f66..a544947ea 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -1,10 +1,13 @@ package com.engine.salary.service; +import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; +import java.util.List; + public interface PushService { /** @@ -18,4 +21,14 @@ public interface PushService { * @param param */ PushSettingItemPO saveItem(PushSettingItemSaveParam param); + + /** + * 推送一条核算记录下的所有数据 + * @param salarySobId + * @return + */ + List pushOneRecord(Long salarySobId); + + +// void push(List recodes); } diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 2fa5678ac..fb9d9a085 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -3,21 +3,37 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.entity.salaryacct.bo.CalculateFormulaVarBO; +import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.enums.push.PushItemFieldEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.push.PushSettingItemMapper; import com.engine.salary.mapper.push.PushSettingMapper; -import com.engine.salary.service.PushService; -import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.*; +import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; import weaver.hrm.User; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; /** * 推送服务 @@ -37,9 +53,24 @@ public class PushServiceImpl extends Service implements PushService { return MapperProxyFactory.getProxy(PushSettingItemMapper.class); } + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } - private TaxAgentService getTaxAgentService(User user) { - return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) { + return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); + } + + private SalaryAcctResultService getSalaryAcctResultService(User user) { + return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); } @Override @@ -131,4 +162,105 @@ public class PushServiceImpl extends Service implements PushService { return po; } + + @Override + public List pushOneRecord(Long salaryAcctRecordId) { + + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + + //查询核算人员 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + List salaryItemPOS = getSalaryItemService(user).listAll(); + + //查询薪资核算记录的薪资周期、考勤周期等 + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); + + SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() + .setSalaryAcctRecordPO(salaryAcctRecordPO) + .setSalarySobPO(new SalarySobPO()) + .setSalarySobCycleDTO(salarySobCycleDTO) + .setOtherSalaryAcctRecordPOS(new ArrayList<>()) + .setSalarySobItemPOS(new ArrayList<>()) + .setSalaryItemIdWithPriorityList(new ArrayList<>()) + .setExpressFormulas(new ArrayList<>()) + .setSalaryItemPOS(salaryItemPOS) + .setSalarySobAdjustRulePOS(new ArrayList<>()) + .setWelfareColumns(new HashMap<>()) + .setAttendQuoteFieldListDTOS(new ArrayList<>()) + .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) + .setIssuedFieldIds(new HashSet<>()) + .setChildMonitor(null) + .setResults(null) + .setCalculateKey(null) + .setVariableItems(new ArrayList<>()) + .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); + + + List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); + List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + + + List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); + pushSettingPOS.stream() + .filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) + .forEach(setting -> { + + Long id = setting.getId(); + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); + + + //每个人插入一条 + for (SalaryAcctEmployeePO emp : salaryAcctEmployeePOS) { + //1 获取当前薪资核算人员的公式中的变量的值 + List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); + //2 人员信息 + List empInfo = formulaVarMap.get(emp.getEmployeeId() + ""); + formulaVarValues.addAll(empInfo); + Map formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue); + + Integer modeId = setting.getModeId(); + + + List fields = new ArrayList<>(); + List values = new ArrayList<>(); + for (PushSettingItemPO item : pushSettingItemPOS) { + //数据库字段 + String fieldName = item.getFieldName(); + fields.add(fieldName); + // 公式变量的值 + String field = item.getSource() + "_" + item.getItem(); + String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY); + PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType()); + values.add(pushItemFieldEnum.convertValue(value)); + } + String tableName = setting.getTableName(); + String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); + System.out.println(sql); + RecordSet rs = new RecordSet(); + rs.execute(sql); + + if (modeId != null) { + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + } + + }); + return null; + + } + + } diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index f85626da1..5811d3d2b 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -1,6 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.push.param.PushParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; @@ -50,4 +51,11 @@ public class PushController { return new ResponseResult(user).run(getPushWrapper(user)::saveItem, param); } + @POST + @Path("/push") + @Produces(MediaType.APPLICATION_JSON) + public String saveitem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::push, param); + } } diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 3c552f608..c459be943 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -2,6 +2,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.push.param.PushParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; @@ -25,4 +26,8 @@ public class PushWrapper extends Service { public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { return getPushService(user).saveItem(param); } + + public void push(PushParam pushParam) { + getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); + } } From bca10e8978d563c3b4748e47f3d812c681e7054a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 18 Nov 2024 17:52:48 +0800 Subject: [PATCH 092/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/enums/push/PushItemFieldEnum.java | 17 +++++++------- .../salary/service/impl/PushServiceImpl.java | 22 ++++++++++++++++--- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/enums/push/PushItemFieldEnum.java b/src/com/engine/salary/enums/push/PushItemFieldEnum.java index 84b4bbbb4..375e21823 100644 --- a/src/com/engine/salary/enums/push/PushItemFieldEnum.java +++ b/src/com/engine/salary/enums/push/PushItemFieldEnum.java @@ -1,7 +1,6 @@ package com.engine.salary.enums.push; import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.StrUtil; import com.engine.salary.enums.BaseEnum; import com.engine.salary.util.SalaryDateUtil; import org.apache.commons.lang3.StringUtils; @@ -10,7 +9,7 @@ import java.math.BigDecimal; import java.util.Arrays; import java.util.Objects; -import static com.engine.salary.util.SalaryDateUtil.DATE_TIME_FORMATTER_PATTERN; +import static com.engine.salary.util.SalaryDateUtil.DATE_FORMATTER_PATTERN; /** * 推送数据来源 @@ -34,7 +33,7 @@ public enum PushItemFieldEnum implements BaseEnum { TEXT(2, "文本", 85393) { @Override public Object convertValue(String value) { - return StrUtil.isEmpty(value) ? "''" : value; + return String.format("'%s'",value); } }, // DATE(3, "日期", 85393) { @@ -48,28 +47,28 @@ public enum PushItemFieldEnum implements BaseEnum { YEAR(4, "日期文本-年", 85393) { @Override public Object convertValue(String value) { - if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { value = value.substring(0, 4); } - return StrUtil.isEmpty(value) ? "''" : value; + return String.format("'%s'",value); } }, YEAR_MONTH(5, "日期文本-年月", 85393) { @Override public Object convertValue(String value) { - if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { value = value.substring(0, 7); } - return StrUtil.isEmpty(value) ? "''" : value; + return String.format("'%s'",value); } }, YEAR_MONTH_DAY(6, "日期文本-年月日", 85393) { @Override public Object convertValue(String value) { - if (StringUtils.isNotBlank(value) && value.length() > 10 && SalaryDateUtil.parse(value, DATE_TIME_FORMATTER_PATTERN) != null) { + if (StringUtils.isNotBlank(value) && SalaryDateUtil.parse(value, DATE_FORMATTER_PATTERN) != null) { value = value.substring(0, 10); } - return StrUtil.isEmpty(value) ? "''" : value; + return String.format("'%s'",value); } }; diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index fb9d9a085..eb8139389 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -30,8 +30,10 @@ import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.formmode.setup.ModeRightInfo; +import weaver.general.TimeUtil; import weaver.hrm.User; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -226,9 +228,23 @@ public class PushServiceImpl extends Service implements PushService { Integer modeId = setting.getModeId(); - - List fields = new ArrayList<>(); - List values = new ArrayList<>(); + List fields = new ArrayList() {{ + add("formmodeid"); + add("modedatacreater"); + add("modedatacreatertype"); + add("modedatacreatedate"); + add("modedatacreatetime"); + }}; + String currDate = TimeUtil.getCurrentDateString(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String currTime = sdf.format(new Date()); + List values = new ArrayList() {{ + add(modeId); + add(1); + add(0); + add(String.format("'%s'",currDate)); + add(String.format("'%s'",currTime)); + }}; for (PushSettingItemPO item : pushSettingItemPOS) { //数据库字段 String fieldName = item.getFieldName(); From 37b9d20faad0699e5419f28254155b4881bddac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 18 Nov 2024 17:57:58 +0800 Subject: [PATCH 093/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/push/param/PushSettingItemSaveParam.java | 3 ++- src/com/engine/salary/service/impl/PushServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java index 408a12bc6..57f46c330 100644 --- a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -42,9 +42,10 @@ public class PushSettingItemSaveParam { /** * 项目类型 + * @see SalarySQLReferenceEnum */ @DataCheck(require = true, message = "数据来源") - private SalarySQLReferenceEnum source; + private String source; /** * 数据库字段 diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index eb8139389..d6199d647 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -133,7 +133,7 @@ public class PushServiceImpl extends Service implements PushService { .settingId(param.getSettingId()) .item(param.getItem()) .itemName(param.getItemName()) - .source(param.getSource().getValue()) + .source(param.getSource()) .fieldName(param.getFieldName()) .fieldType(param.getFieldType().getValue()) .creator((long) user.getUID()) @@ -153,7 +153,7 @@ public class PushServiceImpl extends Service implements PushService { po.setSettingId(param.getSettingId()); po.setItem(param.getItem()); po.setItemName(param.getItemName()); - po.setSource(param.getSource().getValue()); + po.setSource(param.getSource()); po.setFieldName(param.getFieldName()); po.setFieldType(param.getFieldType().getValue()); po.setUpdateTime(now); From 9eb6a83f7b4d89f0a8e755c874fbf2ead76b86a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Nov 2024 09:37:43 +0800 Subject: [PATCH 094/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/push/dto/PushSettingDTO.java | 30 +++++++-- .../push/param/PushSettingItemQueryParam.java | 22 +++++++ .../push/param/PushSettingQueryParam.java | 28 +++++++++ .../entity/push/po/PushSettingItemPO.java | 6 ++ .../engine/salary/service/PushService.java | 21 ++++++- .../salary/service/impl/PushServiceImpl.java | 48 ++++++++++++-- src/com/engine/salary/web/PushController.java | 62 ++++++++++++++++--- .../engine/salary/wrapper/PushWrapper.java | 24 ++++++- 8 files changed, 218 insertions(+), 23 deletions(-) create mode 100644 src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java create mode 100644 src/com/engine/salary/entity/push/param/PushSettingQueryParam.java diff --git a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java index ed4e7006c..68f0be9b5 100644 --- a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.push.dto; -import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -17,23 +18,44 @@ import java.util.List; @AllArgsConstructor public class PushSettingDTO { - private String sql; + @ElogTransform(name = "") + private Long id; + + + + @TableTitle(title = "任务名称", key = "name", dataIndex = "name") + private String name; + + /** + * 是否启用,0否 1是 + */ + @TableTitle(title = "是否启用", key = "able", dataIndex = "able") + private Integer able; + + + /** + * 薪资帐套集合 + */ + @TableTitle(title = "薪资帐套集合", key = "salarySobNames", dataIndex = "salarySobNames") + private List salarySobNames; + private List salarySobIds; /** * 建模id */ + @TableTitle(title = "建模id", key = "modeId", dataIndex = "modeId") private Integer modeId; /** * 模块名称 */ + @TableTitle(title = "模块名称", key = "modeName", dataIndex = "modeName") private String modeName; /** * 数据库表 */ + @TableTitle(title = "数据库表名", key = "tableName", dataIndex = "tableName") private String tableName; - private List items; - } \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java new file mode 100644 index 000000000..a24bc3b40 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingItemQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.push.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 PushSettingItemQueryParam extends BaseQueryParam { + + private Long settingId; + + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java b/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java new file mode 100644 index 000000000..8d0a96e10 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingQueryParam.java @@ -0,0 +1,28 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.ValidTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingQueryParam extends BaseQueryParam { + + + /** + * 任务名称 + */ + @DataCheck(require = true, type = ValidTypeEnum.STRING, max = 50, labelId = 86185, message = "任务名称为空") + private String name; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java index 97693097d..ed1321e07 100644 --- a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.push.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -33,12 +34,14 @@ public class PushSettingItemPO { * 项目 */ @ElogTransform(name = "项目") + @TableTitle(title = "项目", dataIndex = "item", key = "item") private String item; /** * 项目名 */ @ElogTransform(name = "项目名") + @TableTitle(title = "项目名", dataIndex = "itemName", key = "itemName") private String itemName; /** @@ -46,18 +49,21 @@ public class PushSettingItemPO { * @see SalarySQLReferenceEnum */ @ElogTransform(name = "项目类型") + @TableTitle(title = "项目类型", dataIndex = "source", key = "source") private String source; /** * 数据库字段 */ @ElogTransform(name = "数据库字段") + @TableTitle(title = "数据库字段", dataIndex = "fieldName", key = "fieldName") private String fieldName; /** * 字段类型 */ @ElogTransform(name = "字段类型") + @TableTitle(title = "字段类型", dataIndex = "fieldType", key = "fieldType") private Integer fieldType; /** diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index a544947ea..793cba42c 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -1,33 +1,48 @@ package com.engine.salary.service; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingQueryParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; - -import java.util.List; +import com.engine.salary.util.page.PageInfo; public interface PushService { + /** + * 推送任务列表 + * @param param + * @return + */ + PageInfo settingList(PushSettingQueryParam param); + + /** * 保存推送配置 * @param param */ PushSettingPO save(PushSettingSaveParam param); + void delete(Long id); + + PageInfo itemList(PushSettingItemQueryParam param); + /** * 保存明细配置 * @param param */ PushSettingItemPO saveItem(PushSettingItemSaveParam param); + void deleteItem(Long id); + /** * 推送一条核算记录下的所有数据 * @param salarySobId * @return */ - List pushOneRecord(Long salarySobId); + void pushOneRecord(Long salarySobId); // void push(List recodes); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index d6199d647..b100ec26e 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -1,11 +1,14 @@ package com.engine.salary.service.impl; +import cn.hutool.core.util.StrUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingQueryParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; @@ -26,6 +29,8 @@ import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; @@ -75,6 +80,24 @@ public class PushServiceImpl extends Service implements PushService { return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user); } + @Override + public PageInfo settingList(PushSettingQueryParam param) { + List pushSettingPOS = getPushSettingMapper().listAll(); + + List list = pushSettingPOS.stream() + .filter(po -> StrUtil.isNotBlank(param.getName()) && po.getName().contains(param.getName())).map( + po -> PushSettingDTO.builder() + .id(po.getId()) + .tableName(po.getTableName()) + .modeName(po.getModeName()) + .modeId(po.getModeId()) + .able(po.getAble()) + .salarySobIds(po.getSalarySobIds()) +// .salarySobNames(po.getSalarySobNames()) + .build()).collect(Collectors.toList()); + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, PushSettingDTO.class); + } + @Override public PushSettingPO save(PushSettingSaveParam param) { ValidUtil.doValidator(param); @@ -121,6 +144,18 @@ public class PushServiceImpl extends Service implements PushService { return po; } + @Override + public void delete(Long id) { + getPushSettingMapper().delete(PushSettingPO.builder().id(id).build()); + getPushSettingItemMapper().delete(PushSettingItemPO.builder().settingId(id).build()); + } + + @Override + public PageInfo itemList(PushSettingItemQueryParam param) { + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(param.getSettingId()).build()); + return new PageInfo(pushSettingItemPOS, PushSettingItemPO.class); + } + @Override public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { ValidUtil.doValidator(param); @@ -166,7 +201,12 @@ public class PushServiceImpl extends Service implements PushService { } @Override - public List pushOneRecord(Long salaryAcctRecordId) { + public void deleteItem(Long id) { + getPushSettingItemMapper().delete(PushSettingItemPO.builder().id(id).build()); + } + + @Override + public void pushOneRecord(Long salaryAcctRecordId) { SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); @@ -242,8 +282,8 @@ public class PushServiceImpl extends Service implements PushService { add(modeId); add(1); add(0); - add(String.format("'%s'",currDate)); - add(String.format("'%s'",currTime)); + add(String.format("'%s'", currDate)); + add(String.format("'%s'", currTime)); }}; for (PushSettingItemPO item : pushSettingItemPOS) { //数据库字段 @@ -274,8 +314,6 @@ public class PushServiceImpl extends Service implements PushService { } }); - return null; - } diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index 5811d3d2b..b55ac876d 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -1,12 +1,12 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.push.param.PushParam; -import com.engine.salary.entity.push.param.PushSettingItemSaveParam; -import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.PushWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; @@ -14,9 +14,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; @@ -34,6 +32,14 @@ public class PushController { return ServiceUtil.getService(PushWrapper.class, user); } + @POST + @Path("/setting/list") + @Produces(MediaType.APPLICATION_JSON) + public String settingList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::settingList, param); + } + @POST @Path("/setting/save") @Produces(MediaType.APPLICATION_JSON) @@ -42,19 +48,59 @@ public class PushController { return new ResponseResult(user).run(getPushWrapper(user)::save, param); } + @GET + @Path("/setting/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::delete, id); + } + + @POST + @Path("/item/list") + @Produces(MediaType.APPLICATION_JSON) + public String itemList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getPushWrapper(user)::itemList, param); + } + @POST @Path("/item/save") @Produces(MediaType.APPLICATION_JSON) - public String saveitem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemSaveParam param) { + public String saveItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemSaveParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getPushWrapper(user)::saveItem, param); } + @GET + @Path("/item/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::deleteItem, id); + } + @POST @Path("/push") @Produces(MediaType.APPLICATION_JSON) - public String saveitem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + public String push(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::push, param); + } + + @POST + @Path("/push/list") + @Produces(MediaType.APPLICATION_JSON) + public String pushList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::push, param); + } + + @POST + @Path("/push/detail") + @Produces(MediaType.APPLICATION_JSON) + public String pushDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getPushWrapper(user)::push, param); } diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index c459be943..6de0c1e73 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -2,13 +2,13 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.push.param.PushParam; -import com.engine.salary.entity.push.param.PushSettingItemSaveParam; -import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.service.PushService; import com.engine.salary.service.impl.PushServiceImpl; +import com.engine.salary.util.page.PageInfo; import weaver.hrm.User; @@ -18,16 +18,34 @@ public class PushWrapper extends Service { return ServiceUtil.getService(PushServiceImpl.class, user); } + public PageInfo settingList(PushSettingQueryParam param) { + return getPushService(user).settingList(param); + } public PushSettingPO save(PushSettingSaveParam param) { return getPushService(user).save(param); } + + public void delete(Long id) { + getPushService(user).delete(id); + } + + public PageInfo itemList(PushSettingItemQueryParam param) { + return getPushService(user).itemList(param); + } + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { return getPushService(user).saveItem(param); } + public void deleteItem(Long id) { + getPushService(user).deleteItem(id); + } + public void push(PushParam pushParam) { getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); } + + } From fd48cd9a3def958516dd1fb6fdcd00c9cafdd91d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Nov 2024 11:29:21 +0800 Subject: [PATCH 095/184] sql --- resource/sqlupgrade/Mysql/sql202411190103.sql | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 resource/sqlupgrade/Mysql/sql202411190103.sql diff --git a/resource/sqlupgrade/Mysql/sql202411190103.sql b/resource/sqlupgrade/Mysql/sql202411190103.sql new file mode 100644 index 000000000..9ceb2c5b9 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202411190103.sql @@ -0,0 +1,35 @@ +CREATE TABLE hrsa_push_setting +( + id bigint(0) NOT NULL, + name varchar(200), + able int(0), + salary_sob_ids varchar(2000), + mode_id int(0), + mode_name varchar(200), + table_name varchar(200), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + + +CREATE TABLE hrsa_push_setting_item +( + id bigint(0) NOT NULL, + setting_id bigint(0), + source varchar(100), + item varchar(200), + item_name varchar(200), + field_name varchar(200), + field_type int(0), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + From e4e3fb4bec3efbfae74df5306a1774051fcc77c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 19 Nov 2024 19:34:41 +0800 Subject: [PATCH 096/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/push/dto/PushSettingDTO.java | 6 +++--- .../engine/salary/service/impl/PushServiceImpl.java | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java index 68f0be9b5..114d6fa5b 100644 --- a/src/com/engine/salary/entity/push/dto/PushSettingDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushSettingDTO.java @@ -2,6 +2,7 @@ package com.engine.salary.entity.push.dto; import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.annotation.TableTitle; +import com.engine.salary.entity.salarysob.po.SalarySobPO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -36,9 +37,8 @@ public class PushSettingDTO { /** * 薪资帐套集合 */ - @TableTitle(title = "薪资帐套集合", key = "salarySobNames", dataIndex = "salarySobNames") - private List salarySobNames; - private List salarySobIds; + @TableTitle(title = "薪资帐套集合", key = "salarySobs", dataIndex = "salarySobs") + private List salarySobs; /** * 建模id diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index b100ec26e..3fc12a381 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -72,6 +72,10 @@ public class PushServiceImpl extends Service implements PushService { return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); } + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) { return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); } @@ -84,16 +88,19 @@ public class PushServiceImpl extends Service implements PushService { public PageInfo settingList(PushSettingQueryParam param) { List pushSettingPOS = getPushSettingMapper().listAll(); + List salarySobPOS = getSalarySobService(user).listAll(); + Map sobPOMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getId); + List list = pushSettingPOS.stream() - .filter(po -> StrUtil.isNotBlank(param.getName()) && po.getName().contains(param.getName())).map( + .filter(po -> StrUtil.isBlank(param.getName()) || po.getName().contains(param.getName())).map( po -> PushSettingDTO.builder() .id(po.getId()) + .name(po.getName()) .tableName(po.getTableName()) .modeName(po.getModeName()) .modeId(po.getModeId()) .able(po.getAble()) - .salarySobIds(po.getSalarySobIds()) -// .salarySobNames(po.getSalarySobNames()) + .salarySobs(po.getSalarySobIds().stream().map(sobPOMap::get).collect(Collectors.toList())) .build()).collect(Collectors.toList()); return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, PushSettingDTO.class); } From dd77a2f11bfc60037fb2aaf2be931d8943697d7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 20 Nov 2024 17:03:41 +0800 Subject: [PATCH 097/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/push/dto/PushSettingItemDTO.java | 62 +++++++++++++++++++ .../entity/push/po/PushSettingItemPO.java | 8 +-- .../engine/salary/service/PushService.java | 25 +++++++- .../salary/service/impl/PushServiceImpl.java | 24 ++++++- src/com/engine/salary/web/PushController.java | 3 +- .../engine/salary/wrapper/PushWrapper.java | 3 +- 6 files changed, 113 insertions(+), 12 deletions(-) create mode 100644 src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java diff --git a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java new file mode 100644 index 000000000..a45d4635f --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java @@ -0,0 +1,62 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据推送配置明细 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemDTO { + + + private Long id; + + /** + * 设置id + */ + private Long settingId; + + /** + * 项目 + */ + private String item; + + /** + * 项目名 + */ + @TableTitle(title = "项目名", dataIndex = "itemName", key = "itemName") + private String itemName; + + /** + * 项目类型 + * @see SalarySQLReferenceEnum + */ + private String source; + + private String sourceName; + + /** + * 数据库字段 + */ + @TableTitle(title = "数据库字段", dataIndex = "fieldName", key = "fieldName") + private String fieldName; + + /** + * 字段类型 + * @see PushItemFieldEnum + */ + private PushItemFieldEnum fieldType; + + @TableTitle(title = "字段类型", dataIndex = "fieldTypeName", key = "fieldTypeName") + private String fieldTypeName; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java index ed1321e07..ad7f97da1 100644 --- a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -1,7 +1,7 @@ package com.engine.salary.entity.push.po; import com.engine.hrmelog.annotation.ElogTransform; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.push.PushItemFieldEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import lombok.AllArgsConstructor; import lombok.Builder; @@ -34,14 +34,12 @@ public class PushSettingItemPO { * 项目 */ @ElogTransform(name = "项目") - @TableTitle(title = "项目", dataIndex = "item", key = "item") private String item; /** * 项目名 */ @ElogTransform(name = "项目名") - @TableTitle(title = "项目名", dataIndex = "itemName", key = "itemName") private String itemName; /** @@ -49,21 +47,19 @@ public class PushSettingItemPO { * @see SalarySQLReferenceEnum */ @ElogTransform(name = "项目类型") - @TableTitle(title = "项目类型", dataIndex = "source", key = "source") private String source; /** * 数据库字段 */ @ElogTransform(name = "数据库字段") - @TableTitle(title = "数据库字段", dataIndex = "fieldName", key = "fieldName") private String fieldName; /** * 字段类型 + * @see PushItemFieldEnum */ @ElogTransform(name = "字段类型") - @TableTitle(title = "字段类型", dataIndex = "fieldType", key = "fieldType") private Integer fieldType; /** diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 793cba42c..41ba368e4 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -1,6 +1,7 @@ package com.engine.salary.service; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingQueryParam; @@ -13,6 +14,7 @@ public interface PushService { /** * 推送任务列表 + * * @param param * @return */ @@ -21,28 +23,47 @@ public interface PushService { /** * 保存推送配置 + * * @param param */ PushSettingPO save(PushSettingSaveParam param); + /** + * 删除推送配置 + * + * @param id + */ void delete(Long id); - PageInfo itemList(PushSettingItemQueryParam param); + /** + * 推送明细列表 + * + * @param param + * @return + */ + PageInfo itemList(PushSettingItemQueryParam param); /** * 保存明细配置 + * * @param param */ PushSettingItemPO saveItem(PushSettingItemSaveParam param); + /** + * 删除明细配置 + * + * @param id + */ void deleteItem(Long id); /** * 推送一条核算记录下的所有数据 + * * @param salarySobId * @return */ - void pushOneRecord(Long salarySobId); + void pushOneRecord(Long salarySobId); // void push(List recodes); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 3fc12a381..62e21f181 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -6,6 +6,7 @@ import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingQueryParam; @@ -21,6 +22,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.push.PushSettingItemMapper; import com.engine.salary.mapper.push.PushSettingMapper; @@ -158,9 +160,23 @@ public class PushServiceImpl extends Service implements PushService { } @Override - public PageInfo itemList(PushSettingItemQueryParam param) { + public PageInfo itemList(PushSettingItemQueryParam param) { List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(param.getSettingId()).build()); - return new PageInfo(pushSettingItemPOS, PushSettingItemPO.class); + + List list = pushSettingItemPOS.stream().map(po -> PushSettingItemDTO.builder() + .id(po.getId()) + .settingId(po.getSettingId()) + .item(po.getItem()) + .itemName(po.getItemName()) + .source(po.getSource()) + .sourceName(SalarySQLReferenceEnum.parseByValue(po.getSource()).getDefaultLabel()) + .fieldName(po.getFieldName()) + .fieldType(PushItemFieldEnum.parseByValue(po.getFieldType())) + .fieldTypeName(PushItemFieldEnum.parseByValue(po.getFieldType()).getDefaultLabel()) + .build() + ).collect(Collectors.toList()); + + return new PageInfo<>(list, PushSettingItemDTO.class); } @Override @@ -217,6 +233,10 @@ public class PushServiceImpl extends Service implements PushService { SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("核算记录不存在!"); + } + //查询核算人员 List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); List salaryItemPOS = getSalaryItemService(user).listAll(); diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index b55ac876d..616a9f656 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -2,6 +2,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; @@ -61,7 +62,7 @@ public class PushController { @Produces(MediaType.APPLICATION_JSON) public String itemList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getPushWrapper(user)::itemList, param); + return new ResponseResult>(user).run(getPushWrapper(user)::itemList, param); } diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 6de0c1e73..c2b42bf65 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -3,6 +3,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.push.dto.PushSettingDTO; +import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; @@ -31,7 +32,7 @@ public class PushWrapper extends Service { getPushService(user).delete(id); } - public PageInfo itemList(PushSettingItemQueryParam param) { + public PageInfo itemList(PushSettingItemQueryParam param) { return getPushService(user).itemList(param); } From 7ea1e5fc80caa47cf9e15e930675f498fb9e4fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 21 Nov 2024 10:25:37 +0800 Subject: [PATCH 098/184] =?UTF-8?q?=E5=BB=BA=E6=A8=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/remote/mode/cmd/GetModeList.java | 139 ++++++++++++++++++ src/com/engine/salary/web/PushController.java | 8 + .../engine/salary/wrapper/PushWrapper.java | 12 ++ 3 files changed, 159 insertions(+) create mode 100644 src/com/engine/salary/remote/mode/cmd/GetModeList.java diff --git a/src/com/engine/salary/remote/mode/cmd/GetModeList.java b/src/com/engine/salary/remote/mode/cmd/GetModeList.java new file mode 100644 index 000000000..bbb70bf6f --- /dev/null +++ b/src/com/engine/salary/remote/mode/cmd/GetModeList.java @@ -0,0 +1,139 @@ +package com.engine.salary.remote.mode.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import com.engine.cube.biz.AppHelper; +import com.engine.cube.biz.DetachHelper; +import com.weaver.formmodel.util.StringHelper; +import weaver.conn.RecordSet; +import weaver.formmode.FormModeConfig; +import weaver.formmode.service.ModelInfoService; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.SubCompanyComInfo; +import weaver.hrm.moduledetach.ManageDetachComInfo; +import weaver.workflow.workflow.WorkflowBillComInfo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GetModeList extends AbstractCommonCommand> { + private FormModeConfig formModeConfig = new FormModeConfig(); + public GetModeList(Map params, User user){ + this.params = params; + this.user = user; + } + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + Map result = new HashMap(); + ManageDetachComInfo ManageDetachComInfo = new ManageDetachComInfo(); + boolean isUseFmManageDetach=ManageDetachComInfo.isUseFmManageDetach(); + int appid = Util.getIntValue(Util.null2String(params.get("appid")),1) ; + String aLLorCurrentKey = Util.null2String(params.get("aLLorCurrentKey")); + int appidForAppname =Util.getIntValue(Util.null2String(this.params.get("appidForAppname")),1); + ModelInfoService modelInfoService = new ModelInfoService(); + modelInfoService.setUser(user); + List> list; + int currentSubCompanyId = Util.getIntValue(Util.null2String(params.get("currentSubCompanyId")), -1); + if(user.getUID()==1&&isUseFmManageDetach&¤tSubCompanyId<1){ + isUseFmManageDetach = false; + } + if(isUseFmManageDetach) { + Map detach=DetachHelper.getUserDetachInfo(user, currentSubCompanyId, "FORMMODEAPP:ALL"); + if(currentSubCompanyId<1){ + currentSubCompanyId=Util.getIntValue(Util.null2String(detach.get("defaultSubCompanyId"))); + } + list = modelInfoService.getModelInfoByAppIdDetach(appid, currentSubCompanyId); + } else { + list = modelInfoService.getModelInfoByAppId(appid); + } + WorkflowBillComInfo workflowBillComInfo = new WorkflowBillComInfo(); + ArrayList> modeList = new ArrayList>(); + + String vsql = "SELECT m.formid,m.virtualformtype,m.vformtype FROM ModeFormExtend m WHERE m.isvirtualform=1"; + RecordSet rs = new RecordSet(); + rs.execute(vsql); + Map map = new HashMap(); + while(rs.next()){ + String formid = rs.getString("formid"); + String virtualformtype = rs.getString("virtualformtype"); + String vformtype = rs.getString("vformtype"); + map.put(formid, virtualformtype+"_"+vformtype); + } + FormModeConfig formModeConfig = new FormModeConfig(); + String VirtualFormPermissions = formModeConfig.getVirtualFormPermissions(); + String modeids = formModeConfig.getModeid(); + for(Map mode : list) { + Map newMode = new HashMap(); + String key = Util.null2String(mode.get("id")); + String formid = Util.null2String(mode.get("formid")); + String isvirtualform = Util.null2String(mode.get("isvirtualform")); + String virtualrightopen = Util.null2String(mode.get("virtualrightopen")); + if(StringHelper.isEmpty(isvirtualform)){ + isvirtualform = "0"; + } + String tableName = Util.null2String(workflowBillComInfo.getTablename(formid)); + String virtualformtype = ""; + String vformtype = ""; + if("1".equals(isvirtualform)){ + continue; + } + newMode.put("key",key ); + newMode.put("domid",key ); + newMode.put("name", Util.null2String(mode.get("modename"))); + newMode.put("subname", tableName); + newMode.put("isvirtualform", isvirtualform); + newMode.put("virtualformtype", virtualformtype); + newMode.put("vformtype", vformtype); + modeList.add(newMode); + } + result.put("appid",appid+""); + String appsubcompanyid = ""; + String appsubcompanyidname = ""; + if(appid>0){ + String sql = "SELECT subcompanyid FROM modetreefield WHERE id="+appid; + rs.execute(sql); + if(rs.next()){ + int subcompanyid = rs.getInt("subcompanyid"); + if(subcompanyid>0){ + appsubcompanyid = subcompanyid+""; + SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); + appsubcompanyidname = subCompanyComInfo.getSubcompanyname(appsubcompanyid); + } + } + } + String appName = AppHelper.getAppName(appidForAppname+""); + boolean issysadmin = user.getUID() == 1; + result.put("appName",appName); + result.put("issysadmin",issysadmin); + result.put("aLLorCurrentKey",aLLorCurrentKey); + result.put("appsubcompanyid",appsubcompanyid); + result.put("appsubcompanyidname",appsubcompanyidname); + result.put("modeList",modeList); + result.put("canDeleteModeInfo",formModeConfig.isCanDeleteModeInfo()); + return result; + } + + + public boolean isHadRight(String modeid){ + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(1) as rightcount from moderightinfo where modeid=? and ((righttype=0 and (sharetype<80 or sharetype>100)) or (righttype in (1,2,3) and (sharetype<80 or sharetype>100)))",modeid); + int rightcount=0; + if(rs.next()){ + rightcount = Util.getIntValue(rs.getString("rightcount"),0); + } + if(rightcount>0){ + return true; + }else{ + return false; + } + } +} diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index 616a9f656..f57703312 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -41,6 +41,14 @@ public class PushController { return new ResponseResult>(user).run(getPushWrapper(user)::settingList, param); } + @GET + @Path("/mode/list") + @Produces(MediaType.APPLICATION_JSON) + public String modeList(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::modeList); + } + @POST @Path("/setting/save") @Produces(MediaType.APPLICATION_JSON) diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index c2b42bf65..002092e13 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -7,11 +7,15 @@ import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.remote.mode.cmd.GetModeList; import com.engine.salary.service.PushService; import com.engine.salary.service.impl.PushServiceImpl; import com.engine.salary.util.page.PageInfo; import weaver.hrm.User; +import java.util.HashMap; +import java.util.Map; + public class PushWrapper extends Service { @@ -48,5 +52,13 @@ public class PushWrapper extends Service { getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); } + public Object modeList() { + Map map = new HashMap<>(); + map.put("appid", 1); + map.put("appidForAppname", 2); + map.put("aLLorCurrentKey", 1); + Map execute = commandExecutor.execute(new GetModeList(map, user)); + return execute; + } } From 119d9f3cd85ff2a5549fa65d1259297bfb62404f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 21 Nov 2024 11:54:47 +0800 Subject: [PATCH 099/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/push/po/PushRecordDetailPO.java | 84 ++++++ .../salary/entity/push/po/PushRecordPO.java | 89 ++++++ ...rceEnum.java => PushRecordStatusEnum.java} | 33 ++- .../mapper/push/PushRecordDetailMapper.java | 72 +++++ .../mapper/push/PushRecordDetailMapper.xml | 238 ++++++++++++++++ .../salary/mapper/push/PushRecordMapper.java | 73 +++++ .../salary/mapper/push/PushRecordMapper.xml | 253 ++++++++++++++++++ .../engine/salary/service/PushService.java | 7 +- .../salary/service/impl/PushServiceImpl.java | 23 +- src/com/engine/salary/web/PushController.java | 2 +- .../engine/salary/wrapper/PushWrapper.java | 19 +- 11 files changed, 864 insertions(+), 29 deletions(-) create mode 100644 src/com/engine/salary/entity/push/po/PushRecordDetailPO.java create mode 100644 src/com/engine/salary/entity/push/po/PushRecordPO.java rename src/com/engine/salary/enums/push/{PushItemSourceEnum.java => PushRecordStatusEnum.java} (57%) create mode 100644 src/com/engine/salary/mapper/push/PushRecordDetailMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml create mode 100644 src/com/engine/salary/mapper/push/PushRecordMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushRecordMapper.xml diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java new file mode 100644 index 000000000..7b7b9b9a2 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -0,0 +1,84 @@ +package com.engine.salary.entity.push.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 PushRecordDetailPO { + + + @ElogTransform(name = "id") + private Long id; + + /** + * 推送记录id + */ + @ElogTransform(name = "推送记录id") + private Long recordId; + + /** + * 核算人员id + */ + @ElogTransform(name = "核算人员id") + private Long acctEmpId; + + /** + * 执行状态 + */ + @ElogTransform(name = "执行状态") + private Integer status; + + /** + * 执行sql + */ + @ElogTransform(name = "执行sql") + private String execute; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java new file mode 100644 index 000000000..ee6249123 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -0,0 +1,89 @@ +package com.engine.salary.entity.push.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 PushRecordPO { + + @ElogTransform(name = "") + private Long id; + + /** + * 记录名 + */ + @ElogTransform(name = "记录名") + private String name; + + /** + * 核算记录id + */ + @ElogTransform(name = "核算记录id") + private Long acctRecordId; + + + /** + * 推送配置id + */ + @ElogTransform(name = "推送配置id") + private Long settingId; + + /** + * 推送状态 + */ + @ElogTransform(name = "推送状态") + private Integer status; + + /** + * 推送类型 + */ + @ElogTransform(name = "推送类型") + private Integer type; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/push/PushItemSourceEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java similarity index 57% rename from src/com/engine/salary/enums/push/PushItemSourceEnum.java rename to src/com/engine/salary/enums/push/PushRecordStatusEnum.java index ec9ee71bd..34e3d7a51 100644 --- a/src/com/engine/salary/enums/push/PushItemSourceEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -6,26 +6,33 @@ import java.util.Arrays; import java.util.Objects; /** - * 推送数据来源 + * 推送记录状态 *

Copyright: Copyright (c) 2024

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ -public enum PushItemSourceEnum implements BaseEnum { +public enum PushRecordStatusEnum implements BaseEnum { + + NUMBER(1, "待推送", 87625) { + }, + TEXT(2, "文本", 85393) { + }, + YEAR(4, "日期文本-年", 85393) { + }, + YEAR_MONTH(5, "日期文本-年月", 85393) { + }, + YEAR_MONTH_DAY(6, "日期文本-年月日", 85393) { + }; - EMPLOYEE_INFO(0, "员工基本信息", 85366), - SALARY_ACCT_EMPLOYEE(1, "核算信息", 85368), - SALARY_CYCLE(2, "核算日期", 85368), - SALARY_ITEM(3, "薪资项目", 84960); private int value; private String defaultLabel; private int labelId; - PushItemSourceEnum(int value, String defaultLabel, int labelId) { + PushRecordStatusEnum(int value, String defaultLabel, int labelId) { this.value = value; this.defaultLabel = defaultLabel; this.labelId = labelId; @@ -46,22 +53,22 @@ public enum PushItemSourceEnum implements BaseEnum { return labelId; } - public static PushItemSourceEnum parseByValue(int value) { - for (PushItemSourceEnum salaryDataSourceEnum : PushItemSourceEnum.values()) { + public static PushRecordStatusEnum parseByValue(int value) { + for (PushRecordStatusEnum salaryDataSourceEnum : PushRecordStatusEnum.values()) { if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { return salaryDataSourceEnum; } } - return null; + return TEXT; } public static String getDefaultLabelByValue(Integer value) { if (value == null) { return ""; } - PushItemSourceEnum[] enumAry = PushItemSourceEnum.values(); - for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ - if (Integer.valueOf(enumAry[i].getValue()).equals(value)) { + PushRecordStatusEnum[] enumAry = PushRecordStatusEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { return enumAry[i].getDefaultLabel(); } } diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java new file mode 100644 index 000000000..469d40eea --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushRecordDetailPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushRecordDetailMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushRecordDetailPO pushRecordDetail); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushRecordDetailPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushRecordDetail 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushRecordDetailPO pushRecordDetail); + + /** + * 修改,修改所有字段 + * + * @param pushRecordDetail 修改的记录 + * @return 返回影响行数 + */ + int update(PushRecordDetailPO pushRecordDetail); + + /** + * 修改,忽略null字段 + * + * @param pushRecordDetail 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushRecordDetailPO pushRecordDetail); + + /** + * 删除记录 + * + * @param pushRecordDetail 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushRecordDetailPO pushRecordDetail); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml new file mode 100644 index 000000000..06cdca169 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + t + . + acct_emp_id + , t.create_time + , t.creator + , t.delete_type + , t.execute + , t.id + , t.record_id + , t.status + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_record_detail + + + + acct_emp_id, + + + create_time, + + + creator, + + + delete_type, + + + execute, + + + id, + + + record_id, + + + status, + + + tenant_key, + + + update_time, + + + + + #{acctEmpId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{execute}, + + + #{id}, + + + #{recordId}, + + + #{status}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record_detail + + acct_emp_id=#{acctEmpId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + execute=#{execute}, + record_id=#{recordId}, + status=#{status}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + + + acct_emp_id=#{acctEmpId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + execute=#{execute}, + + + record_id=#{recordId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record_detail + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.java b/src/com/engine/salary/mapper/push/PushRecordMapper.java new file mode 100644 index 000000000..d87df17f2 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushRecordPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushRecordMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushRecordPO pushRecord); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushRecordPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushRecord 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushRecordPO pushRecord); + + + /** + * 修改,修改所有字段 + * + * @param pushRecord 修改的记录 + * @return 返回影响行数 + */ + int update(PushRecordPO pushRecord); + + /** + * 修改,忽略null字段 + * + * @param pushRecord 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushRecordPO pushRecord); + + /** + * 删除记录 + * + * @param pushRecord 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushRecordPO pushRecord); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml new file mode 100644 index 000000000..5c740c64f --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + t + . + acct_record_id + , t.create_time + , t.creator + , t.delete_type + , t.id + , t.name + , t.setting_id + , t.status + , t.tenant_key + , t.type + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_record + + + + acct_record_id, + + + create_time, + + + creator, + + + delete_type, + + + id, + + + name, + + + setting_id, + + + status, + + + tenant_key, + + + type, + + + update_time, + + + + + #{acctRecordId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{name}, + + + #{settingId}, + + + #{status}, + + + #{tenantKey}, + + + #{type}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record + + acct_record_id=#{acctRecordId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + setting_id=#{settingId}, + status=#{status}, + tenant_key=#{tenantKey}, + type=#{type}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + + + acct_record_id=#{acctRecordId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + setting_id=#{settingId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + type=#{type}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 41ba368e4..be673826d 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -60,11 +60,10 @@ public interface PushService { /** * 推送一条核算记录下的所有数据 * - * @param salarySobId + * @param salaryAcctRecordId * @return */ - void pushOneRecord(Long salarySobId); + void pushOneRecord(Long salaryAcctRecordId); - -// void push(List recodes); + void createPushRecord(Long salaryAcctRecordId); } diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 62e21f181..638dae412 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingQueryParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushRecordPO; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.entity.salaryacct.bo.CalculateFormulaVarBO; @@ -324,7 +325,6 @@ public class PushServiceImpl extends Service implements PushService { } String tableName = setting.getTableName(); String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); - System.out.println(sql); RecordSet rs = new RecordSet(); rs.execute(sql); @@ -339,9 +339,28 @@ public class PushServiceImpl extends Service implements PushService { ModeRightInfo.editModeDataShare(1, modeId, mainId); } } - }); } + @Override + public void createPushRecord(Long salaryAcctRecordId) { + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("核算记录不存在!"); + } + + PushRecordPO.builder() + .id(IdGenerator.generate()) + .acctRecordId(salaryAcctRecordId) + .status(0) + + } + + + //创建推送记录 + + //推送记录明细 + } diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index f57703312..d42e3b222 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -41,7 +41,7 @@ public class PushController { return new ResponseResult>(user).run(getPushWrapper(user)::settingList, param); } - @GET + @POST @Path("/mode/list") @Produces(MediaType.APPLICATION_JSON) public String modeList(@Context HttpServletRequest request, @Context HttpServletResponse response) { diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 002092e13..2ce0ea4e5 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -23,6 +23,16 @@ public class PushWrapper extends Service { return ServiceUtil.getService(PushServiceImpl.class, user); } + + public Object modeList() { + Map map = new HashMap<>(); + map.put("appid", 1); + map.put("appidForAppname", 2); + map.put("aLLorCurrentKey", 1); + Map execute = commandExecutor.execute(new GetModeList(map, user)); + + return execute; + } public PageInfo settingList(PushSettingQueryParam param) { return getPushService(user).settingList(param); } @@ -52,13 +62,4 @@ public class PushWrapper extends Service { getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); } - public Object modeList() { - Map map = new HashMap<>(); - map.put("appid", 1); - map.put("appidForAppname", 2); - map.put("aLLorCurrentKey", 1); - Map execute = commandExecutor.execute(new GetModeList(map, user)); - - return execute; - } } From 38b283e9babf287a3b81922e7c00fd46f47d482c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 22 Nov 2024 10:59:16 +0800 Subject: [PATCH 100/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/wiki/薪酬还原脚本.sql | 4 ++-- .../enums/push/PushRecordStatusEnum.java | 12 +++++------ .../salary/service/impl/PushServiceImpl.java | 20 +++++++++++++++---- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/resource/wiki/薪酬还原脚本.sql b/resource/wiki/薪酬还原脚本.sql index cf29ff247..62e7bae3c 100644 --- a/resource/wiki/薪酬还原脚本.sql +++ b/resource/wiki/薪酬还原脚本.sql @@ -64,8 +64,8 @@ delete from hrsa_salary_archive_item where 1=1 ; delete from hrsa_salary_archive_tax_agent where 1=1 ; -delete from hrsa_salary_item where 1=1 -; +--delete from hrsa_salary_item where 1=1; + delete from hrsa_salary_send where 1=1 ; delete from hrsa_salary_send_info where 1=1 diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 34e3d7a51..d8115d5e7 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -15,15 +15,13 @@ import java.util.Objects; **/ public enum PushRecordStatusEnum implements BaseEnum { - NUMBER(1, "待推送", 87625) { + Waiting(0, "等待中", 87625) { }, - TEXT(2, "文本", 85393) { + YEAR(1, "执行中", 85393) { }, - YEAR(4, "日期文本-年", 85393) { + YEAR_MONTH(2, "执行成功", 85393) { }, - YEAR_MONTH(5, "日期文本-年月", 85393) { - }, - YEAR_MONTH_DAY(6, "日期文本-年月日", 85393) { + YEAR_MONTH_DAY(3, "执行失败", 85393) { }; private int value; @@ -59,7 +57,7 @@ public enum PushRecordStatusEnum implements BaseEnum { return salaryDataSourceEnum; } } - return TEXT; + return null; } public static String getDefaultLabelByValue(Integer value) { diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 638dae412..56096503d 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -23,6 +23,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.push.PushRecordStatusEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.push.PushSettingItemMapper; @@ -349,11 +350,22 @@ public class PushServiceImpl extends Service implements PushService { if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException("核算记录不存在!"); } + List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); - PushRecordPO.builder() - .id(IdGenerator.generate()) - .acctRecordId(salaryAcctRecordId) - .status(0) + pushSettingPOS.stream() + .filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) + .map(po -> PushRecordPO.builder() + .id(IdGenerator.generate()) + .name(po.getName()) + .settingId() + .acctRecordId(salaryAcctRecordId) + .status(PushRecordStatusEnum.Waiting.getValue())) + + + + + + .build(); } From 33cc8982579d0fb1c9b4341ba4c02c245b4c11b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 25 Nov 2024 13:40:00 +0800 Subject: [PATCH 101/184] =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=95=B0=E6=8D=AEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctEmployeeServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index ff92a122b..a70b9ee9e 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -602,6 +602,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 转换成薪资核算人员po List newEmps = SalaryAcctEmployeeBO.convert2Employee(salaryEmployees, salaryAcctRecordPO, salaryArchiveDataDTOS, (long) user.getUID()); + //过滤掉不属于当前账套扣缴义务人的人员 + newEmps = newEmps.stream().filter(po -> taxAgentIds.contains(po.getTaxAgentId())).collect(Collectors.toList()); Map newEmpMap = SalaryEntityUtil.convert2Map(newEmps, e -> e.getTaxAgentId() + "_" + e.getEmployeeId()); From 035209afa8eae9f0974c2981ed258bf917cd3d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 26 Nov 2024 16:47:51 +0800 Subject: [PATCH 102/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/PushServiceImpl.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 56096503d..e6a82d22a 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -26,6 +26,7 @@ import com.engine.salary.enums.push.PushItemFieldEnum; import com.engine.salary.enums.push.PushRecordStatusEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.push.PushRecordMapper; import com.engine.salary.mapper.push.PushSettingItemMapper; import com.engine.salary.mapper.push.PushSettingMapper; import com.engine.salary.service.*; @@ -37,6 +38,7 @@ import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import weaver.conn.RecordSet; import weaver.formmode.setup.ModeRightInfo; import weaver.general.TimeUtil; @@ -64,6 +66,10 @@ public class PushServiceImpl extends Service implements PushService { return MapperProxyFactory.getProxy(PushSettingItemMapper.class); } + private PushRecordMapper getPushRecordMapper() { + return MapperProxyFactory.getProxy(PushRecordMapper.class); + } + private SalaryEmployeeService getSalaryEmployeeService(User user) { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } @@ -352,21 +358,23 @@ public class PushServiceImpl extends Service implements PushService { } List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); - pushSettingPOS.stream() + Date now = new Date(); + List pushRecordPOList = pushSettingPOS.stream() .filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) - .map(po -> PushRecordPO.builder() - .id(IdGenerator.generate()) - .name(po.getName()) - .settingId() - .acctRecordId(salaryAcctRecordId) - .status(PushRecordStatusEnum.Waiting.getValue())) - - - - - - .build(); - + .map(po -> PushRecordPO.builder() + .id(IdGenerator.generate()) + .name(po.getName()) + .settingId(po.getId()) + .acctRecordId(salaryAcctRecordId) + .status(PushRecordStatusEnum.Waiting.getValue()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build() + ) + .collect(Collectors.toList()); } From 74b78a3ab5db57baed953161bca8f20e48d07fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 26 Nov 2024 18:05:19 +0800 Subject: [PATCH 103/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/push/PushRecordDStatusEnum.java | 71 +++++++++++++++++++ .../enums/push/PushRecordStatusEnum.java | 14 ++-- .../salary/service/impl/PushServiceImpl.java | 28 +++++++- 3 files changed, 103 insertions(+), 10 deletions(-) create mode 100644 src/com/engine/salary/enums/push/PushRecordDStatusEnum.java diff --git a/src/com/engine/salary/enums/push/PushRecordDStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDStatusEnum.java new file mode 100644 index 000000000..09f43d0fb --- /dev/null +++ b/src/com/engine/salary/enums/push/PushRecordDStatusEnum.java @@ -0,0 +1,71 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送记录状态 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushRecordDStatusEnum implements BaseEnum { + PREPARE(0, "准备中", 87625), + WAITING(1, "等待中", 87625), + PROGRESS(2, "执行中", 85393), + success(3, "执行成功", 85393), + FAIL(4, "执行失败", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushRecordDStatusEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushRecordDStatusEnum parseByValue(int value) { + for (PushRecordDStatusEnum salaryDataSourceEnum : PushRecordDStatusEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushRecordDStatusEnum[] enumAry = PushRecordDStatusEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index d8115d5e7..d05d40f1c 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -14,15 +14,11 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordStatusEnum implements BaseEnum { - - Waiting(0, "等待中", 87625) { - }, - YEAR(1, "执行中", 85393) { - }, - YEAR_MONTH(2, "执行成功", 85393) { - }, - YEAR_MONTH_DAY(3, "执行失败", 85393) { - }; + PREPARE(0, "准备中", 87625), + WAITING(1, "等待中", 87625), + PROGRESS(2, "执行中", 85393), + success(3, "执行成功", 85393), + FAIL(4, "执行失败", 85393); private int value; diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index e6a82d22a..bd67d8803 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingQueryParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushRecordDetailPO; import com.engine.salary.entity.push.po.PushRecordPO; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; @@ -366,7 +367,7 @@ public class PushServiceImpl extends Service implements PushService { .name(po.getName()) .settingId(po.getId()) .acctRecordId(salaryAcctRecordId) - .status(PushRecordStatusEnum.Waiting.getValue()) + .status(PushRecordStatusEnum.PREPARE.getValue()) .createTime(now) .updateTime(now) .creator((long) user.getUID()) @@ -375,6 +376,31 @@ public class PushServiceImpl extends Service implements PushService { .build() ) .collect(Collectors.toList()); + + pushRecordPOList.forEach(record -> { + getPushRecordMapper().insertIgnoreNull(record); + + + //查询核算人员 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + + salaryAcctEmployeePOS.stream().map(employee -> PushRecordDetailPO.builder() + .id(IdGenerator.generate()) + .acctEmpId(employee.getId()) + .recordId(record.getId()) + .status(PushRecordDetailStatusEnum.PREPARE.getValue()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()) + .collect(Collectors.toList()); + + + }); + + } From 1e2d37ad2e263dbc41d4fe145cffcd4b2cdefa3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 27 Nov 2024 09:02:24 +0800 Subject: [PATCH 104/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...StatusEnum.java => PushRecordDetailStatusEnum.java} | 10 +++++----- .../engine/salary/service/impl/PushServiceImpl.java | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) rename src/com/engine/salary/enums/push/{PushRecordDStatusEnum.java => PushRecordDetailStatusEnum.java} (77%) diff --git a/src/com/engine/salary/enums/push/PushRecordDStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java similarity index 77% rename from src/com/engine/salary/enums/push/PushRecordDStatusEnum.java rename to src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java index 09f43d0fb..7fbf6cfdf 100644 --- a/src/com/engine/salary/enums/push/PushRecordDStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -13,7 +13,7 @@ import java.util.Objects; * @author qiantao * @version 1.0 **/ -public enum PushRecordDStatusEnum implements BaseEnum { +public enum PushRecordDetailStatusEnum implements BaseEnum { PREPARE(0, "准备中", 87625), WAITING(1, "等待中", 87625), PROGRESS(2, "执行中", 85393), @@ -26,7 +26,7 @@ public enum PushRecordDStatusEnum implements BaseEnum { private int labelId; - PushRecordDStatusEnum(int value, String defaultLabel, int labelId) { + PushRecordDetailStatusEnum(int value, String defaultLabel, int labelId) { this.value = value; this.defaultLabel = defaultLabel; this.labelId = labelId; @@ -47,8 +47,8 @@ public enum PushRecordDStatusEnum implements BaseEnum { return labelId; } - public static PushRecordDStatusEnum parseByValue(int value) { - for (PushRecordDStatusEnum salaryDataSourceEnum : PushRecordDStatusEnum.values()) { + public static PushRecordDetailStatusEnum parseByValue(int value) { + for (PushRecordDetailStatusEnum salaryDataSourceEnum : PushRecordDetailStatusEnum.values()) { if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { return salaryDataSourceEnum; } @@ -60,7 +60,7 @@ public enum PushRecordDStatusEnum implements BaseEnum { if (value == null) { return ""; } - PushRecordDStatusEnum[] enumAry = PushRecordDStatusEnum.values(); + PushRecordDetailStatusEnum[] enumAry = PushRecordDetailStatusEnum.values(); for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { if (enumAry[i].getValue().equals(value)) { return enumAry[i].getDefaultLabel(); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index bd67d8803..74045065a 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -24,6 +24,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.push.PushRecordDetailStatusEnum; import com.engine.salary.enums.push.PushRecordStatusEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; From 3ba1ea6cc7dcd90e727e8741c1a73c0f2e95223a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 28 Nov 2024 09:41:10 +0800 Subject: [PATCH 105/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/push/po/PushRecordPO.java | 20 ++ .../enums/push/PushRecordStatusEnum.java | 2 +- .../salary/enums/push/PushRecordTypeEnum.java | 68 +++++ .../mapper/push/PushRecordDetailMapper.java | 3 +- .../mapper/push/PushRecordDetailMapper.xml | 6 + .../salary/mapper/push/PushRecordMapper.java | 2 + .../salary/mapper/push/PushRecordMapper.xml | 52 ++++ .../engine/salary/service/PushService.java | 2 + .../salary/service/impl/PushServiceImpl.java | 244 +++++++++++++++--- .../engine/salary/wrapper/PushWrapper.java | 3 +- 10 files changed, 360 insertions(+), 42 deletions(-) create mode 100644 src/com/engine/salary/enums/push/PushRecordTypeEnum.java diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java index ee6249123..a994a14f6 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.push.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.push.PushRecordStatusEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,12 +22,19 @@ public class PushRecordPO { @ElogTransform(name = "") private Long id; + /** + * 批次号 + */ + private Long batchId; + + /** * 记录名 */ @ElogTransform(name = "记录名") private String name; + /** * 核算记录id */ @@ -40,8 +48,20 @@ public class PushRecordPO { @ElogTransform(name = "推送配置id") private Long settingId; + /** + * 建模id + */ + private Integer modeId; + + /** + * 数据库表名 + */ + private String tableName; + + /** * 推送状态 + * @see PushRecordStatusEnum */ @ElogTransform(name = "推送状态") private Integer status; diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index d05d40f1c..0a25b2b0a 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -17,7 +17,7 @@ public enum PushRecordStatusEnum implements BaseEnum { PREPARE(0, "准备中", 87625), WAITING(1, "等待中", 87625), PROGRESS(2, "执行中", 85393), - success(3, "执行成功", 85393), + SUCCESS(3, "执行成功", 85393), FAIL(4, "执行失败", 85393); private int value; diff --git a/src/com/engine/salary/enums/push/PushRecordTypeEnum.java b/src/com/engine/salary/enums/push/PushRecordTypeEnum.java new file mode 100644 index 000000000..9fc79f308 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushRecordTypeEnum.java @@ -0,0 +1,68 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送记录状态 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushRecordTypeEnum implements BaseEnum { + PUSH(0, "推送", 85393), + WITHDRAW(1, "撤回", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushRecordTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushRecordTypeEnum parseByValue(int value) { + for (PushRecordTypeEnum salaryDataSourceEnum : PushRecordTypeEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushRecordTypeEnum[] enumAry = PushRecordTypeEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java index 469d40eea..5ad4a105f 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java @@ -68,5 +68,6 @@ public interface PushRecordDetailMapper { * @param ids 主键id集合 */ void deleteByIds(@Param("ids") Collection ids); - + + void deleteByRecordId(Long acctRecordId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml index 06cdca169..ecbeef0cd 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -234,5 +234,11 @@ + + UPDATE hrsa_push_record_detail + SET delete_type=1 + WHERE record_id=#{recordId} + AND delete_type = 0 + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.java b/src/com/engine/salary/mapper/push/PushRecordMapper.java index d87df17f2..dfcf7fd05 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.java +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.java @@ -69,5 +69,7 @@ public interface PushRecordMapper { * @param ids 主键id集合 */ void deleteByIds(@Param("ids") Collection ids); + + int countBeforeBatch(Long batchId); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml index 5c740c64f..a93a05c9c 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -3,6 +3,9 @@ + + + @@ -20,6 +23,9 @@ t . acct_record_id + , t.batch_id + , t.mode_id + , t.table_name , t.create_time , t.creator , t.delete_type @@ -57,6 +63,15 @@ AND acct_record_id = #{acctRecordId} + + AND batch_id = #{batchId} + + + AND mode_id = #{modeId} + + + AND table_name = #{tableName} + AND create_time = #{createTime} @@ -102,6 +117,15 @@ INSERT INTO hrsa_push_record + + batch_id, + + + mode_id, + + + table_name, + acct_record_id, @@ -137,6 +161,15 @@ + + #{batchId}, + + + #{modeId}, + + + #{tableName}, + #{acctRecordId}, @@ -177,6 +210,9 @@ UPDATE hrsa_push_record + batch_id=#{batchId}, + mode_id=#{modeId}, + table_name=#{tableName}, acct_record_id=#{acctRecordId}, create_time=#{createTime}, creator=#{creator}, @@ -196,6 +232,15 @@ UPDATE hrsa_push_record + + batch_id=#{batchId}, + + + mode_id=#{modeId}, + + + table_name=#{tableName}, + acct_record_id=#{acctRecordId}, @@ -249,5 +294,12 @@ + \ No newline at end of file diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index be673826d..3deb75ad3 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -66,4 +66,6 @@ public interface PushService { void pushOneRecord(Long salaryAcctRecordId); void createPushRecord(Long salaryAcctRecordId); + + void removeBatch(Long batchId); } diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 74045065a..491b2b785 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -26,8 +26,10 @@ import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.push.PushItemFieldEnum; import com.engine.salary.enums.push.PushRecordDetailStatusEnum; import com.engine.salary.enums.push.PushRecordStatusEnum; +import com.engine.salary.enums.push.PushRecordTypeEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.push.PushRecordDetailMapper; import com.engine.salary.mapper.push.PushRecordMapper; import com.engine.salary.mapper.push.PushSettingItemMapper; import com.engine.salary.mapper.push.PushSettingMapper; @@ -39,6 +41,7 @@ import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.conn.RecordSet; @@ -58,6 +61,7 @@ import java.util.stream.Collectors; * @author qiantao * @version 1.0 **/ +@Slf4j public class PushServiceImpl extends Service implements PushService { private PushSettingMapper getPushSettingMapper() { @@ -72,6 +76,10 @@ public class PushServiceImpl extends Service implements PushService { return MapperProxyFactory.getProxy(PushRecordMapper.class); } + private PushRecordDetailMapper getPushRecordDetailMapper() { + return MapperProxyFactory.getProxy(PushRecordDetailMapper.class); + } + private SalaryEmployeeService getSalaryEmployeeService(User user) { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } @@ -249,8 +257,9 @@ public class PushServiceImpl extends Service implements PushService { //查询核算人员 List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); - List salaryItemPOS = getSalaryItemService(user).listAll(); + //薪资项目 + List salaryItemPOS = getSalaryItemService(user).listAll(); //查询薪资核算记录的薪资周期、考勤周期等 SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); @@ -327,7 +336,7 @@ public class PushServiceImpl extends Service implements PushService { String fieldName = item.getFieldName(); fields.add(fieldName); // 公式变量的值 - String field = item.getSource() + "_" + item.getItem(); + String field = item.getItem(); String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY); PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType()); values.add(pushItemFieldEnum.convertValue(value)); @@ -353,6 +362,7 @@ public class PushServiceImpl extends Service implements PushService { @Override public void createPushRecord(Long salaryAcctRecordId) { + Date now = new Date(); SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); if (salaryAcctRecordPO == null) { @@ -360,54 +370,210 @@ public class PushServiceImpl extends Service implements PushService { } List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); - Date now = new Date(); - List pushRecordPOList = pushSettingPOS.stream() - .filter(po -> po.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) - .map(po -> PushRecordPO.builder() - .id(IdGenerator.generate()) - .name(po.getName()) - .settingId(po.getId()) - .acctRecordId(salaryAcctRecordId) - .status(PushRecordStatusEnum.PREPARE.getValue()) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build() - ) - .collect(Collectors.toList()); + //批次号 + long batchId = IdGenerator.generate(); - pushRecordPOList.forEach(record -> { - getPushRecordMapper().insertIgnoreNull(record); + try { + pushSettingPOS.stream() + .filter(setting -> setting.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) + .forEach(setting -> { + PushRecordPO record = PushRecordPO.builder() + .id(IdGenerator.generate()) + .batchId(batchId) + .name(setting.getName()) + .settingId(setting.getId()) + .modeId(setting.getModeId()) + .tableName(setting.getTableName()) + .acctRecordId(salaryAcctRecordId) + .type(PushRecordTypeEnum.PUSH.getValue()) + .status(PushRecordStatusEnum.PREPARE.getValue()) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushRecordMapper().insertIgnoreNull(record); + + Long id = setting.getId(); + List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); - //查询核算人员 - List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + //查询核算人员 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); - salaryAcctEmployeePOS.stream().map(employee -> PushRecordDetailPO.builder() - .id(IdGenerator.generate()) - .acctEmpId(employee.getId()) - .recordId(record.getId()) - .status(PushRecordDetailStatusEnum.PREPARE.getValue()) - .createTime(now) - .updateTime(now) - .creator((long) user.getUID()) - .deleteType(NumberUtils.INTEGER_ZERO) - .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .build()) - .collect(Collectors.toList()); + //薪资项目 + List salaryItemPOS = getSalaryItemService(user).listAll(); + //查询薪资核算记录的薪资周期、考勤周期等 + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); + + SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() + .setSalaryAcctRecordPO(salaryAcctRecordPO) + .setSalarySobPO(new SalarySobPO()) + .setSalarySobCycleDTO(salarySobCycleDTO) + .setOtherSalaryAcctRecordPOS(new ArrayList<>()) + .setSalarySobItemPOS(new ArrayList<>()) + .setSalaryItemIdWithPriorityList(new ArrayList<>()) + .setExpressFormulas(new ArrayList<>()) + .setSalaryItemPOS(salaryItemPOS) + .setSalarySobAdjustRulePOS(new ArrayList<>()) + .setWelfareColumns(new HashMap<>()) + .setAttendQuoteFieldListDTOS(new ArrayList<>()) + .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) + .setIssuedFieldIds(new HashSet<>()) + .setChildMonitor(null) + .setResults(null) + .setCalculateKey(null) + .setVariableItems(new ArrayList<>()) + .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); - }); + List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); + List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + + salaryAcctEmployeePOS.forEach(emp -> { + + //1 获取当前薪资核算人员的公式中的变量的值 + List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); + //2 人员信息 + List empInfo = formulaVarMap.get(emp.getEmployeeId() + ""); + formulaVarValues.addAll(empInfo); + Map formulaVarValueMap = SalaryEntityUtil.convert2Map(formulaVarValues, CalculateFormulaVarBO.FormulaVarValue::getFieldId, CalculateFormulaVarBO.FormulaVarValue::getFieldValue); + + Integer modeId = setting.getModeId(); + + List fields = new ArrayList() {{ + add("formmodeid"); + add("modedatacreater"); + add("modedatacreatertype"); + add("modedatacreatedate"); + add("modedatacreatetime"); + }}; + String currDate = TimeUtil.getCurrentDateString(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String currTime = sdf.format(new Date()); + List values = new ArrayList() {{ + add(modeId); + add(1); + add(0); + add(String.format("'%s'", currDate)); + add(String.format("'%s'", currTime)); + }}; + for (PushSettingItemPO item : pushSettingItemPOS) { + //数据库字段 + String fieldName = item.getFieldName(); + fields.add(fieldName); + // 公式变量的值 + String field = item.getItem(); + String value = formulaVarValueMap.getOrDefault(field, StringUtils.EMPTY); + PushItemFieldEnum pushItemFieldEnum = PushItemFieldEnum.parseByValue(item.getFieldType()); + values.add(pushItemFieldEnum.convertValue(value)); + } + String tableName = setting.getTableName(); + String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); + + PushRecordDetailPO pushRecordDetailPO = PushRecordDetailPO.builder() + .id(IdGenerator.generate()) + .acctEmpId(emp.getId()) + .recordId(record.getId()) + .status(PushRecordDetailStatusEnum.PREPARE.getValue()) + .execute(sql) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + getPushRecordDetailMapper().insertIgnoreNull(pushRecordDetailPO); + }); + + } + ); + } catch (Exception e) { + removeBatch(batchId); + log.error("推送失败", e); + throw new SalaryRunTimeException("推送失败"); + } + + + //开始 + startBatchPush(batchId); } + /** + * 启动推送 + * + * @param batchId + */ + private void startBatchPush(Long batchId) { + List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().batchId(batchId).build()); + pushRecordPOS.forEach( + pushRecord -> { + pushRecord.setStatus(PushRecordStatusEnum.WAITING.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecord); + } + ); - //创建推送记录 - - //推送记录明细 + //先查看是否还有前置批次没执行完 + while (true) { + int countBeforeBatch = getPushRecordMapper().countBeforeBatch(batchId); + if (countBeforeBatch > 0) { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } else { + break; + } + } + pushRecordPOS.forEach(pushRecordPO -> { + pushRecordPO.setStatus(PushRecordStatusEnum.PROGRESS.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + + + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); + pushRecordDetailPOS.forEach(pushRecordDetailPO -> { + String execute = pushRecordDetailPO.getExecute(); + RecordSet rs = new RecordSet(); + rs.execute(execute); + //建模需要权限重构 + Integer modeId = pushRecordPO.getModeId(); + if (modeId != null) { + String tableName = pushRecordPO.getTableName(); + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + }); + + pushRecordPO.setStatus(PushRecordStatusEnum.SUCCESS.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + }); + } + + + @Override + public void removeBatch(Long batchId) { + List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().batchId(batchId).build()); + pushRecordPOS.forEach(pushRecordPO -> { + getPushRecordDetailMapper().deleteByRecordId(pushRecordPO.getId()); + getPushRecordMapper().delete(pushRecordPO); + }); + } } diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 2ce0ea4e5..3e521bae0 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -59,7 +59,8 @@ public class PushWrapper extends Service { } public void push(PushParam pushParam) { - getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); +// getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); + getPushService(user).createPushRecord(pushParam.getSalaryAcctRecordId()); } } From 17ceeef74ddae4d2c1ee54fa4336373a1ff9363d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 28 Nov 2024 15:30:36 +0800 Subject: [PATCH 106/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/push/po/PushRecordDetailPO.java | 6 ++ .../salary/entity/push/po/PushRecordPO.java | 14 +++++ .../push/PushRecordDetailStatusEnum.java | 8 +-- .../enums/push/PushRecordStatusEnum.java | 5 +- .../salary/mapper/push/PushRecordMapper.xml | 4 +- .../salary/service/impl/PushServiceImpl.java | 57 ++++++++++++------- 6 files changed, 64 insertions(+), 30 deletions(-) diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java index 7b7b9b9a2..07afb3c17 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -40,6 +40,12 @@ public class PushRecordDetailPO { @ElogTransform(name = "执行状态") private Integer status; + /** + * 失败原因 + */ + @ElogTransform(name = "失败原因") + private String fail_reason; + /** * 执行sql */ diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java index a994a14f6..db196919a 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -66,6 +66,20 @@ public class PushRecordPO { @ElogTransform(name = "推送状态") private Integer status; + /** + * 开始时间 + */ + @ElogTransform(name = "开始时间") + private Date startTime; + + /** + * + */ + @ElogTransform(name = "结束时间") + private Date endTime; + + + /** * 推送类型 */ diff --git a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java index 7fbf6cfdf..b4e881541 100644 --- a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -14,11 +14,9 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordDetailStatusEnum implements BaseEnum { - PREPARE(0, "准备中", 87625), - WAITING(1, "等待中", 87625), - PROGRESS(2, "执行中", 85393), - success(3, "执行成功", 85393), - FAIL(4, "执行失败", 85393); + PREPARE(0, "待执行", 87625), + SUCCESS(1, "执行成功", 85393), + FAIL(2, "执行失败", 85393); private int value; diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 0a25b2b0a..95b4cb277 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -17,8 +17,9 @@ public enum PushRecordStatusEnum implements BaseEnum { PREPARE(0, "准备中", 87625), WAITING(1, "等待中", 87625), PROGRESS(2, "执行中", 85393), - SUCCESS(3, "执行成功", 85393), - FAIL(4, "执行失败", 85393); + COMPLETE(3, "执行完毕", 85393), + SUCCESS(4, "执行成功", 85393), + FAIL(5, "执行失败", 85393); private int value; diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml index a93a05c9c..932cd68c2 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -294,12 +294,12 @@ - SELECT count(0) FROM hrsa_push_record t WHERE delete_type = 0 and batch_id #{batchId} - and status not in (4, 5) + and status 3 \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 491b2b785..1427d6cfe 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -538,32 +538,47 @@ public class PushServiceImpl extends Service implements PushService { pushRecordPOS.forEach(pushRecordPO -> { - pushRecordPO.setStatus(PushRecordStatusEnum.PROGRESS.getValue()); - getPushRecordMapper().updateIgnoreNull(pushRecordPO); + try { + pushRecordPO.setStartTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.PROGRESS.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); + pushRecordDetailPOS.forEach(pushRecordDetailPO -> { + try { + String execute = pushRecordDetailPO.getExecute(); + RecordSet rs = new RecordSet(); + rs.execute(execute); + //建模需要权限重构 + Integer modeId = pushRecordPO.getModeId(); + if (modeId != null) { + String tableName = pushRecordPO.getTableName(); + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } - List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); - pushRecordDetailPOS.forEach(pushRecordDetailPO -> { - String execute = pushRecordDetailPO.getExecute(); - RecordSet rs = new RecordSet(); - rs.execute(execute); - //建模需要权限重构 - Integer modeId = pushRecordPO.getModeId(); - if (modeId != null) { - String tableName = pushRecordPO.getTableName(); - rs.executeQuery("select max(id) from " + tableName); - int mainId = 0; - if (rs.next()) { - mainId = rs.getInt(1); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + }catch (Exception e){ + pushRecordDetailPO.setFail_reason(e.getMessage()); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); } - ModeRightInfo ModeRightInfo = new ModeRightInfo(); - ModeRightInfo.setNewRight(true); - ModeRightInfo.editModeDataShare(1, modeId, mainId); - } - }); - pushRecordPO.setStatus(PushRecordStatusEnum.SUCCESS.getValue()); + }); + + + pushRecordPO.setEndTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.SUCCESS.getValue()); + } catch (Exception e) { + pushRecordPO.setStatus(PushRecordStatusEnum.FAIL.getValue()); + } getPushRecordMapper().updateIgnoreNull(pushRecordPO); + }); } From ff3d569e1d284f74f780941e4ed5f95b9e79a277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 29 Nov 2024 09:14:04 +0800 Subject: [PATCH 107/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=92=8C=E6=98=8E=E7=BB=86=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/push/dto/PushRecordDTO.java | 123 ++++++++++++++++ .../entity/push/dto/PushRecordDetailDTO.java | 90 ++++++++++++ .../param/RecordDetailListQueryParam.java | 22 +++ .../push/param/RecordListQueryParam.java | 17 +++ .../entity/push/po/PushRecordDetailPO.java | 1 + .../salary/entity/push/po/PushRecordPO.java | 8 +- .../push/PushRecordDetailStatusEnum.java | 7 +- .../salaryformula/SalarySQLReferenceEnum.java | 2 +- .../salary/mapper/push/PushRecordMapper.xml | 1 + .../engine/salary/service/PushService.java | 11 +- .../salary/service/impl/PushServiceImpl.java | 137 ++++++++++++------ src/com/engine/salary/web/PushController.java | 14 +- .../engine/salary/wrapper/PushWrapper.java | 10 ++ 13 files changed, 383 insertions(+), 60 deletions(-) create mode 100644 src/com/engine/salary/entity/push/dto/PushRecordDTO.java create mode 100644 src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java create mode 100644 src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java create mode 100644 src/com/engine/salary/entity/push/param/RecordListQueryParam.java diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java new file mode 100644 index 000000000..ec4c74557 --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -0,0 +1,123 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.push.PushRecordStatusEnum; +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 PushRecordDTO { + + @ElogTransform(name = "") + private Long id; + + /** + * 批次号 + */ + private Long batchId; + + + /** + * 记录名 + */ + @TableTitle(title = "记录名", dataIndex = "name", key = "name") + private String name; + + + /** + * 核算记录id + */ + private Long acctRecordId; + + + /** + * 推送配置id + */ + private Long settingId; + + /** + * 建模id + */ + private Integer modeId; + + /** + * 数据库表名 + */ + @TableTitle(title = "记录名", dataIndex = "name", key = "name") + private String tableName; + + + /** + * 推送状态 + * + * @see PushRecordStatusEnum + */ + @TableTitle(title = "推送状态", dataIndex = "status", key = "status") + private Integer status; + + /** + * 执行时间 + */ + @TableTitle(title = "执行时间", dataIndex = "startTime", key = "startTime") + private Date startTime; + + /** + * 结束时间 + */ + @ElogTransform(name = "结束时间") + private Date endTime; + + + /** + * 推送类型,0推送,1撤回 + */ + @ElogTransform(name = "推送类型") + private Integer type; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java new file mode 100644 index 000000000..2807eaf69 --- /dev/null +++ b/src/com/engine/salary/entity/push/dto/PushRecordDetailDTO.java @@ -0,0 +1,90 @@ +package com.engine.salary.entity.push.dto; + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +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 PushRecordDetailDTO { + + + @ElogTransform(name = "id") + private Long id; + + /** + * 推送记录id + */ + private Long recordId; + + /** + * 核算人员id + */ + private Long acctEmpId; + + /** + * 执行状态 + * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum + */ + @TableTitle(title = "执行状态", dataIndex = "status",key = "status") + private Integer status; + + /** + * 失败原因 + */ + @TableTitle(title = "失败原因", dataIndex = "fail_reason",key = "status") + private String fail_reason; + + /** + * 执行sql + */ + @ElogTransform(name = "执行sql") + private String execute; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java b/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java new file mode 100644 index 000000000..7a4619d2d --- /dev/null +++ b/src/com/engine/salary/entity/push/param/RecordDetailListQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RecordDetailListQueryParam extends BaseQueryParam { + + @DataCheck(require = true, message = "推送记录id不能为空") + private Long recordId; + + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/RecordListQueryParam.java b/src/com/engine/salary/entity/push/param/RecordListQueryParam.java new file mode 100644 index 000000000..0dfe41108 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/RecordListQueryParam.java @@ -0,0 +1,17 @@ +package com.engine.salary.entity.push.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 RecordListQueryParam extends BaseQueryParam { + private String name; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java index 07afb3c17..64e27ed08 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -36,6 +36,7 @@ public class PushRecordDetailPO { /** * 执行状态 + * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum */ @ElogTransform(name = "执行状态") private Integer status; diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java index db196919a..68f133904 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -19,7 +19,7 @@ import java.util.Date; @AllArgsConstructor public class PushRecordPO { - @ElogTransform(name = "") + @ElogTransform(name = "id") private Long id; /** @@ -66,6 +66,12 @@ public class PushRecordPO { @ElogTransform(name = "推送状态") private Integer status; + /** + * 失败原因 + */ + @ElogTransform(name = "失败原因") + private String fail_reason; + /** * 开始时间 */ diff --git a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java index b4e881541..47245a544 100644 --- a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -14,9 +14,10 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordDetailStatusEnum implements BaseEnum { - PREPARE(0, "待执行", 87625), - SUCCESS(1, "执行成功", 85393), - FAIL(2, "执行失败", 85393); + PREPARE(0, "待推送", 87625), + SUCCESS(1, "推送成功", 85393), + FAIL(2, "推送失败", 85393), + WITHDRAW(3, "已撤回", 85393); private int value; diff --git a/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java b/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java index 79a99b1f9..72d3e6dfe 100644 --- a/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java +++ b/src/com/engine/salary/enums/salaryformula/SalarySQLReferenceEnum.java @@ -52,6 +52,6 @@ public enum SalarySQLReferenceEnum implements BaseEnum { return referenceEnum; } } - return null; + return EMPLOYEE_INFO; } } diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml index 932cd68c2..24443a68e 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -44,6 +44,7 @@ FROM hrsa_push_record t WHERE delete_type = 0 + ORDER BY id DESC diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 3deb75ad3..6511aeef8 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -1,11 +1,10 @@ package com.engine.salary.service; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.dto.PushSettingItemDTO; -import com.engine.salary.entity.push.param.PushSettingItemQueryParam; -import com.engine.salary.entity.push.param.PushSettingItemSaveParam; -import com.engine.salary.entity.push.param.PushSettingQueryParam; -import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.util.page.PageInfo; @@ -68,4 +67,8 @@ public interface PushService { void createPushRecord(Long salaryAcctRecordId); void removeBatch(Long batchId); + + PageInfo recordList(RecordListQueryParam param); + + PageInfo recordDetailList(RecordDetailListQueryParam param); } diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 1427d6cfe..efe2e9bc8 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -5,12 +5,11 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.dto.PushSettingItemDTO; -import com.engine.salary.entity.push.param.PushSettingItemQueryParam; -import com.engine.salary.entity.push.param.PushSettingItemSaveParam; -import com.engine.salary.entity.push.param.PushSettingQueryParam; -import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.param.*; import com.engine.salary.entity.push.po.PushRecordDetailPO; import com.engine.salary.entity.push.po.PushRecordPO; import com.engine.salary.entity.push.po.PushSettingItemPO; @@ -368,6 +367,45 @@ public class PushServiceImpl extends Service implements PushService { if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException("核算记录不存在!"); } + + //查询核算人员 + List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); + + //薪资项目 + List salaryItemPOS = getSalaryItemService(user).listAll(); + //查询薪资核算记录的薪资周期、考勤周期等 + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); + + SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() + .setSalaryAcctRecordPO(salaryAcctRecordPO) + .setSalarySobPO(new SalarySobPO()) + .setSalarySobCycleDTO(salarySobCycleDTO) + .setOtherSalaryAcctRecordPOS(new ArrayList<>()) + .setSalarySobItemPOS(new ArrayList<>()) + .setSalaryItemIdWithPriorityList(new ArrayList<>()) + .setExpressFormulas(new ArrayList<>()) + .setSalaryItemPOS(salaryItemPOS) + .setSalarySobAdjustRulePOS(new ArrayList<>()) + .setWelfareColumns(new HashMap<>()) + .setAttendQuoteFieldListDTOS(new ArrayList<>()) + .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) + .setIssuedFieldIds(new HashSet<>()) + .setChildMonitor(null) + .setResults(null) + .setCalculateKey(null) + .setVariableItems(new ArrayList<>()) + .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); + + + List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); + + List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); + List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); //批次号 @@ -399,47 +437,8 @@ public class PushServiceImpl extends Service implements PushService { Long id = setting.getId(); List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); - - //查询核算人员 - List salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordPO.getId()); - - //薪资项目 - List salaryItemPOS = getSalaryItemService(user).listAll(); - //查询薪资核算记录的薪资周期、考勤周期等 - SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordPO.getId()); - - SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() - .setSalaryAcctRecordPO(salaryAcctRecordPO) - .setSalarySobPO(new SalarySobPO()) - .setSalarySobCycleDTO(salarySobCycleDTO) - .setOtherSalaryAcctRecordPOS(new ArrayList<>()) - .setSalarySobItemPOS(new ArrayList<>()) - .setSalaryItemIdWithPriorityList(new ArrayList<>()) - .setExpressFormulas(new ArrayList<>()) - .setSalaryItemPOS(salaryItemPOS) - .setSalarySobAdjustRulePOS(new ArrayList<>()) - .setWelfareColumns(new HashMap<>()) - .setAttendQuoteFieldListDTOS(new ArrayList<>()) - .setSalaryAcctEmployeePOS(salaryAcctEmployeePOS) - .setIssuedFieldIds(new HashSet<>()) - .setChildMonitor(null) - .setResults(null) - .setCalculateKey(null) - .setVariableItems(new ArrayList<>()) - .setTaxDeclarationFunction(TaxDeclarationFunctionEnum.OPEN); - - - List employeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); - List simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds); - - List salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId, Collectors.toList()); - List salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - - CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), salaryAcctResultPOS, new ArrayList<>()); - Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); - + //每个人员生成一天明细 salaryAcctEmployeePOS.forEach(emp -> { - //1 获取当前薪资核算人员的公式中的变量的值 List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); //2 人员信息 @@ -564,7 +563,7 @@ public class PushServiceImpl extends Service implements PushService { } pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); - }catch (Exception e){ + } catch (Exception e) { pushRecordDetailPO.setFail_reason(e.getMessage()); pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); } @@ -591,4 +590,52 @@ public class PushServiceImpl extends Service implements PushService { getPushRecordMapper().delete(pushRecordPO); }); } + + @Override + public PageInfo recordList(RecordListQueryParam param) { + List pushRecordPOS = getPushRecordMapper().listAll(); + List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordPOS) + .stream() + .map(po -> PushRecordDTO.builder() + .id(po.getId()) + .batchId(po.getBatchId()) + .name(po.getName()) + .settingId(po.getId()) + .modeId(po.getModeId()) + .tableName(po.getTableName()) + .acctRecordId(po.getAcctRecordId()) + .type(PushRecordTypeEnum.PUSH.getValue()) + .status(PushRecordStatusEnum.PREPARE.getValue()) + .startTime(po.getStartTime()) + .endTime(po.getEndTime()) + .build()) + .collect(Collectors.toList()); + + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDTO.class); + pageInfo.setTotal(pushRecordPOS.size()); + return pageInfo; + } + + @Override + public PageInfo recordDetailList(RecordDetailListQueryParam param) { + ValidUtil.doValidator(param); + + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(param.getRecordId()).build()); + List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordDetailPOS) + .stream() + .map(po -> PushRecordDetailDTO.builder() + .id(po.getId()) + .recordId(po.getRecordId()) + .acctEmpId(po.getAcctEmpId()) + .status(po.getStatus()) + .fail_reason(po.getFail_reason()) + .execute(po.getExecute()) + .createTime(po.getCreateTime()) + .creator(po.getCreator()) + .build()) + .collect(Collectors.toList()); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDetailDTO.class); + pageInfo.setTotal(pushRecordDetailPOS.size()); + return null; + } } diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index d42e3b222..b36c06ed2 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -1,6 +1,8 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.*; @@ -99,18 +101,18 @@ public class PushController { } @POST - @Path("/push/list") + @Path("/record/list") @Produces(MediaType.APPLICATION_JSON) - public String pushList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + public String recordList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody RecordListQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getPushWrapper(user)::push, param); + return new ResponseResult>(user).run(getPushWrapper(user)::recordList, param); } @POST - @Path("/push/detail") + @Path("/record/detail") @Produces(MediaType.APPLICATION_JSON) - public String pushDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushParam param) { + public String recordDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody RecordDetailListQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getPushWrapper(user)::push, param); + return new ResponseResult>(user).run(getPushWrapper(user)::recordDetailList, param); } } diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 3e521bae0..f59d1c934 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -2,6 +2,8 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.push.dto.PushRecordDTO; +import com.engine.salary.entity.push.dto.PushRecordDetailDTO; import com.engine.salary.entity.push.dto.PushSettingDTO; import com.engine.salary.entity.push.dto.PushSettingItemDTO; import com.engine.salary.entity.push.param.*; @@ -63,4 +65,12 @@ public class PushWrapper extends Service { getPushService(user).createPushRecord(pushParam.getSalaryAcctRecordId()); } + public PageInfo recordList(RecordListQueryParam param) { + + return getPushService(user).recordList(param); + } + + public PageInfo recordDetailList(RecordDetailListQueryParam param) { + return getPushService(user).recordDetailList(param); + } } From 4606e117540a116d3ee8a8b7828fb4451adf3b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 29 Nov 2024 10:10:25 +0800 Subject: [PATCH 108/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=92=8C=E6=98=8E=E7=BB=86=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/PushServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index efe2e9bc8..f05992ea1 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -636,6 +636,6 @@ public class PushServiceImpl extends Service implements PushService { .collect(Collectors.toList()); PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDetailDTO.class); pageInfo.setTotal(pushRecordDetailPOS.size()); - return null; + return pageInfo; } } From 186473f9f6069e789feab71a773595de9aff012d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 2 Dec 2024 14:08:03 +0800 Subject: [PATCH 109/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/push/dto/PushRecordDTO.java | 5 -- .../salary/entity/push/po/PushRecordPO.java | 6 -- .../enums/push/PushRecordStatusEnum.java | 13 +-- .../salary/mapper/push/PushRecordMapper.xml | 16 ---- .../engine/salary/service/PushService.java | 4 +- .../salary/service/impl/PushServiceImpl.java | 83 ++++++++----------- 6 files changed, 45 insertions(+), 82 deletions(-) diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java index ec4c74557..af5dd4d2a 100644 --- a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -23,11 +23,6 @@ public class PushRecordDTO { @ElogTransform(name = "") private Long id; - /** - * 批次号 - */ - private Long batchId; - /** * 记录名 diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java index 68f133904..6101e4b18 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -22,12 +22,6 @@ public class PushRecordPO { @ElogTransform(name = "id") private Long id; - /** - * 批次号 - */ - private Long batchId; - - /** * 记录名 */ diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 95b4cb277..7b537e28e 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -14,12 +14,13 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordStatusEnum implements BaseEnum { - PREPARE(0, "准备中", 87625), - WAITING(1, "等待中", 87625), - PROGRESS(2, "执行中", 85393), - COMPLETE(3, "执行完毕", 85393), - SUCCESS(4, "执行成功", 85393), - FAIL(5, "执行失败", 85393); + DATA_PREPARE(0, "数据构建", 87625), + DATA_FINISH(1, "构建完毕", 87625), + RUN_WAITING(2, "等待执行", 87625), + RUN_PROGRESS(3, "执行中", 85393), + RUN_COMPLETE(4, "执行完毕", 85393), + RUN_SUCCESS(5, "执行成功", 85393), + RUN_FAIL(6, "执行失败", 85393); private int value; diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml index 24443a68e..7009997ee 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -3,7 +3,6 @@ - @@ -23,7 +22,6 @@ t . acct_record_id - , t.batch_id , t.mode_id , t.table_name , t.create_time @@ -64,9 +62,6 @@ AND acct_record_id = #{acctRecordId} - - AND batch_id = #{batchId} - AND mode_id = #{modeId} @@ -118,9 +113,6 @@ INSERT INTO hrsa_push_record - - batch_id, - mode_id, @@ -162,9 +154,6 @@ - - #{batchId}, - #{modeId}, @@ -211,7 +200,6 @@ UPDATE hrsa_push_record - batch_id=#{batchId}, mode_id=#{modeId}, table_name=#{tableName}, acct_record_id=#{acctRecordId}, @@ -233,9 +221,6 @@ UPDATE hrsa_push_record - - batch_id=#{batchId}, - mode_id=#{modeId}, @@ -299,7 +284,6 @@ SELECT count(0) FROM hrsa_push_record t WHERE delete_type = 0 - and batch_id #{batchId} and status 3 diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 6511aeef8..e84690d73 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -9,6 +9,8 @@ import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.util.page.PageInfo; +import java.util.List; + public interface PushService { /** @@ -66,7 +68,7 @@ public interface PushService { void createPushRecord(Long salaryAcctRecordId); - void removeBatch(Long batchId); + void removeRecords(List records); PageInfo recordList(RecordListQueryParam param); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index f05992ea1..438105d69 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -408,23 +408,24 @@ public class PushServiceImpl extends Service implements PushService { List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); - //批次号 - long batchId = IdGenerator.generate(); + //推送记录id + List recordIds = new ArrayList<>(); try { pushSettingPOS.stream() .filter(setting -> setting.getSalarySobIds().contains(salaryAcctRecordPO.getSalarySobId())) .forEach(setting -> { + long recordId = IdGenerator.generate(); + recordIds.add(recordId); PushRecordPO record = PushRecordPO.builder() - .id(IdGenerator.generate()) - .batchId(batchId) + .id(recordId) .name(setting.getName()) .settingId(setting.getId()) .modeId(setting.getModeId()) .tableName(setting.getTableName()) .acctRecordId(salaryAcctRecordId) .type(PushRecordTypeEnum.PUSH.getValue()) - .status(PushRecordStatusEnum.PREPARE.getValue()) + .status(PushRecordStatusEnum.DATA_PREPARE.getValue()) .createTime(now) .updateTime(now) .creator((long) user.getUID()) @@ -437,7 +438,7 @@ public class PushServiceImpl extends Service implements PushService { Long id = setting.getId(); List pushSettingItemPOS = getPushSettingItemMapper().listSome(PushSettingItemPO.builder().settingId(id).build()); - //每个人员生成一天明细 + //构建数据,每个人员生成一天明细 salaryAcctEmployeePOS.forEach(emp -> { //1 获取当前薪资核算人员的公式中的变量的值 List formulaVarValues = formulaVarMap.get(emp.getEmployeeId() + "_" + emp.getTaxAgentId()); @@ -479,7 +480,7 @@ public class PushServiceImpl extends Service implements PushService { String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); PushRecordDetailPO pushRecordDetailPO = PushRecordDetailPO.builder() - .id(IdGenerator.generate()) + .id(recordId) .acctEmpId(emp.getId()) .recordId(record.getId()) .status(PushRecordDetailStatusEnum.PREPARE.getValue()) @@ -493,53 +494,39 @@ public class PushServiceImpl extends Service implements PushService { getPushRecordDetailMapper().insertIgnoreNull(pushRecordDetailPO); }); + //数据构建完毕 + record.setUpdateTime(new Date()); + record.setStatus(PushRecordStatusEnum.DATA_FINISH.getValue()); + getPushRecordMapper().updateIgnoreNull(record); } ); } catch (Exception e) { - removeBatch(batchId); + removeRecords(recordIds); log.error("推送失败", e); throw new SalaryRunTimeException("推送失败"); } - //开始 - startBatchPush(batchId); + startBatchPush(recordIds); } /** * 启动推送 * - * @param batchId + * @param recordIds */ - private void startBatchPush(Long batchId) { - List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().batchId(batchId).build()); - pushRecordPOS.forEach( - pushRecord -> { - pushRecord.setStatus(PushRecordStatusEnum.WAITING.getValue()); - getPushRecordMapper().updateIgnoreNull(pushRecord); - } - ); + private void startBatchPush(List recordIds) { - //先查看是否还有前置批次没执行完 - while (true) { - int countBeforeBatch = getPushRecordMapper().countBeforeBatch(batchId); - if (countBeforeBatch > 0) { - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } else { - break; - } - } + recordIds.forEach(recordId -> { + //待推送 + PushRecordPO pushRecordPO = getPushRecordMapper().getById(recordId); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_WAITING.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); - - pushRecordPOS.forEach(pushRecordPO -> { try { pushRecordPO.setStartTime(new Date()); - pushRecordPO.setStatus(PushRecordStatusEnum.PROGRESS.getValue()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_PROGRESS.getValue()); getPushRecordMapper().updateIgnoreNull(pushRecordPO); List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); pushRecordDetailPOS.forEach(pushRecordDetailPO -> { @@ -567,27 +554,28 @@ public class PushServiceImpl extends Service implements PushService { pushRecordDetailPO.setFail_reason(e.getMessage()); pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); } - }); - pushRecordPO.setEndTime(new Date()); - pushRecordPO.setStatus(PushRecordStatusEnum.SUCCESS.getValue()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_SUCCESS.getValue()); } catch (Exception e) { - pushRecordPO.setStatus(PushRecordStatusEnum.FAIL.getValue()); + pushRecordPO.setFail_reason(e.getMessage()); + pushRecordPO.setStatus(PushRecordStatusEnum.RUN_FAIL.getValue()); } getPushRecordMapper().updateIgnoreNull(pushRecordPO); - }); } @Override - public void removeBatch(Long batchId) { - List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().batchId(batchId).build()); - pushRecordPOS.forEach(pushRecordPO -> { - getPushRecordDetailMapper().deleteByRecordId(pushRecordPO.getId()); - getPushRecordMapper().delete(pushRecordPO); + public void removeRecords(List recordIds) { + recordIds.forEach(recordId -> { + PushRecordPO recordPO = getPushRecordMapper().getById(recordId); + if (recordPO == null){ + throw new SalaryRunTimeException("推送记录不存在"); + } + getPushRecordDetailMapper().deleteByRecordId(recordId); + getPushRecordMapper().delete(recordPO); }); } @@ -598,14 +586,13 @@ public class PushServiceImpl extends Service implements PushService { .stream() .map(po -> PushRecordDTO.builder() .id(po.getId()) - .batchId(po.getBatchId()) .name(po.getName()) .settingId(po.getId()) .modeId(po.getModeId()) .tableName(po.getTableName()) .acctRecordId(po.getAcctRecordId()) - .type(PushRecordTypeEnum.PUSH.getValue()) - .status(PushRecordStatusEnum.PREPARE.getValue()) + .type(po.getType()) + .status(po.getStatus()) .startTime(po.getStartTime()) .endTime(po.getEndTime()) .build()) From 2932df22e9d44845ba9c34ca0f2849476de64f20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 16:55:22 +0800 Subject: [PATCH 110/184] =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/PushServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 438105d69..9eabd3c7b 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -480,7 +480,7 @@ public class PushServiceImpl extends Service implements PushService { String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); PushRecordDetailPO pushRecordDetailPO = PushRecordDetailPO.builder() - .id(recordId) + .id(IdGenerator.generate()) .acctEmpId(emp.getId()) .recordId(record.getId()) .status(PushRecordDetailStatusEnum.PREPARE.getValue()) @@ -501,8 +501,8 @@ public class PushServiceImpl extends Service implements PushService { } ); } catch (Exception e) { - removeRecords(recordIds); log.error("推送失败", e); + removeRecords(recordIds); throw new SalaryRunTimeException("推送失败"); } @@ -571,11 +571,11 @@ public class PushServiceImpl extends Service implements PushService { public void removeRecords(List recordIds) { recordIds.forEach(recordId -> { PushRecordPO recordPO = getPushRecordMapper().getById(recordId); - if (recordPO == null){ - throw new SalaryRunTimeException("推送记录不存在"); + if (recordPO != null) { + getPushRecordDetailMapper().deleteByRecordId(recordId); + getPushRecordMapper().delete(recordPO); } - getPushRecordDetailMapper().deleteByRecordId(recordId); - getPushRecordMapper().delete(recordPO); + }); } From 72605793d12701f0a22dc05feeffa07bce469efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Dec 2024 14:24:42 +0800 Subject: [PATCH 111/184] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SettingServiceImpl.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 16771e0ea..032aab3d5 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -14,8 +14,10 @@ import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.auth.AuthFilterTypeEnum; import com.engine.salary.enums.common.SharedTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.setting.PageLinkMapper; @@ -288,7 +290,9 @@ public class SettingServiceImpl extends Service implements SettingService { Long templateId = link.getTemplateId(); //权限控制 - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService().listAuth(taxAgentQueryParam); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); Boolean chief = getTaxAgentService().isChief((long) user.getUID()); pos = pos.stream().filter(po -> { @@ -380,7 +384,10 @@ public class SettingServiceImpl extends Service implements SettingService { //权限控制 List agentPOList = getTaxAgentService().listAll(); Map idNameMap = SalaryEntityUtil.convert2Map(agentPOList, TaxAgentPO::getId, TaxAgentPO::getName); - Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + //权限控制 + TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build(); + taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA); + Collection taxAgentPOS = getTaxAgentService().listAuth(taxAgentQueryParam); Boolean chief = getTaxAgentService().isChief((long) user.getUID()); List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); List templateDTOS = pos.stream() From df3ce490c06686f3b18923237ec10fa2177a2b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 27 Dec 2024 14:34:03 +0800 Subject: [PATCH 112/184] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySobServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index e3159a267..53085bc9b 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -731,7 +731,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { salarySobMapper.insert(newSalarySob); - saveSobTaxLink(duplicateParam.getTaxAgentIds(), salarySobPO); + saveSobTaxLink(duplicateParam.getTaxAgentIds(), newSalarySob); // 复制 SalarySobDuplicateBO salarySobDuplicateBO = new SalarySobDuplicateBO(newSalarySob, salarySobEmpFieldPOS, salarySobItemPOS, salarySobItemGroupPOS, salarySobAdjustRulePOS, salarySobCheckRulePOS, salarySobBackItemPOS); From a0cd1f19737e3f40a03619f61fe4180dd0e0120b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 21 Jan 2025 17:19:17 +0800 Subject: [PATCH 113/184] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/enums/auth/DataTargetTypeEnum.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java index 25f850efb..056b42fd4 100644 --- a/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java +++ b/src/com/engine/salary/enums/auth/DataTargetTypeEnum.java @@ -106,7 +106,7 @@ public enum DataTargetTypeEnum implements BaseEnum { @Override public Set getEmpIds(String target, Object... param) { SalaryEmployeeServiceImpl salaryEmployeeService = new SalaryEmployeeServiceImpl(); - List employeeList = salaryEmployeeService.listBySalarySobId(Long.valueOf(target)); + List employeeList = salaryEmployeeService.listBySalarySobId(Long.valueOf(target),true); return SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); } }, From 6e6347555ae9a221ca90ffce05276588e1e5643d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 22 Jan 2025 15:56:56 +0800 Subject: [PATCH 114/184] =?UTF-8?q?=E5=A4=84=E7=90=86oracle=E9=80=82?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/mapper/auth/AuthMapper.xml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/com/engine/salary/mapper/auth/AuthMapper.xml b/src/com/engine/salary/mapper/auth/AuthMapper.xml index 07be9477a..f1ce490b1 100644 --- a/src/com/engine/salary/mapper/auth/AuthMapper.xml +++ b/src/com/engine/salary/mapper/auth/AuthMapper.xml @@ -14,11 +14,11 @@ - select resource.target as tax_agent_id, o.opt + select res.target as tax_agent_id, o.opt from hrsa_auth_role role left join hrsa_auth_role_emp emp on emp.role_id = role.id and emp.delete_type = 0 and role.delete_type = 0 - left join hrsa_auth_resource resource on resource.role_id = role.id and resource.target_type = 1 and resource.delete_type = 0 + left join hrsa_auth_resource res on res.role_id = role.id and res.target_type = 1 and res.delete_type = 0 left join hrsa_auth_opt o on role.id = o.role_id and o.delete_type = 0 where emp.employee_id = #{uid} @@ -58,11 +58,11 @@ - select resource.target + select res.target from hrsa_auth_role_emp emp left join hrsa_auth_role role on emp.role_id = role.id and emp.delete_type = 0 and role.delete_type = 0 - left join hrsa_auth_resource resource - on resource.role_id = role.id and resource.target_type = 2 and resource.delete_type = 0 + left join hrsa_auth_resource res + on res.role_id = role.id and res.target_type = 2 and res.delete_type = 0 where emp.employee_id = #{uid} @@ -129,15 +129,15 @@ SELECT + t.id, t.employee_id,t.social_sum,t.fund_sum,t.other_sum,t.fund_pay_org,t.social_pay_org, t.other_pay_org, t.payment_status FROM @@ -1563,6 +1564,29 @@ AND employee_id = #{employeeId} + + UPDATE hrsa_bill_detail + SET delete_type = 1 + WHERE delete_type = 0 + + AND id IN + + #{id} + + + + + UPDATE hrsa_bill_detail + SET delete_type = 1 + WHERE delete_type = 0 + AND bill_month = #{billMonth} + AND payment_organization = #{paymentOrganization} + AND employee_id + + #{employeeId} + + + + + + + @@ -127,6 +176,9 @@ update_time, + + fail_reason, + @@ -159,6 +211,9 @@ #{updateTime}, + + #{failReason}, + @@ -175,6 +230,7 @@ status=#{status}, tenant_key=#{tenantKey}, update_time=#{updateTime}, + fail_reason=#{failReason}, WHERE id = #{id} AND delete_type = 0 @@ -211,6 +267,9 @@ update_time=#{updateTime}, + + fail_reason=#{failReason}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 8503f447b..64cd82e73 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -257,7 +257,7 @@ public class PushServiceImpl extends Service implements PushService { //查询推送配置 List pushSettingPOS = getPushSettingMapper().listSome(PushSettingPO.builder().able(1).build()); - if(CollUtil.isEmpty(pushSettingPOS)){ + if (CollUtil.isEmpty(pushSettingPOS)) { return; } @@ -436,9 +436,10 @@ public class PushServiceImpl extends Service implements PushService { pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); } catch (Exception e) { - pushRecordDetailPO.setFail_reason(e.getMessage()); + pushRecordDetailPO.setFailReason(e.getMessage()); pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); } + getPushRecordDetailMapper().updateIgnoreNull(pushRecordDetailPO); }); pushRecordPO.setEndTime(new Date()); @@ -460,7 +461,6 @@ public class PushServiceImpl extends Service implements PushService { } - @Override public void removeRecords(List recordIds) { recordIds.forEach(recordId -> { @@ -487,6 +487,7 @@ public class PushServiceImpl extends Service implements PushService { .acctRecordId(po.getAcctRecordId()) .type(po.getType()) .status(po.getStatus()) + .statusName(PushRecordStatusEnum.parseByValue(po.getStatus()).getDefaultLabel()) .startTime(po.getStartTime()) .endTime(po.getEndTime()) .build()) @@ -501,22 +502,13 @@ public class PushServiceImpl extends Service implements PushService { public PageInfo recordDetailList(RecordDetailListQueryParam param) { ValidUtil.doValidator(param); - List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(param.getRecordId()).build()); - List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pushRecordDetailPOS) - .stream() - .map(po -> PushRecordDetailDTO.builder() - .id(po.getId()) - .recordId(po.getRecordId()) - .acctEmpId(po.getAcctEmpId()) - .status(po.getStatus()) - .fail_reason(po.getFail_reason()) - .execute(po.getExecute()) - .createTime(po.getCreateTime()) - .creator(po.getCreator()) - .build()) - .collect(Collectors.toList()); - PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), listDTOS, PushRecordDetailDTO.class); - pageInfo.setTotal(pushRecordDetailPOS.size()); + List list = getPushRecordDetailMapper().listDTO(PushRecordDetailDTO.builder().recordId(param.getRecordId()).build()); + List listDTOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list); + listDTOS.forEach(dto -> dto.setStatusName(PushRecordDetailStatusEnum.parseByValue(dto.getStatus()).getDefaultLabel())); + + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), PushRecordDetailDTO.class); + pageInfo.setList(listDTOS); + pageInfo.setTotal(list.size()); return pageInfo; } } From 0a78f17230cb1614ef05c840e46df2058cb5345c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 2 Apr 2025 17:05:04 +0800 Subject: [PATCH 152/184] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E8=80=97=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202504020203.sql | 6 +++ resource/sqlupgrade/GS/sql202504020203.sql | 6 +++ resource/sqlupgrade/JC/sql202504020203.sql | 6 +++ resource/sqlupgrade/Mysql/sql202504020203.sql | 3 ++ .../sqlupgrade/Oracle/sql202504020203.sql | 5 ++ resource/sqlupgrade/PG/sql202504020203.sql | 3 ++ .../sqlupgrade/SQLServer/sql202504020203.sql | 5 ++ resource/sqlupgrade/ST/sql202504020203.sql | 6 +++ .../salary/entity/push/dto/PushRecordDTO.java | 13 ++--- .../salary/entity/push/po/PushRecordPO.java | 2 +- .../mapper/push/PushRecordDetailMapper.xml | 2 +- .../salary/mapper/push/PushRecordMapper.xml | 53 +++++++++++++++++-- .../salary/service/impl/PushServiceImpl.java | 3 +- 13 files changed, 98 insertions(+), 15 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202504020203.sql create mode 100644 resource/sqlupgrade/GS/sql202504020203.sql create mode 100644 resource/sqlupgrade/JC/sql202504020203.sql create mode 100644 resource/sqlupgrade/Mysql/sql202504020203.sql create mode 100644 resource/sqlupgrade/Oracle/sql202504020203.sql create mode 100644 resource/sqlupgrade/PG/sql202504020203.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202504020203.sql create mode 100644 resource/sqlupgrade/ST/sql202504020203.sql diff --git a/resource/sqlupgrade/DM/sql202504020203.sql b/resource/sqlupgrade/DM/sql202504020203.sql new file mode 100644 index 000000000..d54eff0ca --- /dev/null +++ b/resource/sqlupgrade/DM/sql202504020203.sql @@ -0,0 +1,6 @@ +ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000); +/ + +ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000); +/ + diff --git a/resource/sqlupgrade/GS/sql202504020203.sql b/resource/sqlupgrade/GS/sql202504020203.sql new file mode 100644 index 000000000..d54eff0ca --- /dev/null +++ b/resource/sqlupgrade/GS/sql202504020203.sql @@ -0,0 +1,6 @@ +ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000); +/ + +ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000); +/ + diff --git a/resource/sqlupgrade/JC/sql202504020203.sql b/resource/sqlupgrade/JC/sql202504020203.sql new file mode 100644 index 000000000..d54eff0ca --- /dev/null +++ b/resource/sqlupgrade/JC/sql202504020203.sql @@ -0,0 +1,6 @@ +ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000); +/ + +ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202504020203.sql b/resource/sqlupgrade/Mysql/sql202504020203.sql new file mode 100644 index 000000000..f7f94d4b6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202504020203.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_record ADD COLUMN fail_reason varchar(4000); + +ALTER TABLE hrsa_push_record_detail ADD COLUMN fail_reason varchar(4000) ; diff --git a/resource/sqlupgrade/Oracle/sql202504020203.sql b/resource/sqlupgrade/Oracle/sql202504020203.sql new file mode 100644 index 000000000..ea71581d2 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202504020203.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000); +/ + +ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000); +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202504020203.sql b/resource/sqlupgrade/PG/sql202504020203.sql new file mode 100644 index 000000000..adb7b31e2 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202504020203.sql @@ -0,0 +1,3 @@ +alter table hrsa_push_record add fail_reason VARCHAR(4000) ; + +alter table hrsa_push_record_detail add fail_reason VARCHAR(4000) ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202504020203.sql b/resource/sqlupgrade/SQLServer/sql202504020203.sql new file mode 100644 index 000000000..312077f79 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202504020203.sql @@ -0,0 +1,5 @@ +alter table hrsa_push_record add fail_reason VARCHAR(4000) +go + +alter table hrsa_push_record_detail add fail_reason VARCHAR(4000) +go \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202504020203.sql b/resource/sqlupgrade/ST/sql202504020203.sql new file mode 100644 index 000000000..d54eff0ca --- /dev/null +++ b/resource/sqlupgrade/ST/sql202504020203.sql @@ -0,0 +1,6 @@ +ALTER TABLE hrsa_push_record ADD fail_reason varchar2(4000); +/ + +ALTER TABLE hrsa_push_record_detail ADD fail_reason varchar2(4000); +/ + diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java index b1d34a2dd..03243eb73 100644 --- a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -3,6 +3,7 @@ package com.engine.salary.entity.push.dto; import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.annotation.TableTitle; import com.engine.salary.enums.push.PushRecordStatusEnum; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -66,50 +67,46 @@ public class PushRecordDTO { /** * 执行时间 */ - @TableTitle(title = "执行时间", dataIndex = "startTime", key = "startTime") + @TableTitle(title = "执行开始时间", dataIndex = "startTime", key = "startTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; /** * 结束时间 */ - @ElogTransform(name = "结束时间") + @TableTitle(title = "执行结束时间", dataIndex = "endTime", key = "endTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; /** * 推送类型,0推送,1撤回 */ - @ElogTransform(name = "推送类型") private Integer type; /** * 创建时间 */ - @ElogTransform(name = "创建时间") private Date createTime; /** * 创建人 */ - @ElogTransform(name = "创建人") private Long creator; /** * 是否已删除。0:未删除、1:已删除 */ - @ElogTransform(name = "是否已删除。0:未删除、1:已删除") private Integer deleteType; /** * 租户ID */ - @ElogTransform(name = "租户ID") private String tenantKey; /** * 更新时间 */ - @ElogTransform(name = "更新时间") private Date updateTime; diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java index 6101e4b18..a0ed7080a 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -64,7 +64,7 @@ public class PushRecordPO { * 失败原因 */ @ElogTransform(name = "失败原因") - private String fail_reason; + private String failReason; /** * 开始时间 diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml index 2f720d205..6ab97fdc5 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -105,7 +105,7 @@ , t.status , t.tenant_key , t.update_time - , t.fail_reason + , t.fail_reason as failReason , e.LASTNAME as username FROM hrsa_push_record_detail t left join hrsa_salary_acct_emp emp diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml index 7009997ee..48e1a2765 100644 --- a/src/com/engine/salary/mapper/push/PushRecordMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -3,18 +3,21 @@ + + + - - - - + + + + @@ -34,6 +37,9 @@ , t.tenant_key , t.type , t.update_time + , t.fail_reason + , t.start_time + , t.end_time @@ -98,6 +104,15 @@ AND update_time = #{updateTime} + + AND fail_reason = #{failReason} + + + AND start_time = #{startTime} + + + AND end_time = #{endTime} + AND id IN @@ -152,6 +167,15 @@ update_time, + + fail_reason, + + + start_time, + + + end_time, + @@ -193,6 +217,15 @@ #{updateTime}, + + #{failReason}, + + + #{startTime}, + + + #{endTime}, + @@ -212,6 +245,9 @@ tenant_key=#{tenantKey}, type=#{type}, update_time=#{updateTime}, + fail_reason=#{failReason}, + start_time=#{startTime}, + end_time=#{endTime}, WHERE id = #{id} AND delete_type = 0 @@ -257,6 +293,15 @@ update_time=#{updateTime}, + + fail_reason=#{failReason}, + + + start_time=#{startTime}, + + + end_time=#{endTime}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 64cd82e73..548c4b3f0 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -407,6 +407,7 @@ public class PushServiceImpl extends Service implements PushService { //待推送 PushRecordPO pushRecordPO = getPushRecordMapper().getById(id); pushRecordPO.setStatus(PushRecordStatusEnum.RUN_WAITING.getValue()); + pushRecordPO.setStartTime(new Date()); getPushRecordMapper().updateIgnoreNull(pushRecordPO); try { @@ -445,7 +446,7 @@ public class PushServiceImpl extends Service implements PushService { pushRecordPO.setEndTime(new Date()); pushRecordPO.setStatus(PushRecordStatusEnum.RUN_SUCCESS.getValue()); } catch (Exception e) { - pushRecordPO.setFail_reason(e.getMessage()); + pushRecordPO.setFailReason(e.getMessage()); pushRecordPO.setStatus(PushRecordStatusEnum.RUN_FAIL.getValue()); } getPushRecordMapper().updateIgnoreNull(pushRecordPO); From d4f45d5eb32c1e10c972d754de58500fa863b100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 3 Apr 2025 10:49:10 +0800 Subject: [PATCH 153/184] =?UTF-8?q?=E6=89=A9=E5=B1=95=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202504030103.sql | 3 ++ resource/sqlupgrade/GS/sql202504030103.sql | 3 ++ resource/sqlupgrade/JC/sql202504030103.sql | 3 ++ resource/sqlupgrade/Mysql/sql202504030103.sql | 1 + .../sqlupgrade/Oracle/sql202504030103.sql | 2 + resource/sqlupgrade/PG/sql202504030103.sql | 1 + .../sqlupgrade/SQLServer/sql202504030103.sql | 2 + resource/sqlupgrade/ST/sql202504030103.sql | 3 ++ .../entity/push/dto/PushSettingItemDTO.java | 3 ++ .../push/param/PushSettingItemSaveParam.java | 5 ++ .../entity/push/po/PushSettingItemPO.java | 4 ++ .../enums/push/PushRecordStatusEnum.java | 16 +++--- .../mapper/push/PushSettingItemMapper.xml | 18 ++++++- .../engine/salary/service/PushService.java | 2 + .../salary/service/impl/PushServiceImpl.java | 54 +++++++++++++++++-- 15 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202504030103.sql create mode 100644 resource/sqlupgrade/GS/sql202504030103.sql create mode 100644 resource/sqlupgrade/JC/sql202504030103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202504030103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202504030103.sql create mode 100644 resource/sqlupgrade/PG/sql202504030103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202504030103.sql create mode 100644 resource/sqlupgrade/ST/sql202504030103.sql diff --git a/resource/sqlupgrade/DM/sql202504030103.sql b/resource/sqlupgrade/DM/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/DM/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/GS/sql202504030103.sql b/resource/sqlupgrade/GS/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/GS/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/JC/sql202504030103.sql b/resource/sqlupgrade/JC/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/JC/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202504030103.sql b/resource/sqlupgrade/Mysql/sql202504030103.sql new file mode 100644 index 000000000..44253d12e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202504030103.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202504030103.sql b/resource/sqlupgrade/Oracle/sql202504030103.sql new file mode 100644 index 000000000..d5ea36ecf --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202504030103.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202504030103.sql b/resource/sqlupgrade/PG/sql202504030103.sql new file mode 100644 index 000000000..4dd4ec62f --- /dev/null +++ b/resource/sqlupgrade/PG/sql202504030103.sql @@ -0,0 +1 @@ +alter table hrsa_push_setting_item add sorted_index int ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202504030103.sql b/resource/sqlupgrade/SQLServer/sql202504030103.sql new file mode 100644 index 000000000..ace32b9be --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202504030103.sql @@ -0,0 +1,2 @@ +alter table hrsa_push_setting_item add sorted_index int +go \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202504030103.sql b/resource/sqlupgrade/ST/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/ST/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java index a45d4635f..22c8832d6 100644 --- a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java @@ -59,4 +59,7 @@ public class PushSettingItemDTO { @TableTitle(title = "字段类型", dataIndex = "fieldTypeName", key = "fieldTypeName") private String fieldTypeName; + @TableTitle(title = "排序", dataIndex = "sortedIndex", key = "sortedIndex") + private Integer sortedIndex; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java index 57f46c330..d095b9697 100644 --- a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -59,6 +59,11 @@ public class PushSettingItemSaveParam { @DataCheck(require = true, message = "字段类型为空") private PushItemFieldEnum fieldType; + /** + * 排序 + */ + private Integer sortedIndex; + //主键id集合 private Collection ids; diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java index ad7f97da1..71b16e335 100644 --- a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -62,6 +62,10 @@ public class PushSettingItemPO { @ElogTransform(name = "字段类型") private Integer fieldType; + + @ElogTransform(name = "排序") + private Integer sortedIndex; + /** * 租户ID */ diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 57321e2ad..392985cc1 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -14,13 +14,15 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordStatusEnum implements BaseEnum { - DATA_PREPARE(0, "数据构建", 87625), - DATA_FINISH(1, "构建完毕", 87625), - RUN_WAITING(2, "等待执行", 87625), - RUN_PROGRESS(3, "执行中", 85393), - RUN_COMPLETE(4, "执行完毕", 85393), - RUN_SUCCESS(5, "执行成功", 85393), - RUN_FAIL(6, "执行失败", 85393); + DATA_PREPARE(0, "准备中", 87625), + DATA_FINISH(1, "准备完毕", 87625), + RUN_PROGRESS(2, "推送中", 85393), + RUN_COMPLETE(3, "推送完毕", 85393), + RUN_SUCCESS(4, "推送成功", 85393), + RUN_FAIL(5, "推送失败", 85393), + WITHDRAW(6, "撤回中", 85393), + WITHDRAW_SUCCESS(7, "撤回成功", 85393), + WITHDRAW_FAIL(8, "撤回失败", 85393); private int value; diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml index f708ed48c..2c5322940 100644 --- a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml @@ -12,6 +12,7 @@ + @@ -32,6 +33,7 @@ , t.setting_id , t.tenant_key , t.update_time + , t.sorted_index @@ -40,6 +42,7 @@ FROM hrsa_push_setting_item t WHERE delete_type = 0 + ORDER BY sorted_index DESC @@ -85,6 +88,9 @@ AND setting_id = #{settingId} + + + AND sorted_index = #{sortedIndex} AND tenant_key = #{tenantKey} @@ -98,7 +104,7 @@ #{id} - ORDER BY id DESC + ORDER BY sorted_index DESC @@ -137,6 +143,9 @@ setting_id, + + sorted_index, + tenant_key, @@ -175,6 +184,9 @@ #{settingId}, + + #{sortedIndex}, + #{tenantKey}, @@ -197,6 +209,7 @@ item_name=#{itemName}, source=#{source}, setting_id=#{settingId}, + sorted_index=#{sortedIndex}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -235,6 +248,9 @@ setting_id=#{settingId}, + + sorted_index=#{sortedIndex}, + tenant_key=#{tenantKey}, diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index f3e5c91f9..975cb77de 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -62,6 +62,8 @@ public interface PushService { void push(Long id); + void withdraw(Long id); + void removeRecords(List records); PageInfo recordList(RecordListQueryParam param); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 548c4b3f0..bb6f172b0 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -191,6 +191,7 @@ public class PushServiceImpl extends Service implements PushService { .fieldName(po.getFieldName()) .fieldType(PushItemFieldEnum.parseByValue(po.getFieldType())) .fieldTypeName(PushItemFieldEnum.parseByValue(po.getFieldType()).getDefaultLabel()) + .sortedIndex(po.getSortedIndex()) .build() ).collect(Collectors.toList()); @@ -212,6 +213,7 @@ public class PushServiceImpl extends Service implements PushService { .source(param.getSource()) .fieldName(param.getFieldName()) .fieldType(param.getFieldType().getValue()) + .sortedIndex(param.getSortedIndex()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -232,6 +234,7 @@ public class PushServiceImpl extends Service implements PushService { po.setSource(param.getSource()); po.setFieldName(param.getFieldName()); po.setFieldType(param.getFieldType().getValue()); + po.setSortedIndex(param.getSortedIndex()); po.setUpdateTime(now); getPushSettingItemMapper().update(po); @@ -406,14 +409,12 @@ public class PushServiceImpl extends Service implements PushService { public void push(Long id) { //待推送 PushRecordPO pushRecordPO = getPushRecordMapper().getById(id); - pushRecordPO.setStatus(PushRecordStatusEnum.RUN_WAITING.getValue()); - pushRecordPO.setStartTime(new Date()); - getPushRecordMapper().updateIgnoreNull(pushRecordPO); try { pushRecordPO.setStartTime(new Date()); pushRecordPO.setStatus(PushRecordStatusEnum.RUN_PROGRESS.getValue()); getPushRecordMapper().updateIgnoreNull(pushRecordPO); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); pushRecordDetailPOS.forEach(pushRecordDetailPO -> { @@ -452,6 +453,53 @@ public class PushServiceImpl extends Service implements PushService { getPushRecordMapper().updateIgnoreNull(pushRecordPO); } + @Override + public void withdraw(Long id) { + //待撤回 + PushRecordPO pushRecordPO = getPushRecordMapper().getById(id); + + try { + pushRecordPO.setStartTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); + pushRecordDetailPOS.forEach(pushRecordDetailPO -> { + + try { + String execute = pushRecordDetailPO.getExecute(); + RecordSet rs = new RecordSet(); + rs.execute(execute); + //建模需要权限重构 + Integer modeId = pushRecordPO.getModeId(); + if (modeId != null) { + String tableName = pushRecordPO.getTableName(); + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + } catch (Exception e) { + pushRecordDetailPO.setFailReason(e.getMessage()); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); + } + getPushRecordDetailMapper().updateIgnoreNull(pushRecordDetailPO); + }); + + pushRecordPO.setEndTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW_SUCCESS.getValue()); + } catch (Exception e) { + pushRecordPO.setFailReason(e.getMessage()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW_FAIL.getValue()); + } + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + } + /** * 启动推送 * From f4c025e078566033c65b4065482b69996eec1729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 7 Apr 2025 09:19:47 +0800 Subject: [PATCH 154/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202504030103.sql | 3 + resource/sqlupgrade/GS/sql202504030103.sql | 3 + resource/sqlupgrade/JC/sql202504030103.sql | 3 + resource/sqlupgrade/Mysql/sql202504030103.sql | 4 +- .../sqlupgrade/Oracle/sql202504030103.sql | 3 + resource/sqlupgrade/PG/sql202504030103.sql | 4 +- .../sqlupgrade/SQLServer/sql202504030103.sql | 3 + resource/sqlupgrade/ST/sql202504030103.sql | 3 + .../salary/entity/push/dto/PushRecordDTO.java | 2 +- .../entity/push/po/PushRecordDetailPO.java | 5 ++ .../push/PushRecordDetailStatusEnum.java | 3 +- .../enums/push/PushRecordStatusEnum.java | 11 ++- .../mapper/push/PushRecordDetailMapper.xml | 13 +++ .../engine/salary/service/PushService.java | 2 + .../salary/service/impl/PushServiceImpl.java | 84 +++++++++---------- .../impl/SalaryAcctRecordServiceImpl.java | 5 +- 16 files changed, 97 insertions(+), 54 deletions(-) diff --git a/resource/sqlupgrade/DM/sql202504030103.sql b/resource/sqlupgrade/DM/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/DM/sql202504030103.sql +++ b/resource/sqlupgrade/DM/sql202504030103.sql @@ -1,3 +1,6 @@ ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; / +ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/GS/sql202504030103.sql b/resource/sqlupgrade/GS/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/GS/sql202504030103.sql +++ b/resource/sqlupgrade/GS/sql202504030103.sql @@ -1,3 +1,6 @@ ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; / +ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/JC/sql202504030103.sql b/resource/sqlupgrade/JC/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/JC/sql202504030103.sql +++ b/resource/sqlupgrade/JC/sql202504030103.sql @@ -1,3 +1,6 @@ ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; / +ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202504030103.sql b/resource/sqlupgrade/Mysql/sql202504030103.sql index 44253d12e..f21868d14 100644 --- a/resource/sqlupgrade/Mysql/sql202504030103.sql +++ b/resource/sqlupgrade/Mysql/sql202504030103.sql @@ -1 +1,3 @@ -ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); \ No newline at end of file +ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); + +ALTER TABLE hrsa_push_record_detail ADD COLUMN data_id bigint(0); diff --git a/resource/sqlupgrade/Oracle/sql202504030103.sql b/resource/sqlupgrade/Oracle/sql202504030103.sql index d5ea36ecf..8c2ab620f 100644 --- a/resource/sqlupgrade/Oracle/sql202504030103.sql +++ b/resource/sqlupgrade/Oracle/sql202504030103.sql @@ -1,2 +1,5 @@ ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + +ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0); / \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202504030103.sql b/resource/sqlupgrade/PG/sql202504030103.sql index 4dd4ec62f..a0bda613d 100644 --- a/resource/sqlupgrade/PG/sql202504030103.sql +++ b/resource/sqlupgrade/PG/sql202504030103.sql @@ -1 +1,3 @@ -alter table hrsa_push_setting_item add sorted_index int ; \ No newline at end of file +alter table hrsa_push_setting_item add sorted_index int ; + +alter table hrsa_push_record_detail add data_id bigint ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202504030103.sql b/resource/sqlupgrade/SQLServer/sql202504030103.sql index ace32b9be..db030fdb3 100644 --- a/resource/sqlupgrade/SQLServer/sql202504030103.sql +++ b/resource/sqlupgrade/SQLServer/sql202504030103.sql @@ -1,2 +1,5 @@ alter table hrsa_push_setting_item add sorted_index int +go + +alter table hrsa_push_record_detail add data_id bigint go \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202504030103.sql b/resource/sqlupgrade/ST/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/ST/sql202504030103.sql +++ b/resource/sqlupgrade/ST/sql202504030103.sql @@ -1,3 +1,6 @@ ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; / +ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0); +/ + diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java index 03243eb73..74df0f8d4 100644 --- a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -51,7 +51,7 @@ public class PushRecordDTO { /** * 数据库表名 */ - @TableTitle(title = "数据表名", dataIndex = "name", key = "tableName") + @TableTitle(title = "数据表名", dataIndex = "tableName", key = "tableName") private String tableName; diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java index f55a9c8f0..f971532e6 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -34,6 +34,11 @@ public class PushRecordDetailPO { @ElogTransform(name = "核算人员id") private Long acctEmpId; + /** + * 核算人员id + */ + private Long dataId; + /** * 执行状态 * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum diff --git a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java index c303de40b..c2d677d42 100644 --- a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -17,7 +17,8 @@ public enum PushRecordDetailStatusEnum implements BaseEnum { PREPARE(0, "待推送", 87625), SUCCESS(1, "推送成功", 85393), FAIL(2, "推送失败", 85393), - WITHDRAW(3, "已撤回", 85393); + WITHDRAW_SUCCESS(3, "已撤回", 85393), + WITHDRAW_FAIL(4, "撤回失败", 85393); private int value; diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 392985cc1..3e3ea14c4 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -17,12 +17,11 @@ public enum PushRecordStatusEnum implements BaseEnum { DATA_PREPARE(0, "准备中", 87625), DATA_FINISH(1, "准备完毕", 87625), RUN_PROGRESS(2, "推送中", 85393), - RUN_COMPLETE(3, "推送完毕", 85393), - RUN_SUCCESS(4, "推送成功", 85393), - RUN_FAIL(5, "推送失败", 85393), - WITHDRAW(6, "撤回中", 85393), - WITHDRAW_SUCCESS(7, "撤回成功", 85393), - WITHDRAW_FAIL(8, "撤回失败", 85393); + RUN_SUCCESS(3, "推送成功", 85393), + RUN_FAIL(4, "推送失败", 85393), + WITHDRAW(5, "撤回中", 85393), + WITHDRAW_SUCCESS(6, "已撤回", 85393), + WITHDRAW_FAIL(7, "撤回失败", 85393); private int value; diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml index 6ab97fdc5..bdbee38fc 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -13,6 +13,7 @@ + @@ -30,6 +31,7 @@ , t.tenant_key , t.update_time , t.fail_reason + , t.data_id @@ -106,6 +108,7 @@ , t.tenant_key , t.update_time , t.fail_reason as failReason + , t.data_id as dataId , e.LASTNAME as username FROM hrsa_push_record_detail t left join hrsa_salary_acct_emp emp @@ -179,6 +182,9 @@ fail_reason, + + data_id, + @@ -214,6 +220,9 @@ #{failReason}, + + #{dataId}, + @@ -231,6 +240,7 @@ tenant_key=#{tenantKey}, update_time=#{updateTime}, fail_reason=#{failReason}, + data_id=#{dataId}, WHERE id = #{id} AND delete_type = 0 @@ -270,6 +280,9 @@ fail_reason=#{failReason}, + + data_id=#{dataId}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 975cb77de..59a6f311d 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -60,6 +60,8 @@ public interface PushService { void createPushRecord(Long salaryAcctRecordId); + void withdrawPushRecord(Long salaryAcctRecordId); + void push(Long id); void withdraw(Long id); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index bb6f172b0..fd1d7ec4d 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -401,10 +401,16 @@ public class PushServiceImpl extends Service implements PushService { } //开始 - startBatchPush(recordIds); + recordIds.forEach(this::push); } + @Override + public void withdrawPushRecord(Long salaryAcctRecordId) { + List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().acctRecordId(salaryAcctRecordId).status(PushRecordStatusEnum.RUN_SUCCESS.getValue()).build()); + pushRecordPOS.stream().map(PushRecordPO::getId).forEach(this::withdraw); + } + @Override public void push(Long id) { //待推送 @@ -421,22 +427,29 @@ public class PushServiceImpl extends Service implements PushService { try { String execute = pushRecordDetailPO.getExecute(); RecordSet rs = new RecordSet(); - rs.execute(execute); - //建模需要权限重构 - Integer modeId = pushRecordPO.getModeId(); - if (modeId != null) { - String tableName = pushRecordPO.getTableName(); - rs.executeQuery("select max(id) from " + tableName); - int mainId = 0; - if (rs.next()) { - mainId = rs.getInt(1); - } - ModeRightInfo ModeRightInfo = new ModeRightInfo(); - ModeRightInfo.setNewRight(true); - ModeRightInfo.editModeDataShare(1, modeId, mainId); - } + boolean success = rs.execute(execute); + if (success) { + //建模需要权限重构 + Integer modeId = pushRecordPO.getModeId(); + if (modeId != null) { + String tableName = pushRecordPO.getTableName(); + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); - pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + //记录数据id + pushRecordDetailPO.setDataId((long) mainId); + } + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + } else { + pushRecordDetailPO.setFailReason("sql执行失败"); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); + } } catch (Exception e) { pushRecordDetailPO.setFailReason(e.getMessage()); pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); @@ -462,31 +475,25 @@ public class PushServiceImpl extends Service implements PushService { pushRecordPO.setStartTime(new Date()); pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW.getValue()); getPushRecordMapper().updateIgnoreNull(pushRecordPO); + + PushSettingPO pushSettingPO = getPushSettingMapper().getById(pushRecordPO.getSettingId()); + String tableName = pushSettingPO.getTableName(); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); pushRecordDetailPOS.forEach(pushRecordDetailPO -> { - try { - String execute = pushRecordDetailPO.getExecute(); RecordSet rs = new RecordSet(); - rs.execute(execute); - //建模需要权限重构 - Integer modeId = pushRecordPO.getModeId(); - if (modeId != null) { - String tableName = pushRecordPO.getTableName(); - rs.executeQuery("select max(id) from " + tableName); - int mainId = 0; - if (rs.next()) { - mainId = rs.getInt(1); - } - ModeRightInfo ModeRightInfo = new ModeRightInfo(); - ModeRightInfo.setNewRight(true); - ModeRightInfo.editModeDataShare(1, modeId, mainId); + String sql = String.format("delete from %s where id = %s", tableName, pushRecordDetailPO.getDataId()); + boolean execute = rs.execute(sql); + if (execute) { + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_SUCCESS.getValue()); + } else { + pushRecordDetailPO.setFailReason("sql执行失败"); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_FAIL.getValue()); } - - pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); } catch (Exception e) { pushRecordDetailPO.setFailReason(e.getMessage()); - pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_FAIL.getValue()); } getPushRecordDetailMapper().updateIgnoreNull(pushRecordDetailPO); }); @@ -500,15 +507,6 @@ public class PushServiceImpl extends Service implements PushService { getPushRecordMapper().updateIgnoreNull(pushRecordPO); } - /** - * 启动推送 - * - * @param recordIds - */ - private void startBatchPush(List recordIds) { - recordIds.forEach(this::push); - } - @Override public void removeRecords(List recordIds) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 4ac2e690f..c451f0f67 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -543,7 +543,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe getSalaryStatisticsReportService(user).removeReportCache(); - //获取推送配置 + //开始推送数据 getPushService(user).createPushRecord(salaryAcctRecordId); @@ -570,6 +570,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // 重新核算 reCalcOrBackCalc(salaryAcctRecordPO, true); + //开始推送数据 + getPushService(user).withdrawPushRecord(salaryAcctRecordId); + // // 查询税款所在年的该个税扣缴义务人所有薪资核算记录 // // 获取账套所属个税扣缴义务人的核算记录 From c32dab5562a6b1ad323222c8ae18aca3bbbaf580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 7 Apr 2025 13:50:34 +0800 Subject: [PATCH 155/184] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=92=A4=E5=9B=9E?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/PushServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index fd1d7ec4d..ac7a8902e 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -408,6 +408,9 @@ public class PushServiceImpl extends Service implements PushService { @Override public void withdrawPushRecord(Long salaryAcctRecordId) { List pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().acctRecordId(salaryAcctRecordId).status(PushRecordStatusEnum.RUN_SUCCESS.getValue()).build()); + if (CollUtil.isEmpty(pushRecordPOS)) { + return; + } pushRecordPOS.stream().map(PushRecordPO::getId).forEach(this::withdraw); } From c04dad0c4dcc77d3a2e7965599cdc5bb94fb4177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Apr 2025 14:23:38 +0800 Subject: [PATCH 156/184] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202411190103.sql | 2 +- resource/sqlupgrade/GS/sql202411190103.sql | 2 +- resource/sqlupgrade/JC/sql202411190103.sql | 2 +- resource/sqlupgrade/Mysql/sql202411190103.sql | 2 +- .../sqlupgrade/Oracle/sql202411190103.sql | 2 +- resource/sqlupgrade/PG/sql202411190103.sql | 2 +- .../sqlupgrade/SQLServer/sql202411190103.sql | 2 +- resource/sqlupgrade/ST/sql202411190103.sql | 2 +- .../entity/push/po/PushRecordDetailPO.java | 2 +- .../mapper/push/PushRecordDetailMapper.xml | 24 +++++++++---------- .../salary/service/impl/PushServiceImpl.java | 6 ++--- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/resource/sqlupgrade/DM/sql202411190103.sql b/resource/sqlupgrade/DM/sql202411190103.sql index 1ed27c6fd..1d13e52dd 100644 --- a/resource/sqlupgrade/DM/sql202411190103.sql +++ b/resource/sqlupgrade/DM/sql202411190103.sql @@ -57,7 +57,7 @@ CREATE TABLE hrsa_push_record_detail id NUMBER(38,0) NOT NULL, record_id NUMBER(38,0), acct_emp_id NUMBER(38,0), - execute CLOB, + formula CLOB, execute_time date, status number, creator NUMBER(38,0), diff --git a/resource/sqlupgrade/GS/sql202411190103.sql b/resource/sqlupgrade/GS/sql202411190103.sql index 1ed27c6fd..1d13e52dd 100644 --- a/resource/sqlupgrade/GS/sql202411190103.sql +++ b/resource/sqlupgrade/GS/sql202411190103.sql @@ -57,7 +57,7 @@ CREATE TABLE hrsa_push_record_detail id NUMBER(38,0) NOT NULL, record_id NUMBER(38,0), acct_emp_id NUMBER(38,0), - execute CLOB, + formula CLOB, execute_time date, status number, creator NUMBER(38,0), diff --git a/resource/sqlupgrade/JC/sql202411190103.sql b/resource/sqlupgrade/JC/sql202411190103.sql index 1ed27c6fd..1d13e52dd 100644 --- a/resource/sqlupgrade/JC/sql202411190103.sql +++ b/resource/sqlupgrade/JC/sql202411190103.sql @@ -57,7 +57,7 @@ CREATE TABLE hrsa_push_record_detail id NUMBER(38,0) NOT NULL, record_id NUMBER(38,0), acct_emp_id NUMBER(38,0), - execute CLOB, + formula CLOB, execute_time date, status number, creator NUMBER(38,0), diff --git a/resource/sqlupgrade/Mysql/sql202411190103.sql b/resource/sqlupgrade/Mysql/sql202411190103.sql index 98b55261c..fdfc32280 100644 --- a/resource/sqlupgrade/Mysql/sql202411190103.sql +++ b/resource/sqlupgrade/Mysql/sql202411190103.sql @@ -59,7 +59,7 @@ CREATE TABLE hrsa_push_record_detail id bigint(0) NOT NULL, record_id bigint(0), acct_emp_id bigint(0), - execute text, + formula text, execute_time datetime(0), status int(0), creator bigint(0), diff --git a/resource/sqlupgrade/Oracle/sql202411190103.sql b/resource/sqlupgrade/Oracle/sql202411190103.sql index 27e5d3cc9..09f3ee1bd 100644 --- a/resource/sqlupgrade/Oracle/sql202411190103.sql +++ b/resource/sqlupgrade/Oracle/sql202411190103.sql @@ -59,7 +59,7 @@ CREATE TABLE hrsa_push_record_detail id NUMBER(38,0) NOT NULL, record_id NUMBER(38,0), acct_emp_id NUMBER(38,0), - execute CLOB, + formula CLOB, execute_time date, status number, creator NUMBER(38,0), diff --git a/resource/sqlupgrade/PG/sql202411190103.sql b/resource/sqlupgrade/PG/sql202411190103.sql index 0e2ba412e..5f4272388 100644 --- a/resource/sqlupgrade/PG/sql202411190103.sql +++ b/resource/sqlupgrade/PG/sql202411190103.sql @@ -59,7 +59,7 @@ CREATE TABLE hrsa_push_record_detail id bigint NOT NULL, record_id bigint, acct_emp_id bigint, - execute text, + formula text, execute_time timestamp, status int, creator bigint, diff --git a/resource/sqlupgrade/SQLServer/sql202411190103.sql b/resource/sqlupgrade/SQLServer/sql202411190103.sql index fd993c777..dd06040a8 100644 --- a/resource/sqlupgrade/SQLServer/sql202411190103.sql +++ b/resource/sqlupgrade/SQLServer/sql202411190103.sql @@ -62,7 +62,7 @@ CREATE TABLE hrsa_push_record_detail id bigint NOT NULL, record_id bigint, acct_emp_id bigint, - execute text, + formula text, execute_time datetime, status int, creator bigint, diff --git a/resource/sqlupgrade/ST/sql202411190103.sql b/resource/sqlupgrade/ST/sql202411190103.sql index 1ed27c6fd..1d13e52dd 100644 --- a/resource/sqlupgrade/ST/sql202411190103.sql +++ b/resource/sqlupgrade/ST/sql202411190103.sql @@ -57,7 +57,7 @@ CREATE TABLE hrsa_push_record_detail id NUMBER(38,0) NOT NULL, record_id NUMBER(38,0), acct_emp_id NUMBER(38,0), - execute CLOB, + formula CLOB, execute_time date, status number, creator NUMBER(38,0), diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java index f971532e6..88308a8b6 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -56,7 +56,7 @@ public class PushRecordDetailPO { * 执行sql */ @ElogTransform(name = "执行sql") - private String execute; + private String formula; /** * 创建时间 diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml index bdbee38fc..73220be28 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -6,7 +6,7 @@ - + @@ -24,7 +24,7 @@ , t.create_time , t.creator , t.delete_type - , t.execute + , t.formula , t.id , t.record_id , t.status @@ -68,8 +68,8 @@ AND delete_type = #{deleteType} - - AND execute = #{execute} + + AND formula = #{formula} AND id = #{id} @@ -101,7 +101,7 @@ , t.create_time , t.creator , t.delete_type - , t.execute + , t.formula , t.id , t.record_id , t.status @@ -161,8 +161,8 @@ delete_type, - - execute, + + formula, id, @@ -199,8 +199,8 @@ #{deleteType}, - - #{execute}, + + #{formula}, #{id}, @@ -234,7 +234,7 @@ create_time=#{createTime}, creator=#{creator}, delete_type=#{deleteType}, - execute=#{execute}, + formula=#{formula}, record_id=#{recordId}, status=#{status}, tenant_key=#{tenantKey}, @@ -262,8 +262,8 @@ delete_type=#{deleteType}, - - execute=#{execute}, + + formula=#{formula}, record_id=#{recordId}, diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index ac7a8902e..cf01efde8 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -378,7 +378,7 @@ public class PushServiceImpl extends Service implements PushService { .acctEmpId(emp.getId()) .recordId(record.getId()) .status(PushRecordDetailStatusEnum.PREPARE.getValue()) - .execute(sql) + .formula(sql) .createTime(now) .updateTime(now) .creator((long) user.getUID()) @@ -428,9 +428,9 @@ public class PushServiceImpl extends Service implements PushService { pushRecordDetailPOS.forEach(pushRecordDetailPO -> { try { - String execute = pushRecordDetailPO.getExecute(); + String formula = pushRecordDetailPO.getFormula(); RecordSet rs = new RecordSet(); - boolean success = rs.execute(execute); + boolean success = rs.execute(formula); if (success) { //建模需要权限重构 Integer modeId = pushRecordPO.getModeId(); From 0bcafd39344f889003338d37afb0fe4d9a2f9ef7 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 9 Apr 2025 17:20:48 +0800 Subject: [PATCH 157/184] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=AA=E7=A8=8E?= =?UTF-8?q?=E7=94=B3=E6=8A=A5=20=E4=B8=8D=E5=90=8C=E7=A8=8E=E6=AC=BE?= =?UTF-8?q?=E6=89=80=E5=B1=9E=E6=9C=9F=E6=A0=A1=E9=AA=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml | 3 +++ .../engine/salary/service/impl/TaxDeclarationServiceImpl.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 243855ec1..12d7e6c4a 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -143,6 +143,9 @@ AND t.tax_cycle #{taxCycleDateRange.endDate} + + AND sob.tax_agent_id = #{taxAgentId} + ORDER BY t.id DESC select e.id as employeeId, e.lastname as username, + e.sex as sex, e.certificatenum as idNo, e.status as status, e.workcode as workcode, @@ -41,6 +43,7 @@