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 7923e143..5d092c32 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 @@ -606,18 +606,13 @@ public class SDNYMainProcessController extends AbstractController { } else { object.setZFILED5(environment); } -// object.setZFILED5(environment); + List sapInvoiceInfos = new ArrayList<>(); if (invoiceInfoList != null && invoiceInfoList.size() > 0) { for (SNInvoice invoice : invoiceInfoList) { String fplxdm = ""; String snFplx = ""; -// if (invoice.getPurchaserTaxNo() == null || "".equals(invoice.getPurchaserTaxNo())){ -// invoice.setPurchaserTaxNo(taxno); -// } -// if (invoice.getPurchaserName() == null || "".equals(invoice.getPurchaserName())){ -// invoice.setPurchaserName(taxname); -// } + result = snPushCheckRecordService.updateInvoicePoll(company, taxno, reimburse, invoice, fplxdm, imageId, compCode); //价税分离判断 diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java index 46d5a178..533c934e 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java @@ -11,6 +11,7 @@ import com.dxhy.common.enums.FplxEnum; import com.dxhy.common.enums.SNFplxEnum; import com.dxhy.common.util.InvoiceUtil; import com.dxhy.common.util.StringHelper; +import com.dxhy.common.utils.R; import com.dxhy.common.vo.UserInfo; import com.dxhy.erp.dao.*; import com.dxhy.erp.entity.*; @@ -30,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -95,6 +97,12 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { @Resource private SysDeptDao sysDeptDao; + @Resource + private SNPushCheckRecordService snPushCheckRecordService; + + @Resource + private SignSaveInvoiceInfoService signSaveInvoiceInfoService; + @Resource private TdxPlatformCheckLogService platformCheckLogService; @@ -451,8 +459,8 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { jsonObject.put("tonnage", invoiceData.get("dw")); jsonObject.put("limitPeople", invoiceData.get("xcrs")); String taxRate = ""; - if (invoiceData.get("sl")==null||StringUtils.isBlank(invoiceData.get("sl").toString())|| - "免税".equals(invoiceData.get("sl").toString())|| "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) { + if (invoiceData.get("sl") == null || StringUtils.isBlank(invoiceData.get("sl").toString()) || + "免税".equals(invoiceData.get("sl").toString()) || "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) { taxRate = "0"; jsonObject.put("taxRate", taxRate); } else { @@ -616,13 +624,13 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { log.info("进行价税分离的发票信息为:{}", invoiceInfo); ServiceResult invoiceResult = new ServiceResult<>(); //0523晚成伟提出新需求,客运汽车票必须实名才可以进行价税分离 - if(SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)){ - if(StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())){ + if (SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)) { + if (StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())) { log.info("非实名的实名客票 不需要做价税分离"); } invoiceResult.setMsg("ok"); invoiceResult.setResult(true); - }else { + } else { invoiceResult = this.valoremTaxCount(invoiceInfo, "Y"); InvoiceInfo data = invoiceResult.getData(); if (data != null) { @@ -675,6 +683,62 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { if ("01".equals(fplxdm) || "02".equals(fplxdm) || "03".equals(fplxdm) || "04".equals(fplxdm) || "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm) || "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) { + DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); + String fpdm = invoice.getInvoiceCode(); + String fphm = invoice.getInvoiceNumber(); + + QueryWrapper recordWrapper = new QueryWrapper<>(); + if (StringUtils.isEmpty(fpdm)) { + recordWrapper.eq("uuid", fphm); + } else { + recordWrapper.eq("uuid", fpdm + fphm); + } + + BaseTDxRecordInvoice update = baseTDxRecordInvoiceDao.selectOne(recordWrapper); + Map pramsMap = new HashMap<>(); + JSONObject checkInvoiceResult = null; + + //如果提交的发票信息在底账库不存在,则重新补充查验,插入数据库中. + if (update == null) { + try { + //传入的参数为:{billingDate=2023-04-24, totalAmount=9708.74, purchaserTaxNo=91370000MA3RD38A9Q, invoiceNumber=02014197, invoiceType=10100, + // invoiceCode=3700222130, checkCode=} + pramsMap.put("invoiceCode", fpdm); + pramsMap.put("invoiceNumber", fphm); + if (StringUtils.isNotEmpty(invoice.getBillingDate())) { + String billingDate = invoice.getBillingDate().replaceAll("-", ""); + pramsMap.put("billingDate", billingDate); + } + if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){ + pramsMap.put("totalAmount", invoice.getAmountTax()); + }else{ + pramsMap.put("totalAmount", invoice.getTotalAmount()); + } + + pramsMap.put("purchaserTaxNo", invoice.getPurchaserTaxNo()); + if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){ + pramsMap.put("invoiceType", "21"); + }else { + pramsMap.put("invoiceType", invoice.getInvoiceType()); + } + + checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); + log.info("补充查验结果为:{}", checkInvoiceResult); + } catch (Exception e) { + e.printStackTrace(); + log.error("补充查验失败,errormsg:{}", e.getMessage()); + } + + if (!checkInvoiceResult.containsKey("code")) { + if (!checkInvoiceResult.containsKey("cyjg")) { + checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber")); + log.info("补充查验的结果为:{}", checkInvoiceResult); + signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, "", "1", "business"); + } + } + } + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + //可查验发票,已入库,更新票池 Integer integer = this.pushInvoiceToRecordInvoice2(invoice, imageId, compCode); log.info("可查验发票,更新底账库完成"); @@ -720,10 +784,10 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { log.info("uuid={}", uuid); reimburse.setSelectId(uuid); - if (StringHelper.isNotBlank(invoice.getTaxRate())){ + if (StringHelper.isNotBlank(invoice.getTaxRate())) { reimburse.setTaxRate(invoice.getTaxRate()); reimburse.setTaxCode(getTaxCode(invoice.getTaxRate())); - }else { + } else { reimburse.setTaxRate("0%"); reimburse.setTaxCode(getTaxCode(reimburse.getTaxRate())); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java index 9bc509d7..3a935bdd 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java @@ -10,6 +10,7 @@ import com.dxhy.common.datasource.config.DynamicContextHolder; import com.dxhy.common.enums.FplxEnum; import com.dxhy.common.enums.ReturnCodeEnum; import com.dxhy.common.service.impl.MpBaseServiceImpl; +import com.dxhy.common.util.DateOrderUtil; import com.dxhy.common.util.StringHelper; import com.dxhy.common.util.pojo.Authorize; import com.dxhy.common.util.pojo.GlobalInfo; @@ -20,8 +21,11 @@ import com.dxhy.erp.model.auth.InterfaceCode; import com.dxhy.erp.service.InvoiceAuthService; import com.dxhy.erp.service.TDxInvoiceReimburseService; import com.dxhy.erp.utils.CheckUtils; +import com.dxhy.erp.utils.DateUtil; +import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.joda.time.DateTime; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -30,6 +34,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; +import java.util.stream.Collectors; /** * @author dxhy @@ -343,7 +348,11 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl{}",zdata1.getZFPHM()); - + String collect = fplxList.stream().collect(Collectors.joining(",")); + if(!collect.contains(convertFpzldm(zdata1.getZFPLX()))){ + log.info("非增值税先不处理:{}",JSON.toJSONString(zdata1)); + continue; + } String fphm = zdata1.getZFPHM(); if (org.apache.commons.lang3.StringUtils.isNotBlank(fphm) && fphm.length() > 8 && !("26".equals(zdata1.getZFPLX()) || "27".equals(zdata1.getZFPLX()))){ fphm = fphm.replace(zdata1.getZFPDM(),""); @@ -386,20 +395,7 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl0){ @@ -422,34 +418,13 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl> authStateList, Integer contentRows) { ReturnStateInfo run = new ReturnStateInfo(); if (contentRows == null || authStateList.size() != contentRows) { @@ -537,9 +531,26 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl map = Maps.newHashMap(); + map.put("1","3"); + try { + DateTime parse = DateTime.parse("0000-00-00"); + map.put("2","3"); + Date date1 = parse.toDate(); + String s = parse.toString("yyyy-MM-dd "); + System.out.println(""); + } catch (Exception e) { +// throw new RuntimeException(e); + } + map.put("3","3"); + System.out.println(); +// String d="2023"; +// String substring = d.substring(0, 7); +// System.out.println(substring); }