修复传入影像系统税率不一致的问题

release
zhenghaiyang@ele-cloud.com 2 years ago
parent 54aac18672
commit c5923c9d80
  1. 11
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  2. 13
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  3. 17
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java

@ -207,7 +207,7 @@ public class SDNYMainProcessController extends AbstractController {
//先删除原有主数据,再查验更新主数据和明细数据 //先删除原有主数据,再查验更新主数据和明细数据
int delete = baseTDxRecordInvoiceDao.delete(recordWrapper); int delete = baseTDxRecordInvoiceDao.delete(recordWrapper);
if(delete > 0) { if(delete > 0) {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,null);
if (!checkInvoiceResult.containsKey("code")) { if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) { if (!checkInvoiceResult.containsKey("cyjg")) {
@ -261,7 +261,7 @@ public class SDNYMainProcessController extends AbstractController {
} }
try { try {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,"1");
log.info("查验结果为:{}", checkInvoiceResult); log.info("查验结果为:{}", checkInvoiceResult);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -507,7 +507,7 @@ public class SDNYMainProcessController extends AbstractController {
} }
BigDecimal tax = new BigDecimal(taxRateDetail); BigDecimal tax = new BigDecimal(taxRateDetail);
BigDecimal tax1 = tax.divide(new BigDecimal("100")); BigDecimal tax1 = tax.divide(new BigDecimal("100"));
if (tax.compareTo(new BigDecimal("1")) < 1) { if (tax.compareTo(new BigDecimal("0.99")) < 1) {
taxRateDetail = tax.toPlainString(); taxRateDetail = tax.toPlainString();
}else { }else {
taxRateDetail = tax1.toPlainString(); taxRateDetail = tax1.toPlainString();
@ -828,11 +828,12 @@ public class SDNYMainProcessController extends AbstractController {
sapInvoiceDetail.setZTAX("0.00"); sapInvoiceDetail.setZTAX("0.00");
sapInvoiceDetail.setZSM(sapInvoiceDetail.getZTAX()); sapInvoiceDetail.setZSM(sapInvoiceDetail.getZTAX());
} else { } else {
//传给SAP税率为整数
BigDecimal tax = new BigDecimal(taxRate); BigDecimal tax = new BigDecimal(taxRate);
sapInvoiceDetail.setZSM(getZSM(tax.toString())); sapInvoiceDetail.setZSM(getZSM(tax.toString()));
BigDecimal tax1 = tax.multiply(new BigDecimal("100")); BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
sapInvoiceDetail.setZTAX(tax1.toString()); sapInvoiceDetail.setZTAX(tax1.toString());
if (tax1.compareTo(new BigDecimal("100")) > 0) { if (tax1.compareTo(new BigDecimal("99")) > 0) {
sapInvoiceDetail.setZTAX(taxRate); sapInvoiceDetail.setZTAX(taxRate);
}else if (tax1.scale() > 2){ }else if (tax1.scale() > 2){
DecimalFormat decimalFormat = new DecimalFormat("#.00"); DecimalFormat decimalFormat = new DecimalFormat("#.00");
@ -1261,7 +1262,7 @@ public class SDNYMainProcessController extends AbstractController {
DecimalFormat decimalFormat = new DecimalFormat("#.00"); DecimalFormat decimalFormat = new DecimalFormat("#.00");
String formattedDecimal = decimalFormat.format(new BigDecimal("15")); String formattedDecimal = decimalFormat.format(new BigDecimal("15"));
BigDecimal bigDecimal = new BigDecimal("0.13"); BigDecimal bigDecimal = new BigDecimal("0.13");
boolean b = bigDecimal.compareTo(new BigDecimal("1")) < 1; boolean b = bigDecimal.compareTo(new BigDecimal("0.99")) < 1;
System.out.println(); System.out.println();
} }

@ -270,7 +270,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
return queryInvoiceResult; return queryInvoiceResult;
} }
public JSONObject singleCheckInvoice(Map<String, String> pramsMap) throws Exception { public JSONObject singleCheckInvoice(Map<String, String> pramsMap, String isInteger) throws Exception {
//1.封装查验参数 //1.封装查验参数
ApiRequest apiRequest = new ApiRequest(); ApiRequest apiRequest = new ApiRequest();
@ -306,7 +306,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
if (StringUtils.isNoneBlank(apiResponse.getContent())) { if (StringUtils.isNoneBlank(apiResponse.getContent())) {
log.info("查验的结果为:{}", apiResponse.getContent()); log.info("查验的结果为:{}", apiResponse.getContent());
jsonObject = convertToSnObject(apiResponse.getContent(), jsonObject, fplxdm); jsonObject = convertToSnObject(apiResponse.getContent(), jsonObject, fplxdm, isInteger);
} }
// saveCheckRecord(pramsMap, apiResponse); // saveCheckRecord(pramsMap, apiResponse);
@ -331,7 +331,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
platformCheckLogService.save(checkLog); platformCheckLogService.save(checkLog);
} }
private JSONObject convertToSnObject(String content, JSONObject jsonObject, String invoiceType) throws ParseException { private JSONObject convertToSnObject(String content, JSONObject jsonObject, String invoiceType, String isInteger) throws ParseException {
String con = new String(Base64.decode(content)); String con = new String(Base64.decode(content));
HashMap contentMap = JSONObject.parseObject(con, HashMap.class); HashMap contentMap = JSONObject.parseObject(con, HashMap.class);
@ -468,6 +468,11 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
if (!"0".equals(taxRate)) { if (!"0".equals(taxRate)) {
taxRate = taxRate.substring(0, taxRate.length() - 1); taxRate = taxRate.substring(0, taxRate.length() - 1);
} }
//按照小数处理
if(StringUtils.isNotBlank(isInteger)){
BigDecimal bigDecimal = new BigDecimal(taxRate);
taxRate = bigDecimal.divide(new BigDecimal("100")).toPlainString();
}
if ("11".equals(invoiceType)) { if ("11".equals(invoiceType)) {
taxRate = "0"; taxRate = "0";
@ -726,7 +731,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
pramsMap.put("invoiceType", invoice.getInvoiceType()); pramsMap.put("invoiceType", invoice.getInvoiceType());
} }
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap); checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,null);
log.info("补充查验结果为:{}", checkInvoiceResult); log.info("补充查验结果为:{}", checkInvoiceResult);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

@ -1,5 +1,6 @@
package com.dxhy.erp.service.impl; package com.dxhy.erp.service.impl;
import com.aisinopdf.text.pdf.B;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -314,10 +315,18 @@ public class SignSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<SignRecord
invoiceDetail.setGoodsName(invoiceDetailQuery.getString("commodityName")); invoiceDetail.setGoodsName(invoiceDetailQuery.getString("commodityName"));
invoiceDetail.setUnitPrice(invoiceDetailQuery.getString("unitPrice")); invoiceDetail.setUnitPrice(invoiceDetailQuery.getString("unitPrice"));
invoiceDetail.setDetailAmount(invoiceDetailQuery.getString("amount")); invoiceDetail.setDetailAmount(invoiceDetailQuery.getString("amount"));
invoiceDetail.setTaxRate(invoiceDetailQuery.getString("taxRate")); String rate = invoiceDetailQuery.getString("taxRate");
taxRate = taxRate + invoiceDetailQuery.getString("taxRate"); if(StringUtils.isNotBlank(rate)){
if(invoiceDetailQuery.getString("taxRate") != null){ //判断是否为小数 转换为小数
invoiceDetail.setTaxCode(getZSM(invoiceDetailQuery.getString("taxRate"))); BigDecimal bigDecimal = new BigDecimal(rate);
if(bigDecimal.compareTo(new BigDecimal("0.99")) < 1 ){
rate = bigDecimal.multiply(new BigDecimal("100")).toPlainString();
}
}
invoiceDetail.setTaxRate(rate);
taxRate = taxRate + rate;
if(rate != null){
invoiceDetail.setTaxCode(getZSM(rate));
} }
invoiceDetail.setTaxAmount(invoiceDetailQuery.getString("tax")); invoiceDetail.setTaxAmount(invoiceDetailQuery.getString("tax"));

Loading…
Cancel
Save