李白
9 天以前 08095d9847f0cd612c3007f860e57e967278562e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
package com.by4cloud.platformx.business.entity.invoice.vo;
 
import lombok.Data;
 
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
 
/**
 * @author kdq
 * @version 1.0.0
 * @ClassName InvoicingVo.java
 * @Description TODO
 * @createTime 2024年10月08日 11:16:00
 */
@Data
public class InvoicingVo {//发票开具
    private Long saleCreditId;
    private String taxNo; //税号
    private String entrustCode; //结算单号
    private Integer fatherEntrustId; //父结算单id
    private Integer settlementPathId; //结算路径id
    private Integer sort; //排序
    private String ledgerName; //销方名称
    private String taxUserName;//登录名
    private String invoiceTerminalCode;//开票终端代码
    private Boolean isSplit;//是否需要拆分开具,默认不拆分
    private String orgCode;//组织机构编码
    private String taxDiskNo;//设备编号
    private Boolean formatGenerate;//是否需要生成版式返回版式链接(true / false)
    private Boolean formatPushType;// 版式生成是否推送(true / false)
    /**
     * 值为(1/0 1 需要补全 0不需要补全,默认为0)是否根据客户编码,购方税号,购方名称查询客户信息补全未填写的购
     * 方信息(购方税号,购方名称,购方地址电话,购方银行账号,邮箱,手机)
     */
    private String completionCustom;
    /**
     * 开具请求类型:isAsync 0 同步 1 异步 默认同步开具(仅支持rpa)
     */
    private String isAsync;
    /**
     * 是否返回蓝票已红冲红票信息,0否,1是,默认为0(仅支持税控发票)
     */
    private String isReturnRedInfo;
    private InvoicingVoInfo data;
 
    @Data
    public static class InvoicingVoInfo {
        /**
         * 发票类型代码, 004:增值税专用发票;007:增值税普通发票;026:增值税电子发票;025:增值税卷式发票;028:增值税电子专用发票
         *  01:全电发票(增值税专用发票) 02:全电发票(普通发票)
         */
        private String invoiceTypeCode;
        /**
         * 数电纸质发票标志,Y:是,N:否。税控类发票开具不校验此字段;暂只支持用数电电票红冲数电纸票
         */
        private String paperInvoiceFlag;
        /**
         * 选择纸质发票标志为Y时,纸票类型必填。票种为 普通发票02时可传: 04 2016版增值税普通发票(二联折叠票), 052016版增值税普通发票(五联折叠票);
         * 票种为 增值税专用发票01可传: 1130 增值税专用发票(中文三联无金额限制版) ,1140 增值税专用发票(中文四联无金额限制版) 1160增值,税专用发票(中文六联无金额限制版) ,
         * 1170 增值税专用发票(中文七联无金额限制版)
         */
        private String paperInvoiceTypeCode;
        /**
         * 开票类型 0:正数发票(蓝票) 1:负数发票(红票)默认0
         */
        private String invoiceType;
        /**
         * 特殊票种标志, 00:普通发票;01:农产品销售;02:农产品收购;08:成品油 机动车(默认是00普通发票);16矿产品;03稀土; 全电类发票特殊票种标志:01 成品油发票;
         * 03:建筑服务发票;04:货物运输服务发票;05:不动产销售服务发票;06:不动产租赁服务发票;09:旅客运输发票;12:自产农产品销售;
         * 13:拖拉机和联合收割机;14:机动车;15:二手车;16:农产品收购;31:二手车*;24:报废产品收购;02:稀土;17:光伏收购;07:代收车船税;32:电子烟;18卷烟
         */
        private String invoiceSpecialMark;
        /**
         * 成品油单价过低是否确认开具标识:Y 是; N 否 为空时默认值为N (备注:专票单价过低强制开票会记入异常发票,红冲需要在电子税务局申请解除然后再红冲;普票单价过
         * 低开具成功发票可以正常红冲)
         */
        private String  isConfirmIssue;
        /**
         * 税局二次确认是否继续开票,1:是;0:否;(03建筑服务发票,建筑服务发生地和销方注册地址不同时是否继续开票,24报废产品收购需要缴纳购置税的提示是否继续开具
         * ),若不传值,系统默认按照“是”处理;
         */
        private String  confirmIssue;
        /**
         * 征税方式, 0:普通征税;2:差额征税(默认是0普通征税)
         */
        private String  taxationMethod;
        /**
         * 差额征税标签:01 全额开票、 02 差额开票 ;发票类型代码为01,02时且征税方式为2必填
         */
        private String  taxationLabel;
        /**
         * 减按征税标识,01:个人出租住房;03:销售自己使用过的固定资产;05:住房租赁。默认为空,空代表无。
         */
        private String  reducedTaxCode;
        /**
         * 0:无清单;1:带清单(专普票发票明细大于等于8行必须带清单):大于8行必须为清单票(电子票只能为非请单票)(默认是0无清单),发票类型代码为01,02时该字段无
         */
        private String  invoiceListMark;
        /**
         * 含税标志, 0:不含税;1:含税(默认不含税)
         */
        private String  priceTaxMark;
        /**
         * 开票流水号, 唯一标志开票请求。支持数字字母下划线组合。
         */
        private String  serialNo;
        /**
         * 发票请求流水号
         */
        private String  orderNo;
        /**
         * 购方单位税号, invoiceTypeCode=004、028、01(增值税专用发票、增值税电子专用发票、全电发票(增值税专用发票))开具时必传 invoiceSpecialMark=16|17(农产品收购、光伏收购)开具时必传
         */
        private String  buyerTaxNo;
        /**
         * 购方单位名称 全电为100个字符
         */
        private String  buyerName;
        /**
         * 购方地址及电话, 增值税专用发票开具时必填,发票类型代码为01、02时该字段拆分为地址电话两个字段
         */
        private String  buyerAddressPhone;
        /**
         * 购方开户行及账号, 增值税专用发票开具时必填,发票类型代码为01、02时该字段拆分为银行名称、账号两个字段
         */
        private String  buyerBankAccount;
        /**
         * 开票人,税票选填,取值逻辑:如果终端有值取终端,如果没有去机构获取,如果都没有会自动获取机构下随机用户名称;数电票Web连接器选填,
         * 取值逻辑:taxUserName>drawer>默认开票人>终端授权开票人,如果以上四处都未取到随机获取该税号下最近一次登录的数电账号对应的开
         * 票人;数电票乐企连接器必填,长度最大300字符。
         */
        private String  drawer;
        /**
         * 复核人, 16个字符;税控开具时: 为空时,如果终端有值取终端,如果没有去机构获取,若都没有则为空!全电类开具时:此字段非必填,即发票类型代码为01,02时该字段非必填
         */
        private String   checker;
        /**
         * 收款人, 16个字符;税控类开具时:若为空,如果终端有值取终端,如果没有去机构获取,若都没有则为空;全电类开具时:此字段非必填,即发票类型代码为01,02时该字段非必填
         */
        private String   payee;
        /**
         *合计金额, 保留两位小数;支持价税分离
         */
        private BigDecimal   invoiceTotalPrice;
        /**
         * 合计税额, 保留两位小数;支持价税分离
         */
        private BigDecimal   invoiceTotalTax;
        /**
         * 价税合计, 保留两位小数;支持价税分离
         */
        private BigDecimal   invoiceTotalPriceTax;
        /**
         * 备注 乐企长度为230个字符
         */
        private String   remarks;
        /**
         * 红字信息表/确认单编号,仅invoiceType=1时需要传入数据税控类红票开具时,invoiceTypeCode=004、028时必须传值,传入红字信息表编号; 全电类红票开具时,
         * invoiceTypeCode=01、02时必须传值,传入红字确认单编号;
         */
        private String    redInfoNo;
        /**
         * 原发票代码, invoiceType=1,税控负数普票开具时必传;红票选数电票时,此项可为空。
         */
        private String     originalInvoiceCode;
        /**
         * 原发票号码, invoiceType=1,税控负数普票开具时必传;红票选数电票时,此项可为空。
         */
        private String     originalInvoiceNo;
        /**
         * 扣除额, taxationLabel=2,差额征税时必传。数值必须小于价税合计。
         */
        private BigDecimal     deductibleAmount;
        /**
         * 销方地址及电话,发票类型代码为01、02时该字段拆分为地址、电话两个字段
         */
        private String     sellerAddressPhone;
        /**
         * 销方开户行及账号,发票类型代码为01、02时不用此字段
         */
        private String     sellerBankAccount;
        private Map ext;//扩展字段
        /**
         * 第三方系统名称
         */
        private String     systemName;
        /**
         * 第三方系统id
         */
        private String     systemId;
        /**
         * 客户邮箱
         */
        private String     buyerEmail;
        /**
         * 抄送邮箱
         */
        private String     emailCarbonCopy;
        /**
         * 客户电话
         */
        private String     buyerPhone;
        /**
         * 用户账号,用于个人维度数据标记
         */
        private String     userAccount;
        /**
         * 红冲原因(1 销货退回 2 开票有误 3 服务终止 4 销售折让)税控红冲原因:建议按实际开票情况传入红冲原因,若不传系统会自动根据情况判断并赋值;全电红冲原因:必填
         */
        private String     redIssueReason;
        private String     buyerBankName;
        private String     buyerBankNumber;
        private String     buyerAddress;
        private String     buyerTelphone;
        private String     redConfirmUuid;
        private String     coalCalorificValue;  //每千克煤炭发热量( 千卡 ) ,大于1000w必填
        private String     totalSulfurOnDryBasis; //干基全硫( % ) ,大于1000w必填
        private String     dryAshFreeVolatileMatter; //干煤无灰基挥发分(%) ,大于1000w必填
 
        private List<InvoiceDetail> invoiceDetailsList;
 
    }
 
    @Data
    public static class InvoiceDetail{
        private Map<String,Object> ext;
        private String goodsType;
        /**
         * 明细行号
         */
        private Integer goodsLineNo;
        /**
         * 对应蓝票明细行号 税控类红字发票开具时无需传值; 全电类红字发票开具时必须传值;
         */
        private String originalInvoiceDetailNo;
        /**
         * 发票行性质, 0:正常行;1:折扣行;2:被折扣行,默认为0
         */
        private String invoiceLineNature;
        /**
         * 税收分类编码
         */
        private String goodsCode;
        /**
         * 商品编码
         */
        private String goodsPersonalCode;
        /**
         * 商品名称
         */
        private String goodsName;
        /**
         * 规格型号
         */
        private String goodsSpecification;
        /**
         * 计量单位
         */
        private String goodsUnit;
        /**
         * 金额,小数点后2位,超长自动保留两位小数
         */
        private BigDecimal goodsTotalPrice;
        /**
         * 商品数量
         */
        private BigDecimal goodsQuantity;
        /**
         * 商品单价
         */
        private BigDecimal goodsPrice;
        /**
         * 税率,超长自动保留三位小数
         */
        private Double goodsTaxRate;
        /**
         * 税额,两位小数
         */
        private BigDecimal goodsTotalTax;
 
        private String coalType;
        private String agreementTerm;
 
 
    }
 
 
 
 
}