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();
+ }
+ }
}