Merge remote-tracking branch 'origin/release-zhy07071' into release

# Conflicts:
#	dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
#	dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
#	dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java
release
WangQi 2 years ago
commit 4d274753f1
  1. 38
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  2. 39
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  3. 19
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java

@ -203,11 +203,11 @@ public class SDNYMainProcessController extends AbstractController {
List<BaseTDxRecordInvoiceDetail> baseTDxRecordInvoiceDetail = baseTDxRecordInvoiceDetailDao.selectList(detailWrapper);
DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ);
if(baseTDxRecordInvoiceDetail != null && baseTDxRecordInvoiceDetail.size() == 0){
if(baseTDxRecordInvoiceDetail != null && baseTDxRecordInvoiceDetail.size() != 0){
//先删除原有主数据,再查验更新主数据和明细数据
int delete = baseTDxRecordInvoiceDao.delete(recordWrapper);
if(delete > 0) {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,null);
if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) {
@ -261,7 +261,7 @@ public class SDNYMainProcessController extends AbstractController {
}
try {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,"1");
log.info("查验结果为:{}", checkInvoiceResult);
} catch (Exception e) {
e.printStackTrace();
@ -507,8 +507,7 @@ public class SDNYMainProcessController extends AbstractController {
}
BigDecimal tax = new BigDecimal(taxRateDetail);
BigDecimal tax1 = tax.divide(new BigDecimal("100"));
// TODO
if (tax.compareTo(new BigDecimal("1")) < 0) {
if (tax.compareTo(new BigDecimal("0.99")) < 1) {
taxRateDetail = tax.toPlainString();
}else {
taxRateDetail = tax1.toPlainString();
@ -829,13 +828,14 @@ public class SDNYMainProcessController extends AbstractController {
sapInvoiceDetail.setZTAX("0.00");
sapInvoiceDetail.setZSM(getZSM(sapInvoiceDetail.getZTAX()));
} else {
//传给SAP税率为整数
BigDecimal tax = new BigDecimal(taxRate);
sapInvoiceDetail.setZSM(getZSM(tax.toString()));
BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
sapInvoiceDetail.setZTAX(tax1.toString());
if (tax1.compareTo(new BigDecimal("100")) >= 0) {
if (tax1.compareTo(new BigDecimal("99")) > 0) {
sapInvoiceDetail.setZTAX(taxRate);
}else if (tax1.scale() > 2){
}else {
DecimalFormat decimalFormat = new DecimalFormat("#.00");
String formattedDecimal = decimalFormat.format(tax1);
sapInvoiceDetail.setZTAX(formattedDecimal);
@ -1259,25 +1259,11 @@ public class SDNYMainProcessController extends AbstractController {
}
public static void main(String[] args) {
// DecimalFormat decimalFormat = new DecimalFormat("#.00");
// String formattedDecimal = decimalFormat.format(new BigDecimal("15"));
// BigDecimal bigDecimal = new BigDecimal("0.13");
// boolean b = bigDecimal.compareTo(new BigDecimal("1")) < 1;
// System.out.println();
SAPInvoiceDetail sapInvoiceDetail = new SAPInvoiceDetail();
String taxRate = "6.00";
BigDecimal tax = new BigDecimal(taxRate);
BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
sapInvoiceDetail.setZTAX(tax1.toString());
if (tax1.compareTo(new BigDecimal("100")) > 0) {
sapInvoiceDetail.setZTAX(taxRate);
}else if (tax1.scale() > 2){
DecimalFormat decimalFormat = new DecimalFormat("#.00");
String formattedDecimal = decimalFormat.format(tax1);
sapInvoiceDetail.setZTAX(formattedDecimal);
}
System.out.println("sapInvoiceDetail="+sapInvoiceDetail.getZTAX());
DecimalFormat decimalFormat = new DecimalFormat("#.00");
String formattedDecimal = decimalFormat.format(new BigDecimal("15"));
BigDecimal bigDecimal = new BigDecimal("0.13");
boolean b = bigDecimal.compareTo(new BigDecimal("0.99")) < 1;
System.out.println();
}
}

@ -270,7 +270,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
return queryInvoiceResult;
}
public JSONObject singleCheckInvoice(Map<String, String> pramsMap) throws Exception {
public JSONObject singleCheckInvoice(Map<String, String> pramsMap, String isInteger) throws Exception {
//1.封装查验参数
ApiRequest apiRequest = new ApiRequest();
@ -306,7 +306,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
JSONObject jsonObject = new JSONObject();
if (StringUtils.isNoneBlank(apiResponse.getContent())) {
log.info("查验的结果为:{}", apiResponse.getContent());
jsonObject = convertToSnObject(apiResponse.getContent(), jsonObject, fplxdm);
jsonObject = convertToSnObject(apiResponse.getContent(), jsonObject, fplxdm, isInteger);
}
// saveCheckRecord(pramsMap, apiResponse);
@ -331,7 +331,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
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));
HashMap contentMap = JSONObject.parseObject(con, HashMap.class);
@ -468,6 +468,11 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
if (taxRate.contains("%")) {
taxRate = taxRate.replace("%","");
}
//按照小数处理
if(StringUtils.isNotBlank(isInteger)){
BigDecimal bigDecimal = new BigDecimal(taxRate);
taxRate = bigDecimal.divide(new BigDecimal("100")).toPlainString();
}
if ("11".equals(invoiceType)) {
taxRate = "0";
@ -553,25 +558,27 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
}
if ("免税".equals(detail.getString("sl")) || "不征税".equals(detail.getString("sl")) || "***".equals(detail.getString("sl"))) {
if (StringUtils.isBlank(detail.get("sl").toString()) || "免税".equals(detail.get("sl").toString()) || "不征税".equals(detail.get("sl").toString())
|| "***".equals(detail.get("sl").toString())) {
taxRateDetail = "0";
snDetailMap.put("taxRate", taxRateDetail);
} else {
if (StringUtils.isNoneBlank(detail.get("sl").toString())) {
taxRateDetail = detail.get("sl").toString();
if (!"0".equals(taxRateDetail)) {
if (StringUtils.isNoneBlank(taxRateDetail)) {
if(taxRateDetail.contains("%")){
taxRateDetail = taxRateDetail.replace("%","");
}
}
taxRate = detail.get("sl").toString();
taxRate = taxRate.replace("%", "");
// if (!"0".equals(taxRate)) {
// 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)) {
taxRateDetail = "0";
taxRate = "0";
}
log.info("明细-发票税率为:{}", taxRateDetail);
snDetailMap.put("taxRate", taxRateDetail);
log.info("明细-发票税率为:{}", taxRate);
snDetailMap.put("taxRate", taxRate);
}
}
@ -719,7 +726,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
pramsMap.put("invoiceType", invoice.getInvoiceType());
}
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap,null);
log.info("补充查验结果为:{}", checkInvoiceResult);
} catch (Exception e) {
e.printStackTrace();

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

Loading…
Cancel
Save