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); + } + /** * 薪资核算-校验