联特修复
This commit is contained in:
parent
16d50d8c1a
commit
a7e910a672
|
|
@ -225,6 +225,7 @@ public interface SalaryAcctRecordService {
|
|||
* @param salaryAcctRecordIds
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<SalaryAcctTaxAgentPO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1015,6 +1015,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
return getSalaryAcctRecordMapper().listSome(po);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public List<SalaryAcctTaxAgentPO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordIds)) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import com.engine.salary.entity.salaryacct.param.SalaryAcctEmployeeQueryParam;
|
|||
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.salaryacct.po.SalaryAcctTaxAgentPO;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobAddUpRulePO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
|
|
@ -328,13 +327,17 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
// List<SalaryAcctRecordPO> salaryAcctRecords = getSalaryAcctRecordService(user).listBySalaryMonth(salaryMonthRange);
|
||||
|
||||
|
||||
// 查询薪资核算记录关联的个税扣缴义务人
|
||||
List<SalaryAcctTaxAgentPO> salaryAcctTaxAgents = getSalaryAcctRecordService(user).listBySalaryAcctRecordIds(SalaryEntityUtil.properties(salaryAcctRecords, SalaryAcctRecordPO::getId));
|
||||
// 按照saveParam中的个税扣缴义务人范围过滤
|
||||
List<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgents, TaxAgentPO::getId, Collectors.toList());
|
||||
salaryAcctTaxAgents = salaryAcctTaxAgents.stream().filter(e -> taxAgentIds.contains(e.getTaxAgentId())).collect(Collectors.toList());
|
||||
List<Long> salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctTaxAgents, SalaryAcctTaxAgentPO::getSalaryAcctRecordId, Collectors.toList());
|
||||
salaryAcctRecords = salaryAcctRecords.stream().filter(e -> salaryAcctRecordIds.contains(e.getId())).collect(Collectors.toList());
|
||||
// 获取义务人下有那些账套
|
||||
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentId(saveParam.getTaxAgentId());
|
||||
List<Long> salarySobIds = salarySobPOS.stream().map(SalarySobPO::getId).collect(Collectors.toList());
|
||||
// // 查询薪资核算记录关联的个税扣缴义务人
|
||||
// List<SalaryAcctTaxAgentPO> salaryAcctTaxAgents = getSalaryAcctRecordService(user).listBySalaryAcctRecordIds(SalaryEntityUtil.properties(salaryAcctRecords, SalaryAcctRecordPO::getId));
|
||||
// // 按照saveParam中的个税扣缴义务人范围过滤
|
||||
// List<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgents, TaxAgentPO::getId, Collectors.toList());
|
||||
// salaryAcctTaxAgents = salaryAcctTaxAgents.stream().filter(e -> taxAgentIds.contains(e.getTaxAgentId())).collect(Collectors.toList());
|
||||
// List<Long> salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctTaxAgents, SalaryAcctTaxAgentPO::getSalaryAcctRecordId, Collectors.toList());
|
||||
// salaryAcctRecords = salaryAcctRecords.stream().filter(e -> salaryAcctRecordIds.contains(e.getId())).collect(Collectors.toList());
|
||||
salaryAcctRecords = salaryAcctRecords.stream().filter(r -> salarySobIds.contains(r.getSalarySobId())).collect(Collectors.toList());
|
||||
|
||||
//二开,自离账套不参与申报
|
||||
String notaxsobids = getSalarySysConfService(user).getValueByCode("notaxsobids");
|
||||
|
|
@ -344,7 +347,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
List<Long> finalSalaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctRecords, SalaryAcctRecordPO::getId, Collectors.toList());
|
||||
// 校验是否可以生成个税申报表
|
||||
// 返回目前已经生成的个税申报表
|
||||
List<TaxDeclareRecordPO> taxDeclareRecords = checkBeforeSave(saveParam, taxAgentNameMap, salaryAcctRecords, salaryAcctTaxAgents);
|
||||
List<TaxDeclareRecordPO> taxDeclareRecords = checkBeforeSave(saveParam, taxAgentNameMap, salaryAcctRecords);
|
||||
Map<String, TaxDeclareRecordPO> taxDeclareRecordMap = SalaryEntityUtil.convert2Map(taxDeclareRecords, e -> e.getTaxCycle() + "-" + e.getTaxAgentId());
|
||||
// 查询薪资核算人员
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployees = getSalaryAcctEmployeeService(user).listByRecordIdsAndEmpIdAndTaxAgentId(finalSalaryAcctRecordIds, null, taxAgents.stream().findFirst().orElse(new TaxAgentPO()).getId());
|
||||
|
|
@ -403,7 +406,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
|
||||
|
||||
//更新核算记录状态
|
||||
getSalaryAcctRecordService(user).updateStatusByIds(salaryAcctRecordIds, SalaryAcctRecordStatusEnum.DECLARED);
|
||||
getSalaryAcctRecordService(user).updateStatusByIds(finalSalaryAcctRecordIds, SalaryAcctRecordStatusEnum.DECLARED);
|
||||
// 记录日志
|
||||
for (TaxDeclareRecordPO taxDeclareRecord : newTaxDeclareRecords) {
|
||||
LoggerContext<TaxDeclarationPO> loggerContext = new LoggerContext<>();
|
||||
|
|
@ -561,9 +564,9 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
* @param saveParam
|
||||
* @param taxAgentNameMap
|
||||
* @param salaryAcctRecords
|
||||
* @param salaryAcctTaxAgents
|
||||
* @param
|
||||
*/
|
||||
private List<TaxDeclareRecordPO> checkBeforeSave(TaxDeclarationSaveParam saveParam, Map<Long, String> taxAgentNameMap, List<SalaryAcctRecordPO> salaryAcctRecords, List<SalaryAcctTaxAgentPO> salaryAcctTaxAgents) {
|
||||
private List<TaxDeclareRecordPO> checkBeforeSave(TaxDeclarationSaveParam saveParam, Map<Long, String> taxAgentNameMap, List<SalaryAcctRecordPO> salaryAcctRecords) {
|
||||
List<TaxDeclareRecordPO> resultList = Lists.newArrayList();
|
||||
// 如果存在未归档的薪资核算记录,不允许生成个税申报表
|
||||
boolean notArchived = salaryAcctRecords.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()));
|
||||
|
|
@ -580,17 +583,25 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(177860, "{0}无可申报数据").replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
||||
}
|
||||
// 查询已归档的薪资核算记录是否已经生成过个税申报表
|
||||
Map<Date, List<SalaryAcctTaxAgentPO>> taxCycleKeySalaryAcctTaxAgentMap = SalaryEntityUtil.group2Map(salaryAcctTaxAgents, SalaryAcctTaxAgentPO::getTaxCycle);
|
||||
for (Map.Entry<Date, List<SalaryAcctTaxAgentPO>> taxCycleEntry : taxCycleKeySalaryAcctTaxAgentMap.entrySet()) {
|
||||
Set<Long> archivedTaxAgentIds = SalaryEntityUtil.properties(taxCycleEntry.getValue(), SalaryAcctTaxAgentPO::getTaxAgentId);
|
||||
List<TaxDeclareRecordPO> taxDeclareRecords = listBySalaryMonthAndTaxAgentIds(saveParam.getSalaryMonth(), archivedTaxAgentIds);
|
||||
TaxDeclareRecordPO declareSuccessTaxDeclareRecord = taxDeclareRecords.stream().filter(taxDeclareRecordPO -> archivedTaxAgentIds.contains(taxDeclareRecordPO.getTaxAgentId()) && !(Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), NOT_DECLARE.getValue()) || Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue()))).findAny().orElse(null);
|
||||
// 已经申报成功了的个税申报表的个税扣缴义务人不允许重新生成
|
||||
if (Objects.nonNull(declareSuccessTaxDeclareRecord)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160522, "已开启智能算薪业务,个税扣缴义务人{0}的税款所属期{1}的个税申报表正在申报中或者已经申报成功,不可重复生成").replace("{0}", taxAgentNameMap.get(declareSuccessTaxDeclareRecord.getTaxAgentId())).replace("{1}", SalaryDateUtil.getFormatYearMonth(declareSuccessTaxDeclareRecord.getTaxCycle())));
|
||||
}
|
||||
resultList.addAll(taxDeclareRecords);
|
||||
List<TaxDeclareRecordPO> taxDeclareRecords = listBySalaryMonthAndTaxAgentIds(saveParam.getSalaryMonth(), Collections.singletonList(saveParam.getTaxAgentId()));
|
||||
TaxDeclareRecordPO declareSuccessTaxDeclareRecord = taxDeclareRecords.stream().filter(taxDeclareRecordPO -> !(Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), NOT_DECLARE.getValue()) || Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue()))).findAny().orElse(null);
|
||||
// 已经申报成功了的个税申报表的个税扣缴义务人不允许重新生成
|
||||
if (Objects.nonNull(declareSuccessTaxDeclareRecord)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160522, "已开启智能算薪业务,个税扣缴义务人{0}的税款所属期{1}的个税申报表正在申报中或者已经申报成功,不可重复生成").replace("{0}", taxAgentNameMap.get(declareSuccessTaxDeclareRecord.getTaxAgentId())).replace("{1}", SalaryDateUtil.getFormatYearMonth(declareSuccessTaxDeclareRecord.getTaxCycle())));
|
||||
}
|
||||
resultList.addAll(taxDeclareRecords);
|
||||
|
||||
// Map<Date, List<SalaryAcctTaxAgentPO>> taxCycleKeySalaryAcctTaxAgentMap = SalaryEntityUtil.group2Map(salaryAcctTaxAgents, SalaryAcctTaxAgentPO::getTaxCycle);
|
||||
// for (Map.Entry<Date, List<SalaryAcctTaxAgentPO>> taxCycleEntry : taxCycleKeySalaryAcctTaxAgentMap.entrySet()) {
|
||||
// Set<Long> archivedTaxAgentIds = SalaryEntityUtil.properties(taxCycleEntry.getValue(), SalaryAcctTaxAgentPO::getTaxAgentId);
|
||||
// List<TaxDeclareRecordPO> taxDeclareRecords = listBySalaryMonthAndTaxAgentIds(saveParam.getSalaryMonth(), archivedTaxAgentIds);
|
||||
// TaxDeclareRecordPO declareSuccessTaxDeclareRecord = taxDeclareRecords.stream().filter(taxDeclareRecordPO -> archivedTaxAgentIds.contains(taxDeclareRecordPO.getTaxAgentId()) && !(Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), NOT_DECLARE.getValue()) || Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue()))).findAny().orElse(null);
|
||||
// // 已经申报成功了的个税申报表的个税扣缴义务人不允许重新生成
|
||||
// if (Objects.nonNull(declareSuccessTaxDeclareRecord)) {
|
||||
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160522, "已开启智能算薪业务,个税扣缴义务人{0}的税款所属期{1}的个税申报表正在申报中或者已经申报成功,不可重复生成").replace("{0}", taxAgentNameMap.get(declareSuccessTaxDeclareRecord.getTaxAgentId())).replace("{1}", SalaryDateUtil.getFormatYearMonth(declareSuccessTaxDeclareRecord.getTaxCycle())));
|
||||
// }
|
||||
// resultList.addAll(taxDeclareRecords);
|
||||
// }
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue