导出申报明细
This commit is contained in:
parent
942f6baa32
commit
82ec08bfd9
|
|
@ -1,7 +1,10 @@
|
|||
package com.engine.salary.remote.tax.client;
|
||||
|
||||
import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse;
|
||||
import com.engine.salary.util.HttpUtil;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.SingnatureData;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -15,6 +18,7 @@ import java.util.Map;
|
|||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
@Slf4j
|
||||
public class DeclareClient extends TaxBaseClient{
|
||||
public DeclareClient(Long taxAgentId) {
|
||||
super(taxAgentId);
|
||||
|
|
@ -25,7 +29,7 @@ public class DeclareClient extends TaxBaseClient{
|
|||
* @param requestId·
|
||||
* @return
|
||||
*/
|
||||
public Object getDeclareTaxResultFeedback(String requestId){
|
||||
public GetDeclareTaxResultFeedbackResponse getDeclareTaxResultFeedback(String requestId){
|
||||
// 供应商信息
|
||||
String url = super.apiConfig.getHost() + "/gateway/iit/report/getDeclareTaxResultFeedback";
|
||||
Map<String, String> params = new HashMap<>(1);
|
||||
|
|
@ -33,9 +37,8 @@ public class DeclareClient extends TaxBaseClient{
|
|||
Map<String, String> header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret());
|
||||
String res = HttpUtil.getRequest(url, header, params);
|
||||
|
||||
|
||||
|
||||
return res;
|
||||
log.info("getDeclareTaxResultFeedback res --- {}", res);
|
||||
return JsonUtil.parseObject(res, GetDeclareTaxResultFeedbackResponse.class);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,23 @@
|
|||
package com.engine.salary.remote.tax.response.employee;
|
||||
|
||||
import com.engine.salary.annotation.SalaryTableColumn;
|
||||
import com.engine.salary.entity.taxpayment.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
public class GetDeclareTaxResultFeedbackResponse {
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GetDeclareTaxResultFeedbackResponse extends BaseResponse {
|
||||
/**
|
||||
* 返回数据
|
||||
*/
|
||||
private Body body;
|
||||
|
||||
@Data
|
||||
public static class Body {
|
||||
/**
|
||||
* 企业名称 必填:是
|
||||
*/
|
||||
|
|
@ -49,8 +63,8 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
// */
|
||||
// private 数组 rysbsblb;
|
||||
|
||||
|
||||
public class zhsd {
|
||||
@Data
|
||||
public static class zhsd {
|
||||
/**
|
||||
* 人员代代报失败列表 参考人员代报结果对象
|
||||
*/
|
||||
|
|
@ -124,7 +138,8 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
/**
|
||||
* 人员代报结果对象
|
||||
*/
|
||||
public class rydbjgdx {
|
||||
@Data
|
||||
public static class rydbjgdx {
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
|
|
@ -163,7 +178,8 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
/**
|
||||
* 综合所得算税结果对象
|
||||
*/
|
||||
public class zcgzxj {
|
||||
@Data
|
||||
public static class zcgzxj {
|
||||
/**
|
||||
* 综合算税成功列表 参考综合所得输出结果报文
|
||||
*/
|
||||
|
|
@ -213,254 +229,317 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
/**
|
||||
* 综合所得输出结果报文
|
||||
*/
|
||||
public class zhsdscjgbw {
|
||||
@Data
|
||||
public static class zhsdscjgbw {
|
||||
/**
|
||||
* 是否明细申报 必填:否 是或者否
|
||||
*/
|
||||
@SalaryTableColumn(text = "是否明细申报", width = "10%", column = "sfmxsb")
|
||||
private String sfmxsb;
|
||||
/**
|
||||
* 姓名 必填:null 如果是汇总申报返回空
|
||||
*/
|
||||
@SalaryTableColumn(text = "姓名", width = "10%", column = "xm")
|
||||
private String xm;
|
||||
/**
|
||||
* 证件类型 必填:null 见证件类型字典
|
||||
*/
|
||||
@SalaryTableColumn(text = "证件类型", width = "10%", column = "zzlx")
|
||||
private String zzlx;
|
||||
/**
|
||||
* 证件号码 必填:null 如果是汇总申报返回空
|
||||
*/
|
||||
@SalaryTableColumn(text = "证件号码", width = "10%", column = "zzhm")
|
||||
private String zzhm;
|
||||
/**
|
||||
* 任职受雇日期 必填:是 格式YYYY-MM-DD
|
||||
*/
|
||||
@SalaryTableColumn(text = "任职受雇日期", width = "10%", column = "rzsgrq")
|
||||
private String rzsgrq;
|
||||
/**
|
||||
* 离职日期 必填:否 格式YYYY-MM-DD
|
||||
*/
|
||||
@SalaryTableColumn(text = "离职日期", width = "10%", column = "lzrq")
|
||||
private String lzrq;
|
||||
/**
|
||||
* 当期收入额 必填:是 不填写默认为0
|
||||
*/
|
||||
@SalaryTableColumn(text = "当期收入额", width = "10%", column = "sre")
|
||||
private BigDecimal sre;
|
||||
/**
|
||||
* 当期免税收入 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "当期免税收入", width = "10%", column = "mssd")
|
||||
private BigDecimal mssd;
|
||||
/**
|
||||
* 基本养老保险 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "基本养老保险", width = "10%", column = "jbylaobxf")
|
||||
private BigDecimal jbylaobxf;
|
||||
/**
|
||||
* 基本医疗保险 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "基本医疗保险", width = "10%", column = "jbylbxf")
|
||||
private BigDecimal jbylbxf;
|
||||
/**
|
||||
* 失业保险 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "失业保险", width = "10%", column = "sybxf")
|
||||
private BigDecimal sybxf;
|
||||
/**
|
||||
* 住房公积金 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "住房公积金", width = "10%", column = "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
|
||||
*/
|
||||
@SalaryTableColumn(text = "年金", width = "10%", column = "nj")
|
||||
private BigDecimal nj;
|
||||
/**
|
||||
* 商业健康保险 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "商业健康保险", width = "10%", column = "syjkbx")
|
||||
private BigDecimal syjkbx;
|
||||
/**
|
||||
* 税延养老保险 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "税延养老保险", width = "10%", column = "syylbx")
|
||||
private BigDecimal syylbx;
|
||||
/**
|
||||
* 其他 必填:null 按法律规定可以在税前扣除的项目
|
||||
*/
|
||||
@SalaryTableColumn(text = "其他", width = "10%", column = "qt")
|
||||
private BigDecimal qt;
|
||||
/**
|
||||
* 准予扣除的捐赠额 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "zykcjze")
|
||||
private BigDecimal zykcjze;
|
||||
/**
|
||||
* 减免税额 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "减免税额", width = "10%", column = "jmse")
|
||||
private BigDecimal jmse;
|
||||
/**
|
||||
* 备注 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "备注", width = "10%", column = "bz")
|
||||
private String bz;
|
||||
/**
|
||||
* 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用
|
||||
*/
|
||||
@SalaryTableColumn(text = "减除费用", width = "10%", column = "jcfy")
|
||||
private BigDecimal jcfy;
|
||||
/**
|
||||
* 其他扣除合计 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "其他扣除合计", width = "10%", column = "qtckhj")
|
||||
private BigDecimal qtckhj;
|
||||
/**
|
||||
* 应纳税所得额 必填:null 正常工资薪金返回Null
|
||||
*/
|
||||
@SalaryTableColumn(text = "应纳税所得额", width = "10%", column = "ynssde")
|
||||
private BigDecimal ynssde;
|
||||
/**
|
||||
* 应纳税额 必填:null 正常工资薪金返回Null
|
||||
*/
|
||||
@SalaryTableColumn(text = "应纳税额", width = "10%", column = "ynse")
|
||||
private BigDecimal ynse;
|
||||
/**
|
||||
* 已缴税额 必填:null 正常工资薪金返回Null
|
||||
*/
|
||||
@SalaryTableColumn(text = "已缴税额", width = "10%", column = "ykjse")
|
||||
private BigDecimal ykjse;
|
||||
/**
|
||||
* 应扣缴税额 必填:null 正常工资薪金返回Null
|
||||
*/
|
||||
@SalaryTableColumn(text = "应扣缴税额", width = "10%", column = "yingkjse")
|
||||
private BigDecimal yingkjse;
|
||||
/**
|
||||
* 税率 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "税率", width = "10%", column = "sl")
|
||||
private BigDecimal sl;
|
||||
/**
|
||||
* 速算扣除数 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "速算扣除数", width = "10%", column = "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
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计应纳税额", width = "10%", column = "ljynse")
|
||||
private BigDecimal ljynse;
|
||||
/**
|
||||
* 累计应扣缴税额 必填:null 累计应扣缴税额 = 累计应纳税额 - 累计减免税额
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计应扣缴税额", width = "10%", column = "ljyingkjse")
|
||||
private BigDecimal ljyingkjse;
|
||||
/**
|
||||
* 累计已缴税额 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计已缴税额", width = "10%", column = "ljykjse")
|
||||
private BigDecimal ljykjse;
|
||||
/**
|
||||
* 累计子女教育支出 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计子女教育支出", width = "10%", column = "ljznjyzc")
|
||||
private BigDecimal ljznjyzc;
|
||||
/**
|
||||
* 累计继续教育支出 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计继续教育支出", width = "10%", column = "ljjxjyzc")
|
||||
private BigDecimal ljjxjyzc;
|
||||
/**
|
||||
* 累计非学历继续教育支持 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计非学历继续教育支持", width = "10%", column = "ljfxljxjyzc")
|
||||
private BigDecimal ljfxljxjyzc;
|
||||
/**
|
||||
* 累计学历继续教育支持 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计学历继续教育支持", width = "10%", column = "ljxljxjyzc")
|
||||
private BigDecimal ljxljxjyzc;
|
||||
/**
|
||||
* 累计住房租金支出 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计住房租金支出", width = "10%", column = "ljzfzjzc")
|
||||
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 = "ljzykcjze")
|
||||
private BigDecimal ljzykcjze;
|
||||
/**
|
||||
* 累计个人养老金 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计个人养老金", width = "10%", column = "ljgrylj")
|
||||
private BigDecimal ljgrylj;
|
||||
/**
|
||||
* 累计个人养老金校验码 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "累计个人养老金校验码", width = "10%", column = "ljgryljjym")
|
||||
private String ljgryljjym;
|
||||
/**
|
||||
* 企业上月是否已申报 必填:null 仅在两个月算税场景时使用,当前月分为N月:
|
||||
|
|
@ -468,28 +547,34 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
* 1表示N-1月(上月)已申报
|
||||
* 2表示N-2月(上上个月)未申报
|
||||
*/
|
||||
@SalaryTableColumn(text = "企业上月是否已申报", width = "10%", column = "qysysfysb")
|
||||
private String qysysfysb;
|
||||
/**
|
||||
* 员工在税局累计已扣缴的税额 必填:null 当前月分为N,如果N-1(上月)已申报,则返回N-1月员工在税局累计已扣缴的税额;
|
||||
* 如果N-1月未申报,则返回N-2月工在税局累计已扣缴的税额;
|
||||
*/
|
||||
@SalaryTableColumn(text = "员工在税局累计已扣缴的税额", width = "10%", column = "ygzsjljykjse")
|
||||
private BigDecimal ygzsjljykjse;
|
||||
|
||||
/**
|
||||
* 本月已累计扣除税额 必填:null 针对一月多次算税的场景字段
|
||||
*/
|
||||
@SalaryTableColumn(text = "本月已累计扣除税额", width = "10%", column = "byyljkjse")
|
||||
private BigDecimal byyljkjse;
|
||||
/**
|
||||
* 本次应扣缴税额 必填:null 针对一月多次算税的场景字段,本次应扣缴税额=本月应扣缴税额-本月已累计税额
|
||||
*/
|
||||
@SalaryTableColumn(text = "本次应扣缴税额", width = "10%", column = "bcykjse")
|
||||
private BigDecimal bcykjse;
|
||||
/**
|
||||
* 分摊年度数 必填:null
|
||||
*/
|
||||
@SalaryTableColumn(text = "分摊年度数", width = "10%", column = "ftnds")
|
||||
private Integer ftnds;
|
||||
/**
|
||||
* 年减除费用 必填:null 默认为60000
|
||||
*/
|
||||
@SalaryTableColumn(text = "年减除费用", width = "10%", column = "njcfy")
|
||||
private BigDecimal njcfy;
|
||||
|
||||
}
|
||||
|
|
@ -497,7 +582,8 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
/**
|
||||
* 4.4.1.3.2算税失败原因对象
|
||||
*/
|
||||
public class sssbyydx {
|
||||
@Data
|
||||
public static class sssbyydx {
|
||||
/**
|
||||
* 人员ID
|
||||
*/
|
||||
|
|
@ -536,5 +622,7 @@ public class GetDeclareTaxResultFeedbackResponse {
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
|
|||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
|
|
@ -139,6 +140,7 @@ public interface TaxDeclareRecordService {
|
|||
*/
|
||||
Object getDeclareTaxResultFeedback(Long id);
|
||||
|
||||
XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id,String requestId);
|
||||
/**
|
||||
* 作废
|
||||
*
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.engine.salary.service.impl;
|
|||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.annotation.SalaryTableColumn;
|
||||
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareListDTO;
|
||||
import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam;
|
||||
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
|
||||
|
|
@ -10,18 +9,12 @@ import com.engine.salary.service.EmployeeDeclareExcelService;
|
|||
import com.engine.salary.service.EmployeeDeclareService;
|
||||
import com.engine.salary.service.SalaryEmployeeService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.excel.ExcelUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description: 人员报送(人员)导入导出
|
||||
|
|
@ -115,7 +108,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
|
|||
// 转换成dto
|
||||
List<EmployeeDeclareListDTO> dtoList = getEmployeeDeclareService(user).convert(employeeDeclares);
|
||||
// 需要导出的数据
|
||||
List<List<Object>> excelSheetData = getExcelSheetData(EmployeeDeclareListDTO.class, dtoList);
|
||||
List<List<Object>> excelSheetData = ExcelUtil.getExcelSheetData(EmployeeDeclareListDTO.class, dtoList);
|
||||
|
||||
return ExcelUtil.genWorkbookV2(excelSheetData, "人员信息采集");
|
||||
}
|
||||
|
|
@ -213,20 +206,6 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
|
|||
// }
|
||||
|
||||
|
||||
private <T> List<List<Object>> getExcelSheetData(Class<T> clazz, List<T> dtoList) {
|
||||
// 导出的表头
|
||||
Map<String, List<Object>> headerMap = getHeader(clazz);
|
||||
// 导出的数据
|
||||
List<List<Object>> rows = new ArrayList<>();
|
||||
rows.add(headerMap.get("header"));
|
||||
dtoList.forEach(dto -> {
|
||||
Map<String, Object> map = JsonUtil.parseMap(dto, Object.class);
|
||||
List<Object> row = Lists.newArrayListWithExpectedSize(headerMap.get("dataIndex").size());
|
||||
headerMap.get("dataIndex").forEach(dataIndex -> row.add(map.get(dataIndex)));
|
||||
rows.add(row);
|
||||
});
|
||||
return rows;
|
||||
}
|
||||
//
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
// @BatchImportHandler("importEmployeeDeclare")
|
||||
|
|
@ -605,24 +584,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
|
|||
// SalaryI18nUtil.getI18nLabel(employeeId, 156402, "是否扣除减除费用"));
|
||||
// }
|
||||
|
||||
private <T> Map<String, List<Object>> getHeader(Class<T> clazz) {
|
||||
Map<String, List<Object>> headerMap = new HashMap<>();
|
||||
// 导出的表头
|
||||
List<Object> headerList = Lists.newArrayList();
|
||||
List<Object> dataIndexList = Lists.newArrayList();
|
||||
Field[] declaredFields = clazz.getDeclaredFields();
|
||||
for (Field declaredField : declaredFields) {
|
||||
if (!declaredField.isAnnotationPresent(SalaryTableColumn.class)) {
|
||||
continue;
|
||||
}
|
||||
SalaryTableColumn annotation = declaredField.getAnnotation(SalaryTableColumn.class);
|
||||
headerList.add(annotation.text());
|
||||
dataIndexList.add(annotation.column());
|
||||
}
|
||||
headerMap.put("header", headerList);
|
||||
headerMap.put("dataIndex", dataIndexList);
|
||||
return headerMap;
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * 检查表头
|
||||
|
|
|
|||
|
|
@ -41,10 +41,12 @@ import com.engine.salary.enums.taxdeclaration.*;
|
|||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper;
|
||||
import com.engine.salary.remote.tax.client.DeclareClient;
|
||||
import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.service.factory.TaxPaymentServiceFactory;
|
||||
import com.engine.salary.util.*;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.excel.ExcelUtil;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
|
@ -54,6 +56,7 @@ import dm.jdbc.util.IdGenerator;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
|
@ -924,6 +927,21 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
return declareClient.getDeclareTaxResultFeedback(taxDeclareRecord.getRequestId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id, String requestId) {
|
||||
TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord();
|
||||
|
||||
DeclareClient declareClient = new DeclareClient(taxDeclareRecord.getTaxAgentId());
|
||||
GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? taxDeclareRecord.getRequestId() : requestId);
|
||||
List<GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw> sscglb = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb();
|
||||
|
||||
// 需要导出的数据
|
||||
List<List<Object>> excelSheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.zhsd.zcgzxj.zhsdscjgbw.class, sscglb);
|
||||
|
||||
return ExcelUtil.genWorkbookV2(excelSheetData, "申报内置算税结果");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateDeclare(Long id) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
package com.engine.salary.util.excel;
|
||||
|
||||
import com.engine.salary.annotation.SalaryTableColumn;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.poi.ss.usermodel.CellType;
|
||||
import org.apache.poi.ss.usermodel.FillPatternType;
|
||||
|
|
@ -9,6 +12,7 @@ import org.apache.poi.ss.usermodel.IndexedColors;
|
|||
import org.apache.poi.xssf.usermodel.*;
|
||||
|
||||
import java.awt.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -274,4 +278,40 @@ public class ExcelUtil {
|
|||
list.addAll(excelSheetData.getRows());
|
||||
return genWorkbookV2(list, excelSheetData.getSheetName());
|
||||
}
|
||||
|
||||
|
||||
public static <T> Map<String, List<Object>> getHeader(Class<T> clazz) {
|
||||
Map<String, List<Object>> headerMap = new HashMap<>();
|
||||
// 导出的表头
|
||||
List<Object> headerList = Lists.newArrayList();
|
||||
List<Object> dataIndexList = Lists.newArrayList();
|
||||
Field[] declaredFields = clazz.getDeclaredFields();
|
||||
for (Field declaredField : declaredFields) {
|
||||
if (!declaredField.isAnnotationPresent(SalaryTableColumn.class)) {
|
||||
continue;
|
||||
}
|
||||
SalaryTableColumn annotation = declaredField.getAnnotation(SalaryTableColumn.class);
|
||||
headerList.add(annotation.text());
|
||||
dataIndexList.add(annotation.column());
|
||||
}
|
||||
headerMap.put("header", headerList);
|
||||
headerMap.put("dataIndex", dataIndexList);
|
||||
return headerMap;
|
||||
}
|
||||
|
||||
public static <T> List<List<Object>> getExcelSheetData(Class<T> clazz, List<T> dtoList) {
|
||||
// 导出的表头
|
||||
Map<String, List<Object>> headerMap = getHeader(clazz);
|
||||
// 导出的数据
|
||||
List<List<Object>> rows = new ArrayList<>();
|
||||
rows.add(headerMap.get("header"));
|
||||
dtoList.forEach(dto -> {
|
||||
Map<String, Object> map = JsonUtil.parseMap(dto, Object.class);
|
||||
List<Object> row = Lists.newArrayListWithExpectedSize(headerMap.get("dataIndex").size());
|
||||
headerMap.get("dataIndex").forEach(dataIndex -> row.add(map.get(dataIndex)));
|
||||
rows.add(row);
|
||||
});
|
||||
return rows;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import javax.ws.rs.core.Response;
|
|||
import javax.ws.rs.core.StreamingOutput;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -216,6 +217,38 @@ public class TaxDeclarationController {
|
|||
return new ResponseResult<Long, Object>(user).run(getTaxDeclareRecordWrapper(user)::getDeclareTaxResultFeedback, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员报送-导出全部人员
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
@Path("/exportGetDeclareTaxResultFeedback")
|
||||
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
||||
public Response exportGetDeclareTaxResultFeedback(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id, @QueryParam(value = "requestId") String requestId) {
|
||||
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
XSSFWorkbook workbook = getTaxDeclareRecordWrapper(user).exportGetDeclareTaxResultFeedback(id ,requestId);
|
||||
String fileName = "申报内置算税结果-" + LocalDate.now();
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
StreamingOutput output = outputStream -> {
|
||||
workbook.write(outputStream);
|
||||
outputStream.flush();
|
||||
};
|
||||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("申报内置算税结果导出异常", e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 作废
|
||||
|
|
|
|||
|
|
@ -466,6 +466,11 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
return getTaxDeclareRecordService(user).getDeclareTaxResultFeedback(id);
|
||||
}
|
||||
|
||||
|
||||
public XSSFWorkbook exportGetDeclareTaxResultFeedback(Long id,String requestId) {
|
||||
return getTaxDeclareRecordService(user).exportGetDeclareTaxResultFeedback(id, requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 作废
|
||||
*
|
||||
|
|
@ -654,4 +659,5 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
public XSSFWorkbook exportEmployee4Fail(AbnormalEmployeeListQueryParam queryParam) {
|
||||
return getTaxDeclarationExcelService(user).exportEmployee4Fail(queryParam);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue