新增申报

This commit is contained in:
钱涛 2023-12-14 10:35:10 +08:00
parent a5ffe12509
commit 0a54fe5f80
5 changed files with 151 additions and 22 deletions

View File

@ -0,0 +1,64 @@
package com.engine.salary.entity.taxdeclaration.param;
import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.util.Map;
/**
* 个税申报明细保存
* <p>Copyright: Copyright (c) 2023</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
@Data
public class TaxDeclareRecordDetailSaveParam {
//主键id
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
//个税申报记录id")
private Long taxDeclareRecordId;
//个税申报表id")
private Long taxDeclarationId;
//人员id
@JsonSerialize(using = ToStringSerializer.class)
private Long employeeId;
private Integer employeeType;
@SalaryTableColumn(
text = "工号", width = "10%", column = "jobNum"
)
@TableTitle(title ="工号",dataIndex = "jobNum",key = "jobNum")
private String jobNum;
@SalaryTableColumn(
text = "姓名", width = "10%", column = "username"
)
@TableTitle(title ="姓名",dataIndex = "username",key = "username")
private String username;
@SalaryTableColumn(
text = "证件类型", width = "10%", column = "cardType"
)
@TableTitle(title ="证件类型",dataIndex = "cardType",key = "cardType")
private String cardType;
@SalaryTableColumn(
text = "证件号码", width = "10%", column = "cardNum"
)
@TableTitle(title ="证件号码",dataIndex = "cardNum",key = "cardNum")
private String cardNum;
private Map<String,String> taxReportColumnValues;
}

View File

@ -20,34 +20,34 @@ import java.util.Date;
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
//hrsa_tax_report_column") //hrsa_tax_report_column
public class TaxReportColumnPO { public class TaxReportColumnPO {
//name = "主键id") //name = 主键id
private Long id; private Long id;
//name = "报表类型") //name = 报表类型
private String taxReportType; private String taxReportType;
//name = "所得项目") //name = 所得项目
private String incomeCategory; private String incomeCategory;
//name = "申报表的列名") //name = 申报表的列名
private String reportColumnName; private String reportColumnName;
//name = "申报表的列名多语言标签") //name = 申报表的列名多语言标签
private Integer reportColumnLabel; private Integer reportColumnLabel;
//name = "申报表的列索引") //name = 申报表的列索引
private String reportColumnDataIndex; private String reportColumnDataIndex;
//name = "数值类型") //name = 数值类型
private String dataType; private String dataType;
//name = "个税对接时的参数key") //name = 个税对接时的参数key
private String requestParamKey; private String requestParamKey;
//name = "租户key", ignore = true) //name = 租户key
private String tenantKey; private String tenantKey;
//name = "创建人id", ignore = true) //name = 创建人id
private Long creator; private Long creator;
//name = "是否删除", ignore = true) //name = 是否删除
private Integer deleteType; private Integer deleteType;
//name = "创建时间", ignore = true) //name = 创建时间
private Date createTime; private Date createTime;
//name = "更新时间", ignore = true) //name = 更新时间
private Date updateTime; private Date updateTime;
Collection<Long> ids; Collection<Long> ids;

View File

@ -414,7 +414,15 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
// 薪资核算结果 // 薪资核算结果
Set<Long> salaryAcctEmployeeIdSet = SalaryEntityUtil.properties(incomeCategoryEntry.getValue(), SalaryAcctEmployeePO::getId); Set<Long> salaryAcctEmployeeIdSet = SalaryEntityUtil.properties(incomeCategoryEntry.getValue(), SalaryAcctEmployeePO::getId);
List<List<SalaryAcctResultPO>> resultValues = salaryAcctEmployeeIdSet.stream().map(salaryAcctResultValueMap::get).filter(Objects::nonNull).collect(Collectors.toList()); List<List<SalaryAcctResultPO>> resultValues = salaryAcctEmployeeIdSet.stream().map(salaryAcctResultValueMap::get).filter(Objects::nonNull).collect(Collectors.toList());
TaxDeclareContext taxDeclareContext = new TaxDeclareContext().setSalaryAcctRecordMap(salaryAcctRecordMap).setSalaryAcctEmployees(incomeCategoryEntry.getValue()).setSalaryAcctResultValues(salaryAcctResultValues).setTaxDeclaration(taxDeclaration).setSalarySobTaxReportRuleMap(salarySobTaxReportRuleMap).setSalarySobAddUpRuleMap(salarySobAddUpRuleMap).setTaxReportColumns(taxReportColumnMap.get(incomeCategoryEntry.getKey())).setSalaryItems(salaryItems); TaxDeclareContext taxDeclareContext = new TaxDeclareContext()
.setSalaryAcctRecordMap(salaryAcctRecordMap)
.setSalaryAcctEmployees(incomeCategoryEntry.getValue())
.setSalaryAcctResultValues(salaryAcctResultValues)
.setTaxDeclaration(taxDeclaration)
.setSalarySobTaxReportRuleMap(salarySobTaxReportRuleMap)
.setSalarySobAddUpRuleMap(salarySobAddUpRuleMap)
.setTaxReportColumns(taxReportColumnMap.get(incomeCategoryEntry.getKey()))
.setSalaryItems(salaryItems);
TaxDeclarationStrategy taxDeclarationStrategy = new TaxDeclarationCommon(); TaxDeclarationStrategy taxDeclarationStrategy = new TaxDeclarationCommon();
TaxDeclarationGenerateResult generateResult = taxDeclarationStrategy.generate(taxDeclareContext, (long) user.getUID()); TaxDeclarationGenerateResult generateResult = taxDeclarationStrategy.generate(taxDeclareContext, (long) user.getUID());
taxDeclarationValues.addAll(generateResult.getTaxDeclarationValues()); taxDeclarationValues.addAll(generateResult.getTaxDeclarationValues());

View File

@ -229,7 +229,7 @@ public class TaxDeclarationController {
try { try {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id ,requestId); XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id, requestId);
String fileName = "申报内置算税结果-" + LocalDate.now(); String fileName = "申报内置算税结果-" + LocalDate.now();
try { try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
@ -334,6 +334,35 @@ public class TaxDeclarationController {
return new ResponseResult<Long, String>(user).run(getTaxDeclareRecordWrapper(user)::refreshData, taxDeclareRecordParam.getTaxDeclareRecordId()); return new ResponseResult<Long, String>(user).run(getTaxDeclareRecordWrapper(user)::refreshData, taxDeclareRecordParam.getTaxDeclareRecordId());
} }
/**
* 新增表单
*
* @param incomeCategory
* @return
*/
@GET
@Path("/getAddForm")
@Produces(MediaType.APPLICATION_JSON)
public String getAddForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "IncomeCategoryEnum") IncomeCategoryEnum incomeCategory) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<IncomeCategoryEnum, String>(user).run(getTaxDeclareRecordWrapper(user)::getAddForm, incomeCategory);
}
/**
* 新增
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/add")
@Produces(MediaType.APPLICATION_JSON)
public String add(@Context HttpServletRequest request, @Context HttpServletResponse response,TaxDeclareRecordDetailSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<TaxDeclareRecordDetailSaveParam, String>(user).run(getTaxDeclareRecordWrapper(user)::add, param);
}
/** /**
* 个税申报表详情列表 * 个税申报表详情列表
* *

View File

@ -3,13 +3,11 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.cache.SalaryCacheKey;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxdeclaration.dto.*; import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam; import com.engine.salary.entity.taxdeclaration.param.*;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam;
import com.engine.salary.entity.taxdeclaration.po.*; import com.engine.salary.entity.taxdeclaration.po.*;
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;
@ -89,6 +87,11 @@ public class TaxDeclareRecordWrapper extends Service {
return ServiceUtil.getService(TaxDeclareFailServiceImpl.class, user); return ServiceUtil.getService(TaxDeclareFailServiceImpl.class, user);
} }
private TaxReportColumnService getTaxReportColumnService(User user) {
return ServiceUtil.getService(TaxReportColumnServiceImpl.class, user);
}
/** /**
* 个税申报记录列表 * 个税申报记录列表
* *
@ -463,11 +466,11 @@ public class TaxDeclareRecordWrapper extends Service {
public Object getDeclareTaxResultFeedback(Long id) { public Object getDeclareTaxResultFeedback(Long id) {
return getTaxDeclareRecordService(user).getDeclareTaxResultFeedback(id); return getTaxDeclareRecordService(user).getDeclareTaxResultFeedback(id);
} }
public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id,String requestId) { public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id, String requestId) {
return getTaxDeclareRecordService(user).exportGetDeclareTaxResultFeedback(id, requestId); return getTaxDeclareRecordService(user).exportGetDeclareTaxResultFeedback(id, requestId);
} }
@ -660,4 +663,29 @@ public class TaxDeclareRecordWrapper extends Service {
return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam); return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam);
} }
public List<TaxReportColumnPO> getAddForm(IncomeCategoryEnum incomeCategoryEnum) {
// 查询个税申报表列
List<TaxReportColumnPO> taxReportColumns = getTaxReportColumnService(user).listByIncomeCategory(incomeCategoryEnum);
return taxReportColumns;
}
public void add(TaxDeclareRecordDetailSaveParam param) {
TaxDeclarationValuePO build = TaxDeclarationValuePO.builder()
.id(IdGenerator.generate())
.taxDeclarationId(param.getTaxDeclarationId())
.taxDeclareRecordId(param.getTaxDeclareRecordId())
.employeeId(param.getEmployeeId())
.employeeType(param.getEmployeeType())
.resultValue(param.getTaxReportColumnValues())
.createTime(new Date())
.updateTime(new Date())
.creator((long) user.getUID())
.deleteType(0)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
List<TaxDeclarationValuePO> objects = new ArrayList<>();
objects.add(build);
getTaxDeclarationValueService(user).batchSave(objects);
}
} }