申报表生成

This commit is contained in:
18895359881@163.com 2022-04-20 21:36:27 +08:00
parent e66defc3a2
commit d15cccca8d
5 changed files with 67 additions and 41 deletions

View File

@ -11,7 +11,6 @@ import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationDetailPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
import com.engine.salary.entity.taxrate.TaxAgent;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
@ -21,7 +20,7 @@ import com.google.common.collect.Maps;
import dm.jdbc.util.IdGenerator;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import weaver.hrm.User;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
@ -119,6 +118,7 @@ public class TaxDeclarationBO {
public static Result handle(TaxDeclarationSaveParam saveParam,
Date taxCycle,
User user,
List<SalaryItemPO> salaryItems,
List<SalarySobPO> salarySobs,
List<SalaryAcctResultPO> salaryAcctResults
@ -139,28 +139,11 @@ public class TaxDeclarationBO {
Map<Long, List<SalaryAcctResultPO>> taxAgentIdKeyAcctResultMap = SalaryEntityUtil.group2Map(salaryAcctResults, SalaryAcctResultPO::getTaxAgentId);
taxAgentIdKeyAcctResultMap.forEach((k, v) -> {
// 新增的个税申报表
TaxDeclarationPO taxDeclaration = convert2PO(saveParam, taxCycle, k);
TaxDeclarationPO taxDeclaration = convert2PO(saveParam,user, taxCycle, k);
result.getNeedInsertTaxDeclarations().add(taxDeclaration);
// 处理个税申报明细以及累计情况
handleTaxDeclarationDetail(result, taxDeclaration, v, salaryItemMap);
});
/*taxAgentIdKeyAcctResultMap.forEach((taxAgentId, incomeCategoryKeyAcctResultPOMap) -> {
incomeCategoryKeyAcctResultPOMap.forEach((incomeCategory, salaryAcctResultPOS) -> {
// 新增的个税申报表
TaxDeclarationPO taxDeclaration = convert2PO(saveParam, taxCycle, taxAgentId, incomeCategory, employeeId);
result.getNeedInsertTaxDeclarations().add(taxDeclaration);
if (Objects.equals(incomeCategory, IncomeCategoryEnum.WAGES_AND_SALARIES.getValue())) {
// 生成个税申报表
handleTaxDeclaration4Wage(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap);
// 生成往期累计情况
handleAddUpSituation(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap);
}
if (Objects.equals(incomeCategory, IncomeCategoryEnum.REMUNERATION_FOR_LABOR.getValue())) {
// 生成个税申报表
handleTaxDeclaration4Labor(result, taxDeclaration, salaryAcctResultPOS, salaryItemMap);
}
});
});*/
return result;
}
@ -326,19 +309,22 @@ public class TaxDeclarationBO {
});
}
private static TaxDeclarationPO convert2PO(TaxDeclarationSaveParam saveParam, Date taxCycle, Long taxAgentId) {
private static TaxDeclarationPO convert2PO(TaxDeclarationSaveParam saveParam, User user,Date taxCycle, Long taxAgentId) {
LocalDateTime now = LocalDateTime.now();
if(saveParam.getDescription()==null){
saveParam.setDescription("");
}
return TaxDeclarationPO.builder()
.id(IdGenerator.generate())
.taxAgentId(taxAgentId)
.salaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1)))
.taxCycle(taxCycle)
.description(saveParam.getDescription())
// .creator(employeeId)
.creator((long)user.getUID())
.createTime(SalaryDateUtil.localDateTimeToDate(now))
.updateTime(SalaryDateUtil.localDateTimeToDate(now))
.deleteType(0)
//.tenantKey(tenantKey)
.tenantKey("")
.build();
}

View File

@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import weaver.hrm.User;
import java.time.YearMonth;
@ -28,4 +29,6 @@ public class TaxDeclarationSaveParam {
private String salaryMonthStr;
private User user;
}

View File

@ -59,22 +59,59 @@
ORDER BY id DESC
</select>
<insert id="batchInsert">
INSERT INTO hrsa_tax_declaration
(create_time, creator, delete_type, description, id, salary_month,
tax_agent_id, tax_cycle, tenant_key, update_time)
INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description,
creator, create_time, update_time, delete_type, tenant_key)
VALUES
<foreach collection="collection" item="item" separator=",">
<foreach collection="collection" separator="," item="item">
(
#{item.create_time},
#{item.creator},
#{item.delete_type},
#{item.description},
#{item.id},
#{item.salary_month},
#{item.tax_agent_id},
#{item.tax_cycle},
#{item.tenant_key},
#{item.update_time}
#{item.salaryMonth},
#{item.taxCycle},
#{item.taxAgentId},
#{item.description},
#{item.creator},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey}
)
</foreach>
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description,
creator, create_time, update_time, delete_type, tenant_key)
<foreach collection="collection" separator="union all" item="item">
select
#{item.id},
#{item.salaryMonth},
#{item.taxCycle},
#{item.taxAgentId},
#{item.description},
#{item.creator},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey}
from dual
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
INSERT INTO hrsa_tax_declaration(id, salary_month, tax_cycle, tax_agent_id, description,
creator, create_time, update_time, delete_type, tenant_key)
VALUES
<foreach collection="collection" separator="," item="item">
(
#{item.id},
#{item.salaryMonth},
#{item.taxCycle},
#{item.taxAgentId},
#{item.description},
#{item.creator},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey}
)
</foreach>
</insert>

View File

@ -1,22 +1,18 @@
package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryacct.param.SalaryComparisonResultQueryParam;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationDetailListDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO;
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.mapper.taxdeclaration.TaxDeclarationDetailMapper;
import com.engine.salary.service.TaxDeclarationExcelService;
import com.engine.salary.service.TaxDeclarationService;
import com.engine.salary.service.impl.TaxDeclarationExcelServiceImpl;
import com.engine.salary.service.impl.TaxDeclarationServiceImpl;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.wrapper.TaxDeclarationDetailWrapper;
import com.engine.salary.wrapper.TaxDeclarationWrapper;
@ -90,6 +86,7 @@ public class TaxDeclarationController {
public String save(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr()));
param.setUser(user);
return new ResponseResult<TaxDeclarationSaveParam, Long>().run(getTaxDeclarationWrapper(user)::save, param);
}
//个税申报表详情列表

View File

@ -199,6 +199,7 @@ public class TaxDeclarationWrapper extends Service {
public void save(TaxDeclarationSaveParam saveParam) {
//getTaxDeclarationService(user).save(saveParam);
EmployBiz employBiz = new EmployBiz();
User user = saveParam.getUser();
// 薪资所属月的日期范围
LocalDateRange salaryMonthDateRange = SalaryDateUtil.localDate2YearRange(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1)));
if (Objects.isNull(salaryMonthDateRange)) {
@ -249,8 +250,10 @@ public class TaxDeclarationWrapper extends Service {
// 查询所有薪资项目
List<SalaryItemPO> salaryItemPOS = new SalaryItemBiz().listAll();
// 处理要保存的数据
TaxDeclarationBO.Result result = TaxDeclarationBO.handle(saveParam, taxCycle, salaryItemPOS, salarySobPOS,salaryAcctResultPOS);
TaxDeclarationBO.Result result = TaxDeclarationBO.handle(saveParam, taxCycle, user,salaryItemPOS, salarySobPOS,salaryAcctResultPOS);
// 保存个税申报表
//添加判断
if (CollectionUtils.isNotEmpty(result.getNeedInsertTaxDeclarations())) {
getTaxDeclarationMapper().batchInsert(result.getNeedInsertTaxDeclarations());