红字信息表下载合并开发

beta-enc
dongxiaoke 2 years ago
parent 7ca3f51dfd
commit e09a3d691b
  1. 23
      jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/utils/GenVoCodeTest.java
  2. 29
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/jcsk/RedInvoiceQueryAllTWOVO.java
  3. 71
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/jcsk/RedInvoiceQueryTWOVO.java
  4. 325
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/jcsk/RedinfoCopyVO.java
  5. 50
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java

@ -16,10 +16,25 @@ public class GenVoCodeTest {
public static void main(String[] args) {
String json = "{\n" +
" \"qrlx\": \"确认类型\",\n" +
" \"hzfpxxqrdid\": \"红字发票信息确认单id\",\n" +
" \"xsfnsrsbh\": \"销方纳税人识别号\"\n" +
" }";
" \"chyydm\": \"冲红原因代码\",\n" +
" \"fplydm\": \"发票来源代码\",\n" +
" \"gmfmc\": \"购买方名称\",\n" +
" \"gmfnsrsbh\": \"购买方税号\",\n" +
" \"hzfphm\": \"红字发票号码\",\n" +
" \"hzfpxxqrdbh\": \"红字发票信息确认单编号\",\n" +
" \"hzfpxxqrdid\": \"红字发票信息确认单id\",\n" +
" \"hzfpxxqrdZtdm\": \"红字发票信息确认单状态代码\",\n" +
" \"hzhjje\": \"红字合计金额\",\n" +
" \"hzhjse\": \"红字合计税额\",\n" +
" \"hzkprq\": \"红字开票日期\",\n" +
" \"lzfphm\": \"蓝字发票号码\",\n" +
" \"lzfplxdm\": \"蓝字发票类型代码\",\n" +
" \"lzkprq\": \"蓝字开票日期\",\n" +
" \"lrrq\": \"录入日期\",\n" +
" \"xsfmc\": \"销售方名称\",\n" +
" \"xsfnsrsbh\": \"销售方纳税人识别号\",\n" +
" \"ykjhzfpbz\": \"是否开具红字发票\"\n" +
" }";
JSONObject jsonObject = JSONUtil.parseObj(json);

@ -0,0 +1,29 @@
package com.jianshui.invoice.domain.vo.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 红字发票查询外部VO
*/
@Data
public class RedInvoiceQueryAllTWOVO {
private List<RedInvoiceQueryTWOVO> fpList;
@ApiModelProperty(value = "页数")
private Integer pageNumber;
@ApiModelProperty(value = "每页条数")
private Integer pageSize;
@ApiModelProperty(value = "总条数")
private Integer total;
}

@ -0,0 +1,71 @@
package com.jianshui.invoice.domain.vo.jcsk;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 红字发票查询VO
*/
@Data
public class RedInvoiceQueryTWOVO {
@ApiModelProperty(value = "冲红原因代码")
private String chyydm;
@ApiModelProperty(value = "发票来源代码")
private String fplydm;
@ApiModelProperty(value = "购买方名称")
private String gmfmc;
@ApiModelProperty(value = "购买方税号")
private String gmfnsrsbh;
@ApiModelProperty(value = "红字发票号码")
private String hzfphm;
@ApiModelProperty(value = "红字发票信息确认单编号")
private String hzfpxxqrdbh;
@ApiModelProperty(value = "红字发票信息确认单id")
private String hzfpxxqrdid;
@ApiModelProperty(value = "红字发票信息确认单状态代码")
private String hzfpxxqrdZtdm;
@ApiModelProperty(value = "红字合计金额")
private String hzhjje;
@ApiModelProperty(value = "红字合计税额")
private String hzhjse;
@ApiModelProperty(value = "红字开票日期")
private String hzkprq;
@ApiModelProperty(value = "蓝字发票号码")
private String lzfphm;
@ApiModelProperty(value = "蓝字发票类型代码")
private String lzfplxdm;
@ApiModelProperty(value = "蓝字开票日期")
private String lzkprq;
@ApiModelProperty(value = "录入日期")
private String lrrq;
@ApiModelProperty(value = "销售方名称")
private String xsfmc;
@ApiModelProperty(value = "销售方纳税人识别号")
private String xsfnsrsbh;
@ApiModelProperty(value = "是否开具红字发票")
private String ykjhzfpbz;
}

@ -0,0 +1,325 @@
package com.jianshui.invoice.domain.vo.jcsk;
import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import com.jianshui.invoice.domain.Redinfodetail;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 红字信息表对象 redinfo转换专用
*
* @author Gong Quanlin
* @date 2022-03-29
*/
@Data
public class RedinfoCopyVO{
/**
* 本系统订单号
*/
@Excel(name = "本系统订单号")
private String systemOrderno;
/**
* 客户系统订单号
*/
@Excel(name = "客户系统订单号")
private String outTradeOrderno;
/**
* 流水号
*/
@Excel(name = "流水号")
private String fpqqlsh;
/**
* bill_info表的bill_id
*/
@Excel(name = "bill_info表的bill_id")
private Long billInfoId;
/**
* 信息表编号
*/
@Alias("hzfpxxqrdbh")
@Excel(name = "信息表编号")
private String redInfoNo;
/**
* 信息表状态
*/
@Alias("hzfpxxqrdZtdm")
@Excel(name = "信息表状态")
private String redInfoStatus;
/**
* 信息表状态描述
*/
@Excel(name = "信息表状态描述")
private String redInfoMessage;
/**
* 信息表类型
*/
@Excel(name = "信息表类型")
private String redInfoType;
/**
* 原发票代码
*/
@Excel(name = "原发票代码")
private String originFpdm;
/**
* 信息表特殊标识
*/
@Excel(name = "信息表特殊标识")
private String redInfoSpecFlag;
/**
* 原发票号码
*/
@Alias("lzfphm")
@Excel(name = "原发票号码")
private String originFphm;
/**
* 税种类别
*/
@Excel(name = "税种类别")
private String taxType;
/**
* 原发票开票日期
*/
@Alias("lzkprq")
@Excel(name = "原发票开票日期")
private String originKprq;
/**
* 多税率标志
*/
@Excel(name = "多税率标志")
private String multTaxRate;
/**
* 填开日期
*/
@Alias("lrrq")
@Excel(name = "填开日期")
private String billInputTime;
/**
* 购方名称
*/
@Alias("gmfmc")
@Excel(name = "购方名称")
private String buyerName;
/**
* 购方税号
*/
@Alias("gmfnsrsbh")
private String buyerTaxnum;
/**
* 销方名称
*/
@Alias("xsfmc")
@Excel(name = "销方名称")
private String sellerName;
/**
* 销方税号
*/
@Alias("xsfnsrsbh")
@Excel(name = "销方税号")
private String sellerTaxnum;
/**
* 不含税金额
*/
@Excel(name = "不含税金额")
private BigDecimal taxfreeamt;
/**
* 税额
*/
@Excel(name = "税额")
private BigDecimal tax;
/**
* 含税金额
*/
@Excel(name = "含税金额")
private BigDecimal taxamt;
/**
* 申请说明
*/
@Alias("chyydm")
@Excel(name = "申请说明")
private String applyRemark;
/**
* 申请表pdf 地址
*/
@Excel(name = "申请表pdf 地址")
private String pdfUrl;
/**
* 商品编码版本号
*/
@Excel(name = "商品编码版本号")
private String bmbbh;
/**
* 营业税标志
*/
@Excel(name = "营业税标志")
private String businessTaxCode;
/**
* 申请时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date applyTime;
/**
* 发票种类 invoice_type p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票
*/
@Alias("lzfplxdm")
@Excel(name = "发票种类 invoice_type", readConverterExp = "p=电子增值税普通发票,c=增值税普通发票,s=,增=值税专用发票,e=,收=购发票,f=,收=购发票,r=增值税普通发票")
private String invoiceType;
/**
* 分机号
*/
@Excel(name = "分机号")
private String fjh;
/**
* 终端号
*/
@Excel(name = "终端号")
private String terminalNumber;
/**
* 设备编号
*/
@Excel(name = "设备编号")
private String jspbh;
/**
* 所属月份
*/
@Excel(name = "所属月份")
private String ssyf;
/**
* 税率
*/
@Excel(name = "税率")
private BigDecimal taxrate;
/**
* 申请选择
*/
@Excel(name = "申请选择")
private String sqxz;
/**
* 经办人
*/
@Excel(name = "经办人")
private String jbr;
/**
* 申请方税号
*/
@Excel(name = "申请方税号")
private String reqnsrsbh;
/**
* 成品油标志
*/
@Excel(name = "成品油标志")
private String productOilFlag;
/**
* 服务公司
*/
@Excel(name = "服务公司")
private String serviceSupplierKey;
/**
* 申请类别
*/
@Alias("sqly")
@Excel(name = "申请类别")
private Integer sqlb; // 申请类别,0为销方申请,1为购方申请
@Excel(name = "回调地址")
private String callbackUrl;
/**
* 红字信息表详情信息
*/
@TableField(exist = false)
private List<Redinfodetail> redinfodetailList;
@TableField(exist = false)
@JsonIgnore
private String searchValue;
@TableField(exist = false)
@JsonIgnore
private String remark;
/** 数科新加字段**/
@Alias("hzfphm")
@Excel(name = "红字发票号码")
private String fphm;
@Alias("hzkprq")
@Excel(name = "红字发票开票日期")
private String kprq;
@Alias("hzfpxxqrdid")
@Excel(name = "红字发票信息确认单id")
private String hzfpxxqrdid;
@Alias("hzhjje")
@Excel(name = "红字合计金额")
private String hzhjje;
@Alias("hzhjse")
@Excel(name = "红字合计税额")
private String hzhjse;
@Alias("ykjhzfpbz")
@Excel(name = "是否开具红字发票")
private String ykjhzfpbz;
}

@ -1,4 +1,5 @@
package com.jianshui.invoice.service.impl.api;
import java.util.Date;
import com.jianshui.invoice.domain.dto.api.jcsk.*;
import cn.hutool.core.bean.BeanUtil;
@ -12,7 +13,6 @@ import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.enums.ErrorCode;
import com.jianshui.common.exception.jianshui.JianshuiParamErrorException;
import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.StringUtils;
import com.jianshui.common.utils.TimeUtil;
import com.jianshui.common.utils.ValidateUtils;
@ -27,8 +27,7 @@ import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddInfoTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddmxListTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.red.AddRedInvoiceTwoDTO;
import com.jianshui.invoice.domain.vo.jcsk.AddInvoiceTWOVO;
import com.jianshui.invoice.domain.vo.jcsk.AddRedInvoiceTWOVO;
import com.jianshui.invoice.domain.vo.jcsk.*;
import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.utils.aisino.console.AisinoConsoleUtil;
@ -38,6 +37,7 @@ import com.jianshui.system.mapper.InvoiceAllApiLogMapper;
import com.jianshui.system.mapper.InvoiceAllYhdjMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@ -466,11 +466,12 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
// TODO: 后期存库
}else if (WebServiceConstant.CXHZFPXXQRD.equals(finalServiceId)) {
// 查询红字信息表
// TODO: 2023/4/4 返回报文处理
RedInvoiceQueryAllTWOVO redInvoiceQueryAllTWOVO = BeanUtil.copyProperties(data, RedInvoiceQueryAllTWOVO.class);
// 返回报文转换
List<Redinfo> resultDownload = parseRedINFO(redInvoiceQueryAllTWOVO);
// TODO: 2023/4/6 数据存储
response.put("data", resultDownload);
}else if (WebServiceConstant.SHHZFPXXQRD.equals(finalServiceId)) {
// 审核红字信息表
// TODO: 后期存库
@ -491,6 +492,39 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
}
/**
* 数科报文=简税报文转换
* @param redInvoiceQueryAllTWOVO
* @return
*/
private List<Redinfo> parseRedINFO(RedInvoiceQueryAllTWOVO redInvoiceQueryAllTWOVO) {
List<Redinfo> redinfos = new ArrayList<>();
// 页数
int pageNumber = redInvoiceQueryAllTWOVO.getPageNumber();
// 每页条数
int pageSize = redInvoiceQueryAllTWOVO.getPageSize();
// 总条数
int total = redInvoiceQueryAllTWOVO.getTotal();;
//发票集合
List<RedInvoiceQueryTWOVO> redInvoiceQueryTWOVOS = redInvoiceQueryAllTWOVO.getFpList();
for (RedInvoiceQueryTWOVO redInvoiceQueryTWOVO : redInvoiceQueryTWOVOS) {
RedinfoCopyVO redinfoVO = BeanUtil.copyProperties(redInvoiceQueryTWOVO,RedinfoCopyVO.class);
Redinfo redinfo = BeanUtil.copyProperties(JSONUtil.parseObj(redinfoVO),Redinfo.class);
// TODO: 2023/4/6 明细接口数科还没对
// redinfo.setRedinfodetailList(null);
redinfos.add(redinfo);
}
return redinfos;
}
/**
* 发票批量查询
*

Loading…
Cancel
Save