diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java index 05620a1d..4b3c5aba 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java @@ -19,7 +19,9 @@ import com.dxhy.common.vo.TaxOrgCode; import com.dxhy.erp.dao.*; import com.dxhy.erp.entity.*; import com.dxhy.erp.entity.sdny.*; +import com.dxhy.erp.model.InvoiceDetailInfo; import com.dxhy.erp.service.*; +import com.dxhy.erp.service.impl.GatherServiceImpl; import com.dxhy.erp.utils.Base64; import com.dxhy.erp.utils.HmacSHA1Util; import com.dxhy.erp.utils.ServiceResult; @@ -96,6 +98,12 @@ public class SDNYMainProcessController extends AbstractController { @Resource private TdxPlatformCheckLogService platfromCheckLogService; + + @Resource + private MryxInterfaceService mryxInterfaceService; + + @Resource + private GatherService gatherService; /** * 查验发票 */ @@ -344,7 +352,11 @@ public class SDNYMainProcessController extends AbstractController { checkInvoice.put("totalTax", checkInvoice.getString("taxAmount")); checkInvoice.put("amountTax", checkInvoice.getString("totalAmount")); checkInvoice.put("totalAmount", checkInvoice.getString("invoiceAmount")); - String invoiceCode = checkInvoice.get("invoiceCode").toString(); + //添加非空判断 + String invoiceCode = null; + if ( checkInvoice.get("invoiceCode") != null){ + invoiceCode = checkInvoice.get("invoiceCode").toString(); + } String invoiceType = checkInvoice.get("invoiceType").toString(); if ("22".equals(invoiceType)) { invoiceType = "33"; @@ -727,6 +739,14 @@ public class SDNYMainProcessController extends AbstractController { List invoiceLineList = snInvoice.getInvoiceLineList(); List sapInvoiceDetailList = new ArrayList<>(); + //查询明细 + String uuid = snInvoice.getInvoiceCode() + snInvoice.getInvoiceNumber(); + if (StringUtils.isBlank(snInvoice.getInvoiceCode())){ + uuid = snInvoice.getInvoiceNumber(); + } + DynamicContextHolder.push("business" + DbConstant.DETAIL_READ); + List detailInfo = mryxInterfaceService.getDetailInfo(uuid); + if (invoiceLineList != null && invoiceLineList.size() > 0) { for (SNInvoiceDetail snInvoiceDetail : invoiceLineList) { SAPInvoiceDetail sapInvoiceDetail = new SAPInvoiceDetail(); @@ -780,7 +800,18 @@ public class SDNYMainProcessController extends AbstractController { sapInvoiceDetail.setZCYR(info.getZCYRMC()); sapInvoiceDetail.setZDW(snInvoiceDetail.getUnit()); sapInvoiceDetail.setZGSJBM(snInvoiceDetail.getCommodityCode()); - sapInvoiceDetail.setZSE(snInvoiceDetail.getTax()); + if (StringUtils.isNotBlank(snInvoiceDetail.getTax())){ + + sapInvoiceDetail.setZSE(snInvoiceDetail.getTax()); + }else { + if (detailInfo != null && !detailInfo.isEmpty()){ + for (InvoiceDetailInfo invoiceDetailInfo : detailInfo) { + if (StringUtils.isNotBlank(invoiceDetailInfo.getDetailNo()) && invoiceDetailInfo.getDetailNo().equals(snInvoiceDetail.getRowNo())) { + sapInvoiceDetail.setZSE(invoiceDetailInfo.getTaxAmount()); + } + } + } + } sapInvoiceDetail.setZSL(snInvoiceDetail.getQuantity()); String zsmTax = snInvoiceDetail.getTaxRate(); if (zsmTax != null && zsmTax != "" && zsmTax.length() > 4){ diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java index 4f2ba4a7..55649758 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java @@ -68,8 +68,8 @@ public interface TdxRecordInvoiceDao extends BaseMapper { * * @param uuid * @return - */ - List selectDetailInfo(@Param("uuid") String uuid); + */List selectDetailInfo(@Param("uuid") String uuid); + /** * 永刚进项查询未认证、可认证的发票 diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/MryxInterfaceService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/MryxInterfaceService.java index 24912a7d..0b5b78a7 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/MryxInterfaceService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/MryxInterfaceService.java @@ -1,5 +1,6 @@ package com.dxhy.erp.service; +import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -9,6 +10,8 @@ import com.dxhy.common.service.MpBaseService; import com.dxhy.common.util.pojo.Authorize; import com.dxhy.common.util.pojo.GlobalInfo; import com.dxhy.erp.entity.TdxRecordInvoice; +import com.dxhy.erp.model.InvoiceDetailInfo; +import org.apache.ibatis.annotations.Param; /** * @author dxhy @@ -54,4 +57,5 @@ public interface MryxInterfaceService extends MpBaseService { String synPayInfo(GlobalInfo globalInfo, Map map, HttpServletRequest request, HttpServletResponse response, Authorize authorize); + List getDetailInfo(String uuid); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/MryxInterfaceServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/MryxInterfaceServiceImpl.java index 82099e7d..880e4092 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/MryxInterfaceServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/MryxInterfaceServiceImpl.java @@ -554,6 +554,7 @@ public class MryxInterfaceServiceImpl extends MpBaseServiceImpl getDetailInfo(String uuid) { return super.baseMapper.selectDetailInfo(uuid); }