导出申报表明细
This commit is contained in:
parent
d9c952e80c
commit
c581c8d74d
|
|
@ -19,6 +19,7 @@ import com.engine.salary.util.SalaryEntityUtil;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import dm.jdbc.util.IdGenerator;
|
import dm.jdbc.util.IdGenerator;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -63,8 +64,7 @@ public class TaxDeclarationCommon implements TaxDeclarationStrategy {
|
||||||
SalarySobTaxReportRulePO salarySobTaxReportRule = taxDeclareContext.getSalarySobTaxReportRuleMap()
|
SalarySobTaxReportRulePO salarySobTaxReportRule = taxDeclareContext.getSalarySobTaxReportRuleMap()
|
||||||
.get(lastSalaryAcctEmployee.getSalarySobId() + "-" + taxReportColumn.getReportColumnDataIndex());
|
.get(lastSalaryAcctEmployee.getSalarySobId() + "-" + taxReportColumn.getReportColumnDataIndex());
|
||||||
List<SalaryAcctResultPO> salaryAcctResultValue = salaryAcctResultValueMap.get(lastSalaryAcctEmployee.getId());
|
List<SalaryAcctResultPO> salaryAcctResultValue = salaryAcctResultValueMap.get(lastSalaryAcctEmployee.getId());
|
||||||
String defaultValue = Objects.equals(taxReportColumn.getDataType(), SalaryDataTypeEnum.NUMBER.getValue()) ? "0" : "";
|
String value = "";
|
||||||
String value = defaultValue;
|
|
||||||
if (salarySobTaxReportRule != null && salaryAcctResultValue != null) {
|
if (salarySobTaxReportRule != null && salaryAcctResultValue != null) {
|
||||||
value = salaryAcctResultValue.stream()
|
value = salaryAcctResultValue.stream()
|
||||||
.filter(result -> result.getSalaryItemId().equals(salarySobTaxReportRule.getSalaryItemId()))
|
.filter(result -> result.getSalaryItemId().equals(salarySobTaxReportRule.getSalaryItemId()))
|
||||||
|
|
@ -72,6 +72,7 @@ public class TaxDeclarationCommon implements TaxDeclarationStrategy {
|
||||||
.orElse(new SalaryAcctResultPO())
|
.orElse(new SalaryAcctResultPO())
|
||||||
.getResultValue();
|
.getResultValue();
|
||||||
}
|
}
|
||||||
|
value = StringUtils.isNotBlank(value) ? value : Objects.equals(taxReportColumn.getDataType(), SalaryDataTypeEnum.NUMBER.getValue()) ? "0.00" : "";
|
||||||
valueMap.put(taxReportColumn.getReportColumnDataIndex(), value);
|
valueMap.put(taxReportColumn.getReportColumnDataIndex(), value);
|
||||||
}
|
}
|
||||||
TaxDeclarationValuePO taxDeclarationValue = TaxDeclarationValuePO.builder()
|
TaxDeclarationValuePO taxDeclarationValue = TaxDeclarationValuePO.builder()
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
package com.engine.salary.enums.salarysob;
|
package com.engine.salary.enums.salarysob;
|
||||||
|
|
||||||
import com.engine.salary.enums.BaseEnum;
|
import com.engine.salary.enums.BaseEnum;
|
||||||
|
import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse;
|
||||||
|
import com.engine.salary.util.excel.ExcelUtil;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应税项目
|
* 应税项目
|
||||||
|
|
@ -20,19 +19,123 @@ import java.util.Objects;
|
||||||
public enum IncomeCategoryEnum implements BaseEnum<Integer> {
|
public enum IncomeCategoryEnum implements BaseEnum<Integer> {
|
||||||
|
|
||||||
// todo 多语言
|
// todo 多语言
|
||||||
WAGES_AND_SALARIES(1, "0101", "正常工资薪金", 160487),
|
WAGES_AND_SALARIES(1, "0101", "正常工资薪金", 160487) {
|
||||||
REMUNERATION_FOR_LABOR(4, "0400", "一般劳务报酬所得", 160488),
|
@Override
|
||||||
ONETIME_ANNUAL_BONUS(2, "0103", "全年一次性奖金收入", 160489),
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
COMPENSATION_FOR_RETIRE(107, "0107", "内退一次性补偿金", 181936),
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb();
|
||||||
COMPENSATION_FOR_DISMISS(108, "0108", "解除劳动合同一次性补偿金", 181937),
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "个人股权激励收入", 181938),
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
ANNUITY_RECEIPT(110, "0110", "年金领取", 181939),
|
return result;
|
||||||
INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "保险营销员佣金收入", 181940),
|
}
|
||||||
INCOME_FOR_SECURITIES_BROKER(403, "0403", "证券经纪人佣金收入", 181942),
|
},
|
||||||
REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "其他连续劳务报酬所得", 181943),
|
REMUNERATION_FOR_LABOR(4, "0400", "一般劳务报酬所得", 160488) {
|
||||||
REMUNERATION_FOR_OTHER_LABOR(499, "0499", "其他非连续劳务报酬所得", 175330),
|
@Override
|
||||||
REMUNERATION_FOR_AUTHOR(500, "0500", "稿酬所得", 181944),
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
ROYALTIES(600, "0600", "特许权使用费所得", 181945),
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getLwbclb().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ONETIME_ANNUAL_BONUS(2, "0103", "全年一次性奖金收入", 160489) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQnycxjjsslb().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
COMPENSATION_FOR_RETIRE(107, "0107", "内退一次性补偿金", 181936) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getNtycxbcjlb().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
COMPENSATION_FOR_DISMISS(108, "0108", "解除劳动合同一次性补偿金", 181937) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getJcldhtycxbcjlb().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "个人股权激励收入", 181938) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGrgqjl().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ANNUITY_RECEIPT(110, "0110", "年金领取", 181939) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQynj().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "保险营销员佣金收入", 181940) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getBxyxy().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
INCOME_FOR_SECURITIES_BROKER(403, "0403", "证券经纪人佣金收入", 181942) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZqjjr().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "其他连续劳务报酬所得", 181943) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtlxlwbc().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
REMUNERATION_FOR_OTHER_LABOR(499, "0499", "其他非连续劳务报酬所得", 175330) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtflxlwbc().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
REMUNERATION_FOR_AUTHOR(500, "0500", "稿酬所得", 181944) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGcsdlb().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ROYALTIES(600, "0600", "特许权使用费所得", 181945) {
|
||||||
|
@Override
|
||||||
|
public Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) {
|
||||||
|
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getTxq().getSscglb();
|
||||||
|
List<List<Object>> zhsdSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, zhsd);
|
||||||
|
result.put(this.getDefaultLabel(), zhsdSheetData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
},
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -51,6 +154,8 @@ public enum IncomeCategoryEnum implements BaseEnum<Integer> {
|
||||||
this.labelId = labelId;
|
this.labelId = labelId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract Map<String, List<List<Object>>> parseGetDeclareTaxResultFeedbackResponse(Map<String, List<List<Object>>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer getValue() {
|
public Integer getValue() {
|
||||||
return value;
|
return value;
|
||||||
|
|
@ -79,6 +184,7 @@ public enum IncomeCategoryEnum implements BaseEnum<Integer> {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<IncomeCategoryEnum> parseByValue(Collection<Integer> values) {
|
public static List<IncomeCategoryEnum> parseByValue(Collection<Integer> values) {
|
||||||
if (CollectionUtils.isEmpty(values)) {
|
if (CollectionUtils.isEmpty(values)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|
|
||||||
|
|
@ -58,10 +58,11 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
// * 限售股所得 必填:是 见限售股所得计算结果
|
// * 限售股所得 必填:是 见限售股所得计算结果
|
||||||
// */
|
// */
|
||||||
// private 对象 xsgsd;
|
// private 对象 xsgsd;
|
||||||
// /**
|
|
||||||
// * 人员申报失败列表 必填:是 参考人员代报结果对象
|
/**
|
||||||
// */
|
* 人员申报失败列表 必填:是 参考人员代报结果对象
|
||||||
// private 数组 rysbsblb;
|
*/
|
||||||
|
private List<rydbjgdx> rysbsblb;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public static class zhsd {
|
public static class zhsd {
|
||||||
|
|
@ -73,66 +74,66 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
* 正常工资薪金算税结果对象 参考综合所得算税结果对象
|
* 正常工资薪金算税结果对象 参考综合所得算税结果对象
|
||||||
*/
|
*/
|
||||||
private zcgzxj zcgzxj;
|
private zcgzxj zcgzxj;
|
||||||
// /**
|
/**
|
||||||
// * 全年一次性奖金收入算税结果对象 参考综合所得算税结果对象
|
* 全年一次性奖金收入算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 qnycxjjsslb;
|
private zcgzxj qnycxjjsslb;
|
||||||
// /**
|
/**
|
||||||
// * 稿酬所得算税结果对象 参考综合所得算税结果对象
|
* 稿酬所得算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 gcsdlb;
|
private zcgzxj gcsdlb;
|
||||||
// /**
|
/**
|
||||||
// * 一般劳务报酬算税结果对象 参考综合所得算税结果对象
|
* 一般劳务报酬算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 lwbclb;
|
private zcgzxj lwbclb;
|
||||||
// /**
|
/**
|
||||||
// * 解除劳动合同一次性补偿金列表 参考综合所得算税结果对象
|
* 解除劳动合同一次性补偿金列表 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 jcldhtycxbcjlb;
|
private zcgzxj jcldhtycxbcjlb;
|
||||||
// /**
|
/**
|
||||||
// * 保险营销员薪金算税结果对象 参考综合所得算税结果对象
|
* 保险营销员薪金算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 bxyxy;
|
private zcgzxj bxyxy;
|
||||||
// /**
|
/**
|
||||||
// * 证券经纪人薪金算税结果对象 参考综合所得算税结果对象
|
* 证券经纪人薪金算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 zqjjr;
|
private zcgzxj zqjjr;
|
||||||
// /**
|
/**
|
||||||
// * 特许权算税结果对象 参考综合所得算税结果对象
|
* 特许权算税结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 txq;
|
private zcgzxj txq;
|
||||||
// /**
|
/**
|
||||||
// * 个人股权激励结果对象 参考综合所得算税结果对象
|
* 个人股权激励结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 grgqjl;
|
private zcgzxj grgqjl;
|
||||||
// /**
|
/**
|
||||||
// * 企业年金结果对象 参考综合所得算税结果对象
|
* 企业年金结果对象 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 qynj;
|
private zcgzxj qynj;
|
||||||
// /**
|
/**
|
||||||
// * 内退一次性补偿金 参考综合所得算税结果对象
|
* 内退一次性补偿金 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 ntycxbcjlb;
|
private zcgzxj ntycxbcjlb;
|
||||||
// /**
|
/**
|
||||||
// * 其他连续劳务报酬 参考综合所得算税结果对象
|
* 其他连续劳务报酬 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 qtlxlwbc;
|
private zcgzxj qtlxlwbc;
|
||||||
// /**
|
/**
|
||||||
// * 其他非连续劳务报酬 参考综合所得算税结果对象
|
* 其他非连续劳务报酬 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 qtflxlwbc;
|
private zcgzxj qtflxlwbc;
|
||||||
// /**
|
/**
|
||||||
// * 提前退休一次性补贴 参考综合所得算税结果对象
|
* 提前退休一次性补贴 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 tqtxycxbt;
|
private zcgzxj tqtxycxbt;
|
||||||
// /**
|
/**
|
||||||
// * 央企负责人绩效薪金延期兑现收入和任期奖励 参考综合所得算税结果对象
|
* 央企负责人绩效薪金延期兑现收入和任期奖励 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 yqfzrsrhjl;
|
private zcgzxj yqfzrsrhjl;
|
||||||
// /**
|
/**
|
||||||
// * 法律援助劳务报酬 参考综合所得算税结果对象
|
* 法律援助劳务报酬 参考综合所得算税结果对象
|
||||||
// */
|
*/
|
||||||
// private 对象 flyzlwbclb;
|
private zcgzxj flyzlwbclb;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -234,7 +235,6 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
/**
|
/**
|
||||||
* 是否明细申报 必填:否 是或者否
|
* 是否明细申报 必填:否 是或者否
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "是否明细申报", width = "10%", column = "sfmxsb")
|
|
||||||
private String sfmxsb;
|
private String sfmxsb;
|
||||||
/**
|
/**
|
||||||
* 姓名 必填:null 如果是汇总申报返回空
|
* 姓名 必填:null 如果是汇总申报返回空
|
||||||
|
|
@ -264,133 +264,143 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
/**
|
/**
|
||||||
* 当期收入额 必填:是 不填写默认为0
|
* 当期收入额 必填:是 不填写默认为0
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "当期收入额", width = "10%", column = "sre")
|
@SalaryTableColumn(text = "本期收入", width = "10%", column = "sre")
|
||||||
private BigDecimal sre;
|
private BigDecimal sre;
|
||||||
/**
|
/**
|
||||||
* 当期免税收入 必填:null
|
* 当期免税收入 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "当期免税收入", width = "10%", column = "mssd")
|
@SalaryTableColumn(text = "本期免税收入", width = "10%", column = "mssd")
|
||||||
private BigDecimal mssd;
|
private BigDecimal mssd;
|
||||||
/**
|
/**
|
||||||
* 基本养老保险 必填:null
|
* 基本养老保险 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "基本养老保险", width = "10%", column = "jbylaobxf")
|
@SalaryTableColumn(text = "本期基本养老保险费", width = "10%", column = "jbylaobxf")
|
||||||
private BigDecimal jbylaobxf;
|
private BigDecimal jbylaobxf;
|
||||||
/**
|
/**
|
||||||
* 基本医疗保险 必填:null
|
* 基本医疗保险 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "基本医疗保险", width = "10%", column = "jbylbxf")
|
@SalaryTableColumn(text = "本期基本医疗保险费", width = "10%", column = "jbylbxf")
|
||||||
private BigDecimal jbylbxf;
|
private BigDecimal jbylbxf;
|
||||||
/**
|
/**
|
||||||
* 失业保险 必填:null
|
* 失业保险 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "失业保险", width = "10%", column = "sybxf")
|
@SalaryTableColumn(text = "本期失业保险费", width = "10%", column = "sybxf")
|
||||||
private BigDecimal sybxf;
|
private BigDecimal sybxf;
|
||||||
/**
|
/**
|
||||||
* 住房公积金 必填:null
|
* 住房公积金 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "住房公积金", width = "10%", column = "zfgjj")
|
@SalaryTableColumn(text = "本期住房公积金", width = "10%", column = "zfgjj")
|
||||||
private BigDecimal zfgjj;
|
private BigDecimal zfgjj;
|
||||||
/**
|
|
||||||
* 子女教育支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "子女教育支出", width = "10%", column = "znjyzc")
|
|
||||||
private BigDecimal znjyzc;
|
|
||||||
/**
|
|
||||||
* 赡养老人支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "赡养老人支出", width = "10%", column = "sylrzc")
|
|
||||||
private BigDecimal sylrzc;
|
|
||||||
/**
|
|
||||||
* 住房贷款利息支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "住房贷款利息支出", width = "10%", column = "zfdklxzc")
|
|
||||||
private BigDecimal zfdklxzc;
|
|
||||||
/**
|
|
||||||
* 住房租金支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "住房租金支出", width = "10%", column = "zfzjzc")
|
|
||||||
private BigDecimal zfzjzc;
|
|
||||||
/**
|
|
||||||
* 继续教育支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "继续教育支出", width = "10%", column = "jxjyzc")
|
|
||||||
private BigDecimal jxjyzc;
|
|
||||||
/**
|
|
||||||
* 非学历继续教育支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "非学历继续教育支出", width = "10%", column = "fxljxjyzc")
|
|
||||||
private BigDecimal fxljxjyzc;
|
|
||||||
/**
|
|
||||||
* 3岁以下婴幼儿照护支出 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "3岁以下婴幼儿照护支出", width = "10%", column = "yyezhzc")
|
|
||||||
private BigDecimal yyezhzc;
|
|
||||||
/**
|
/**
|
||||||
* 年金 必填:null
|
* 年金 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "年金", width = "10%", column = "nj")
|
@SalaryTableColumn(text = "本期企业(职业)年金", width = "10%", column = "nj")
|
||||||
private BigDecimal nj;
|
private BigDecimal nj;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商业健康保险 必填:null
|
* 商业健康保险 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "商业健康保险", width = "10%", column = "syjkbx")
|
@SalaryTableColumn(text = "本期商业健康保险费", width = "10%", column = "syjkbx")
|
||||||
private BigDecimal syjkbx;
|
private BigDecimal syjkbx;
|
||||||
/**
|
/**
|
||||||
* 税延养老保险 必填:null
|
* 税延养老保险 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "税延养老保险", width = "10%", column = "syylbx")
|
@SalaryTableColumn(text = "本期税延养老保险费", width = "10%", column = "syylbx")
|
||||||
private BigDecimal syylbx;
|
private BigDecimal syylbx;
|
||||||
/**
|
/**
|
||||||
* 其他 必填:null 按法律规定可以在税前扣除的项目
|
* 其他 必填:null 按法律规定可以在税前扣除的项目
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "其他", width = "10%", column = "qt")
|
@SalaryTableColumn(text = "本期其他扣除(其他)", width = "10%", column = "qt")
|
||||||
private BigDecimal qt;
|
private BigDecimal qt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 准予扣除的捐赠额 必填:null
|
* 累计收入额 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "zykcjze")
|
@SalaryTableColumn(text = "累计收入额", width = "10%", column = "ljsre")
|
||||||
private BigDecimal zykcjze;
|
private BigDecimal ljsre;
|
||||||
/**
|
/**
|
||||||
* 减免税额 必填:null
|
* 累计免税收入额 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "减免税额", width = "10%", column = "jmse")
|
@SalaryTableColumn(text = "累计免税收入", width = "10%", column = "ljmssd")
|
||||||
private BigDecimal jmse;
|
private BigDecimal ljmssd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注 必填:null
|
* 累计减除费用额 必填:null 正常工资薪金累计减除费用 对应保险营销员、证券经纪人累计费用
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "备注", width = "10%", column = "bz")
|
@SalaryTableColumn(text = "累计减除费用", width = "10%", column = "ljjcfye")
|
||||||
private String bz;
|
private BigDecimal ljjcfye;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用
|
* 累计专项扣除额 必填:null 三险一金合计
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "减除费用", width = "10%", column = "jcfy")
|
@SalaryTableColumn(text = "累计专项扣除", width = "10%", column = "ljzxkce")
|
||||||
private BigDecimal jcfy;
|
private BigDecimal ljzxkce;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 其他扣除合计 必填:null
|
* 累计子女教育支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "其他扣除合计", width = "10%", column = "qtckhj")
|
@SalaryTableColumn(text = "累计子女教育支出扣除", width = "10%", column = "ljznjyzc")
|
||||||
private BigDecimal qtckhj;
|
private BigDecimal ljznjyzc;
|
||||||
/**
|
/**
|
||||||
* 应纳税所得额 必填:null 正常工资薪金返回Null
|
* 累计继续教育支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "应纳税所得额", width = "10%", column = "ynssde")
|
@SalaryTableColumn(text = "累计继续教育支出扣除", width = "10%", column = "ljjxjyzc")
|
||||||
private BigDecimal ynssde;
|
private BigDecimal ljjxjyzc;
|
||||||
/**
|
/**
|
||||||
* 应纳税额 必填:null 正常工资薪金返回Null
|
* 累计非学历继续教育支持 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "应纳税额", width = "10%", column = "ynse")
|
private BigDecimal ljfxljxjyzc;
|
||||||
private BigDecimal ynse;
|
|
||||||
/**
|
/**
|
||||||
* 已缴税额 必填:null 正常工资薪金返回Null
|
* 累计学历继续教育支持 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
|
private BigDecimal ljxljxjyzc;
|
||||||
private BigDecimal ykjse;
|
|
||||||
/**
|
/**
|
||||||
* 应扣缴税额 必填:null 正常工资薪金返回Null
|
* 累计住房租金支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "应扣缴税额", width = "10%", column = "yingkjse")
|
@SalaryTableColumn(text = "累计住房租金支出扣除", width = "10%", column = "ljzfzjzc")
|
||||||
private BigDecimal yingkjse;
|
private BigDecimal ljzfzjzc;
|
||||||
|
/**
|
||||||
|
* 累计房屋贷款支出 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计房屋贷款支出扣除", width = "10%", column = "ljzfdklxzc")
|
||||||
|
private BigDecimal ljzfdklxzc;
|
||||||
|
/**
|
||||||
|
* 累计赡养老人支出 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计赡养老人支出扣除", width = "10%", column = "ljsylrzc")
|
||||||
|
private BigDecimal ljsylrzc;
|
||||||
|
/**
|
||||||
|
* 累计3岁以下婴幼儿照护支出 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计3岁以下婴幼儿照护", width = "10%", column = "ljyyezhzc")
|
||||||
|
private BigDecimal ljyyezhzc;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计个人养老金 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "ljgrylj")
|
||||||
|
private BigDecimal ljgrylj;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计其他扣除额 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计其他扣除", width = "10%", column = "ljqtkce")
|
||||||
|
private BigDecimal ljqtkce;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计准予扣除的捐赠额 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计准予扣除的捐赠", width = "10%", column = "ljzykcjze")
|
||||||
|
private BigDecimal ljzykcjze;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计应纳税所得额 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计应纳税所得额", width = "10%", column = "ljynssde")
|
||||||
|
private BigDecimal ljynssde;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 税率 必填:null
|
* 税率 必填:null
|
||||||
*/
|
*/
|
||||||
|
|
@ -401,81 +411,19 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "速算扣除数", width = "10%", column = "sskcs")
|
@SalaryTableColumn(text = "速算扣除数", width = "10%", column = "sskcs")
|
||||||
private BigDecimal sskcs;
|
private BigDecimal sskcs;
|
||||||
/**
|
|
||||||
* 所得项目名称 必填:是 正常工资薪金;全年一次性奖金收入;稿酬所得;劳务报酬
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "所得项目名称", width = "10%", column = "sdxm")
|
|
||||||
private String sdxm;
|
|
||||||
/**
|
|
||||||
* 应补退税额 必填:null 应补退税额=累计应扣缴税额-累计已缴税额
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "应补退税额", width = "10%", column = "ybtse")
|
|
||||||
private BigDecimal ybtse;
|
|
||||||
/**
|
|
||||||
* 累计收入额 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计收入额", width = "10%", column = "ljsre")
|
|
||||||
private BigDecimal ljsre;
|
|
||||||
/**
|
|
||||||
* 累计免税收入额 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计免税收入额", width = "10%", column = "ljmssd")
|
|
||||||
private BigDecimal ljmssd;
|
|
||||||
/**
|
|
||||||
* 累计专项扣除额 必填:null 三险一金合计
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计专项扣除额", width = "10%", column = "ljzxkce")
|
|
||||||
private BigDecimal ljzxkce;
|
|
||||||
/**
|
|
||||||
* 累计专项附加扣除额 必填:null 专项附加合计
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计专项附加扣除额", width = "10%", column = "ljzxfjkce")
|
|
||||||
private BigDecimal ljzxfjkce;
|
|
||||||
/**
|
|
||||||
* 累计其他扣除额 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计其他扣除额", width = "10%", column = "ljqtkce")
|
|
||||||
private BigDecimal ljqtkce;
|
|
||||||
/**
|
|
||||||
* 累计减免税额 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计减免税额", width = "10%", column = "ljjmse")
|
|
||||||
private BigDecimal ljjmse;
|
|
||||||
/**
|
|
||||||
* 累计减除费用额 必填:null 正常工资薪金累计减除费用 对应保险营销员、证券经纪人累计费用
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计减除费用额", width = "10%", column = "ljjcfye")
|
|
||||||
private BigDecimal ljjcfye;
|
|
||||||
/**
|
|
||||||
* 累计月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计月减除费用", width = "10%", column = "ljyjcfy")
|
|
||||||
private BigDecimal ljyjcfy;
|
|
||||||
/**
|
|
||||||
* 允许扣除税费 必填:null 保险营销员、证券经纪人
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "允许扣除税费", width = "10%", column = "yxkcsf")
|
|
||||||
private BigDecimal yxkcsf;
|
|
||||||
/**
|
|
||||||
* 展业成本 必填:null 保险营销员、证券经纪人
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "展业成本", width = "10%", column = "zycb")
|
|
||||||
private BigDecimal zycb;
|
|
||||||
/**
|
|
||||||
* 月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "月减除费用", width = "10%", column = "yjcfy")
|
|
||||||
private BigDecimal yjcfy;
|
|
||||||
/**
|
|
||||||
* 累计应纳税所得额 必填:null
|
|
||||||
*/
|
|
||||||
@SalaryTableColumn(text = "累计应纳税所得额", width = "10%", column = "ljynssde")
|
|
||||||
private BigDecimal ljynssde;
|
|
||||||
/**
|
/**
|
||||||
* 累计应纳税额 必填:null
|
* 累计应纳税额 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计应纳税额", width = "10%", column = "ljynse")
|
@SalaryTableColumn(text = "累计应纳税额", width = "10%", column = "ljynse")
|
||||||
private BigDecimal ljynse;
|
private BigDecimal ljynse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计减免税额 必填:null
|
||||||
|
*/
|
||||||
|
@SalaryTableColumn(text = "累计减免税额", width = "10%", column = "ljjmse")
|
||||||
|
private BigDecimal ljjmse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计应扣缴税额 必填:null 累计应扣缴税额 = 累计应纳税额 - 累计减免税额
|
* 累计应扣缴税额 必填:null 累计应扣缴税额 = 累计应纳税额 - 累计减免税额
|
||||||
*/
|
*/
|
||||||
|
|
@ -487,59 +435,114 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
@SalaryTableColumn(text = "累计已缴税额", width = "10%", column = "ljykjse")
|
@SalaryTableColumn(text = "累计已缴税额", width = "10%", column = "ljykjse")
|
||||||
private BigDecimal ljykjse;
|
private BigDecimal ljykjse;
|
||||||
/**
|
/**
|
||||||
* 累计子女教育支出 必填:null
|
* 已缴税额 必填:null 正常工资薪金返回Null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计子女教育支出", width = "10%", column = "ljznjyzc")
|
@SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
|
||||||
private BigDecimal ljznjyzc;
|
private BigDecimal ykjse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计继续教育支出 必填:null
|
* 累计专项附加扣除额 必填:null 专项附加合计
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计继续教育支出", width = "10%", column = "ljjxjyzc")
|
@SalaryTableColumn(text = "累计专项附加扣除额", width = "10%", column = "ljzxfjkce")
|
||||||
private BigDecimal ljjxjyzc;
|
private BigDecimal ljzxfjkce;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计非学历继续教育支持 必填:null
|
* 应补退税额 必填:null 应补退税额=累计应扣缴税额-累计已缴税额
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计非学历继续教育支持", width = "10%", column = "ljfxljxjyzc")
|
@SalaryTableColumn(text = "应补退税额", width = "10%", column = "ybtse")
|
||||||
private BigDecimal ljfxljxjyzc;
|
private BigDecimal ybtse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计学历继续教育支持 必填:null
|
* 备注 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计学历继续教育支持", width = "10%", column = "ljxljxjyzc")
|
@SalaryTableColumn(text = "备注", width = "10%", column = "bz")
|
||||||
private BigDecimal ljxljxjyzc;
|
private String bz;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计住房租金支出 必填:null
|
* 子女教育支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计住房租金支出", width = "10%", column = "ljzfzjzc")
|
private BigDecimal znjyzc;
|
||||||
private BigDecimal ljzfzjzc;
|
|
||||||
/**
|
/**
|
||||||
* 累计房屋贷款支出 必填:null
|
* 赡养老人支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计房屋贷款支出", width = "10%", column = "ljzfdklxzc")
|
private BigDecimal sylrzc;
|
||||||
private BigDecimal ljzfdklxzc;
|
|
||||||
/**
|
/**
|
||||||
* 累计赡养老人支出 必填:null
|
* 住房贷款利息支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计赡养老人支出", width = "10%", column = "ljsylrzc")
|
private BigDecimal zfdklxzc;
|
||||||
private BigDecimal ljsylrzc;
|
|
||||||
/**
|
/**
|
||||||
* 累计3岁以下婴幼儿照护支出 必填:null
|
* 住房租金支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计3岁以下婴幼儿照护支出", width = "10%", column = "ljyyezhzc")
|
private BigDecimal zfzjzc;
|
||||||
private BigDecimal ljyyezhzc;
|
|
||||||
/**
|
/**
|
||||||
* 累计准予扣除的捐赠额 必填:null
|
* 继续教育支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计准予扣除的捐赠额", width = "10%", column = "ljzykcjze")
|
private BigDecimal jxjyzc;
|
||||||
private BigDecimal ljzykcjze;
|
|
||||||
/**
|
/**
|
||||||
* 累计个人养老金 必填:null
|
* 非学历继续教育支出 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "ljgrylj")
|
private BigDecimal fxljxjyzc;
|
||||||
private BigDecimal ljgrylj;
|
/**
|
||||||
|
* 3岁以下婴幼儿照护支出 必填:null
|
||||||
|
*/
|
||||||
|
private BigDecimal yyezhzc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 准予扣除的捐赠额 必填:null
|
||||||
|
*/
|
||||||
|
private BigDecimal zykcjze;
|
||||||
|
/**
|
||||||
|
* 减免税额 必填:null
|
||||||
|
*/
|
||||||
|
private BigDecimal jmse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用
|
||||||
|
*/
|
||||||
|
private BigDecimal jcfy;
|
||||||
|
/**
|
||||||
|
* 其他扣除合计 必填:null
|
||||||
|
*/
|
||||||
|
private BigDecimal qtckhj;
|
||||||
|
/**
|
||||||
|
* 应纳税所得额 必填:null 正常工资薪金返回Null
|
||||||
|
*/
|
||||||
|
private BigDecimal ynssde;
|
||||||
|
/**
|
||||||
|
* 应纳税额 必填:null 正常工资薪金返回Null
|
||||||
|
*/
|
||||||
|
private BigDecimal ynse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应扣缴税额 必填:null 正常工资薪金返回Null
|
||||||
|
*/
|
||||||
|
private BigDecimal yingkjse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所得项目名称 必填:是 正常工资薪金;全年一次性奖金收入;稿酬所得;劳务报酬
|
||||||
|
*/
|
||||||
|
private String sdxm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
|
||||||
|
*/
|
||||||
|
private BigDecimal ljyjcfy;
|
||||||
|
/**
|
||||||
|
* 允许扣除税费 必填:null 保险营销员、证券经纪人
|
||||||
|
*/
|
||||||
|
private BigDecimal yxkcsf;
|
||||||
|
/**
|
||||||
|
* 展业成本 必填:null 保险营销员、证券经纪人
|
||||||
|
*/
|
||||||
|
private BigDecimal zycb;
|
||||||
|
/**
|
||||||
|
* 月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用
|
||||||
|
*/
|
||||||
|
private BigDecimal yjcfy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计个人养老金校验码 必填:null
|
* 累计个人养老金校验码 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "累计个人养老金校验码", width = "10%", column = "ljgryljjym")
|
|
||||||
private String ljgryljjym;
|
private String ljgryljjym;
|
||||||
/**
|
/**
|
||||||
* 企业上月是否已申报 必填:null 仅在两个月算税场景时使用,当前月分为N月:
|
* 企业上月是否已申报 必填:null 仅在两个月算税场景时使用,当前月分为N月:
|
||||||
|
|
@ -547,34 +550,28 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
* 1表示N-1月(上月)已申报
|
* 1表示N-1月(上月)已申报
|
||||||
* 2表示N-2月(上上个月)未申报
|
* 2表示N-2月(上上个月)未申报
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "企业上月是否已申报", width = "10%", column = "qysysfysb")
|
|
||||||
private String qysysfysb;
|
private String qysysfysb;
|
||||||
/**
|
/**
|
||||||
* 员工在税局累计已扣缴的税额 必填:null 当前月分为N,如果N-1(上月)已申报,则返回N-1月员工在税局累计已扣缴的税额;
|
* 员工在税局累计已扣缴的税额 必填:null 当前月分为N,如果N-1(上月)已申报,则返回N-1月员工在税局累计已扣缴的税额;
|
||||||
* 如果N-1月未申报,则返回N-2月工在税局累计已扣缴的税额;
|
* 如果N-1月未申报,则返回N-2月工在税局累计已扣缴的税额;
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "员工在税局累计已扣缴的税额", width = "10%", column = "ygzsjljykjse")
|
|
||||||
private BigDecimal ygzsjljykjse;
|
private BigDecimal ygzsjljykjse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 本月已累计扣除税额 必填:null 针对一月多次算税的场景字段
|
* 本月已累计扣除税额 必填:null 针对一月多次算税的场景字段
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "本月已累计扣除税额", width = "10%", column = "byyljkjse")
|
|
||||||
private BigDecimal byyljkjse;
|
private BigDecimal byyljkjse;
|
||||||
/**
|
/**
|
||||||
* 本次应扣缴税额 必填:null 针对一月多次算税的场景字段,本次应扣缴税额=本月应扣缴税额-本月已累计税额
|
* 本次应扣缴税额 必填:null 针对一月多次算税的场景字段,本次应扣缴税额=本月应扣缴税额-本月已累计税额
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "本次应扣缴税额", width = "10%", column = "bcykjse")
|
|
||||||
private BigDecimal bcykjse;
|
private BigDecimal bcykjse;
|
||||||
/**
|
/**
|
||||||
* 分摊年度数 必填:null
|
* 分摊年度数 必填:null
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "分摊年度数", width = "10%", column = "ftnds")
|
|
||||||
private Integer ftnds;
|
private Integer ftnds;
|
||||||
/**
|
/**
|
||||||
* 年减除费用 必填:null 默认为60000
|
* 年减除费用 必填:null 默认为60000
|
||||||
*/
|
*/
|
||||||
@SalaryTableColumn(text = "年减除费用", width = "10%", column = "njcfy")
|
|
||||||
private BigDecimal njcfy;
|
private BigDecimal njcfy;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -622,6 +619,44 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 4.4.1.3.1.1人员代报结果对象
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public static class rydbjgdx {
|
||||||
|
/**
|
||||||
|
* 人员ID
|
||||||
|
*/
|
||||||
|
private Integer ygid;
|
||||||
|
/**
|
||||||
|
* 人员名称
|
||||||
|
*/
|
||||||
|
private String xm;
|
||||||
|
/**
|
||||||
|
* 证件类型 见证件类型字典
|
||||||
|
*/
|
||||||
|
private String zzlx;
|
||||||
|
/**
|
||||||
|
* 证件号码
|
||||||
|
*/
|
||||||
|
private String zzhm;
|
||||||
|
/**
|
||||||
|
* 错误码
|
||||||
|
*/
|
||||||
|
private String cwm;
|
||||||
|
/**
|
||||||
|
* 错误信息
|
||||||
|
*/
|
||||||
|
private String cwxx;
|
||||||
|
/**
|
||||||
|
* 所得税的code
|
||||||
|
*/
|
||||||
|
private String sdxmdm;
|
||||||
|
/**
|
||||||
|
* 所得税的名称
|
||||||
|
*/
|
||||||
|
private String sdxmmc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ public interface TaxDeclarationService {
|
||||||
*/
|
*/
|
||||||
List<TaxDeclarationPO> listByTaxCycleAndTaxAgentIds(YearMonth salaryMonth, Collection<Long> taxAgentIds);
|
List<TaxDeclarationPO> listByTaxCycleAndTaxAgentIds(YearMonth salaryMonth, Collection<Long> taxAgentIds);
|
||||||
|
|
||||||
|
List<TaxDeclarationPO> listByTaxDeclareRecordId(Long taxDeclareRecordId);
|
||||||
|
|
||||||
PageInfo<TaxDeclarationPO> listPageByParam(TaxDeclarationListQueryParam queryParam);
|
PageInfo<TaxDeclarationPO> listPageByParam(TaxDeclarationListQueryParam queryParam);
|
||||||
|
|
||||||
List<TaxAgentPO> countByTaxDeclarationId(Collection<Long> taxAgentIds);
|
List<TaxAgentPO> countByTaxDeclarationId(Collection<Long> taxAgentIds);
|
||||||
|
|
@ -33,7 +35,6 @@ public interface TaxDeclarationService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除个税申报表
|
* 删除个税申报表
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void delete(SalaryAcctRecordPO salaryAcctRecordPO);
|
void delete(SalaryAcctRecordPO salaryAcctRecordPO);
|
||||||
|
|
||||||
|
|
@ -48,6 +49,7 @@ public interface TaxDeclarationService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 撤回个税申报单
|
* 撤回个税申报单
|
||||||
|
*
|
||||||
* @param taxDeclarationId
|
* @param taxDeclarationId
|
||||||
*/
|
*/
|
||||||
void withDrawTaxDeclaration(Long taxDeclarationId);
|
void withDrawTaxDeclaration(Long taxDeclarationId);
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,15 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
|
||||||
return taxDeclarationPOS;
|
return taxDeclarationPOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TaxDeclarationPO> listByTaxDeclareRecordId(Long taxDeclareRecordId) {
|
||||||
|
if (Objects.isNull(taxDeclareRecordId)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||||
|
}
|
||||||
|
TaxDeclarationPO po = TaxDeclarationPO.builder().taxDeclareRecordId(taxDeclareRecordId).build();
|
||||||
|
return getTaxDeclarationMapper().listSome(po);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageInfo<TaxDeclarationPO> listPageByParam(TaxDeclarationListQueryParam queryParam) {
|
public PageInfo<TaxDeclarationPO> listPageByParam(TaxDeclarationListQueryParam queryParam) {
|
||||||
long currentEmployeeId = user.getUID();
|
long currentEmployeeId = user.getUID();
|
||||||
|
|
@ -205,7 +214,7 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
|
||||||
// 无薪资核算结果,不允许生成个税申报表
|
// 无薪资核算结果,不允许生成个税申报表
|
||||||
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
|
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}无可申报数据")
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(110093, "{0}无可申报数据")
|
||||||
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<Long> salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId);
|
Set<Long> salaryAcctRecordIds = SalaryEntityUtil.properties(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryAcctRecordId);
|
||||||
|
|
@ -214,14 +223,14 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration
|
||||||
boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()));
|
boolean notArchived = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> Objects.equals(salaryAcctRecordPO.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()));
|
||||||
if (notArchived) {
|
if (notArchived) {
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}有未归档数据,请全部归档后再申报")
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98875, "{0}有未归档数据,请全部归档后再申报")
|
||||||
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
||||||
}
|
}
|
||||||
// 如果当前薪资所属月下存在不同的税款所属期,属于异常业务场景,不允许生成个税申报表
|
// 如果当前薪资所属月下存在不同的税款所属期,属于异常业务场景,不允许生成个税申报表
|
||||||
Date taxCycle = salaryAcctRecordPOS.get(0).getTaxCycle();
|
Date taxCycle = salaryAcctRecordPOS.get(0).getTaxCycle();
|
||||||
boolean differentTaxCycle = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctRecordPO.getTaxCycle().compareTo(taxCycle) != 0);
|
boolean differentTaxCycle = salaryAcctRecordPOS.stream().anyMatch(salaryAcctRecordPO -> salaryAcctRecordPO.getTaxCycle().compareTo(taxCycle) != 0);
|
||||||
if (differentTaxCycle) {
|
if (differentTaxCycle) {
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98876, "{0}存在不同的税款所属期,无法正常生成个税申报表,请调整账套设置,重新核算后再生成个税申报表")
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98876, "{0}存在不同的税款所属期,无法正常生成个税申报表,请调整账套设置,重新核算后再生成个税申报表")
|
||||||
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
.replace("{0}", SalaryDateUtil.getFormatYearMonth(saveParam.getSalaryMonth())));
|
||||||
}
|
}
|
||||||
// 查询薪资账套
|
// 查询薪资账套
|
||||||
Set<Long> salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId);
|
Set<Long> salarySobIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getSalarySobId);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import com.engine.salary.entity.taxdeclaration.response.DeclareTaxResponse;
|
||||||
import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse;
|
import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse;
|
||||||
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
|
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
|
||||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||||
|
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||||
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
|
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
|
||||||
import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum;
|
import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum;
|
||||||
import com.engine.salary.enums.taxdeclaration.*;
|
import com.engine.salary.enums.taxdeclaration.*;
|
||||||
|
|
@ -942,12 +943,11 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
||||||
|
|
||||||
DeclareClient declareClient = new DeclareClient(taxDeclareRecord.getTaxAgentId());
|
DeclareClient declareClient = new DeclareClient(taxDeclareRecord.getTaxAgentId());
|
||||||
GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? taxDeclareRecord.getRequestId() : requestId);
|
GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? taxDeclareRecord.getRequestId() : requestId);
|
||||||
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> sscglb = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb();
|
|
||||||
|
|
||||||
// 需要导出的数据
|
Map<String, List<List<Object>>> map = new HashMap<>();
|
||||||
List<List<Object>> excelSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, sscglb);
|
List<TaxDeclarationPO> list = getTaxDeclarationService(user).listByTaxDeclareRecordId(id);
|
||||||
|
list.stream().map(TaxDeclarationPO::getIncomeCategory).map(IncomeCategoryEnum::parseByValue).forEach(e->e.parseGetDeclareTaxResultFeedbackResponse(map,declareTaxResultFeedbackResponse));
|
||||||
return ExcelUtil.genWorkbookV2(excelSheetData, "申报内置算税结果");
|
return ExcelUtil.genWorkbookV2(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -272,6 +272,71 @@ public class ExcelUtil {
|
||||||
return workbook;
|
return workbook;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static XSSFWorkbook genWorkbookV2(Map<String, List<List<Object>>> map) {
|
||||||
|
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||||
|
|
||||||
|
map.entrySet().forEach(en->{
|
||||||
|
|
||||||
|
String sheetName = en.getKey();
|
||||||
|
List<List<Object>> rowList = en.getValue();
|
||||||
|
// 设置title样式
|
||||||
|
XSSFCellStyle titleCellStyle = workbook.createCellStyle();
|
||||||
|
XSSFFont titleFont = workbook.createFont();
|
||||||
|
titleFont.setFontName("仿宋");
|
||||||
|
titleFont.setFontHeightInPoints((short) 15);
|
||||||
|
titleCellStyle.setFont(titleFont);
|
||||||
|
titleCellStyle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
titleCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//背景色
|
||||||
|
titleCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||||
|
|
||||||
|
|
||||||
|
// 设置主体样式
|
||||||
|
XSSFCellStyle cellStyle = workbook.createCellStyle();
|
||||||
|
XSSFFont font = workbook.createFont();
|
||||||
|
font.setFontName("宋体");
|
||||||
|
font.setFontHeightInPoints((short) 10);// 设置字体大小
|
||||||
|
cellStyle.setFont(font);// 选择需要用到的字体格式
|
||||||
|
cellStyle.setWrapText(true);
|
||||||
|
|
||||||
|
XSSFSheet sheet = workbook.createSheet(sheetName);
|
||||||
|
//自适应宽度
|
||||||
|
sheet.autoSizeColumn(0, true);
|
||||||
|
//默认列宽
|
||||||
|
sheet.setDefaultColumnWidth(20);
|
||||||
|
//默认行高
|
||||||
|
sheet.setDefaultRowHeightInPoints(18);
|
||||||
|
|
||||||
|
for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) {
|
||||||
|
List<Object> infoList = rowList.get(rowIndex);
|
||||||
|
XSSFRow row = sheet.createRow(rowIndex);
|
||||||
|
for (int cellIndex = 0; cellIndex < infoList.size(); cellIndex++) {
|
||||||
|
XSSFCell cell = row.createCell(cellIndex);
|
||||||
|
if (rowIndex == 0) {
|
||||||
|
cell.setCellStyle(titleCellStyle);
|
||||||
|
} else {
|
||||||
|
cell.setCellStyle(cellStyle);
|
||||||
|
}
|
||||||
|
Object o = infoList.get(cellIndex);
|
||||||
|
if (o instanceof String) {
|
||||||
|
cell.setCellType(CellType.STRING);
|
||||||
|
cell.setCellValue(String.valueOf(o));
|
||||||
|
} else if (o instanceof Boolean) {
|
||||||
|
cell.setCellType(CellType.BOOLEAN);
|
||||||
|
cell.setCellValue(String.valueOf(o));
|
||||||
|
} else if (o instanceof Date) {
|
||||||
|
cell.setCellType(CellType.STRING);
|
||||||
|
cell.setCellValue(SalaryDateUtil.getFormatLocalDate((Date) o));
|
||||||
|
} else {
|
||||||
|
cell.setCellType(CellType.STRING);
|
||||||
|
cell.setCellValue(o == null ? "" : o.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return workbook;
|
||||||
|
}
|
||||||
|
|
||||||
public static XSSFWorkbook genWorkbook(ExcelSheetData excelSheetData) {
|
public static XSSFWorkbook genWorkbook(ExcelSheetData excelSheetData) {
|
||||||
List<List<Object>> list = new ArrayList<>();
|
List<List<Object>> list = new ArrayList<>();
|
||||||
list.add(excelSheetData.getHeaders());
|
list.add(excelSheetData.getHeaders());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue