diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java index 53795f78d..85946e041 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationPO.java @@ -116,14 +116,6 @@ public class TaxDeclarationPO { //结束日期 private Date taxCycleEndDate; - - /** - * 税款所属期 - */ - LocalDateRange taxMonths; - - - private Collection taxAgentIds; private Set opts; } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 29345763f..b485b65ba 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -3,6 +3,8 @@ 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.kq.service.KQGroupService; +import com.engine.kq.service.impl.KQGroupServiceImpl; import com.engine.salary.biz.SalarySobBiz; import com.engine.salary.biz.SalarySobItemBiz; import com.engine.salary.biz.SalarySobItemGroupBiz; @@ -42,7 +44,6 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalaryValueTypeEnum; import com.engine.salary.enums.auth.AuthFilterTypeEnum; -import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum; import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -188,6 +189,12 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe return ServiceUtil.getService(VariableArchiveServiceImpl.class, user); } + private KQGroupService getKQGroupService() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + return (KQGroupService) ServiceUtil.getService(KQGroupServiceImpl.class, user); + } @Override public List list() { @@ -1011,8 +1018,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe salaryAcctResultPOMap.put(et.getKey(), et.getValue().get(0).getOriginResultValue()); } List lastMonthResultPOS = getSalaryAcctResultService(user).listBySobSalaryMonth(SalaryDateUtil.toDate(salarySobCycleDTO.getSalaryMonth().minusMonths(1), 1), salaryAcctCalculateBO.getSalarySobPO().getId(), employeeIds); - CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, welfareData, attendQuoteDataDTOS, salaryAcctResultPOS, variableArchiveList,lastMonthResultPOS); - Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO); + CalculateFormulaVarBO calculateFormulaVarBO = new CalculateFormulaVarBO(simpleEmployees, salaryArchiveData, addUpSituationPOS, addUpDeductionPOS, otherDeductionPOS, welfareData, attendQuoteDataDTOS, salaryAcctResultPOS, variableArchiveList, lastMonthResultPOS); + KQGroupService kqGroupService = getKQGroupService(); + Map> formulaVarMap = calculateFormulaVarBO.convert2FormulaVar(salaryAcctCalculateBO, kqGroupService, null); Map resultMap = new HashMap<>(); formulaVarMap.entrySet().forEach(e -> { diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java index cdec3def1..e2b89bce1 100644 --- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java @@ -54,6 +54,8 @@ import com.engine.salary.remote.tax.response.declare.GetCompanyIncomesResponse; import com.engine.salary.remote.tax.response.declare.GetDeclareTaxResultFeedbackResponse; import com.engine.salary.service.*; import com.engine.salary.service.factory.TaxPaymentServiceFactory; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.*; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; @@ -181,6 +183,10 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe return ServiceUtil.getService(OtherDeductionServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + private TaxPaymentServiceFactory taxPaymentServiceFactory = new TaxPaymentServiceFactory(user); @@ -283,12 +289,19 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe salaryAcctTaxAgents = salaryAcctTaxAgents.stream().filter(e -> taxAgentIds.contains(e.getTaxAgentId())).collect(Collectors.toList()); List salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctTaxAgents, SalaryAcctTaxAgentPO::getSalaryAcctRecordId, Collectors.toList()); salaryAcctRecords = salaryAcctRecords.stream().filter(e -> salaryAcctRecordIds.contains(e.getId())).collect(Collectors.toList()); + + //二开,自离账套不参与申报 + String notaxsobids = getSalarySysConfService(user).getValueByCode("notaxsobids"); + List noTaxSobIds = Arrays.stream(notaxsobids.split(",")).map(Long::valueOf).collect(Collectors.toList()); + salaryAcctRecords = salaryAcctRecords.stream().filter(e -> !noTaxSobIds.contains(e.getSalarySobId())).collect(Collectors.toList()); + + List finalSalaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctRecords, SalaryAcctRecordPO::getId, Collectors.toList()); // 校验是否可以生成个税申报表 // 返回目前已经生成的个税申报表 List taxDeclareRecords = checkBeforeSave(saveParam, taxAgentNameMap, salaryAcctRecords, salaryAcctTaxAgents); Map taxDeclareRecordMap = SalaryEntityUtil.convert2Map(taxDeclareRecords, e -> e.getTaxCycle() + "-" + e.getTaxAgentId()); // 查询薪资核算人员 - List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listByRecordIdsAndEmpIdAndTaxAgentId(salaryAcctRecordIds, null, taxAgents.stream().findFirst().orElse(new TaxAgentPO()).getId()); + List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listByRecordIdsAndEmpIdAndTaxAgentId(finalSalaryAcctRecordIds, null, taxAgents.stream().findFirst().orElse(new TaxAgentPO()).getId()); // 薪资核算人员按照税款所属期聚合分类 Map> taxCycleKeyEmployeeMap = SalaryEntityUtil.group2Map(salaryAcctEmployees, SalaryAcctEmployeePO::getTaxCycle); for (Map.Entry> taxCycleEntry : taxCycleKeyEmployeeMap.entrySet()) { @@ -378,6 +391,12 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe .taxCycle(taxDeclareRecord.getTaxCycle()) .build(); List salaryAcctEmployees = getSalaryAcctEmployeeService(user).listByTaxCycleAndTaxAgentId(salaryAcctEmployeeQueryParam); + + //二开,自离账套不参与申报 + String notaxsobids = getSalarySysConfService(user).getValueByCode("notaxsobids"); + List noTaxSobIds = Arrays.stream(notaxsobids.split(",")).map(Long::valueOf).collect(Collectors.toList()); + salaryAcctEmployees = salaryAcctEmployees.stream().filter(e -> !noTaxSobIds.contains(e.getSalarySobId())).collect(Collectors.toList()); + // 查询薪资核算记录 Set salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctEmployees, SalaryAcctEmployeePO::getSalaryAcctRecordId); List salaryAcctRecords = getSalaryAcctRecordService(user).listByIds(salaryAcctRecordIds);