申报表生成
This commit is contained in:
parent
e66defc3a2
commit
d15cccca8d
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
//个税申报表详情列表
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue