Merge remote-tracking branch 'origin/beta-prop-all' into beta-prop-all

# Conflicts:
#	jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java
#	jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
jianshui-ui
dongxiaoke 1 year ago
commit 8c8c822ddb
  1. 58
      jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
  2. 36
      jianshui-admin/src/main/java/com/jianshui/web/controller/sandbox/IndexController.java
  3. 78
      jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/InvoiceEncryptUtil.java
  4. 8
      jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java
  5. 2
      jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
  6. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
  7. 48
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/QueryInvoiceListDTO.java
  8. 30
      jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDFPXX.java
  9. 1
      jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/InvoiceMapper.java
  10. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
  11. 12
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/ElephantInvoiceServiceImpl.java
  12. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
  13. 13
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
  14. 17
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
  15. 34
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
  16. 46
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java
  17. 152
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
  18. 7
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
  19. 4
      jianshui-invoice/src/main/java/com/jianshui/invoice/task/AddInvoiceBatchTask.java
  20. 37
      jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java
  21. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/task/QueryInvoiceTask.java
  22. 2
      jianshui-invoice/src/main/java/com/jianshui/invoice/task/RedInvoiceBackTask.java
  23. 4
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatInspurUtil.java
  24. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java
  25. 3
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/elephant/ElephantUtils.java
  26. 8
      jianshui-invoice/src/main/resources/mapper/invoice/InvoiceMapper.xml
  27. 7
      jianshui-ui/src/api/sandbox/encrypt.js
  28. 30
      jianshui-ui/src/views/sandbox/encrypt.vue
  29. 3
      jianshui-ui/vue.config.js

@ -3,41 +3,29 @@ package com.jianshui.api.controller.http.invoice.v1;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import com.dxhy.order.protocol.invoke.DxhyInterfaceResponse;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.jianshui.common.constant.HttpStatus;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.enums.ErrorCode;
import com.jianshui.common.exception.jianshui.JianshuiParamErrorException;
import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.StringUtils;
import com.jianshui.common.utils.http.HttpHelper;
import com.jianshui.common.utils.uuid.IdUtils;
import com.jianshui.framework.manager.AsyncManager;
import com.jianshui.invoice.constant.elephant.ElephantConstants;
import com.jianshui.invoice.domain.*;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.ele.EleOuterMessage;
import com.jianshui.invoice.domain.ele.FindRedInfoDTO;
import com.jianshui.invoice.domain.ele.HZSQDMessage;
import com.jianshui.invoice.mapper.InvoiceBackMapper;
import com.jianshui.invoice.mapper.InvoiceFileMapper;
import com.jianshui.invoice.service.impl.api.ElephantInvoiceApiV6ServiceImpl;
import com.jianshui.invoice.task.AddInvoiceBatchTask;
import com.jianshui.invoice.task.InvoiceBackTask;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.invoice.domain.dto.*;
import com.jianshui.invoice.domain.dto.api.*;
@ -58,14 +46,8 @@ import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
@ -73,8 +55,6 @@ import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.*;
/**
@ -113,6 +93,42 @@ public class InvoiceController {
private InvoiceFileMapper invoiceFileMapper;
/**
* 发票列表查询接口
* @param request
* @param identity
* @return
* @throws Exception
*/
@PostMapping({"/api/invoice/v1/queryInvoiceList", "/api/invoice/v1/queryInvoiceList/{identity}", "/invoice/queryInvoiceList"})
public Object queryInvoiceList(HttpServletRequest request, String identity) throws Exception {
log.info("发票列表查询接口,开始执行");
if (StringUtils.isEmpty(identity)) {
DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse();
dxhyInterfaceResponse.setCode("9999");
dxhyInterfaceResponse.setMessage("身份认证参数为空");
return dxhyInterfaceResponse;
}
Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity);
if (companyservice == null) {
DxhyInterfaceResponse dxhyInterfaceResponse = new DxhyInterfaceResponse();
dxhyInterfaceResponse.setCode("9999");
dxhyInterfaceResponse.setMessage("企业信息不存在");
return dxhyInterfaceResponse;
}
String requestAdapterKey = serviceManageService.getRequestAdapterKey("invoice", companyservice.getCompanyid());
IInvoiceRequestService invoiceRequestService = invoiceRequestFactory.getService(requestAdapterKey);
JSONObject decryptResult = invoiceRequestService.decrypt(request, companyservice, "query_invoice_list");
// 获得请求实例,并且进行扣费
log.info("发票列表查询接口,解密数据{}", decryptResult);
QueryInvoiceListDTO queryInvoiceList = decryptResult.toJavaObject(QueryInvoiceListDTO.class);
log.info("发票列表查询接口,转换数据{}", JSONUtil.toJsonStr(queryInvoiceList));
String serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", companyservice.getCompanyid());
serviceManageService.companyConsume("invoice", companyservice.getCompanyid());
IInvoiceApiService invoiceService = invoiceServiceFactory.getService(serviceKey);
return invoiceService.queryInvoiceList(queryInvoiceList, companyservice);
}
/**
* 功能描述: 红字查询接口
*

@ -3,7 +3,11 @@ package com.jianshui.web.controller.sandbox;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONCreator;
import com.jianshui.common.core.domain.AjaxResult;
import com.jianshui.common.core.domain.entity.Companyservice;
import com.jianshui.common.utils.encrypt.InvoiceEncryptUtil;
import com.jianshui.system.mapper.CompanyserviceMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -16,15 +20,47 @@ import org.springframework.web.bind.annotation.RestController;
**/
@RestController
@RequestMapping("/sandbox")
@Slf4j
public class IndexController {
@Autowired
private CompanyserviceMapper companyserviceMapper;
@PostMapping("/encrypt")
public AjaxResult encrypt(@RequestBody JSONObject requestBody) {
String key = requestBody.getString("key");
String order = requestBody.getString("order");
// 查询企业信息
Companyservice companyservice = companyserviceMapper.selectCompanyserviceByIdentity(key);
try {
if (companyservice != null){
String encryptTest = InvoiceEncryptUtil.encrypt(order, companyservice.getSecret());
return AjaxResult.success("success", encryptTest);
}else {
String encryptTest = InvoiceEncryptUtil.encrypt(order, key);
return AjaxResult.success("success", encryptTest);
}
}catch (Exception e){
return AjaxResult.error(e.getMessage());
}
}
@PostMapping("/decrypt")
public AjaxResult decrypt(@RequestBody JSONObject requestBody) {
String key = requestBody.getString("key");
String order = requestBody.getString("order");
// 查询企业信息
Companyservice companyservice = companyserviceMapper.selectCompanyserviceByIdentity(key);
try {
if (companyservice != null){
String decryptTest = InvoiceEncryptUtil.decrypt(order, companyservice.getSecret());
return AjaxResult.success("success", decryptTest);
}else {
String decryptTest = InvoiceEncryptUtil.decrypt(order, key);
return AjaxResult.success("success", decryptTest);
}
}catch (Exception e){
return AjaxResult.error(e.getMessage());
}

@ -3,12 +3,19 @@ package com.jianshui.common.utils.encrypt;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
/**
* 功能描述
@ -65,6 +72,77 @@ public class InvoiceEncryptUtil {
}
public static String decrypt(String encryptedStr, String mkey) {
byte[] encryptedData = {};
try {
// 解析Base64编码的字符串
encryptedData = new BASE64Decoder().decodeBuffer(encryptedStr);
} catch (Exception e) {
e.printStackTrace();
return null;
}
// 取密钥和偏转向量
byte[] key = new byte[8];
byte[] iv = new byte[8];
getKeyIV(mkey, key, iv);
SecretKeySpec deskey = new SecretKeySpec(key, "DES");
IvParameterSpec ivParam = new IvParameterSpec(iv);
// 使用DES算法解密消息体
byte[] decryptedData = null;
try {
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, deskey, ivParam);
decryptedData = cipher.doFinal(encryptedData);
} catch (NoSuchAlgorithmException | NoSuchPaddingException |
InvalidKeyException | InvalidAlgorithmParameterException |
IllegalBlockSizeException | BadPaddingException e) {
e.printStackTrace();
return null;
}
// 分离出MD5哈希和原始数据
byte[] originalData = null;
byte[] calculatedMD5Hash = null;
// 假设MD5哈希占用16字节
if (decryptedData.length >= 16) {
calculatedMD5Hash = new byte[16];
originalData = new byte[decryptedData.length - 16];
System.arraycopy(decryptedData, 0, calculatedMD5Hash, 0, 16);
System.arraycopy(decryptedData, 16, originalData, 0, originalData.length);
} else {
// 数据长度不符合预期,可能被篡改
return null;
}
// 验证MD5哈希
byte[] recalculatedMD5Hash = null;
try {
recalculatedMD5Hash = MD5Hash(originalData, 0, originalData.length);
} catch (Exception e) {
e.printStackTrace();
return null;
}
// MD5校验失败
if (!Arrays.equals(calculatedMD5Hash, recalculatedMD5Hash)) {
return null;
}
// 将原始数据转换回字符串
String originalStr = null;
try {
originalStr = new String(originalData, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
return originalStr;
}
/**
* <li>
* 方法名称:DES_CBC_Encrypt</li> <li>

@ -202,11 +202,9 @@ public class JianshuiInvoiceEncryptUtil {
System.out.println("AES密钥:");
System.out.println(keyHex);
// String str = "{\"FHHS\":1,\"FPZHXX\":[{\"FPDM\":\"243170000003\",\"FPHM\":\"90763134\",\"FPLXDM\":\"31\",\"GMFSBH\":\"9137132733425975X9\",\"SQRZLX\":\"1\",\"SQSKSSQ\":\"202406\",\"YXSE\":\"1998.00\",\"invoiceId\":\"037e550cafdf9fe36f5236e52efd0000\"}],\"GMFSBH\":\"9137132733425975X9\",\"PCH\":\"0386183bd54f9b5287705c36895b0000\",\"taxNo\":\"9137132733425975X9\"}";
String str = "{\"jym\":\"\",\"fpje\":\"174576.62\",\"fpdm\":\"\",\"kprq\":\"20240723\",\"fphm\":\"24372000000129562880\",\"fpzl\":\"22\",\"taxNo\":\"90370102MAC0CNQC0L\"}";
String key = "H5/GxC9v//HUXTp4/fg0rg==";
System.out.println("AES密钥:");
System.out.println(encrypt(str,key));
String str = "{\"terminalNumber\":\"\",\"orderno\":\"fcd3a67d-6a6e-f714-0790-c705db41403d\",\"sellerBank\":null,\"checker\":\"\",\"saleaddress\":null,\"payee\":\"\",\"hsbz\":\"2\",\"kjlx\":\"\",\"saleaccount\":null,\"qdbz\":\"0\",\"ext\":{\"sfhqsyed\":false},\"xsfnsrsbh\":\"92370214MACAAEK16E\",\"xsflxdh\":null,\"cpybz\":\"0\",\"fjh\":\"\",\"tax\":\"0.3\",\"dkbz\":\"0\",\"phone\":\"\",\"dqbm\":\"\",\"xsfyhzh\":null,\"jshj\":\"10.3\",\"tsfs\":\"2\",\"detail\":[{\"fphxz\":\"0\",\"lslbs\":\"\",\"unit\":\"\",\"hsbz\":\"0\",\"taxrate\":\"0.03\",\"yhzcbs\":\"0\",\"zzstsgl\":\"\",\"price\":\"\",\"num\":\"\",\"goodsname\":\"维修费\",\"spbm\":\"202\",\"spec\":\"\",\"taxfreeamt\":\"10.00\",\"tax\":\"0.30\",\"taxamt\":\"10.30\"}],\"taxamt\":\"10\",\"saletaxnum\":\"92370214MACAAEK16E\",\"sellerName\":\"城阳区兴顺通制冷设备维修服务部\",\"billInfono\":\"\",\"xsfkhh\":null,\"fpqqlsh\":\"fcd3a67d-6a6e-f714-0790-c705db41403d\",\"qdxmmc\":\"\",\"gfxxconfirm\":\"\",\"invoiceLine\":\"82\",\"serviceId\":\"lzfpkj\",\"email\":\"\",\"salephone\":null,\"address\":\"北京市-西城区-市岱岳区山口镇油坊村 80965631\",\"fpdm\":\"\",\"bsrysfzjhm\":\"370882198408212815\",\"kptype\":\"1\",\"message\":\"\",\"clerk\":\"鹿旭\",\"async\":\"true\",\"xsfmc\":\"城阳区兴顺通制冷设备维修服务部\",\"xsfdz\":null,\"taxnum\":\"91370112MA3C5P3322\",\"jqbh\":\"370882198408212815\",\"account\":\"中国建设银行济南市泉城支行 376010100101019236\",\"invoicedate\":\"2024-01-30\",\"buyername\":\"高速公路有限公司\",\"fphm\":\"\"}";
String key = "S1jIlJRLXBNtIFihvQ0VPw==";
System.out.println(encryptAES(str,key));
}

@ -135,6 +135,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/invoice/QueryFastRedInvoiceResult",
"/invoice/issueFastRedInvoice",
"/invoice/fastRedInvoice",
"/invoice/queryInvoiceList",
"/invoice/fastRedInvoice",
"/webservice/income/v1/checkNew/**",
"/income/v1/checkNew/**"
)

@ -63,6 +63,8 @@ public class ElephantConstantsV6 {
public static String REDINFO_DOWNLOAD_METHOD = "DownloadRedInvoiceApplicationResult";
public static String REDINFO_FIND_LOCALHOST = "/invoice/api/v6/GetRedInvoiceApplication";
public static String REDINFO_FIND_METHOD = "GetRedInvoiceApplication";
public static String INVOICE_LIST_INFO_URL = "/invoice/api/v6/QueryInvoiceList";
public static String INVOICE_LIST_METHOD = "QueryInvoiceList";
// 数电-生成动态二维码

@ -0,0 +1,48 @@
package com.jianshui.invoice.domain.dto;
import lombok.Data;
import java.util.List;
@Data
public class QueryInvoiceListDTO {
// 纳税人识别号
private String NSRSBH;
// 归集标签(查询类型)需有值
private String GJBQ;
// 发票状态代码
private List<String> FPZT_DM;
// 发票来源代码(必填)
private String FPLY_DM;
// 发票类型代码
private List<String> FPLX_DM;
// 开票日期起(必填)
private String KPRQQ;
// 开票日期止(必填)
private String KPRQZ;
// 发票号码
private String QDFP_HM;
// 纸质发票代码
private String ZZFPDM;
// 纸质发票号码
private String ZZFPHM;
// 对方纳税人识别号
private String DFNSRSBH;
// 对方纳税人名称
private String DFNSRMC;
// 购买方纳税人识别号
private String GHF_NSRSBH;
// 购买方名称
private String GHF_MC;
// 查询页码
private String CXYM;
// 查询标志
private String CXBZ;
// 每页条数
private String TS;
// 登录账号
private String YHM;
}

@ -67,11 +67,11 @@ public class DDFPXX {
private String DDZTXX;
private String TQM;
private String DTM;
private String BYZD1;
private String BYZD2;
private String BYZD3;
private String BYZD4;
private String BYZD5;
private Date BYZD1;
private Date BYZD2;
private Date BYZD3;
private Date BYZD4;
private Date BYZD5;
public void setDDQQLSH(String DDQQLSH) {
this.DDQQLSH = DDQQLSH;
}
@ -457,38 +457,38 @@ public class DDFPXX {
return DTM;
}
public void setBYZD1(String BYZD1) {
public void setBYZD1(Date BYZD1) {
this.BYZD1 = BYZD1;
}
public String getBYZD1() {
public Date getBYZD1() {
return BYZD1;
}
public void setBYZD2(String BYZD2) {
public void setBYZD2(Date BYZD2) {
this.BYZD2 = BYZD2;
}
public String getBYZD2() {
public Date getBYZD2() {
return BYZD2;
}
public void setBYZD3(String BYZD3) {
public void setBYZD3(Date BYZD3) {
this.BYZD3 = BYZD3;
}
public String getBYZD3() {
public Date getBYZD3() {
return BYZD3;
}
public void setBYZD4(String BYZD4) {
public void setBYZD4(Date BYZD4) {
this.BYZD4 = BYZD4;
}
public String getBYZD4() {
public Date getBYZD4() {
return BYZD4;
}
public void setBYZD5(String BYZD5) {
public void setBYZD5(Date BYZD5) {
this.BYZD5 = BYZD5;
}
public String getBYZD5() {
public Date getBYZD5() {
return BYZD5;
}

@ -102,6 +102,7 @@ public interface InvoiceMapper extends BaseMapper<Invoice> {
public Invoice selectByOutTradeOrderno(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo,@Param("update_by") String updateBy);
public Invoice selectByOutTradeOrdernoNoUpdateBy(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo);
public List<Invoice> selectByOutTradeOrdernoList(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo,@Param("update_by") String updateBy);
public List<Invoice> selectByOutTradeOrdernoListNoUpdateBy(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo);
/**

@ -371,4 +371,7 @@ public interface IInvoiceApiService {
HXResponse loginVerificated(JSONObject decryptResult, Companyservice companyservice);
HXResponse saveInvoice(String identity, String billInfoId, JSONObject resultJSON);
/** 查询发票列表 */
HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice);
}

@ -303,9 +303,9 @@ public class ElephantInvoiceServiceImpl implements ElephantInvoiceService {
ICompanyservicePropService companyserviceProp = SpringUtils.getBean(ICompanyservicePropService.class);
CompanyserviceProp secretIdProp = companyserviceProp.selectPropByKey(Long.valueOf(companyservice.getIdentity()), "aisino_callback_url");
String callBackUrl = secretIdProp.getValue();
log.info("【控制台】发票回调接口,发送数据开始,callBackUrl={},param={}", callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台1】发票回调接口,发送数据开始,callBackUrl={},param={}", callBackUrl, JSONUtil.toJsonStr(invoice));
String result = HttpUtil.post(callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台】发票回调接口,发送数据结束,接口返回信息={}", result);
log.info("【控制台1】发票回调接口,发送数据结束,接口返回信息={}", result);
JSONObject resultObject = JSONObject.parseObject(result);
if (StringUtils.isNotBlank(resultObject.getString("status")) && "0000".equals(resultObject.getString("status"))){
@ -502,7 +502,7 @@ public class ElephantInvoiceServiceImpl implements ElephantInvoiceService {
invoiceBack.setIdentity(companyservice.getIdentity());
invoiceBack.setBackMsg("");
invoiceBack.setBackUrl("");
invoiceBack.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBack.setSystemOrderno(invoice.getFpqqlsh());
invoiceBack.setStatus("0");
invoiceBack.setCreateTime(new Date());
invoiceBackMapper.insertInvoiceBack(invoiceBack);
@ -759,9 +759,9 @@ public class ElephantInvoiceServiceImpl implements ElephantInvoiceService {
try {
log.info("【控制台】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台1】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
String result = HttpUtil.post(callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
log.info("【控制台1】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
if (jsonObject != null) {
@ -786,7 +786,7 @@ public class ElephantInvoiceServiceImpl implements ElephantInvoiceService {
}
}
} catch (Exception e) {
log.info("【控制台】发票回调接口,发送数据异常,id={},e={}", id,e);
log.info("【控制台1】发票回调接口,发送数据异常,id={},e={}", id,e);
invoiceBack.setStatus("2");
invoiceBack.setBackMsg("发送数据异常!");
invoiceBackMapper.updateInvoiceBack(invoiceBack);

@ -143,7 +143,7 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
// throw new JianshuiParamErrorException(ErrorCode.IDENTITY_NOT_MATCH,"invoice);
// }
// 红字查询
if (StringUtils.equals(serviceKey, "find_redinfo")) {
if (StringUtils.equals(serviceKey, "find_redinfo") || StringUtils.equals(serviceKey, "query_invoice_list")) {
return json;
}
// 如果是开票或者查询

@ -365,16 +365,16 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
Invoice invoice = invoiceMapper.selectInvoiceById(id);
if (invoice == null) {
log.info("【控制台】发票信息未查询到,id={}", id);
log.info("【控制台1】发票信息未查询到,id={}", id);
return;
}
try {
log.info("【控制台】发票回调接口,发送数据开始,id={},参数={}", id,JSONUtil.toJsonStr(invoice));
log.info("【控制台1】发票回调接口,发送数据开始,id={},参数={}", id,JSONUtil.toJsonStr(invoice));
String result = HttpUtil.post(callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
log.info("【控制台1】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
} catch (Exception e) {
log.info("【控制台】发票回调接口,发送数据异常,id={}", id);
log.info("【控制台1】发票回调接口,发送数据异常,id={}", id);
throw new RuntimeException(e);
}
@ -1087,6 +1087,11 @@ public class AisinoConsoleInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
@Override
public AjaxResult syncStockInfo(Companyservice companyservice) {

@ -20,7 +20,6 @@ import com.jianshui.common.exception.jianshui.JianshuiServiceException;
import com.jianshui.common.utils.*;
import com.jianshui.common.utils.spring.SpringUtils;
import com.jianshui.common.utils.uuid.IdUtils;
import com.jianshui.framework.manager.AsyncManager;
import com.jianshui.invoice.constant.aisino.console.AisinoConsoleConstants;
import com.jianshui.invoice.domain.*;
import com.jianshui.invoice.domain.dto.*;
@ -133,7 +132,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
invoiceBackVali.setBackUrl("");
invoiceBackVali.setStatus("0");
invoiceBackVali.setCreateTime(new Date());
invoiceBackVali.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBackVali.setSystemOrderno(invoice.getFpqqlsh());
invoiceBackVali.setBackMsg("");
invoiceBackVali.setResultCode("0000");
invoiceBackVali.setResultMsg("开票成功!");
@ -426,7 +425,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus("0");
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
queryInvoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
queryInvoiceBack.setBackMsg("");
queryInvoiceBack.setResultCode("0000");
queryInvoiceBack.setResultMsg("开票成功!");
@ -541,7 +540,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus("0");
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
queryInvoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
queryInvoiceBack.setBackMsg("");
queryInvoiceBack.setResultCode("0000");
queryInvoiceBack.setResultMsg("开票成功!");
@ -571,6 +570,10 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
}
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
@ -616,9 +619,9 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
jsonResult.set("message", invoiceBack.getResultMsg());
jsonResult.set("data", invoice);*/
log.info("【控制台】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台1】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
String result = HttpUtil.post(callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
log.info("【控制台1】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
if (jsonObject != null) {
@ -643,7 +646,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
}
}
} catch (Exception e) {
log.info("【控制台】发票回调接口,发送数据异常,id={},e={}", id,e);
log.info("【控制台1】发票回调接口,发送数据异常,id={},e={}", id,e);
invoiceBack.setStatus("2");
invoiceBack.setBackMsg("发送数据异常!");
invoiceBackMapper.updateInvoiceBack(invoiceBack);

@ -27,10 +27,6 @@ import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDTO;
import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDetailDTO;
import com.jianshui.invoice.domain.dto.api.*;
import com.jianshui.invoice.domain.dto.api.elephant.*;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Bdcxsxx;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Fjys;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Hwys;
import com.jianshui.invoice.domain.dto.api.elephant.addInvoice.Jzfwxx;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.ele.EleOuterMessage;
import com.jianshui.invoice.domain.ele.HZSQDMessage;
@ -47,7 +43,9 @@ import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
import com.jianshui.storage.factory.StorageFactory;
import com.jianshui.storage.service.IStorageService;
import com.jianshui.system.domain.CompanyserviceProp;
import com.jianshui.system.mapper.CompanyserviceMapper;
import com.jianshui.system.mapper.CompanyservicePropMapper;
import com.jianshui.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -94,6 +92,9 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
@Autowired
private IBillInfoService billInfoService;
@Autowired
private CompanyservicePropMapper companyservicePropMapper;
/**
* 发票开具
*
@ -207,7 +208,8 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
// log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
log.info("【销项发票】【大象发票】发票开具请求结果");
// 判断外层报文是否成功
if (queryResult.isError()) {
@ -234,6 +236,14 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
queryBody.put("DDQQPCH", billInfo.getSystemOrderno());
queryBody.put("FPLXDM", fplxdm);
queryBody.put("SFFHSBSJ", "0");
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
// queryResult = ElephantUtils.sendRequest(ElephantConstants.ADD_INVOICE_RESULT, JSONUtil.parse(queryBody));
try {
queryResult = ElephantUtils.sendRequestWithoutToken(ElephantConstants.ADD_INVOICE_RESULT_LOCALHOST, ElephantConstants.ADD_INVOICE_RESULT_METHOD, JSONUtil.parse(queryBody), companyservice);
@ -359,7 +369,14 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
JSONObject queryBody = new JSONObject();
queryBody.put("NSRSBH", companyservice.getSellertax());
queryBody.put("DDQQLSH", originBillInfo.getSystemOrderno());
queryBody.put("BSWJ", "0");
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
debugLog("断点4", uuid, timestamp);
// AjaxResult queryResult = ElephantUtils.sendRequest(ElephantConstants.QUERY_INVOICE, JSONUtil.parse(queryBody));
@ -908,6 +925,11 @@ public class ElephantInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 申请/上传 红字发票

@ -51,7 +51,6 @@ import com.jianshui.invoice.service.IBillInfoService;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.task.QueryInvoiceTask;
import com.jianshui.invoice.utils.BillInfoInspurUtils;
import com.jianshui.invoice.utils.BillInfoUtils;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
@ -296,7 +295,8 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
// log.info("【销项发票】【大象发票】发票开具请求结果-暂不打印", queryResult.toString());
log.info("【销项发票】【大象发票】发票开具请求结果-暂不打印");
// 判断外层报文是否成功
if (queryResult.isError()) {
@ -327,7 +327,12 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
// TODO: 2023/10/8 数电
// TODO kk:2024/7/8 寿仙谷定制 去掉文件流
// queryBody.put("BSWJ", "1");
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
// 订单请求流水号
@ -474,7 +479,15 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
JSONObject queryBody = new JSONObject();
queryBody.put("NSRSBH", companyservice.getSellertax());
queryBody.put("DDQQLSH", originBillInfo.getSystemOrderno());
queryBody.put("BSWJ", "0");
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
// TODO kk:2024/7/8 寿仙谷定制 不需要文件流
// queryBody.put("BSWJ", "1");
debugLog("断点4", uuid, timestamp);
@ -1192,6 +1205,11 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 红字确认单列表查询数电专用
@ -3066,9 +3084,9 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
invoice.setInvoiceResultMsg("");
}
log.info("【控制台】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台2】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
String result = HttpUtil.post(callBackUrl, JSONUtil.toJsonStr(invoice));
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
log.info("【控制台2】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
if (jsonObject != null) {
@ -3093,7 +3111,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
}
}
} catch (Exception e) {
log.info("【控制台】发票回调接口,发送数据异常,id={},e={}", id,e);
log.info("【控制台2】发票回调接口,发送数据异常,id={},e={}", id,e);
invoiceBack.setStatus("2");
invoiceBack.setBackMsg("发送数据异常!");
invoiceBackMapper.updateInvoiceBack(invoiceBack);
@ -3137,7 +3155,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
invoiceBackVali.setBackUrl("");
invoiceBackVali.setStatus("0");
invoiceBackVali.setCreateTime(new Date());
invoiceBackVali.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBackVali.setSystemOrderno(invoice.getFpqqlsh());
invoiceBackVali.setBackMsg("");
invoiceBackVali.setResultCode("0000");
invoiceBackVali.setResultMsg("开票成功!");
@ -3292,7 +3310,8 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
log.error("【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(elephantInvoiceAddDTO).toString(), JSONObject.toJSONString(companyservice));
return new HXResponse("系统异常!");
}
log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
log.info("【销项发票】【大象发票】发票开具请求结果");
// log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
// 判断外层报文是否成功
if (queryResult.isError()) {
@ -3324,7 +3343,12 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
// 订单请求流水号
queryBody.put("DDQQLSH", billInfo.getSystemOrderno());
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
/*// 提取码
queryBody.put("TQM", "0");
@ -3401,7 +3425,7 @@ public class ElephantInvoiceApiV6ByInspurServiceImpl implements IInvoiceApiServi
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus(InvoiceBackStatusEnum.IN_PROCESS.getCode());
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
queryInvoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
queryInvoiceBack.setBackMsg("");
queryInvoiceBack.setResultCode("0000");
queryInvoiceBack.setResultMsg("开票中,进入队列");

@ -1,15 +1,12 @@
package com.jianshui.invoice.service.impl.api;
import ch.qos.logback.core.joran.spi.ElementPath;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -55,7 +52,6 @@ import com.jianshui.invoice.service.IBillInfoService;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.task.QueryInvoiceTask;
import com.jianshui.invoice.utils.BillInfoUtils;
import com.jianshui.invoice.utils.JsonCaseUtils;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.queue.utils.RedisQueueUtil;
import com.jianshui.storage.domain.StorageUrlDTO;
@ -71,28 +67,21 @@ import com.jianshui.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.ibatis.annotations.Lang;
import org.joda.time.format.DateTimeFormat;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
* 销项实现
@ -149,6 +138,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
/**
* 发票开具
* v6
*
* @param billInfo
* @return
*/
@ -342,7 +332,8 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
// log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
log.info("【销项发票】【大象发票】发票开具请求结果");
// 判断外层报文是否成功
if (queryResult.isError()) {
@ -385,6 +376,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
queryBody.put("DDRQQ", "0");
// 订单日期止
queryBody.put("DDRQZ", "0");*/
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
// queryResult = ElephantUtils.sendRequest(ElephantConstantsV6.ADD_INVOICE_RESULT, JSONUtil.parse(queryBody));
try {
queryResult = ElephantUtils.sendRequestWithoutTokenV6New(ElephantConstantsV6.ADD_INVOICE_RESULT_LOCALHOST, ElephantConstantsV6.ADD_INVOICE_RESULT_METHOD, JSONUtil.parse(queryBody), companyservice);
@ -471,6 +468,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
/**
* 单个发票查询接口
* V6
*
* @param billInfo
* @return
*/
@ -515,7 +513,14 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
JSONObject queryBody = new JSONObject();
queryBody.put("NSRSBH", companyservice.getSellertax());
queryBody.put("DDQQLSH", originBillInfo.getSystemOrderno());
queryBody.put("BSWJ", "0");
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
debugLog("断点4", uuid, timestamp);
AjaxResult queryResult = null;
@ -1105,7 +1110,9 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
return null;
}
/** 获取人脸识别结果*/
/**
* 获取人脸识别结果
*/
@Override
public HXResponse qrcodeResult(JSONObject decryptResult, Companyservice companyservice) {
@ -1145,8 +1152,9 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/** 邮箱交付 */
/**
* 邮箱交付
*/
@Override
public HXResponse mailDelivery(InvoiceMailDeliveryDTO mailDeliveryDTO, Companyservice companyservice) {
@ -1231,6 +1239,21 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
log.info("发票列表查询接口,传入信息", JSONUtil.toJsonStr(queryInvoiceList));
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.INVOICE_LIST_INFO_URL, ElephantConstantsV6.INVOICE_LIST_METHOD, JSONUtil.parse(queryInvoiceList), companyservice);
} catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) {
log.error("【销项发票】【大象接口】【发票列表查询】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(queryInvoiceList).toString(), JSONObject.toJSONString(companyservice));
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
return parseResult(dxhyInterfaceResponse);
}
/**
* 红字确认单列表查询数电专用
@ -1472,7 +1495,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/**
* 申请/上传 红字发票
*
@ -2540,7 +2562,9 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/** 转换大象返回报文为简税报文 */
/**
* 转换大象返回报文为简税报文
*/
private HXResponse parseDxhyRes(HXResponse hxResponse, Companyservice companyservice) {
// 判断外层报文是否成功
@ -3055,9 +3079,9 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/** 批量开票接口 */
/**
* 批量开票接口
*/
@Override
public HXResponse addInvoiceBeatch(BillInfo billInfo, Companyservice companyservice) throws IllegalAccessException, InstantiationException {
@ -3141,7 +3165,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/**
* @author kk
* @date 2024/4/8 14:55
@ -3153,6 +3176,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// 1.订单唯一校验。新增历史订单部分(删除)。
// 订单号唯一校验 start
String outNO = billInfo.getOutTradeOrderno() != null ? billInfo.getOutTradeOrderno() : "";
String fpqqlsh = billInfo.getFpqqlsh() != null ? billInfo.getFpqqlsh() : "";
if (StrUtil.isEmpty(outNO)) {
return new HXResponse("批量开票:订单号为空,请检查报文!");
}
@ -3177,49 +3201,74 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
}
Invoice invoiceValidateTemp = new Invoice();
List<Invoice> invoicesValidate = invoiceMapper.selectByOutTradeOrdernoList(companyservice.getCompanyid(), outNO, "0");
Invoice invoice = invoiceMapper.selectBySystemOrderNo(companyservice.getCompanyid(), fpqqlsh);
// 开票回调失败防重复处理 start
if (!org.springframework.util.CollectionUtils.isEmpty(invoicesValidate)) {
for (Invoice invoice : invoicesValidate) {
if(invoice != null){
boolean con = true;
QueryWrapper<InvoiceBack> invoiceBackQueryWrapper = new QueryWrapper<>();
invoiceBackQueryWrapper.eq("system_orderno", invoice.getOutTradeOrderno());
InvoiceBack invoiceBackVali = invoiceBackMapper.selectOne(invoiceBackQueryWrapper);
if (BeanUtil.isEmpty(invoiceBackVali)) {
invoiceBackVali = new InvoiceBack();
invoiceBackVali.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBackVali.setSystemOrderno(invoice.getFpqqlsh());
invoiceBackVali.setCreateTime(new Date());
invoiceBackVali.setId(IdUtils.randomUUID());
invoiceBackVali.setIdentity(companyservice.getIdentity());
invoiceBackVali.setBackUrl("");
invoiceBackVali.setStatus("0");
invoiceBackVali.setCreateTime(new Date());
invoiceBackVali.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBackVali.setBackMsg("");
invoiceBackVali.setResultCode("0000");
invoiceBackVali.setResultMsg("开票成功!");
invoiceBackVali.setStatus("3");
invoiceBackVali.setBackMsg("k:数据为空,初始化数据");
invoiceBackVali.setUpdateTime(new Date());
invoiceBackMapper.insertInvoiceBack(invoiceBackVali);
}
} else {
Integer state = invoice.getState();
if (state == 20) {
// 开票中
BillInfo billInfoQuery = new BillInfo();
billInfoQuery.setFpqqlsh("[\"" + billInfo.getFpqqlsh() + "\"]");
billInfoQuery.setOutTradeOrderno(billInfo.getOutTradeOrderno());
log.info("发票回调getOutTradeOrderno()={},invoice.getFpqqlsh()={}", billInfoQuery.getOutTradeOrderno(), billInfoQuery.getFpqqlsh());
HXResponse resultDxhy = batchQueryInvoices(billInfoQuery, "fpqqlsh", companyservice);
invoice = invoiceMapper.selectBySystemOrderNo(companyservice.getCompanyid(), fpqqlsh);
if (invoice == null) {
log.info("查询到Invoice信息,回调后还是未查询到Invoice");
invoiceBackVali.setStatus(InvoiceBackStatusEnum.MULTIPLE_FAILURES.getCode());
invoiceBackVali.setBackMsg("k:回调后还是未查询到Invoice");
invoiceBackVali.setUpdateTime(new Date());
invoiceBackMapper.updateInvoiceBack(invoiceBackVali);
return new HXResponse("9999", "已开票,开具状态不存在!");
}
} else if (state == 22) {
// 开票失败
invoiceBackVali.setResultCode("9999");
invoiceBackVali.setResultMsg("开票失败!");
invoiceBackVali.setStatus("0");
invoiceBackVali.setUpdateTime(new Date());
con = false;
} else if (state == 2) {
// 开票成功
invoiceBackVali.setResultCode("0000");
invoiceBackVali.setResultMsg("开票成功!");
invoiceBackVali.setStatus("0");
invoiceBackVali.setUpdateTime(new Date());
invoiceBackMapper.updateInvoiceBack(invoiceBackVali);
} else {
log.info("未识别状态state={}", state);
return new HXResponse("9999", "开票:未识别状态!");
}
invoiceBackMapper.updateInvoiceBack(invoiceBackVali);
// 再次推送
if(con){
try {
callBackAisino(invoiceBackVali, "", companyservice.getIdentity(), invoice.getId());
} catch (Exception e) {
log.info("【批量开票】发票回调失败!invoiceId={}", invoice.getId());
}
return new HXResponse("0000", "开票:发票已开具!");
}
return new HXResponse("0000", "批量开票:重复订单已推送!");
}
// end
@ -3343,7 +3392,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
// 开始封装请求报文
ElephantInvoiceAddDTO elephantInvoiceAddDTO = new ElephantInvoiceAddDTO();
elephantInvoiceAddDTO.setDDPCXX(ddpcxx);
@ -3357,7 +3405,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
elephantInvoiceAddDTO.setDDZXX(ddzxxes);
AjaxResult queryResult = null;
try {
queryResult = ElephantUtils.sendRequestWithoutTokenV6New(url, "", JSONUtil.parse(elephantInvoiceAddDTO), companyservice);
@ -3365,7 +3412,8 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
log.error("【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(elephantInvoiceAddDTO).toString(), JSONObject.toJSONString(companyservice));
return new HXResponse("系统异常!");
}
log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
// log.info("【销项发票】【大象发票】发票开具请求结果{}", queryResult.toString());
log.info("【销项发票】【大象发票】发票开具请求结果");
// 判断外层报文是否成功
if (queryResult.isError()) {
@ -3408,6 +3456,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
queryBody.put("DDRQQ", "0");
// 订单日期止
queryBody.put("DDRQZ", "0");*/
CompanyserviceProp companyservicePropBSWJ = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "BSWJ");
if (companyservicePropBSWJ != null && StrUtil.isNotEmpty(companyservicePropBSWJ.getValue())) {
queryBody.put("BSWJ", companyservicePropBSWJ.getValue() );
} else {
queryBody.put("BSWJ", "1");
}
// queryResult = ElephantUtils.sendRequest(ElephantConstantsV6.ADD_INVOICE_RESULT, JSONUtil.parse(queryBody));
try {
queryResult = ElephantUtils.sendRequestWithoutTokenV6New(ElephantConstantsV6.ADD_INVOICE_RESULT_LOCALHOST, ElephantConstantsV6.ADD_INVOICE_RESULT_METHOD, JSONUtil.parse(queryBody), companyservice);
@ -3471,7 +3525,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus(InvoiceBackStatusEnum.IN_PROCESS.getCode());
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
queryInvoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
queryInvoiceBack.setBackMsg("");
queryInvoiceBack.setResultCode("0000");
queryInvoiceBack.setResultMsg("开票中,进入队列");
@ -3502,18 +3556,4 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
}

@ -32,7 +32,6 @@ import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.add.InvoiceAllAddmxListTwoDTO;
import com.jianshui.invoice.domain.dto.api.jcsk.red.AddRedInvoiceTwoDTO;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.vo.InvoiceAllQycodeResultElEVO;
import com.jianshui.invoice.domain.vo.jcsk.*;
import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService;
@ -42,7 +41,6 @@ import com.jianshui.system.mapper.InvoiceAllApiLogMapper;
import com.jianshui.system.mapper.InvoiceAllYhdjMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@ -1724,6 +1722,11 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService {
return null;
}
@Override
public HXResponse queryInvoiceList(QueryInvoiceListDTO queryInvoiceList, Companyservice companyservice) {
return null;
}
/**
* 简税和金财数科 发票类型互换
*

@ -189,7 +189,7 @@ public class AddInvoiceBatchTask extends TimerTask {
} else {
invoiceBack.setResultCode("9999");
invoiceBack.setResultMsg(resultHx.getMessage());
invoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
invoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
invoiceBack.setStatus("0");
invoiceBack.setCreateTime(new Date());
invoiceBackMapper.insertInvoiceBack(invoiceBack);
@ -216,7 +216,7 @@ public class AddInvoiceBatchTask extends TimerTask {
} else {
invoiceBack.setResultCode("9999");
invoiceBack.setResultMsg("开票失败!");
invoiceBack.setSystemOrderno(billInfo.getOutTradeOrderno());
invoiceBack.setSystemOrderno(billInfo.getFpqqlsh());
invoiceBack.setStatus("0");
invoiceBack.setCreateTime(new Date());
invoiceBackMapper.insertInvoiceBack(invoiceBack);

@ -1,6 +1,5 @@
package com.jianshui.invoice.task;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
@ -18,7 +17,6 @@ import com.jianshui.invoice.domain.*;
import com.jianshui.invoice.domain.dto.ExportVehicleDTO;
import com.jianshui.invoice.domain.dto.HXResponse;
import com.jianshui.invoice.factory.IInvoiceServiceFactory;
import com.jianshui.invoice.mapper.BillInfoMapper;
import com.jianshui.invoice.mapper.InvoiceBackMapper;
import com.jianshui.invoice.mapper.InvoiceMapper;
import com.jianshui.invoice.service.IInvoiceApiService;
@ -56,9 +54,6 @@ public class InvoiceBackTask {
@Autowired
private IInvoiceServiceFactory invoiceServiceFactory;
@Autowired
private BillInfoMapper billInfoMapper;
private final String ZQ_BACK_DXHY = "【重汽回调(开票中单据)】";
@ -382,33 +377,21 @@ public class InvoiceBackTask {
log.info(ZQ_BACK_DXHY + "发票回调,订单号{},回调地址{}",id, callBackUrl);
Invoice invoice = invoiceMapper.selectByOutTradeOrdernoNoUpdateBy(Long.valueOf(identity), id);
if (invoice != null) {
log.info("通过Invoice组装,id为:{}",id);
// log.info(ZQ_BACK_DXHY + "发票信息未查询到,id={}", id);
// invoice = new Invoice();
// invoice.setOutTradeOrderno(invoiceBack.getSystemOrderno());
// invoice.setState(22);
// invoice.setMessage( (invoiceBack.getResultMsg() != null && invoiceBack.getResultMsg().length() > 200) ? invoiceBack.getResultMsg().substring(0, 200) : invoiceBack.getResultMsg() );
if (invoice == null) {
log.info(ZQ_BACK_DXHY + "发票信息未查询到,id={}", id);
invoice = new Invoice();
invoice.setOutTradeOrderno(invoiceBack.getSystemOrderno());
invoice.setState(22);
invoice.setMessage( (invoiceBack.getResultMsg() != null && invoiceBack.getResultMsg().length() > 200) ? invoiceBack.getResultMsg().substring(0, 200) : invoiceBack.getResultMsg() );
continue;
}
// 明细重插
List<InvoiceDetail> invoiceDetailList = invoiceMapper.selectInvoiceIdForInvoiceDetailList(invoice.getId());
if(!invoiceDetailList.isEmpty()){
invoice.setInvoiceDetailList(invoiceDetailList);
}
}else {
log.info("通过billInfo组装,id为:{}",id);
BillInfo billInfo = billInfoMapper.selectByOutTradeOrderno(Long.valueOf(identity), id);
if(BeanUtil.isEmpty(billInfo)){
log.info("billInfo中不存咋,id为:{}",id);
}
Invoice invoice1 = new Invoice();
invoice1.setFpqqlsh(billInfo.getFpqqlsh());
invoice1.setSellerTaxnum(billInfo.getSellerTaxnum());
invoice1.setOutTradeOrderno(billInfo.getOutTradeOrderno());
}
Integer state = invoice.getState() != null ? invoice.getState() :1;
Integer state = invoice.getState();
log.info(ZQ_BACK_DXHY + "id={},state={}",id,state);
log.info(ZQ_BACK_DXHY + "请求大象接口更新发票状态,id={},state={}",id,state);
@ -419,7 +402,7 @@ public class InvoiceBackTask {
BillInfo billInfo = new BillInfo();
billInfo.setFpqqlsh("[\"" + invoice.getFpqqlsh() + "\"]");
billInfo.setOutTradeOrderno(invoice.getOutTradeOrderno());
log.info("发票回调invoice.id={},getOutTradeOrderno()={},invoice.getFpqqlsh()={}",id,invoice.getOutTradeOrderno(),invoice.getFpqqlsh());
log.info("发票回调invoice.getOutTradeOrderno()={},invoice.getFpqqlsh()={}",id,invoice.getOutTradeOrderno(),invoice.getFpqqlsh());
HXResponse resultDxhy = invoiceService.batchQueryInvoices(billInfo, "fpqqlsh", companyservice);

@ -112,7 +112,7 @@ public class QueryInvoiceTask extends TimerTask {
invoiceBackVali.setBackUrl("");
invoiceBackVali.setStatus("0");
invoiceBackVali.setCreateTime(new Date());
invoiceBackVali.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBackVali.setSystemOrderno(invoice.getFpqqlsh());
invoiceBackVali.setBackMsg("");
invoiceBackVali.setResultCode(kpStatus);
invoiceBackVali.setResultMsg(kpMsg);

@ -118,7 +118,7 @@ public class RedInvoiceBackTask {
//处理返回结果
InvoiceBack invoiceBack = new InvoiceBack();
invoiceBack.setId(IdUtil.randomUUID());
invoiceBack.setSystemOrderno(invoice.getOutTradeOrderno());
invoiceBack.setSystemOrderno(invoice.getFpqqlsh());
invoiceBack.setBackUrl(secretIdProp.getValue());
invoiceBack.setIdentity(String.valueOf(companyserviceProp.getCompanyid()));
invoiceBack.setCreateTime(new Date());

@ -499,9 +499,7 @@ public class BillDetailFormatInspurUtil {
taxAmt = billDetail.getTaxfreeamt().add(billDetail.getTax());
billDetail.setTaxamt(taxAmt);
} else {
System.out.println("没有匹配的计算规则,跳过" + billDetail);
// return AjaxResult.error("没有匹配的计算规则", billDetail);
return AjaxResult.success(billDetail);
return AjaxResult.error("没有匹配的计算规则", billDetail);
}
return AjaxResult.success(billDetail);
}

@ -499,8 +499,7 @@ public class BillDetailFormatUtil {
taxAmt = billDetail.getTaxfreeamt().add(billDetail.getTax());
billDetail.setTaxamt(taxAmt);
} else {
// return AjaxResult.error("没有匹配的计算规则", billDetail);
return AjaxResult.success(billDetail);
return AjaxResult.error("没有匹配的计算规则", billDetail);
}
return AjaxResult.success(billDetail);
}

@ -735,7 +735,8 @@ public class ElephantUtils {
// 大象v6调用方法(获取结果处理)
log.info("【销项】【大象工具类】调用V6接口,入参{}", JSONUtil.toJsonStr(dxhyInterfaceRequest));
dxhyInterfaceResponse = InvokeDxhyApi.dxhyInterfaceInvoke(dxhyInterfaceRequest);
log.info("【销项】【大象工具类】请求成功,结果{}", JSONUtil.toJsonStr(dxhyInterfaceResponse));
// log.info("【销项】【大象工具类】请求成功,结果{}", JSONUtil.toJsonStr(dxhyInterfaceResponse));
log.info("【销项】【大象工具类】请求成功,结果");
// 返回报文处理为简税报文
String dataDxhy = dxhyInterfaceResponse.getData();

@ -260,6 +260,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.company_id = #{companyId} and a.out_trade_orderno = #{out_trade_orderno} and a.update_by = #{update_by} order by a.id desc
</select>
<select id="selectByOutTradeOrdernoListNoUpdateBy" resultMap="InvoiceInvoiceDetailResult">
select a.id, a.bill_info_id, a.company_id, a.system_orderno, a.out_trade_orderno, a.fpqqlsh, a.invoice_type, a.state, a.c_invoiceid, a.fpdm, a.fphm, a.kprq, a.buyer_name, a.buyer_taxnum, a.buyer_address, a.buyer_telephone, a.buyer_account, a.buyer_email, a.buyer_phone, a.seller_name, a.seller_taxnum, a.seller_address, a.seller_telephone, a.seller_account, a.message, a.clerk, a.payee, a.checker, a.taxfreeamt, a.tax, a.taxamt, a.origin_fpdm, a.origin_fphm, a.jym, a.qr_code, a.machine_code, a.cipher_text, a.invoice_pdf_url, a.invoice_jpg_url,a.invoice_file_storage, a.invoice_msg, a.invoice_result_msg, a.product_oil_flag, a.qdbz, a.c_ofd_url, a.fjh, a.terminal_number,a.deprecate_type,a.deprecate_reason, a.create_by, a.create_time, a.update_by, a.update_time,
b.id as sub_id, b.invoice_id as sub_invoice_id, b.index as sub_index, b.good_name as sub_good_name, b.num as sub_num, b.price as sub_price, b.hsbz as sub_hsbz, b.taxrate as sub_taxrate, b.spec as sub_spec, b.unit as sub_unit, b.spbm as sub_spbm, b.bmbbh as sub_bmbbh, b.zsbm as sub_zsbm, b.fphxz as sub_fphxz, b.yhzcbs as sub_yhzcbs, b.zzstsgl as sub_zzstsgl, b.lslbs as sub_lslbs, b.kce as sub_kce, b.taxfreeamt as sub_taxfreeamt, b.tax as sub_tax, b.taxamt as sub_taxamt, b.tspz as sub_tspz, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by
from invoice a
left join invoice_detail b on b.invoice_id = a.id
where a.company_id = #{companyId} and a.out_trade_orderno = #{out_trade_orderno} order by a.id desc
</select>
<select id="selectByFpdmFphm" resultMap="InvoiceInvoiceDetailResult">
select a.id, a.bill_info_id, a.company_id, a.system_orderno, a.out_trade_orderno, a.fpqqlsh, a.invoice_type, a.state, a.c_invoiceid, a.fpdm, a.fphm, a.kprq, a.buyer_name, a.buyer_taxnum, a.buyer_address, a.buyer_telephone, a.buyer_account, a.buyer_email, a.buyer_phone, a.seller_name, a.seller_taxnum, a.seller_address, a.seller_telephone, a.seller_account, a.message, a.clerk, a.payee, a.checker, a.taxfreeamt, a.tax, a.taxamt, a.origin_fpdm, a.origin_fphm, a.jym, a.qr_code, a.machine_code, a.cipher_text, a.invoice_pdf_url, a.invoice_jpg_url,a.invoice_file_storage, a.invoice_msg, a.invoice_result_msg, a.product_oil_flag, a.qdbz, a.c_ofd_url, a.fjh, a.terminal_number,a.deprecate_type,a.deprecate_reason, a.create_by, a.create_time, a.update_by, a.update_time,
b.id as sub_id, b.invoice_id as sub_invoice_id, b.index as sub_index, b.good_name as sub_good_name, b.num as sub_num, b.price as sub_price, b.hsbz as sub_hsbz, b.taxrate as sub_taxrate, b.spec as sub_spec, b.unit as sub_unit, b.spbm as sub_spbm, b.bmbbh as sub_bmbbh, b.zsbm as sub_zsbm, b.fphxz as sub_fphxz, b.yhzcbs as sub_yhzcbs, b.zzstsgl as sub_zzstsgl, b.lslbs as sub_lslbs, b.kce as sub_kce, b.taxfreeamt as sub_taxfreeamt, b.tax as sub_tax, b.taxamt as sub_taxamt, b.tspz as sub_tspz, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by

@ -7,3 +7,10 @@ export function encrypt (data) {
data: data
})
}
export function decrypt (data) {
return request({
url: 'sandbox/decrypt',
method: 'post',
data: data
})
}

@ -1,25 +1,27 @@
<template>
<div class="app-container">
<el-form label-width="80px" :model="requestBody">
<el-form-item label="加密key">
<el-form-item label="密钥">
<el-input v-model="requestBody.key"></el-input>
</el-form-item>
<el-form-item label="order明文" >
<el-input type="textarea" v-model="requestBody.order"></el-input>
<el-form-item label="原始报文" >
<el-input type="textarea" :autosize="{ minRows: 10}" v-model="requestBody.order"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onEncrypt">加密</el-button>
<el-button type="primary" @click="decrypt">解密</el-button>
<el-button type="primary" @click="onFormatJson">JSON格式化</el-button>
<el-button type="primary" @click="clear">清空数据</el-button>
</el-form-item>
<el-form-item label="返回报文">
<el-input type="textarea" v-model="requestBody.resp"></el-input>
<el-input :autosize="{ minRows: 17}" type="textarea" v-model="requestBody.resp"></el-input>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { encrypt } from "@/api/sandbox/encrypt";
import { decrypt, encrypt } from '@/api/sandbox/encrypt'
export default {
data() {
@ -37,6 +39,18 @@ export default {
encrypt(this.requestBody).then(res => {
if (res.code === 200) {
this.requestBody.resp = res.data;
}else {
this.$modal.msgError("加密失败!");
}
});
},
decrypt() {
this.requestBody.resp = "";
decrypt(this.requestBody).then(res => {
if (res.code === 200) {
this.requestBody.resp = res.data;
}else {
this.$modal.msgError("解密失败!");
}
});
},
@ -48,8 +62,12 @@ export default {
// Handle JSON parse error
console.error("Invalid JSON");
this.$modal.msgError("JSON格式化失败,请检查格式!");
}
},
clear(){
this.requestBody.key = "";
this.requestBody.order = "";
this.requestBody.resp = "";
}
}
};

@ -13,6 +13,7 @@ const port = process.env.port || process.env.npm_config_port || 8088 // 端口
// www.goldentaxcloud.com:8080
// let development = 'http://dev.goldentaxcloud.com:8081'
let development = 'www.goldentaxcloud.com:8080'
// let development = 'http://192.168.3.106:8081' //刑泽本地环境
const url = process.env.NODE_ENV === 'development' ? development : development
// vue.config.js 配置说明
@ -47,7 +48,7 @@ module.exports = {
// },
[process.env.VUE_APP_BASE_API]: {
target: url, // 测试环境
changeOrigin: true,
changeOrigin: false,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}

Loading…
Cancel
Save