Commit 4a22dcb5 authored by hanfeng's avatar hanfeng

开票

parent 8ae1e228
...@@ -11,6 +11,7 @@ import java.math.BigDecimal; ...@@ -11,6 +11,7 @@ import java.math.BigDecimal;
*/ */
@Data @Data
public class OrderData { public class OrderData {
/** /**
* 产品名称 * 产品名称
*/ */
...@@ -30,7 +31,7 @@ public class OrderData { ...@@ -30,7 +31,7 @@ public class OrderData {
/** /**
* 税率 * 税率
*/ */
private BigDecimal taxRate; private BigDecimal taxRate=new BigDecimal(0.03);
/** /**
* 单位 * 单位
......
package com.xxfc.platform.universal.service; package com.xxfc.platform.universal.service;
import com.alibaba.druid.sql.visitor.functions.If;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.order.entity.OrderInvoice; import com.xxfc.platform.order.entity.OrderInvoice;
import com.xxfc.platform.order.feign.OrderFeign; import com.xxfc.platform.order.feign.OrderFeign;
import com.xxfc.platform.universal.biz.InvoiceQueryErrorBiz; import com.xxfc.platform.universal.biz.InvoiceQueryErrorBiz;
...@@ -23,11 +19,9 @@ import com.xxfc.platform.universal.utils.SnowflakeIdWorker; ...@@ -23,11 +19,9 @@ import com.xxfc.platform.universal.utils.SnowflakeIdWorker;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -68,7 +62,6 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> { ...@@ -68,7 +62,6 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
private String salerAddress; private String salerAddress;
@Value("${invoice.salerAccount}") @Value("${invoice.salerAccount}")
private String salerAccount; private String salerAccount;
/** /**
* 收款人 * 收款人
*/ */
...@@ -88,7 +81,8 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> { ...@@ -88,7 +81,8 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
/** /**
* 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机 * 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机
*/ */
private static final Integer pushMode = 2; @Value("${invoice.pushMode}")
private Integer pushMode = 2;
private static final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(8); private static final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(8);
/** /**
......
...@@ -53,13 +53,16 @@ public class InvoiceDaoImpl implements InvoiceDao { ...@@ -53,13 +53,16 @@ public class InvoiceDaoImpl implements InvoiceDao {
@Value("${invoice.nuonuo.nn.appSecret}") @Value("${invoice.nuonuo.nn.appSecret}")
private String appSecret2; private String appSecret2;
// //正式 @Value("${invoice.nuonuo.queryUrl}")
// private static final String appKey2 = "26345711"; private String queryUrl ;
// private static final String appSecret2 = "901B543442BF41A1"; @Value("${invoice.nuonuo.invoiceUrl}")
private String invoiceUrl ;
/** /**
* 给定的部分名获取税号 * 给定的部分名,获取税号
* *
* @param name * @param name
* @return * @return
...@@ -112,18 +115,18 @@ public class InvoiceDaoImpl implements InvoiceDao { ...@@ -112,18 +115,18 @@ public class InvoiceDaoImpl implements InvoiceDao {
} }
/**
* 调用第三方开票接口进行开票
* @param invoice
* @param orders
* @return
*/
@Override @Override
public String Invoicing(Invoice invoice, List<OrderData> orders) { public String Invoicing(Invoice invoice, List<OrderData> orders) {
NNOpenSDK sdk = NNOpenSDK.getIntance(); NNOpenSDK sdk = NNOpenSDK.getIntance();
// API方法名 // API方法名
String method = "nuonuo.electronInvoice.requestBilling"; String method = "nuonuo.electronInvoice.requestBilling";
// SDK请求地址
//沙箱
String url = "https://sandbox.nuonuocs.cn/open/v1/services";
//正式
// String url = "https://sdk.nuonuo.com/open/v1/services";
String senid = UUID.randomUUID().toString().replace("-", ""); String senid = UUID.randomUUID().toString().replace("-", "");
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
HashMap<String, Map<String, Object>> orderMap = new HashMap<>(); HashMap<String, Map<String, Object>> orderMap = new HashMap<>();
...@@ -173,7 +176,7 @@ public class InvoiceDaoImpl implements InvoiceDao { ...@@ -173,7 +176,7 @@ public class InvoiceDaoImpl implements InvoiceDao {
String token = getTokenFP(); String token = getTokenFP();
String jsonString = JSON.toJSONString(orderMap); String jsonString = JSON.toJSONString(orderMap);
//调用第三方接口 //调用第三方接口
String result = sdk.sendPostSyncRequest(url, senid, appKey2, appSecret2, token, taxnum2, method, jsonString); String result = sdk.sendPostSyncRequest(invoiceUrl, senid, appKey2, appSecret2, token, taxnum2, method, jsonString);
log.info("result={}", result); log.info("result={}", result);
//把字符串json数据转换为map //把字符串json数据转换为map
JSONObject jsonObject = JSON.parseObject(result); JSONObject jsonObject = JSON.parseObject(result);
...@@ -188,7 +191,6 @@ public class InvoiceDaoImpl implements InvoiceDao { ...@@ -188,7 +191,6 @@ public class InvoiceDaoImpl implements InvoiceDao {
@Override @Override
public List<Map<String, Object>> invoiceResult(String invoiceSerialNum) { public List<Map<String, Object>> invoiceResult(String invoiceSerialNum) {
NNOpenSDK sdk = NNOpenSDK.getIntance(); NNOpenSDK sdk = NNOpenSDK.getIntance();
// API方法名 // API方法名
String method = "nuonuo.electronInvoice.CheckEInvoice"; String method = "nuonuo.electronInvoice.CheckEInvoice";
...@@ -197,18 +199,12 @@ public class InvoiceDaoImpl implements InvoiceDao { ...@@ -197,18 +199,12 @@ public class InvoiceDaoImpl implements InvoiceDao {
arrayList.add(invoiceSerialNum); arrayList.add(invoiceSerialNum);
map.put("invoiceSerialNum", arrayList); map.put("invoiceSerialNum", arrayList);
String content = JSON.toJSONString(map); String content = JSON.toJSONString(map);
// SDK请求地址
//沙箱
String url = "https://sandbox.nuonuocs.cn/open/v1/services";
//正式
// String url = "https://sdk.nuonuo.com/open/v1/services";
// 唯一标识,由企业自己生成32位随机码 // 唯一标识,由企业自己生成32位随机码
String senid = UUID.randomUUID().toString().replace("-", ""); String senid = UUID.randomUUID().toString().replace("-", "");
String data = null; String data = null;
try { try {
data = sdk.sendPostSyncRequest(url, senid, appKey2, appSecret2, getTokenFP(), taxnum2, method, content); data = sdk.sendPostSyncRequest(queryUrl, senid, appKey2, appSecret2, getTokenFP(), taxnum2, method, content);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment