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] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=B4=A6=E5=A5=97=E6=90=BA?= =?UTF-8?q?=E5=B8=A6=E5=90=84=E6=89=A3=E7=BC=B4=E4=B9=89=E5=8A=A1=E4=BA=BA?= =?UTF-8?q?=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 { /** * 涓◣鎵g即涔夊姟浜虹殑涓婚敭id */ - @DataCheck(require = true, message = "涓◣鎵g即涔夊姟浜虹殑涓婚敭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; - /** - * 涓◣鎵g即涔夊姟浜篿d - */ - @DataCheck(require = true, message = "涓◣鎵g即涔夊姟浜轰笉鍏佽涓虹┖") - 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", "鎵g即涔夊姟浜哄拰浜哄憳娣峰悎楠岃瘉", 87627), EMP("EMP", "浜哄憳楠岃瘉", 87626), TAX("TAX", "鎵g即涔夊姟浜洪獙璇", 87626), - SOB("SOB", "鎵g即涔夊姟浜洪獙璇", 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); - /** * 鏍规嵁鎵g即涔夊姟浜烘煡璇 * @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(); + //缁欏悇绠$悊鍛樿祴鍊煎搴旂殑鎵g即涔夊姟浜烘潈闄 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); //淇濆瓨涓◣鎵g即涔夊姟浜鸿仈绯 - 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())); - }); - // 灏員axAgentManageRangeListDTO杞崲涓篠alarySobRangePO - 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())); + }); + // 灏員axAgentManageRangeListDTO杞崲涓篠alarySobRangePO + 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); //淇濆瓨涓◣鎵g即涔夊姟浜鸿仈绯 - 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; - } - // 鏌ヨ鎵鏈夌殑涓◣鎵g即涔夊姟浜 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 鏌ヨ涓◣鎵g即涔夊姟浜虹殑绠$悊鍛 - 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; - } - // 鏌ヨ鎵鏈夌殑涓◣鎵g即涔夊姟浜 - Collection taxAgentPOS = getTaxAgentService(user).listAll(); - Set allTaxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId); - // 鏌ヨ涓◣鎵g即涔夊姟浜虹殑绠$悊鍛 - 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);