生成开票申请调整及注释开票申请

This commit is contained in:
mzr 2025-05-04 10:46:37 +08:00
parent 7738f895b7
commit 666bac34d0
1 changed files with 36 additions and 20 deletions

View File

@ -40,6 +40,7 @@ import nccloud.pubitf.ssctp.sscbd.lientage.ISSClientageMatchService;
import org.json.JSONString;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -212,15 +213,17 @@ public class IAPISaleInvMaitainImpl {
* 生成开票申请的旧逻辑走不通已废弃 1.根据销售发票号查询下游开票申请 2.根据原开票申请生成新红冲
* 新逻辑根据税务云的发票号查询蓝字发票根据蓝字和已生成的红字发票共同生成红字的开票申请
*/
IVApplicationAggVO returnSaveIVApplicationAggVO = saveIVApplication(bject, redVos);
/*IVApplicationAggVO returnSaveIVApplicationAggVO = saveIVApplication(bject, redVos);
if (returnSaveIVApplicationAggVO != null) {
Logger.error("inv-redApply = " + JSONArray.toJSONString(returnSaveIVApplicationAggVO));
// 查询红冲发票信息返回给调用方
// 红冲发票信息返回给调用方
return ResultMessageUtil.toJSON(redVos, "接口调用成功");
} else {
Exception e = new Exception("销售红冲发票保存审核成功,开票申请保存失败");
return ResultMessageUtil.exceptionToJSON(e);
}
}*/
// 把红冲发票信息返回给调用方
return ResultMessageUtil.toJSON(redVos, "接口调用成功");
}
/**
@ -568,25 +571,29 @@ public class IAPISaleInvMaitainImpl {
public IVApplicationAggVO saveIVApplication(JSONObject bject, SaleInvoiceVO[] redVos) throws Exception {
SaleInvoiceHVO redHvo = redVos[0].getParentVO();
SaleInvoiceBVO[] redBodyVos = redVos[0].getChildrenVO();
// 获取 红字发票传开票申请的数据
ApplicationRedInvoiceService applicationRedInvoiceService = new ApplicationRedInvoiceService();
List<Map<String, String>> jeMap = applicationRedInvoiceService.getData(redVos);
IVApplicationAggVO applyVo = null;
// BIP合同平台传的蓝字销售发票的主键
String invId = bject.getOrDefault("vdef40", "") + "";
// 查询蓝字发票号对应的税务云开出的发票号
String invCode = getSaleInvCode(invId);
if (StringUtils.isBlank(invCode) || "null".equals(invCode)) {
ExceptionUtils.wrapBusinessException("税务云的发票号不能为空");
ExceptionUtils.wrapBusinessException("税务云的发票号不能为空,请等待税务云单号回写后再手动生单");
}
IVApplicationInvoiceService ivService = NCLocator.getInstance().lookup(IVApplicationInvoiceService.class);
JSONObject jsonObject1 = new JSONObject();
// 构造开票申请的VO
IVApplicationAggVO[] applicationAggVOS = ivService.getRedInvoice("", invCode, jsonObject1);
Logger.error("saveIVApplication-jsonObject1 = " + jsonObject1);
if (applicationAggVOS != null) {
if (applicationAggVOS == null || applicationAggVOS.length == 0) {
ExceptionUtils.wrapBusinessException("构造开票申请的VO失败");
}
Logger.error("saveIVApplication-getRedInvoice-jsonObject1 = " + jsonObject1);
// 开票申请的上游单据信息赋值
String src_billid = redHvo.getCsaleinvoiceid();
String src_pk_org = redHvo.getPk_org();
String src_billno = redHvo.getVbillcode();
@ -598,7 +605,16 @@ public class IAPISaleInvMaitainImpl {
applicationAggVOS[0].getParentVO().setSrc_jx_sporg(src_pk_org);
// applicationAggVOS[0].getParentVO().setSrc_jx_spr(src_spr);
applicationAggVOS[0].getParentVO().setSrc_jx_tradetypeid(src_tradetypeid);
Map<String, UFDouble> ntaxmnyMap = new HashMap<>();
for (SaleInvoiceBVO redBodyVo : redBodyVos) {
// vbdef6 商品名称 vbdef12 规格 vbdef13 型号
String key = redBodyVo.getVbdef6() + redBodyVo.getVbdef12() + redBodyVo.getVbdef13();
// ntaxmny 本币价税合计
UFDouble ntaxmny = redBodyVo.getNtaxmny();
ntaxmnyMap.put(key, ntaxmny);
}
Logger.error("saveIVApplication-ntaxmnyMap = " + ntaxmnyMap);
JSONObject jsonObject = new JSONObject();
// ntotalorigmny 价税合计
UFDouble ntotalorigmny = redHvo.getNtotalorigmny() == null ? UFDouble.ZERO_DBL : redHvo.getNtotalorigmny();
@ -620,7 +636,7 @@ public class IAPISaleInvMaitainImpl {
if (ivApplicationVOs != null && ivApplicationVOs.length > 0) {
applyVo = ivApplicationVOs[0];
}
Logger.error("saveIVApplication-msg = " + jsonObject);
Logger.error("saveIVApplication-makeRedInvoice-msg = " + jsonObject);
return applyVo;
}
@ -638,7 +654,7 @@ public class IAPISaleInvMaitainImpl {
}
/**
* 根据税务云单号查询发票的单号
* 查询蓝票的税务云单号
*
* @param invId
* @return