diff --git a/src/com/engine/salary/entity/taxapiflow/response/QueryAccountBalanceResponse.java b/src/com/engine/salary/entity/taxapiflow/response/QueryAccountBalanceResponse.java index 4c5cb33e3..584244e09 100644 --- a/src/com/engine/salary/entity/taxapiflow/response/QueryAccountBalanceResponse.java +++ b/src/com/engine/salary/entity/taxapiflow/response/QueryAccountBalanceResponse.java @@ -22,15 +22,15 @@ public class QueryAccountBalanceResponse { public static class Body { /** * 已购买总流量 - **/ + */ private String total; /** * 已使用流量 - **/ + */ private String used; /** * 剩余流量 - **/ + */ private String surplus; /** * 使用明细 diff --git a/src/com/engine/salary/remote/tax/client/DeclareClient.java b/src/com/engine/salary/remote/tax/client/DeclareClient.java index 3f5722b24..bcd390856 100644 --- a/src/com/engine/salary/remote/tax/client/DeclareClient.java +++ b/src/com/engine/salary/remote/tax/client/DeclareClient.java @@ -7,6 +7,14 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +/** + * 个税申报客户端 + *

Copyright: Copyright (c) 2023

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class DeclareClient extends TaxBaseClient{ public DeclareClient(Long taxAgentId) { super(taxAgentId); @@ -24,6 +32,9 @@ public class DeclareClient extends TaxBaseClient{ params.put("requestId", requestId); Map header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret()); String res = HttpUtil.getRequest(url, header, params); + + + return res; } diff --git a/src/com/engine/salary/remote/tax/client/EmployeeClient.java b/src/com/engine/salary/remote/tax/client/EmployeeClient.java index 8ea3f8177..90da29385 100644 --- a/src/com/engine/salary/remote/tax/client/EmployeeClient.java +++ b/src/com/engine/salary/remote/tax/client/EmployeeClient.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; /** - * 人员信息登记报送服务 + * 人员信息登记报送客户端 *

Copyright: Copyright (c) 2023

*

Company: 泛微软件

* diff --git a/src/com/engine/salary/remote/tax/client/TaxBaseClient.java b/src/com/engine/salary/remote/tax/client/TaxBaseClient.java index 38ba9862a..1eae80e88 100644 --- a/src/com/engine/salary/remote/tax/client/TaxBaseClient.java +++ b/src/com/engine/salary/remote/tax/client/TaxBaseClient.java @@ -8,14 +8,6 @@ import com.engine.salary.util.Sm4Utils; import com.engine.salary.util.db.MapperProxyFactory; import lombok.extern.slf4j.Slf4j; -/** - * 人员信息登记报送服务 - *

Copyright: Copyright (c) 2023

- *

Company: 泛微软件

- * - * @author qiantao - * @version 1.0 - **/ @Slf4j public class TaxBaseClient { private TaxDeclareApiConfigMapper getTaxDeclareApiConfigMapper() { diff --git a/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java b/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java new file mode 100644 index 000000000..45e773ab0 --- /dev/null +++ b/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java @@ -0,0 +1,540 @@ +package com.engine.salary.remote.tax.response.employee; + +import java.math.BigDecimal; +import java.util.List; + +public class GetDeclareTaxResultFeedbackResponse { + /** + * 企业名称 必填:是 + */ + private String qymc; + /** + * 税号 必填:是 + */ + private String nsrsbh; + /** + * 地区编号 必填:是 6位行政区划代码,精确到市级,例如:440100,参考省市区编码 + */ + private String areaid; + /** + * 部门编号 必填:是 + */ + private String bmbh; + /** + * 部门名称 必填:否 + */ + private String bmmc; + /** + * 算税月份 必填:是 + */ + private String skssq; + /** + * 综合所得 必填:是 见综合所得计算结果 + */ + private zhsd zhsd; +// /** +// * 分类所得 必填:是 见分类所得计算结果 +// */ +// private 对象 flsd; +// /** +// * 非居民所得 必填:是 见非居民所得计算结果 +// */ +// private 对象 fjmsd; +// /** +// * 限售股所得 必填:是 见限售股所得计算结果 +// */ +// private 对象 xsgsd; +// /** +// * 人员申报失败列表 必填:是 参考人员代报结果对象 +// */ +// private 数组 rysbsblb; + + + public class zhsd { + /** + * 人员代代报失败列表 参考人员代报结果对象 + */ + private List rysbsblb; + /** + * 正常工资薪金算税结果对象 参考综合所得算税结果对象 + */ + private zcgzxj zcgzxj; +// /** +// * 全年一次性奖金收入算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 qnycxjjsslb; +// /** +// * 稿酬所得算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 gcsdlb; +// /** +// * 一般劳务报酬算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 lwbclb; +// /** +// * 解除劳动合同一次性补偿金列表 参考综合所得算税结果对象 +// */ +// private 对象 jcldhtycxbcjlb; +// /** +// * 保险营销员薪金算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 bxyxy; +// /** +// * 证券经纪人薪金算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 zqjjr; +// /** +// * 特许权算税结果对象 参考综合所得算税结果对象 +// */ +// private 对象 txq; +// /** +// * 个人股权激励结果对象 参考综合所得算税结果对象 +// */ +// private 对象 grgqjl; +// /** +// * 企业年金结果对象 参考综合所得算税结果对象 +// */ +// private 对象 qynj; +// /** +// * 内退一次性补偿金 参考综合所得算税结果对象 +// */ +// private 对象 ntycxbcjlb; +// /** +// * 其他连续劳务报酬 参考综合所得算税结果对象 +// */ +// private 对象 qtlxlwbc; +// /** +// * 其他非连续劳务报酬 参考综合所得算税结果对象 +// */ +// private 对象 qtflxlwbc; +// /** +// * 提前退休一次性补贴 参考综合所得算税结果对象 +// */ +// private 对象 tqtxycxbt; +// /** +// * 央企负责人绩效薪金延期兑现收入和任期奖励 参考综合所得算税结果对象 +// */ +// private 对象 yqfzrsrhjl; +// /** +// * 法律援助劳务报酬 参考综合所得算税结果对象 +// */ +// private 对象 flyzlwbclb; + + + /** + * 人员代报结果对象 + */ + public class rydbjgdx { + /** + * 姓名 + */ + private String xm; + /** + * 证件类型名称 + */ + private String zzlx; + /** + * 证件号码 + */ + private String zzhm; + /** + * 代报状态 1 待报送 2 代报中 3 代报失败 4 代报成功 + */ + private String sbzt; + /** + * 人员认证状态 + */ + private String rzzt; + /** + * 失败原因 + */ + private String sbyy; + /** + * 专项代报状态 + */ + private String clzt; + /** + * 专项代报结果原因 + */ + private String cljgms; + } + + + /** + * 综合所得算税结果对象 + */ + public class zcgzxj { + /** + * 综合算税成功列表 参考综合所得输出结果报文 + */ + private List sscglb; + /** + * 综合算税失败列表 参考综合所得输出结果报文 + */ + private List sssblb; + /** + * 综合算税失败原因列表 参考算税失败原因对象 + */ + private List sssbyylb; + /** + * 参与综合算税总人数 + */ + private int sszrs; + /** + * 综合算税失败总人数 + */ + private int sssbrs; + /** + * 年金上限 + */ + private BigDecimal njsx; + /** + * 住房公积金上限 + */ + private BigDecimal zfgjjsx; + /** + * 年平均工资 + */ + private BigDecimal npjgz; + /** + * 企业上月是否已申报 0:上月未申报 1:上月已申报 2:上上月未申报 + */ + private String qysysfysb; + /** + * 专项代报状态 + */ + private String clzt; + /** + * 专项代报结果原因 + */ + private String cljgms; + + + /** + * 综合所得输出结果报文 + */ + public class zhsdscjgbw { + /** + * 是否明细申报 必填:否 是或者否 + */ + private String sfmxsb; + /** + * 姓名 必填:null 如果是汇总申报返回空 + */ + private String xm; + /** + * 证件类型 必填:null 见证件类型字典 + */ + private String zzlx; + /** + * 证件号码 必填:null 如果是汇总申报返回空 + */ + private String zzhm; + /** + * 任职受雇日期 必填:是 格式YYYY-MM-DD + */ + private String rzsgrq; + /** + * 离职日期 必填:否 格式YYYY-MM-DD + */ + private String lzrq; + /** + * 当期收入额 必填:是 不填写默认为0 + */ + private BigDecimal sre; + /** + * 当期免税收入 必填:null + */ + private BigDecimal mssd; + /** + * 基本养老保险 必填:null + */ + private BigDecimal jbylaobxf; + /** + * 基本医疗保险 必填:null + */ + private BigDecimal jbylbxf; + /** + * 失业保险 必填:null + */ + private BigDecimal sybxf; + /** + * 住房公积金 必填:null + */ + private BigDecimal zfgjj; + /** + * 子女教育支出 必填:null + */ + private BigDecimal znjyzc; + /** + * 赡养老人支出 必填:null + */ + private BigDecimal sylrzc; + /** + * 住房贷款利息支出 必填:null + */ + private BigDecimal zfdklxzc; + /** + * 住房租金支出 必填:null + */ + private BigDecimal zfzjzc; + /** + * 继续教育支出 必填:null + */ + private BigDecimal jxjyzc; + /** + * 非学历继续教育支出 必填:null + */ + private BigDecimal fxljxjyzc; + /** + * 3岁以下婴幼儿照护支出 必填:null + */ + private BigDecimal yyezhzc; + /** + * 年金 必填:null + */ + private BigDecimal nj; + /** + * 商业健康保险 必填:null + */ + private BigDecimal syjkbx; + /** + * 税延养老保险 必填:null + */ + private BigDecimal syylbx; + /** + * 其他 必填:null 按法律规定可以在税前扣除的项目 + */ + private BigDecimal qt; + /** + * 准予扣除的捐赠额 必填:null + */ + private BigDecimal zykcjze; + /** + * 减免税额 必填:null + */ + private BigDecimal jmse; + /** + * 备注 必填:null + */ + private String bz; + /** + * 减除费用 必填:null 正常工资薪金的减除费用。 对应保险营销员、证券经纪人的费用 + */ + private BigDecimal jcfy; + /** + * 其他扣除合计 必填:null + */ + private BigDecimal qtckhj; + /** + * 应纳税所得额 必填:null 正常工资薪金返回Null + */ + private BigDecimal ynssde; + /** + * 应纳税额 必填:null 正常工资薪金返回Null + */ + private BigDecimal ynse; + /** + * 已缴税额 必填:null 正常工资薪金返回Null + */ + private BigDecimal ykjse; + /** + * 应扣缴税额 必填:null 正常工资薪金返回Null + */ + private BigDecimal yingkjse; + /** + * 税率 必填:null + */ + private BigDecimal sl; + /** + * 速算扣除数 必填:null + */ + private BigDecimal sskcs; + /** + * 所得项目名称 必填:是 正常工资薪金;全年一次性奖金收入;稿酬所得;劳务报酬 + */ + private String sdxm; + /** + * 应补退税额 必填:null 应补退税额=累计应扣缴税额-累计已缴税额 + */ + private BigDecimal ybtse; + /** + * 累计收入额 必填:null + */ + private BigDecimal ljsre; + /** + * 累计免税收入额 必填:null + */ + private BigDecimal ljmssd; + /** + * 累计专项扣除额 必填:null 三险一金合计 + */ + private BigDecimal ljzxkce; + /** + * 累计专项附加扣除额 必填:null 专项附加合计 + */ + private BigDecimal ljzxfjkce; + /** + * 累计其他扣除额 必填:null + */ + private BigDecimal ljqtkce; + /** + * 累计减免税额 必填:null + */ + private BigDecimal ljjmse; + /** + * 累计减除费用额 必填:null 正常工资薪金累计减除费用 对应保险营销员、证券经纪人累计费用 + */ + private BigDecimal ljjcfye; + /** + * 累计月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用 + */ + private BigDecimal ljyjcfy; + /** + * 允许扣除税费 必填:null 保险营销员、证券经纪人 + */ + private BigDecimal yxkcsf; + /** + * 展业成本 必填:null 保险营销员、证券经纪人 + */ + private BigDecimal zycb; + /** + * 月减除费用 必填:null 保险营销员、证券经纪人,其他连续劳务报酬的减除费用 + */ + private BigDecimal yjcfy; + /** + * 累计应纳税所得额 必填:null + */ + private BigDecimal ljynssde; + /** + * 累计应纳税额 必填:null + */ + private BigDecimal ljynse; + /** + * 累计应扣缴税额 必填:null 累计应扣缴税额 = 累计应纳税额 - 累计减免税额 + */ + private BigDecimal ljyingkjse; + /** + * 累计已缴税额 必填:null + */ + private BigDecimal ljykjse; + /** + * 累计子女教育支出 必填:null + */ + private BigDecimal ljznjyzc; + /** + * 累计继续教育支出 必填:null + */ + private BigDecimal ljjxjyzc; + /** + * 累计非学历继续教育支持 必填:null + */ + private BigDecimal ljfxljxjyzc; + /** + * 累计学历继续教育支持 必填:null + */ + private BigDecimal ljxljxjyzc; + /** + * 累计住房租金支出 必填:null + */ + private BigDecimal ljzfzjzc; + /** + * 累计房屋贷款支出 必填:null + */ + private BigDecimal ljzfdklxzc; + /** + * 累计赡养老人支出 必填:null + */ + private BigDecimal ljsylrzc; + /** + * 累计3岁以下婴幼儿照护支出 必填:null + */ + private BigDecimal ljyyezhzc; + /** + * 累计准予扣除的捐赠额 必填:null + */ + private BigDecimal ljzykcjze; + /** + * 累计个人养老金 必填:null + */ + private BigDecimal ljgrylj; + /** + * 累计个人养老金校验码 必填:null + */ + private String ljgryljjym; + /** + * 企业上月是否已申报 必填:null 仅在两个月算税场景时使用,当前月分为N月: + * 0表示N-1月(上月)未申报 + * 1表示N-1月(上月)已申报 + * 2表示N-2月(上上个月)未申报 + */ + private String qysysfysb; + /** + * 员工在税局累计已扣缴的税额 必填:null 当前月分为N,如果N-1(上月)已申报,则返回N-1月员工在税局累计已扣缴的税额; + * 如果N-1月未申报,则返回N-2月工在税局累计已扣缴的税额; + */ + private BigDecimal ygzsjljykjse; + + /** + * 本月已累计扣除税额 必填:null 针对一月多次算税的场景字段 + */ + private BigDecimal byyljkjse; + /** + * 本次应扣缴税额 必填:null 针对一月多次算税的场景字段,本次应扣缴税额=本月应扣缴税额-本月已累计税额 + */ + private BigDecimal bcykjse; + /** + * 分摊年度数 必填:null + */ + private Integer ftnds; + /** + * 年减除费用 必填:null 默认为60000 + */ + private BigDecimal njcfy; + + } + + /** + * 4.4.1.3.2算税失败原因对象 + */ + public class sssbyydx { + /** + * 人员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; + } + + } + + } + + +} diff --git a/src/com/engine/salary/web/EmployeeDeclareController.java b/src/com/engine/salary/web/EmployeeDeclareController.java index 420863bbb..bd8b5bbb3 100644 --- a/src/com/engine/salary/web/EmployeeDeclareController.java +++ b/src/com/engine/salary/web/EmployeeDeclareController.java @@ -11,6 +11,7 @@ import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.EmployeeDeclareWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -30,6 +31,7 @@ import java.util.Map; * @author qiantao * @version 1.0 **/ +@Slf4j public class EmployeeDeclareController { private EmployeeDeclareWrapper getEmployeeDeclareWrapper(User user) { diff --git a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java index 5a5b907f7..57442d505 100644 --- a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java +++ b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java @@ -547,7 +547,6 @@ public class EmployeeDeclareWrapper extends Service { GetCompanyEmployeeResponse companyEmployee = employeeClient.getCompanyEmployee(param); - return companyEmployee; } diff --git a/test/ApiReturnDes.java b/test/ApiReturnDes.java new file mode 100644 index 000000000..e27dc5cc4 --- /dev/null +++ b/test/ApiReturnDes.java @@ -0,0 +1,18 @@ +import com.engine.salary.util.excel.ExcelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ApiReturnDes { + @ExcelProperty(index = 0) + public String name; + @ExcelProperty(index = 1) + public String mean; + @ExcelProperty(index = 2) + public String type; + @ExcelProperty(index = 3) + public String des; +} diff --git a/test/ParseTaxApi.java b/test/ParseTaxApi.java index 957f424d3..3e4b45d9d 100644 --- a/test/ParseTaxApi.java +++ b/test/ParseTaxApi.java @@ -7,7 +7,9 @@ import java.util.List; public class ParseTaxApi { public static void main(String[] args) { - readExcel("H:\\code\\salary\\resource\\sql\\ApiDes.xlsx"); +// readExcel("H:\\code\\salary\\resource\\sql\\ApiDes.xlsx"); + + readExcel2("H:\\code\\salary\\resource\\sql\\ApiDes.xlsx"); } @@ -27,17 +29,17 @@ public class ParseTaxApi { apiDesList.forEach(des -> { String type = des.getType(); - if(StringUtils.isNotEmpty(type)){ - if(type.startsWith("String")){ - type= "String"; + if (StringUtils.isNotEmpty(type)) { + if (type.startsWith("String")) { + type = "String"; } } String a = "/** * " + des.getMean() - +" " + + " " + "必填:" + des.getRequired() - +" " + des.getDes() + + " " + (des.getDes() == null ? "" : des.getDes()) + " */" + " private " + type + " " + des.getName() + ";"; System.out.println(a); @@ -50,6 +52,41 @@ public class ParseTaxApi { } + public static void readExcel2(String path) { + try { + // 获取文件输入流 + InputStream inputStream = new FileInputStream(path); + + List apiDesList = ExcelParseHelper.parse2Map(inputStream, ApiReturnDes.class, 0, 1, 4, "ApiDes.xlsx"); + + /** + * 字段名称 字段含义 字段类型 必填 说明 + * qtzzlx 其他证件类型 String(64) 条件必填 见证件类型字典 + * + * private String qtzzlx; + */ + + apiDesList.forEach(des -> { + String type = des.getType(); + if (StringUtils.isNotEmpty(type)) { + if (type.startsWith("String")) { + type = "String"; + } + } + + String a = "/** * " + + des.getMean() + + " " + (des.getDes() == null ? "" : des.getDes()) + + " */" + " private " + type + " " + des.getName() + ";"; + System.out.println(a); + + }); + + + } catch (Exception e) { + e.printStackTrace(); + } + } }