开票申请传税务云增加字段:数电发票是否显示购销方地址电话、数电发票是否显示购销方银行、账号

This commit is contained in:
mzr 2025-06-16 18:14:12 +08:00
parent e785338212
commit d6ba2ca7b5
1 changed files with 264 additions and 247 deletions

View File

@ -12,11 +12,7 @@ import nc.bs.sscivm.ivsale.splitmerge.util.TransSpiltMergePksUtil;
import nc.bs.sscivm.logger.SSCIVMLogger;
import nc.dto.imag.boot.RequestInfo;
import nc.dto.imag.boot.ResponseInfo;
import nc.dto.imag.invoice.PInvoice;
import nc.dto.imag.invoice.PInvoiceCepz;
import nc.dto.imag.invoice.PInvoiceDetail;
import nc.dto.imag.invoice.PInvoiceSDetail;
import nc.dto.imag.invoice.PInvoiceTspz;
import nc.dto.imag.invoice.*;
import nc.dto.imag.invoice.tax.InvalidCommonRequest;
import nc.dto.imag.invoice.tax.InvalidCommonResponse;
import nc.dto.imag.invoice.tax.TaxCommonResponse;
@ -39,27 +35,9 @@ import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.lang.UFDouble;
import nc.vo.sscivm.invoice.IVMInvoiceAggVO;
import nc.vo.sscivm.invoice.IVMInvoiceConstant;
import nc.vo.sscivm.invoice.IVMInvoiceDetailVO;
import nc.vo.sscivm.invoice.IVMInvoiceHeadVO;
import nc.vo.sscivm.invoice.IVMInvoiceRelationVO;
import nc.vo.sscivm.invoice.IVMInvoiceTspzDetailVO;
import nc.vo.sscivm.ivmpub.ClassTypeEnum;
import nc.vo.sscivm.ivmpub.IVAplocationFPXZ;
import nc.vo.sscivm.ivmpub.IVAplocationKPFS;
import nc.vo.sscivm.ivmpub.IVAplocationLSLBS;
import nc.vo.sscivm.ivmpub.IVAplocationZSFS;
import nc.vo.sscivm.ivmpub.InvoiceStatus;
import nc.vo.sscivm.ivmpub.InvoiceTypeEnum;
import nc.vo.sscivm.ivmpub.IsHzfp;
import nc.vo.sscivm.ivmpub.KpztEnum;
import nc.vo.sscivm.ivsale.IVApplicationAggVO;
import nc.vo.sscivm.ivsale.IVApplicationBodyVO;
import nc.vo.sscivm.ivsale.IVApplicationHeadVO;
import nc.vo.sscivm.ivsale.IVApplicationRelationVO;
import nc.vo.sscivm.ivsale.IVApplogVO;
import nc.vo.sscivm.ivsale.IVTspzsBodyVO;
import nc.vo.sscivm.invoice.*;
import nc.vo.sscivm.ivmpub.*;
import nc.vo.sscivm.ivsale.*;
import nc.vo.trade.pub.IBillStatus;
import nccloud.commons.lang.StringUtils;
import nccloud.itf.sscivm.ivsale.service.ApplicationLogService;
@ -68,17 +46,7 @@ import nccloud.putitf.riart.billtype.IBilltypeService;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
public class InvoiceTransferUtil {
@ -554,8 +522,7 @@ public class InvoiceTransferUtil {
if (invoice_xmjshj.compareTo(UFDouble.ZERO_DBL) == 0) {
// 当前发票金额已用完
break;
}
else if((split_xmjshj.compareTo(invoice_xmjshj)<=0 && !zkh) || (split_xmjshj.compareTo(invoice_xmjshj)>=0 && zkh)){
} else if ((split_xmjshj.compareTo(invoice_xmjshj) <= 0 && !zkh) || (split_xmjshj.compareTo(invoice_xmjshj) >= 0 && zkh)) {
// 当前拆分金额已用完
invoice_xmjshj = invoice_xmjshj.sub(split_xmjshj);
invoice_xmje = invoice_xmje.sub(split_xmje);
@ -1117,7 +1084,8 @@ public class InvoiceTransferUtil {
}
heads.add(head);
if (ivApplicationHeadVO.getParentVO().getSrc_pkbusibill() != null && ivApplicationHeadVO.getParentVO().getSrc_pkbusibill().length() > 0) {
pk_ivapplicationSet.add(ivApplicationHeadVO.getParentVO().getSrc_pkbusibill());}
pk_ivapplicationSet.add(ivApplicationHeadVO.getParentVO().getSrc_pkbusibill());
}
}
}
@ -1135,7 +1103,9 @@ public class InvoiceTransferUtil {
continueAdd = false;
}
}
if(!continueAdd) { continue;}
if (!continueAdd) {
continue;
}
head.setStatus(VOStatus.NEW);
// 票面信息
head.setFphm(pinvoice.getParentVO().getFphm());
@ -1189,6 +1159,7 @@ public class InvoiceTransferUtil {
/**
* 根据发票生成开票日志
*
* @param pinvoice
* @param kpzt
* @return
@ -1361,9 +1332,50 @@ public class InvoiceTransferUtil {
pinvoice.setJehj(headvo.getJehj() == null ? null : getUFDoubleToBigDecimal(headvo.getJehj()).setScale(2, UFDouble.ROUND_HALF_UP));
pinvoice.setCjh(headvo.getCjh());
// pinvoice.setKqysssxbgglbm(headvo.getKqysssxbgglbm());
setOtherField(headvo, pinvoice);
return pinvoice;
}
private static void setOtherField(IVApplicationHeadVO headvo, PInvoice pinvoice) {
// 是否展示销售方开户银行及账号 Y-/N-
String def3 = headvo.getDef3();
// 是否展示销售方地址电话
String def4 = headvo.getDef4();
// 是否填写收款人及复核人
String def16 = headvo.getDef16();
// 是否展示购买方单位地址电话
String def17 = headvo.getDef17();
// 是否展示购买方开户行银行账号
String def18 = headvo.getDef18();
// einvoiceShowGxfDzDh 表示是否显示购方和销方的地址电话
// 根据需求0: 不显示 1: 显示购方地址电话 2: 显示销方地址电话 3: 显示购方和销方地址电话
int einvoiceShowGxfDzDh = 0;
if ("Y".equals(def3)) {
einvoiceShowGxfDzDh += 1; // 购方地址电话显示
}
if ("Y".equals(def17)) {
einvoiceShowGxfDzDh += 2; // 销方地址电话显示
}
// einvoiceShowGxfYhZh 表示是否显示购方和销方的小银行账户
// 根据需求0: 不显示 1: 显示购方银行账户 2: 显示销方银行账户 3: 显示购方和销方银行账户
int einvoiceShowGxfYhZh = 0;
if ("Y".equals(def4)) {
einvoiceShowGxfYhZh += 1; // 购方银行账户显示
}
if ("Y".equals(def18)) {
einvoiceShowGxfYhZh += 2; // 销方银行账户显示
}
// 数电发票是否显示购销方地址电话 0:不显示 1:仅显示销地址电话 2:仅显示购买方地址电话 3:购销方地址电话都显示
pinvoice.setEinvoiceShowGxfDzDh(String.valueOf(einvoiceShowGxfDzDh));
// 数电发票是否显示购销方银行账号: 0:不显示 1:仅显示销售方银行账号 2:仅显示购买方银行账号 3:购销方银行账号都显示
pinvoice.setEinvoiceShowGxfYhZh(String.valueOf(einvoiceShowGxfYhZh));
}
/**
* 根据红冲申请转换成发票平台VO
*
@ -1509,6 +1521,7 @@ public class InvoiceTransferUtil {
/**
* 特殊票种发票信息转换
*
* @param tspzVOs
* @param invoice
* @return
@ -1636,6 +1649,7 @@ public class InvoiceTransferUtil {
/**
* 获取开票日期
*
* @param kprq 税务云传递过来的开票日期
* @return UFDate 转换后的开票日期
*/
@ -1665,7 +1679,9 @@ public class InvoiceTransferUtil {
public static UFDouble tranZeroAmount(UFDouble amount) {
if(amount==null) {return UFDouble.ZERO_DBL;}
if (amount == null) {
return UFDouble.ZERO_DBL;
}
amount = (amount.compareTo(UFDouble.ZERO_DBL) < 0) ? UFDouble.ZERO_DBL : amount;
if (amount.abs().compareTo(new UFDouble(0.005)) < 0) {
amount = UFDouble.ZERO_DBL;
@ -1675,6 +1691,7 @@ public class InvoiceTransferUtil {
/**
* 把UFDate转换成yyyy-MM-dd格式
*
* @param ufDate
* @return
*/