From 822ad8745134137b2c3965ecd4a7bb01ced0e2ce Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 27 Jun 2023 14:58:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=A0=A1=E9=AA=8C=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SalaryAcctResultService.java | 7 ++++++ .../impl/SalaryAcctResultServiceImpl.java | 24 ++++++++++++++++++- .../salary/web/SalaryAcctController.java | 7 ++++++ .../wrapper/SalaryAcctResultWrapper.java | 13 +++++++++- 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index a2af68ac5..b15cf93bd 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -200,4 +200,11 @@ public interface SalaryAcctResultService { List listByAcctEmployeeIdsAndSalaryItemIds(Collection salaryAcctEmpIds, Collection salaryItemIds); List listAcctEmpIdByAcctEmpId(List salaryAcctEmployeeIds); + + /** + * 检查当前用户是否有查看权限 + * @param salaryAcctRecordId + * @return + */ + Boolean checkAuth(Long salaryAcctRecordId); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 1a7a539de..555738118 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -7,11 +7,11 @@ import com.engine.salary.common.LocalDateRange; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; +import com.engine.salary.entity.progress.ProgressDTO; import com.engine.salary.entity.report.bo.SalaryAcctResultReportBO; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.entity.salaryacct.bo.*; import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; -import com.engine.salary.entity.progress.ProgressDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO; import com.engine.salary.entity.salaryacct.param.*; @@ -20,6 +20,7 @@ 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.SalaryValueTypeEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum; @@ -173,6 +174,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return ServiceUtil.getService(SalaryStatisticsReportServiceImpl.class, user); } + private TaxAgentAdminService getTaxAgentAdminService(User user) { + return ServiceUtil.getService(TaxAgentAdminServiceImpl.class, user); + } + private SalaryCheckResultService salaryCheckResultService; @@ -1031,4 +1036,21 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // } return salaryItemIds; } + + @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; + } + return true; + } } \ No newline at end of file diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 1fdd0a7a6..8df680db0 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -371,6 +371,13 @@ public class SalaryAcctController { // **********************************薪资核算人员相关 end*********************************/ // **********************************薪资核算结果 start*********************************/ + @GET + @Path("/acctresult/checkAuth") + @Produces(MediaType.APPLICATION_JSON) + public String checkAuth(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam("salaryAcctRecordId") Long salaryAcctRecordId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryAcctResultWrapper(user)::checkAuth, salaryAcctRecordId); + } //薪资核算结果列表 @POST diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 13b292d0c..8c0e6404d 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -5,8 +5,8 @@ import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; import com.engine.salary.entity.progress.ProgressDTO; +import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO; import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam; @@ -249,6 +249,17 @@ public class SalaryAcctResultWrapper extends Service { } + /** + * 检查是否有薪资核算结果的查看权限 + * @param salaryAcctRecordId + */ + public Boolean checkAuth(Long salaryAcctRecordId) { + if(Objects.isNull(salaryAcctRecordId)){ + return false; + } + return getSalaryAcctResultService(user).checkAuth(salaryAcctRecordId); + } + /** * 薪资核算-校验 From 89ae0dc7863e4fb2c5516dfade9a81911164ef6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 27 Jun 2023 16:18:42 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=97=B6=E5=8F=82=E6=95=B0=E5=8F=98=E6=9B=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/report/entity/po/SalaryStatisticsItemPO.java | 6 ++---- .../service/impl/SalaryStatisticsItemServiceImpl.java | 2 +- .../report/wrapper/SalaryStatisticsReportWrapper.java | 9 ++++----- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/report/entity/po/SalaryStatisticsItemPO.java b/src/com/engine/salary/report/entity/po/SalaryStatisticsItemPO.java index 5343ae9b7..6acfff40d 100644 --- a/src/com/engine/salary/report/entity/po/SalaryStatisticsItemPO.java +++ b/src/com/engine/salary/report/entity/po/SalaryStatisticsItemPO.java @@ -1,10 +1,7 @@ package com.engine.salary.report.entity.po; import com.engine.salary.report.enums.UnitTypeEnum; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.io.Serializable; import java.util.Collection; @@ -14,6 +11,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor +@ToString //hrsa_salary_statistics_item") //薪酬报表统计子表自定义统计项") public class SalaryStatisticsItemPO implements Serializable { diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java index 72846cd1f..8c56dc7ef 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java @@ -46,7 +46,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt @Override public List listByStatisticsReportId(Long statisticsReportId) { if (statisticsReportId == null) { - return null; + return new ArrayList<>(); } return getSalaryStatisticsItemMapper().listSome(SalaryStatisticsItemPO.builder().statReportId(statisticsReportId).build()); } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 8b2f1b08b..d86adfee1 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -260,11 +260,12 @@ public class SalaryStatisticsReportWrapper extends Service { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在")); } + // 查询自定义统计项目 + List salaryStatisticsItemList = this.getSalaryStatisticsItemService(user).listByStatisticsReportId(po.getId()); + // 参数转换 SalaryStatisticsReportBO.poToQueryParam(param, po); - - - String paramMd5 = SecureUtil.md5(param.toString()); + String paramMd5 = SecureUtil.md5(param + salaryStatisticsItemList.toString()); //已缓存的报表id String salaryReportIds = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_IDS)); @@ -278,8 +279,6 @@ public class SalaryStatisticsReportWrapper extends Service { } - // 查询自定义统计项目 - List salaryStatisticsItemList = this.getSalaryStatisticsItemService(user).listByStatisticsReportId(po.getId()); // 列表data PageInfo> page = this.getSalaryStatisticsReportService(user).buildReportRecords(dimension, param, salaryStatisticsItemList); From 04f05281433eed25d06aff7ac8b7b702a265b898 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 27 Jun 2023 18:00:39 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88=E6=A8=A1=E6=9D=BF=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=B8=A6=E5=87=BA=E6=A1=A3=E6=A1=88=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryArchiveServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 1dcf84c18..952b24b60 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -390,7 +390,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe List salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); // 1.获取薪资档案所对应的当前生效的薪资项目数据 List salaryArchiveItemList = Collections.emptyList(); - if(CollectionUtils.isNotEmpty(ids) && CollectionUtils.isNotEmpty(salaryItemIds)){ + if(CollectionUtils.isNotEmpty(ids) && CollectionUtils.isNotEmpty(salaryItemIds) || !isPage){ salaryArchiveItemList = getCurrentEffectiveItemList(ids, salaryItemIds); } List finalSalaryArchiveItemList = salaryArchiveItemList;