处理外籍人员

This commit is contained in:
钱涛 2024-04-01 17:07:36 +08:00
parent 8e2ff975a9
commit 57a0030cc8
5 changed files with 65 additions and 67 deletions

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.taxdeclaration.param; package com.engine.salary.entity.taxdeclaration.param;
import com.engine.salary.enums.salarysob.DeclareReportTypeEnum;
import lombok.Data; import lombok.Data;
/** /**
@ -18,6 +19,7 @@ public class TaxDeclareRecordParam {
/** /**
* 申报类型 * 申报类型
* @see DeclareReportTypeEnum
*/ */
private Integer reportType; private Integer reportType;
} }

View File

@ -194,5 +194,5 @@ public interface TaxDeclareRecordService {
void updateById(TaxDeclareRecordPO taxDeclareRecord); void updateById(TaxDeclareRecordPO taxDeclareRecord);
void getTaxReportType(Long id); List<TaxDeclareStatusPO> getTaxReports(Long id);
} }

View File

@ -642,22 +642,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType); DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType);
TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType); TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType);
if (declareStatus == null) {
declareStatus = TaxDeclareStatusPO.builder()
.id(IdGenerator.generate())
.taxDeclareRecordId(id)
.reportType(reportType)
.taxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue())
.taxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue())
.taxDeclareErrorMsg("")
.personNum(0)
.taxPayAmount("")
.taxPaidAmount("")
.taxPurePaidAmount("")
.deleteType(0)
.build();
getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus);
}
TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id);
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord();
@ -757,7 +742,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
} }
@Override @Override
public List<TaxDeclareStatusPO> getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId) { public List<TaxDeclareStatusPO> getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId) {
return getTaxDeclareStatusMapper().listSome(TaxDeclareStatusPO.builder().taxDeclareRecordId(taxDeclareRecordId).build()); return getTaxDeclareStatusMapper().listSome(TaxDeclareStatusPO.builder().taxDeclareRecordId(taxDeclareRecordId).build());
} }
@ -1200,28 +1185,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
} }
@Override @Override
public void getTaxReportType(Long id) { public List<TaxDeclareStatusPO> getTaxReports(Long id) {
List<TaxDeclareStatusPO> taxDeclareStatusByTaxDeclareRecordId = getTaxDeclareStatusByTaxDeclareRecordId(id);
DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType);
TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType);
if (declareStatus == null) {
declareStatus = TaxDeclareStatusPO.builder()
.id(IdGenerator.generate())
.taxDeclareRecordId(id)
.reportType(reportType)
.taxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue())
.taxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue())
.taxDeclareErrorMsg("")
.personNum(0)
.taxPayAmount("")
.taxPaidAmount("")
.taxPurePaidAmount("")
.deleteType(0)
.build();
getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus);
}
// 查询个税申报记录 // 查询个税申报记录
TaxDeclareRecordPO taxDeclareRecord = getById(id); TaxDeclareRecordPO taxDeclareRecord = getById(id);
@ -1235,9 +1199,37 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156494, "当前无可申报的数据")); throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156494, "当前无可申报的数据"));
} }
taxDeclarations.forEach(taxDeclarationPO -> { Set<Integer> reportTypes = new HashSet<>();
taxDeclarations.forEach(taxDeclarationPO -> {
reportTypes.add(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()).getReportType().getValue());
}); });
List<TaxDeclareStatusPO> statuses = new ArrayList<>();
reportTypes.forEach(reportType -> {
TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType);
if (declareStatus == null) {
declareStatus = TaxDeclareStatusPO.builder()
.id(IdGenerator.generate())
.taxDeclareRecordId(id)
.reportType(reportType)
.taxDeclareType(taxDeclareRecord.getTaxDeclareType())
.taxDeclareStatus(taxDeclareRecord.getTaxDeclareStatus())
.taxDeclareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg())
.personNum(taxDeclareRecord.getPersonNum())
.taxPayAmount(taxDeclareRecord.getTaxPayAmount())
.taxPaidAmount(taxDeclareRecord.getTaxPaidAmount())
.taxPurePaidAmount(taxDeclareRecord.getTaxPaidAmount())
.deleteType(0)
.build();
getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus);
}
statuses.add(declareStatus);
});
return statuses;
} }

View File

@ -3,6 +3,7 @@ package com.engine.salary.web;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.taxdeclaration.dto.*; import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.param.*; import com.engine.salary.entity.taxdeclaration.param.*;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.service.TaxDeclarationExcelService; import com.engine.salary.service.TaxDeclarationExcelService;
import com.engine.salary.service.TaxDeclarationService; import com.engine.salary.service.TaxDeclarationService;
@ -98,25 +99,24 @@ public class TaxDeclarationController {
* @return * @return
*/ */
@GET @GET
@Path("/getTaxReportType") @Path("/getTaxReports")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String getTaxReportType(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { public String getTaxReportType(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, Object>(user).run(getTaxDeclareRecordWrapper(user)::getTaxReportType, id); return new ResponseResult<Long, List<TaxDeclareStatusPO>>(user).run(getTaxDeclareRecordWrapper(user)::getTaxReports, id);
} }
/** /**
* 个税申报表相关信息 * 个税申报表相关信息
* *
* @param id 个税申报记录id
* @return * @return
*/ */
@GET @POST
@Path("/getTaxDeclarationInfo") @Path("/getTaxDeclarationInfo")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, TaxDeclarationInfoDTO>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, id); return new ResponseResult<TaxDeclareRecordParam, TaxDeclarationInfoDTO>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, param);
} }
/** /**
@ -179,15 +179,14 @@ public class TaxDeclarationController {
/** /**
* 获取个税申报记录下的个税申报表TAB * 获取个税申报记录下的个税申报表TAB
* *
* @param id 个税申报记录id
* @return * @return
*/ */
@GET @POST
@Path("/getTaxDeclarationTab") @Path("/getTaxDeclarationTab")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, List<TaxDeclarationTabDTO>>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, id); return new ResponseResult<TaxDeclareRecordParam, List<TaxDeclarationTabDTO>>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, param);
} }
/** /**
@ -199,7 +198,7 @@ public class TaxDeclarationController {
@POST @POST
@Path("/addTaxDeclaration") @Path("/addTaxDeclaration")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationAddParam param) { public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationAddParam param) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<TaxDeclarationAddParam, String>(user).run(getTaxDeclareRecordWrapper(user)::addTaxDeclaration, param); return new ResponseResult<TaxDeclarationAddParam, String>(user).run(getTaxDeclareRecordWrapper(user)::addTaxDeclaration, param);
} }
@ -215,7 +214,7 @@ public class TaxDeclarationController {
@POST @POST
@Path("/deleteTaxDeclaration") @Path("/deleteTaxDeclaration")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationDeleteParam param) { public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationDeleteParam param) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<TaxDeclarationDeleteParam, String>(user).run(getTaxDeclareRecordWrapper(user)::deleteTaxDeclaration, param); return new ResponseResult<TaxDeclarationDeleteParam, String>(user).run(getTaxDeclareRecordWrapper(user)::deleteTaxDeclaration, param);
} }

View File

@ -17,6 +17,7 @@ import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.enums.employeedeclare.CardTypeEnum;
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum; import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum;
import com.engine.salary.enums.salarysob.DeclareReportTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum;
@ -287,18 +288,20 @@ public class TaxDeclareRecordWrapper extends Service {
/** /**
* 获取个税申报记录下的个税申报表TAB * 获取个税申报记录下的个税申报表TAB
* *
* @param id
* @return * @return
*/ */
public List<TaxDeclarationTabDTO> getTaxDeclarationTab(Long id) { public List<TaxDeclarationTabDTO> getTaxDeclarationTab(TaxDeclareRecordParam param) {
// 查询个税申报记录 // 查询个税申报记录
TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId());
// 查询个税申报记录下的个税申报表 // 查询个税申报记录下的个税申报表
List<TaxDeclarationPO> taxDeclarations = getTaxDeclarationService(user).listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()), List<TaxDeclarationPO> taxDeclarations = getTaxDeclarationService(user).listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()),
Collections.singleton(taxDeclareRecord.getTaxAgentId())); Collections.singleton(taxDeclareRecord.getTaxAgentId()));
// taxDeclarations = taxDeclarations.stream()
// .filter(e -> Objects.equals(e.getControlView(), 0) || Objects.equals(e.getCreator(), (long)user.getUID())) //筛选申报类型
// .collect(Collectors.toList()); DeclareReportTypeEnum declareReportTypeEnum = DeclareReportTypeEnum.parseByValue(param.getReportType());
taxDeclarations = taxDeclarations.stream().filter(po -> IncomeCategoryEnum.parseByValue(po.getIncomeCategory()).getReportType() == declareReportTypeEnum).collect(Collectors.toList());
Map<Integer, TaxDeclarationPO> taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarations, TaxDeclarationPO::getIncomeCategory); Map<Integer, TaxDeclarationPO> taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarations, TaxDeclarationPO::getIncomeCategory);
List<TaxDeclarationTabDTO> tabs = Lists.newArrayList(); List<TaxDeclarationTabDTO> tabs = Lists.newArrayList();
for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) { for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) {
@ -331,12 +334,12 @@ public class TaxDeclareRecordWrapper extends Service {
/** /**
* 查询个税申报表的基本信息 * 查询个税申报表的基本信息
* *
* @param id 个税申报表id
* @return * @return
*/ */
public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id) { public TaxDeclarationInfoDTO getTaxDeclarationInfoById(TaxDeclareRecordParam param) {
// 查询个税申报表 // 查询个税申报表
TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); Long taxDeclareRecordId = param.getTaxDeclareRecordId();
TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(taxDeclareRecordId);
if (Objects.isNull(taxDeclareRecord)) { if (Objects.isNull(taxDeclareRecord)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除")); throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "个税申报表不存在或已删除"));
} }
@ -352,8 +355,10 @@ public class TaxDeclareRecordWrapper extends Service {
List<TaxDeclareFailPO> taxDeclareFails = getTaxDeclareFailService(user).listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId())); List<TaxDeclareFailPO> taxDeclareFails = getTaxDeclareFailService(user).listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId()));
// 查询个税扣缴义务人 // 查询个税扣缴义务人
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId()); TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId());
TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.class);
TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.class); TaxDeclareStatusPO taxDeclareStatus = getTaxDeclareRecordService(user).getTaxDeclareStatus(taxDeclareRecordId, param.getReportType());
TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareType(), TaxDeclareTypeEnum.class);
TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.class);
return TaxDeclarationInfoDTO.builder() return TaxDeclarationInfoDTO.builder()
.salaryMonth(taxDeclareRecord.getSalaryMonth()) .salaryMonth(taxDeclareRecord.getSalaryMonth())
@ -364,7 +369,7 @@ public class TaxDeclareRecordWrapper extends Service {
.declareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel())) .declareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel()))
.declareStatus(taxDeclareStatusEnum) .declareStatus(taxDeclareStatusEnum)
.declareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel())) .declareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel()))
.declareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg()) .declareErrorMsg(taxDeclareStatus.getTaxDeclareErrorMsg())
.displayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1)) .displayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1))
.declareFailSize(taxDeclareFails.size()) .declareFailSize(taxDeclareFails.size())
.abnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size()) .abnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size())
@ -871,7 +876,7 @@ public class TaxDeclareRecordWrapper extends Service {
SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext);
} }
public void getTaxReportType(Long id) { public List<TaxDeclareStatusPO> getTaxReports(Long id) {
getTaxDeclareRecordService(user).getTaxReportType(id); return getTaxDeclareRecordService(user).getTaxReports(id);
} }
} }