From 44874a4314c37b01e3ee6adb82f2ffe04344cfdc Mon Sep 17 00:00:00 2001 From: yefei Date: Mon, 10 Apr 2023 15:48:41 +0800 Subject: [PATCH] =?UTF-8?q?ariesy=20=E5=A2=9E=E5=8A=A0=E7=A8=8E=E7=A0=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/entity/TDxRecordInvoiceDetail.java | 1 + .../model/CheckRecordInvoiceDetailVO.java | 5 + .../InvoiceDetailServiceImpl.java | 142 +++++++++----- .../dxhy/erp/config/ErpWebConfiguration.java | 4 +- .../controller/SDNYMainProcessController.java | 4 +- .../erp/entity/TDxRecordInvoiceDetail.java | 5 + .../dxhy/erp/entity/sdny/SNInvoiceDetail.java | 5 + .../erp/service/SNPushCheckRecordService.java | 182 +++++++++--------- .../impl/SignSaveInvoiceInfoServiceImpl.java | 54 ++++++ 9 files changed, 253 insertions(+), 149 deletions(-) diff --git a/dxhy-core/src/main/java/com/dxhy/core/job/entity/TDxRecordInvoiceDetail.java b/dxhy-core/src/main/java/com/dxhy/core/job/entity/TDxRecordInvoiceDetail.java index 9f74da79..ff88be53 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/job/entity/TDxRecordInvoiceDetail.java +++ b/dxhy-core/src/main/java/com/dxhy/core/job/entity/TDxRecordInvoiceDetail.java @@ -91,4 +91,5 @@ public class TDxRecordInvoiceDetail implements Serializable { * 商品编码 */ private String goodsNum; + } diff --git a/dxhy-core/src/main/java/com/dxhy/core/model/CheckRecordInvoiceDetailVO.java b/dxhy-core/src/main/java/com/dxhy/core/model/CheckRecordInvoiceDetailVO.java index 46c69ad0..0d041f86 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/model/CheckRecordInvoiceDetailVO.java +++ b/dxhy-core/src/main/java/com/dxhy/core/model/CheckRecordInvoiceDetailVO.java @@ -50,6 +50,11 @@ public class CheckRecordInvoiceDetailVO { */ private String taxRate; + /** + * 税码 + */ + private String taxCode; + /** * 税额 */ diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/invoicedetail/InvoiceDetailServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/invoicedetail/InvoiceDetailServiceImpl.java index b77a5ade..6e2d3890 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/invoicedetail/InvoiceDetailServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/invoicedetail/InvoiceDetailServiceImpl.java @@ -46,7 +46,7 @@ import java.util.Map; @Slf4j public class InvoiceDetailServiceImpl extends MpBaseServiceImpl - implements InvoiceDetailService { + implements InvoiceDetailService { @Resource private InvoiceDetailDao invoiceDetailDao; @@ -95,7 +95,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl queryWrapper = new QueryWrapper<>(); @@ -144,22 +144,17 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl invoiceDetailList, TDxInvoiceImg img) { + List invoiceDetailList, TDxInvoiceImg img) { JSONObject checkInfo = new JSONObject(); - InvoiceSubjectVO checkRecordVo = this.convertToCheckRecordVo(invoiceRecord, img,invoiceDetailList); + InvoiceSubjectVO checkRecordVo = this.convertToCheckRecordVo(invoiceRecord, img, invoiceDetailList); // 取发票上的价税合计 String totalAmount = checkRecordVo.getTotalAmount(); @@ -172,7 +167,7 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl invoiceDetailList) { + private InvoiceSubjectVO convertToCheckRecordVo(TDxRecordInvoice invoiceRecord, TDxInvoiceImg img, List invoiceDetailList) { InvoiceSubjectVO checkRecordVo = new InvoiceSubjectVO(); // 字典值转换 String fpzt = dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceRecord.getInvoiceStatus()); @@ -230,22 +225,22 @@ public class InvoiceDetailServiceImpl extends MpBaseServiceImpl getIncludePathPatterns() { ArrayList list = new ArrayList<>(); - String[] urls = {"/order/**" - - }; + String[] urls = {"/order/**"}; Collections.addAll(list, urls); return list; } 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 5fd14aa0..efb0e852 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 @@ -249,9 +249,7 @@ public class SDNYMainProcessController extends AbstractController { for (SNInvoice invoice : invoiceInfoList) { String fplxdm = ""; String snFplx = ""; - String invoiceCode = invoice.getInvoiceCode(); - String invoiceNo = invoice.getInvoiceNumber(); - result = snPushCheckRecordService.updateInvoicePoll(snRequestObject, company, taxNo, reimburse, invoice, fplxdm, invoiceCode, invoiceNo); + result = snPushCheckRecordService.updateInvoicePoll(company, taxNo, reimburse, invoice, fplxdm,imageId,compCode); //价税分离判断 if (!"ok".equals(result) && !"0000".equals(result)) { diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java b/dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java index 8590501d..f4f64bba 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java @@ -109,4 +109,9 @@ public class TDxRecordInvoiceDetail implements Serializable { */ private String goodsNum; + /** + * 税码 + */ + private String taxCode; + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNInvoiceDetail.java b/dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNInvoiceDetail.java index 2adbd0cd..353da11a 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNInvoiceDetail.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNInvoiceDetail.java @@ -75,4 +75,9 @@ public class SNInvoiceDetail { */ private String type = ""; + /** + * 类型 + */ + private String taxCode = ""; + } 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 d646b29a..9dc32a3f 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 @@ -109,7 +109,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { return post; } - public String pushInvoiceToRecordInvoice(SNRequestObject snRequestObject, String taxNo, String company) throws Exception { + public String pushInvoiceToRecordInvoice(SNInvoice snInvoice, String taxNo, String company) throws Exception { QueryWrapper currentWrapper = new QueryWrapper<>(); currentWrapper.eq("taxno", taxNo); @@ -117,103 +117,99 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { BaseTDxTaxCurrent current = baseTDxTaxCurrentDao.selectOne(currentWrapper); - List invoiceInfoList = snRequestObject.getInvoiceInfoList(); + String fpdm = snInvoice.getInvoiceCode(); + String fphm = snInvoice.getInvoiceNumber(); - if (invoiceInfoList != null && invoiceInfoList.size() > 0) { + QueryWrapper recordWrapper = new QueryWrapper<>(); + String uuid = ""; + if (StringUtils.isNoneBlank(fpdm)) { + uuid = fpdm + fphm; + } else { + uuid = fpdm; + } + recordWrapper.eq("uuid", uuid); - for (SNInvoice snInvoice : invoiceInfoList) { + BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper); - String fpdm = snInvoice.getInvoiceCode(); - String fphm = snInvoice.getInvoiceNumber(); - QueryWrapper recordWrapper = new QueryWrapper<>(); - String uuid = ""; - if (StringUtils.isNoneBlank(fpdm)) { - uuid = fpdm + fphm; - } else { - uuid = fpdm; - } - recordWrapper.eq("uuid", uuid); - - BaseTDxRecordInvoice baseTDxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(recordWrapper); - - - String kprq = snInvoice.getBillingDate(); - String je = snInvoice.getTotalAmount(); - String xfsh = snInvoice.getSalesTaxNo(); - String se = snInvoice.getAmountTax(); - String gfsbh = snInvoice.getPurchaserTaxNo(); - String gfmc = snInvoice.getPurchaserName(); - String invoiceType = snInvoice.getInvoiceType(); - - BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); - recordInvoice.setUuid(fpdm + fphm); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - if(kprq != null) { - recordInvoice.setInvoiceDate(sdf.parse(kprq)); - }else{ - recordInvoice.setInvoiceDate(new Date()); - log.error("开票日期为空.请检查发票"); - } - recordInvoice.setInvoiceCode(fpdm); - recordInvoice.setInvoiceNo(fphm); - recordInvoice.setInvoiceAmount(new BigDecimal(je)); - if (se != null) { - recordInvoice.setTaxAmount(new BigDecimal(se)); - } + String kprq = snInvoice.getBillingDate(); + String je = snInvoice.getTotalAmount(); + String xfsh = snInvoice.getSalesTaxNo(); + String se = snInvoice.getAmountTax(); + String gfsbh = snInvoice.getPurchaserTaxNo(); + String gfmc = snInvoice.getPurchaserName(); + String invoiceType = snInvoice.getInvoiceType(); - recordInvoice.setXfTaxNo(xfsh); - recordInvoice.setGfTaxNo(gfsbh); - recordInvoice.setGfName(gfmc); - recordInvoice.setRzlx("5"); - recordInvoice.setYqsqStatus("1"); - recordInvoice.setYqCurrentPeriod(current.getCurrentTaxPeriod()); - recordInvoice.setCreateDate(new Date()); - recordInvoice.setYqsqDate(new Date()); - recordInvoice.setSourceSystem("2"); - recordInvoice.setInvoiceStatus("0"); - recordInvoice.setInvoiceType(invoiceType); - recordInvoice.setCompany(company); - - if (baseTDxRecordInvoice != null) { - baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); - } else { - baseTDxRecordInvoiceDao.insert(recordInvoice); - } - } + BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); + recordInvoice.setUuid(fpdm + fphm); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (kprq != null) { + recordInvoice.setInvoiceDate(sdf.parse(kprq)); + } else { + recordInvoice.setInvoiceDate(new Date()); + log.error("开票日期为空.请检查发票"); + } + recordInvoice.setInvoiceCode(fpdm); + recordInvoice.setInvoiceNo(fphm); + + if (je != null) { + recordInvoice.setInvoiceAmount(new BigDecimal(je)); + } + if (se != null) { + recordInvoice.setTaxAmount(new BigDecimal(se)); + } + + recordInvoice.setXfTaxNo(xfsh); + recordInvoice.setGfTaxNo(gfsbh); + recordInvoice.setGfName(gfmc); + recordInvoice.setRzlx("5"); + recordInvoice.setYqsqStatus("1"); + recordInvoice.setYqCurrentPeriod(current.getCurrentTaxPeriod()); + recordInvoice.setCreateDate(new Date()); + recordInvoice.setYqsqDate(new Date()); + recordInvoice.setSourceSystem("2"); + recordInvoice.setInvoiceStatus("0"); + recordInvoice.setInvoiceType(invoiceType); + recordInvoice.setCompany(company); + + if (baseTDxRecordInvoice != null) { + baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); + } else { + baseTDxRecordInvoiceDao.insert(recordInvoice); } return ""; } - public Integer pushInvoiceToRecordInvoice2(SNRequestObject snRequestObject) { + public Integer pushInvoiceToRecordInvoice2(SNInvoice snInvoice,String imageId,String compCode) { DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); int update = 0; - List invoiceInfoList = snRequestObject.getInvoiceInfoList(); - - if (invoiceInfoList != null && invoiceInfoList.size() > 0) { - for (SNInvoice snInvoice : invoiceInfoList) { - String fpdm = snInvoice.getInvoiceCode(); - String fphm = snInvoice.getInvoiceNumber(); - QueryWrapper recordWrapper = new QueryWrapper<>(); - recordWrapper.eq("uuid", fpdm + fphm); - BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); - recordInvoice.setImageId(snRequestObject.getImageId()); - recordInvoice.setCompCode(snRequestObject.getCompCode()); - - update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); - } - } else { - String imageId = snRequestObject.getImageId(); - QueryWrapper recordWrapper = new QueryWrapper<>(); - recordWrapper.eq("image_id", imageId); - BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); - recordInvoice.setImageId(""); - recordInvoice.setCompCode(""); - - update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); - } + + String fpdm = snInvoice.getInvoiceCode(); + String fphm = snInvoice.getInvoiceNumber(); + QueryWrapper recordWrapper = new QueryWrapper<>(); + recordWrapper.eq("uuid", fpdm + fphm); + BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); + recordInvoice.setImageId(imageId); + recordInvoice.setCompCode(compCode); + + update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); + +// if (invoiceInfoList != null && invoiceInfoList.size() > 0) { +// for (SNInvoice snInvoice : invoiceInfoList) { +// +// } +// } else { +// String imageId = snRequestObject.getImageId(); +// QueryWrapper recordWrapper = new QueryWrapper<>(); +// recordWrapper.eq("image_id", imageId); +// BaseTDxRecordInvoice recordInvoice = new BaseTDxRecordInvoice(); +// recordInvoice.setImageId(""); +// recordInvoice.setCompCode(""); +// +// update = baseTDxRecordInvoiceDao.update(recordInvoice, recordWrapper); +// } return update; } @@ -512,7 +508,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { if (num > 9) { taxRateDetail = "0." + taxRateDetail; } else { - if(!taxRateDetail.startsWith("0")){ + if (!taxRateDetail.startsWith("0")) { taxRateDetail = "0.0" + taxRateDetail; } } @@ -555,7 +551,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { return jsonObject; } - public String updateInvoicePoll(@RequestBody SNRequestObject snRequestObject, String company, String taxNo, TDxInvoiceReimburse reimburse, SNInvoice invoice, String fplxdm, String invoiceCode, String invoiceNo) throws Exception { + public String updateInvoicePoll(String company, String taxNo, TDxInvoiceReimburse reimburse, SNInvoice invoice, String fplxdm,String imageId,String compCode) throws Exception { String result = "0000"; //判断发票类型 @@ -573,16 +569,16 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { if (data != null) { invoice.setIsDeductible(data.getIsDeductible()); invoice.setTaxRate(data.getTaxRate()); - if(data.getInvoiceAmount() != null) { + if (data.getInvoiceAmount() != null) { invoice.setTotalAmount(data.getInvoiceAmount().toString()); } - if(data.getTaxAmount() != null) { + if (data.getTaxAmount() != null) { invoice.setTotalTax(data.getTaxAmount().toString()); } } if (!"ok".equals(invoiceResult.getMsg()) && !"0000".equals(invoiceResult.getMsg())) { - log.info("价税分离失败:{}",invoiceResult.getMsg()); + log.info("价税分离失败:{}", invoiceResult.getMsg()); return invoiceResult.getMsg(); } @@ -608,11 +604,11 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { || "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm) || "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) { //可查验发票,已入库,更新票池 - Integer integer = this.pushInvoiceToRecordInvoice2(snRequestObject); + Integer integer = this.pushInvoiceToRecordInvoice2(invoice,imageId,compCode); log.info("可查验发票,更新底账库完成"); } else { //不可查验发票,未入库,插入票池 - this.pushInvoiceToRecordInvoice(snRequestObject, taxNo, company); + this.pushInvoiceToRecordInvoice(invoice, taxNo, company); log.info("不可查验发票,插入底账库成功"); } @@ -621,7 +617,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { } private TDxInvoiceReimburse convertToReimburse(SNInvoice invoice, TDxInvoiceReimburse reimburse, String fplxdm, String company) { - + reimburse.setId(IdUtils.nextId()); reimburse.setInvoiceType(fplxdm); reimburse.setInvoiceCode(invoice.getInvoiceCode()); reimburse.setInvoiceNo(invoice.getInvoiceNumber()); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java index 48bacea4..88bf23fa 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java @@ -307,6 +307,10 @@ public class SignSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl