新增申报

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
@AllArgsConstructor
@NoArgsConstructor
//hrsa_tax_report_column")
//hrsa_tax_report_column
public class TaxReportColumnPO {
//name = "主键id")
//name = 主键id
private Long id;
//name = "报表类型")
//name = 报表类型
private String taxReportType;
//name = "所得项目")
//name = 所得项目
private String incomeCategory;
//name = "申报表的列名")
//name = 申报表的列名
private String reportColumnName;
//name = "申报表的列名多语言标签")
//name = 申报表的列名多语言标签
private Integer reportColumnLabel;
//name = "申报表的列索引")
//name = 申报表的列索引
private String reportColumnDataIndex;
//name = "数值类型")
//name = 数值类型
private String dataType;
//name = "个税对接时的参数key")
//name = 个税对接时的参数key
private String requestParamKey;
//name = "租户key", ignore = true)
//name = 租户key
private String tenantKey;
//name = "创建人id", ignore = true)
//name = 创建人id
private Long creator;
//name = "是否删除", ignore = true)
//name = 是否删除
private Integer deleteType;
//name = "创建时间", ignore = true)
//name = 创建时间
private Date createTime;
//name = "更新时间", ignore = true)
//name = 更新时间
private Date updateTime;
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);
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();
TaxDeclarationGenerateResult generateResult = taxDeclarationStrategy.generate(taxDeclareContext, (long) user.getUID());
taxDeclarationValues.addAll(generateResult.getTaxDeclarationValues());

View File

@ -229,7 +229,7 @@ public class TaxDeclarationController {
try {
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id ,requestId);
XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id, requestId);
String fileName = "申报内置算税结果-" + LocalDate.now();
try {
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());
}
/**
* 新增表单
*
* @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.core.impl.Service;
import com.engine.salary.cache.SalaryCacheKey;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.entity.taxdeclaration.dto.*;
import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam;
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.param.*;
import com.engine.salary.entity.taxdeclaration.po.*;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum;
@ -89,6 +87,11 @@ public class TaxDeclareRecordWrapper extends Service {
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) {
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);
}
@ -660,4 +663,29 @@ public class TaxDeclareRecordWrapper extends Service {
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);
}
}