diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
index fb87595..acce741 100644
--- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
+++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoice/v1/InvoiceController.java
@@ -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);
+ }
+
/**
* 功能描述: 红字查询接口
*
diff --git a/jianshui-admin/src/main/java/com/jianshui/web/controller/sandbox/IndexController.java b/jianshui-admin/src/main/java/com/jianshui/web/controller/sandbox/IndexController.java
index a63ea54..2566da0 100644
--- a/jianshui-admin/src/main/java/com/jianshui/web/controller/sandbox/IndexController.java
+++ b/jianshui-admin/src/main/java/com/jianshui/web/controller/sandbox/IndexController.java
@@ -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 {
- String encryptTest = InvoiceEncryptUtil.encrypt(order, key);
- return AjaxResult.success("success", encryptTest);
+ 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());
}
diff --git a/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/InvoiceEncryptUtil.java b/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/InvoiceEncryptUtil.java
index 7cab596..038c6e2 100644
--- a/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/InvoiceEncryptUtil.java
+++ b/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/InvoiceEncryptUtil.java
@@ -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;
+ }
+
+
/**
*
* 方法名称:DES_CBC_Encrypt
diff --git a/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java b/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java
index 42e1ba9..33eb8f2 100644
--- a/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java
+++ b/jianshui-common/src/main/java/com/jianshui/common/utils/encrypt/JianshuiInvoiceEncryptUtil.java
@@ -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));
}
diff --git a/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java b/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
index b33a403..0a2890e 100644
--- a/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
+++ b/jianshui-framework/src/main/java/com/jianshui/framework/config/SecurityConfig.java
@@ -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/**"
)
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
index 7c072ba..ad684df 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
@@ -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";
// 数电-生成动态二维码
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/QueryInvoiceListDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/QueryInvoiceListDTO.java
new file mode 100644
index 0000000..1329684
--- /dev/null
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/QueryInvoiceListDTO.java
@@ -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 FPZT_DM;
+ // 发票来源代码(必填)
+ private String FPLY_DM;
+ // 发票类型代码
+ private List 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;
+
+
+
+}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDFPXX.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDFPXX.java
index 23c9963..07c6d4c 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDFPXX.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/elephant/DDFPXX.java
@@ -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;
}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/InvoiceMapper.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/InvoiceMapper.java
index 804844c..3b083d6 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/InvoiceMapper.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/InvoiceMapper.java
@@ -102,6 +102,7 @@ public interface InvoiceMapper extends BaseMapper {
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 selectByOutTradeOrdernoList(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo,@Param("update_by") String updateBy);
+ public List selectByOutTradeOrdernoListNoUpdateBy(@Param(("companyId")) Long companyId, @Param("out_trade_orderno") String systemOrderNo);
/**
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
index b33e204..93d2528 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/IInvoiceApiService.java
@@ -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);
}
\ No newline at end of file
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/ElephantInvoiceServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/ElephantInvoiceServiceImpl.java
index 5f338e9..7ad58f8 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/ElephantInvoiceServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/ElephantInvoiceServiceImpl.java
@@ -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);
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
index 20473b4..acdc77e 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/adapter/request/AisinoInvoiceRequestAdapterImpl.java
@@ -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;
}
// 如果是开票或者查询
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
index 3c77a21..3e9a5d6 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiServiceImpl.java
@@ -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) {
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
index aa493c9..31f8691 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/AisinoConsoleInvoiceApiZhongQiServiceImpl.java
@@ -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);
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
index f055167..f5ecdcb 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiServiceImpl.java
@@ -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;
+ }
+
/**
* 申请/上传 红字发票
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java
index 2b89a48..17ba2b4 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ByInspurServiceImpl.java
@@ -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,8 +3343,13 @@ 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("开票中,进入队列");
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
index 869faea..9a2e8a1 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
@@ -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
*/
@@ -158,18 +148,18 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
/** 查找权限ID */
String entId = "";
CompanyserviceProp companyservicePropEntId = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "ent_id");
- if(companyservicePropEntId != null && StrUtil.isNotEmpty(companyservicePropEntId.getValue()) ){
+ if (companyservicePropEntId != null && StrUtil.isNotEmpty(companyservicePropEntId.getValue())) {
entId = companyservicePropEntId.getValue();
- }else{
+ } else {
log.info("权限id未配置,需配置key名 ent_id,实现权限管理");
}
- String clerk = billInfo.getClerk() != null ? billInfo.getClerk():"";
- if(StrUtil.isNotEmpty(clerk)) {
+ String clerk = billInfo.getClerk() != null ? billInfo.getClerk() : "";
+ if (StrUtil.isNotEmpty(clerk)) {
CompanyserviceProp companyservicePropClerk = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), clerk);
- if(companyservicePropClerk != null && StrUtil.isNotEmpty(companyservicePropClerk.getValue()) ){
+ if (companyservicePropClerk != null && StrUtil.isNotEmpty(companyservicePropClerk.getValue())) {
entId = companyservicePropClerk.getValue();
- }else{
+ } else {
log.info("权限id未配置,需配置key名 clerk,实现权限管理");
}
}
@@ -195,7 +185,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
log.error("【销项】【大象发票】开票接口校验异常", e);
return new HXResponse("格式校验失败,请检查报文");
}
- log.info("billInfo信息:{}",JSONObject.toJSONString(billInfo));
+ log.info("billInfo信息:{}", JSONObject.toJSONString(billInfo));
// 订单头信息
DDTXX ddtxx = new DDTXX(billInfo);
@@ -251,7 +241,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// 权限id赋值
ddpcxx.setENTID(entId);
- if ("001".equals(fplxdm)||"002".equals(fplxdm)){
+ if ("001".equals(fplxdm) || "002".equals(fplxdm)) {
CompanyserviceProp companyserviceProp = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "account_show");
if (companyserviceProp != null && "1".equals(companyserviceProp.getValue())) {
@@ -270,18 +260,18 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
qdtxx.setFJYSLIST(billInfo.getFjyslist());// 附加要素列表
qdtxx.setHWYSLIST(billInfo.getHwysList()); // 货物运输
- if(billInfo.getBdcxsxxList() != null && !billInfo.getBdcxsxxList().isEmpty()){
+ if (billInfo.getBdcxsxxList() != null && !billInfo.getBdcxsxxList().isEmpty()) {
qdtxx.setBDCXSXX(billInfo.getBdcxsxxList().get(0)); // 不动产销售信息
}
- if(billInfo.getJzfwList() != null && !billInfo.getJzfwList().isEmpty()){
+ if (billInfo.getJzfwList() != null && !billInfo.getJzfwList().isEmpty()) {
qdtxx.setJZFWXX(billInfo.getJzfwList().get(0));// 建筑服务信息
}
- if(billInfo.getBdczlxxList() != null && !billInfo.getBdczlxxList().isEmpty()){
+ if (billInfo.getBdczlxxList() != null && !billInfo.getBdczlxxList().isEmpty()) {
qdtxx.setBDCZLXX(billInfo.getBdczlxxList().get(0));// 不动产租赁信息
}
- if(billInfo.getJDCXX() != null ){
- qdtxx.setJDCXX(billInfo.getJDCXX() );// 机动车信息
+ if (billInfo.getJDCXX() != null) {
+ qdtxx.setJDCXX(billInfo.getJDCXX());// 机动车信息
}
// qdtxx.setBDCZLXX(billInfo.getBdczlxxList()); //不动产租赁信息
@@ -299,14 +289,14 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} else if (BeanUtil.isNotEmpty(qdtxx.getBDCZLXX())) {
// GenerateQdBdczlInvoice 不动产租赁信息
url = ElephantConstantsV6.GENERATE_QD_BDXZL_INVOICE;
- }else if( BeanUtil.isNotEmpty(qdtxx.getJDCXX()) ){
+ } else if (BeanUtil.isNotEmpty(qdtxx.getJDCXX())) {
// GenerateQdjdcxsInvoice 数电机动车销售统一发票
url = ElephantConstantsV6.GENERATE_QD_JDCXS_INVOICE;
}
// 机动车专票适配
- String jdcbz = billInfo.getJdcbz() != null ? billInfo.getJdcbz():"";
- if("1".equals(jdcbz)){
+ String jdcbz = billInfo.getJdcbz() != null ? billInfo.getJdcbz() : "";
+ if ("1".equals(jdcbz)) {
billInfo.setTdys("14");
// (数电机动车专票)发票开具/冲红接口
url = ElephantConstantsV6.GENERATE_QD_JDCZP_INVOICE;
@@ -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);
@@ -405,7 +402,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
if (contentJson != null) {
String ztdm = contentJson.getString("ZTDM");
// 021002 020111
- if (!StringUtils.equalsAny(ztdm, "020111", "020000", "010000","000000")) {
+ if (!StringUtils.equalsAny(ztdm, "020111", "020000", "010000", "000000")) {
// 开票失败
if (StringUtils.equals("020002", ztdm)) {
billInfo.setState(22);
@@ -414,10 +411,10 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// kk: 2023/12/5 判断人脸识别的状态
String DDFPZXX = contentJson.getString("DDFPZXX") != null ? contentJson.getString("DDFPZXX") : "";
- if(StrUtil.isNotEmpty(DDFPZXX)){
- DDFPZXX ddfpzxx = BeanUtil.copyProperties(DDFPZXX,DDFPZXX.class);
- if(ddfpzxx != null && ddfpzxx.getDDFPXX() != null && "03200".equals(ddfpzxx.getDDFPXX().getDDZT())){
- return new HXResponse("E004",ddfpzxx.getDDFPXX().getDDZTXX() != null ? ddfpzxx.getDDFPXX().getDDZTXX():"发票开具失败,请确认是否人脸识别超期!");
+ if (StrUtil.isNotEmpty(DDFPZXX)) {
+ DDFPZXX ddfpzxx = BeanUtil.copyProperties(DDFPZXX, DDFPZXX.class);
+ if (ddfpzxx != null && ddfpzxx.getDDFPXX() != null && "03200".equals(ddfpzxx.getDDFPXX().getDDZT())) {
+ return new HXResponse("E004", ddfpzxx.getDDFPXX().getDDZTXX() != null ? ddfpzxx.getDDFPXX().getDDZTXX() : "发票开具失败,请确认是否人脸识别超期!");
}
}
@@ -432,7 +429,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
// 定时拉取保存发票, TODO 处理开票中的问题
- AsyncManager.me().execute(new QueryInvoiceTask(billInfo, companyservice, this,invoiceBackMapper));
+ AsyncManager.me().execute(new QueryInvoiceTask(billInfo, companyservice, this, invoiceBackMapper));
// 数电的加入金财表
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
@@ -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;
@@ -669,27 +674,27 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
String fileId = IdUtils.randomUUID();
String fileName = invoice.getFphm();
- if(ddfpxx.getPDFZJL() != null && StrUtil.isNotEmpty(ddfpxx.getPDFZJL())){
+ if (ddfpxx.getPDFZJL() != null && StrUtil.isNotEmpty(ddfpxx.getPDFZJL())) {
String fphm = ddfpxx.getFPHM();
- if(StrUtil.isNotEmpty(fphm)){
+ if (StrUtil.isNotEmpty(fphm)) {
Environment environment = SpringUtils.getBean(Environment.class);
String type = environment.getProperty(Constants.INVOICE_FILE_SAVE_TYPE);
//配置文件存储类型0为数据库存储
- if (Constants.STRING_0.equals(type)){
- saveFileUseDb(invoice, fileId, fileName,companyservice, ddfpxx);
- //配置文件存储类型1为oss存储
- }else if (Constants.STRING_1.equals(type)){
- saveFileUseOss(defaultStorage,invoice,ddfpxx);
- //配置文件存储类型2为本地存储
- }else if (Constants.STRING_2.equals(type)){
- saveFileUseLocal(invoice,ddfpxx);
+ if (Constants.STRING_0.equals(type)) {
+ saveFileUseDb(invoice, fileId, fileName, companyservice, ddfpxx);
+ //配置文件存储类型1为oss存储
+ } else if (Constants.STRING_1.equals(type)) {
+ saveFileUseOss(defaultStorage, invoice, ddfpxx);
+ //配置文件存储类型2为本地存储
+ } else if (Constants.STRING_2.equals(type)) {
+ saveFileUseLocal(invoice, ddfpxx);
}
}
}
// end
-
+
debugLog("断点13", uuid, timestamp);
if (invoice.getId() != null) {
@@ -782,12 +787,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
return response;
}
- private void saveFileUseLocal(Invoice invoice,DDFPXX ddfpxx) {
+ private void saveFileUseLocal(Invoice invoice, DDFPXX ddfpxx) {
try {
byte[] pdfBytes = Base64.decode(ddfpxx.getPDFZJL());
String key = IdUtils.fastSimpleUUID();
- String fileName = key + "."+ddfpxx.getZJLLX().toLowerCase();
+ String fileName = key + "." + ddfpxx.getZJLLX().toLowerCase();
String fileDir = JianshuiConfig.getDownloadPath() + "/storage/";
// 判断fileDir是否存在,不存在则创建
File fileDirInst = new File(fileDir);
@@ -833,13 +838,13 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
if (StringUtils.equals(ddfpxx.getZJLLX(), Constants.OFD_UPCASE)) {
invoice.setcOfdUrl(realPath);
}
- }catch (Exception e){
- log.error("文件保存异常",e);
+ } catch (Exception e) {
+ log.error("文件保存异常", e);
}
}
- private void saveFileUseOss(String defaultStorage,Invoice invoice,DDFPXX ddfpxx) {
+ private void saveFileUseOss(String defaultStorage, Invoice invoice, DDFPXX ddfpxx) {
if (StringUtils.isNotEmpty(defaultStorage) && StringUtils.isEmpty(invoice.getInvoicePdfUrl())) {
try {
IStorageService service = storageFactory.getStorageInstance(defaultStorage);
@@ -870,11 +875,11 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
}
- private void saveFileUseDb(Invoice invoice,String fileId,String fileName,Companyservice companyservice,DDFPXX ddfpxx) {
+ private void saveFileUseDb(Invoice invoice, String fileId, String fileName, Companyservice companyservice, DDFPXX ddfpxx) {
InvoiceFile invoiceFile = new InvoiceFile();
invoiceFile.setFphm(ddfpxx.getFPHM());
List invoiceFileList = invoiceFileMapper.selectInvoiceFileList(invoiceFile);
- if(invoiceFileList != null && invoiceFileList.size() > 0){
+ if (invoiceFileList != null && invoiceFileList.size() > 0) {
invoiceFile = invoiceFileList.get(0);
invoiceFile.setFileContent(ddfpxx.getPDFZJL());
invoiceFile.setFileName(fileName);
@@ -884,7 +889,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
fileId = invoiceFile.getFileId();
fileName = invoiceFile.getFileName();
invoiceFileMapper.updateInvoiceFile(invoiceFile);
- }else{
+ } else {
invoiceFile.setId(fileId);
invoiceFile.setFileContent(ddfpxx.getPDFZJL());
invoiceFile.setFileId(fileId);
@@ -1105,12 +1110,14 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
return null;
}
- /** 获取人脸识别结果*/
+ /**
+ * 获取人脸识别结果
+ */
@Override
public HXResponse qrcodeResult(JSONObject decryptResult, Companyservice companyservice) {
- InvoiceAllQycodeResultDTO qycodeResultDTO = BeanUtil.copyProperties(decryptResult,InvoiceAllQycodeResultDTO.class);
- if(BeanUtil.isEmpty(qycodeResultDTO)){
+ InvoiceAllQycodeResultDTO qycodeResultDTO = BeanUtil.copyProperties(decryptResult, InvoiceAllQycodeResultDTO.class);
+ if (BeanUtil.isEmpty(qycodeResultDTO)) {
return new HXResponse("参数为空!");
}
@@ -1134,19 +1141,20 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// 返回结果处理
HXResponse hxResponseT = parseResult(dxhyInterfaceResponse);
- if("000000".equals(hxResponseT.get("code")) && hxResponseT.get("data") != null && !"".equals(hxResponseT.get("data"))){
- InvoiceAllQycodeResultElEVO qycodeResultVO = BeanUtil.copyProperties(JSONUtil.parse(hxResponseT.get("data")),InvoiceAllQycodeResultElEVO.class);
+ if ("000000".equals(hxResponseT.get("code")) && hxResponseT.get("data") != null && !"".equals(hxResponseT.get("data"))) {
+ InvoiceAllQycodeResultElEVO qycodeResultVO = BeanUtil.copyProperties(JSONUtil.parse(hxResponseT.get("data")), InvoiceAllQycodeResultElEVO.class);
HXResponse response = new HXResponse("0000", "请求成功", qycodeResultVO);
return response;
} else {
- return new HXResponse(hxResponseT.getMessage() != null ? hxResponseT.getMessage():"");
+ return new HXResponse(hxResponseT.getMessage() != null ? hxResponseT.getMessage() : "");
}
}
-
- /** 邮箱交付 */
+ /**
+ * 邮箱交付
+ */
@Override
public HXResponse mailDelivery(InvoiceMailDeliveryDTO mailDeliveryDTO, Companyservice companyservice) {
@@ -1172,7 +1180,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
public HXResponse fastRedInvoice(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.ORDER_TO_FAST_RED_INVOICE_LOCALHOST, ElephantConstantsV6.ORDER_TO_FAST_RED_INVOICE_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1189,7 +1197,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
@Override
public HXResponse QueryFastRedInvoiceResult(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.QUERY_FAST_RED_INVOICE_RESULT_LOCALHOST,
@@ -1207,7 +1215,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
@Override
public HXResponse QuerySdInvoiceFile(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.QUERY_INVOICE_FILE_LOCALHOST,
@@ -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);
+ }
+
/**
* 红字确认单列表查询(数电专用)
@@ -1239,7 +1262,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
public HXResponse queryRedConfirmationList(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.QUERY_RED_CONFIRMATION_LIST_LOCALHOST, ElephantConstantsV6.QUERY_RED_CONFIRMATION_LIST_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1264,7 +1287,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
public HXResponse queryRedConfirmationItemList(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.QUERY_RED_CONFIRMATION_ITEM_LIST_LOCALHOST, ElephantConstantsV6.QUERY_RED_CONFIRMATION_ITEM_LIST_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1290,16 +1313,16 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
String fpdm = decryptResult.getString("lzfppzdm");
decryptResult.put("lzfppzdm", InvoiceType.getEleCode(fpdm));
// TODO kk:2024/1/8 红字申请表申请用的是01 02
- String lzfpdm = decryptResult.get("lzfppzdm") != null ? decryptResult.get("lzfppzdm").toString():"";
- if("001".equals(lzfpdm)){
+ String lzfpdm = decryptResult.get("lzfppzdm") != null ? decryptResult.get("lzfppzdm").toString() : "";
+ if ("001".equals(lzfpdm)) {
lzfpdm = "01";
- }else if("002".equals(lzfpdm)){
+ } else if ("002".equals(lzfpdm)) {
lzfpdm = "02";
}
decryptResult.put("lzfppzdm", lzfpdm);
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.RED_CONFIRMATION_LOCALHOST, ElephantConstantsV6.RED_CONFIRMATION_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1310,10 +1333,10 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
HXResponse hxResponse = parseResult(dxhyInterfaceResponse);
- if("000000".equals(hxResponse.get("code"))){
+ if ("000000".equals(hxResponse.get("code"))) {
cn.hutool.json.JSONObject data = JSONUtil.parseObj(hxResponse.getData());
- String bh = data.get("hzfpxxqrdbh") != null ? data.get("hzfpxxqrdbh").toString() : "";
- if(StrUtil.isNotEmpty(bh)){
+ String bh = data.get("hzfpxxqrdbh") != null ? data.get("hzfpxxqrdbh").toString() : "";
+ if (StrUtil.isNotEmpty(bh)) {
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
allApiLog.setUrl(WebServiceConstant.ADD_RED_INVOICE_QRD);
allApiLog.setSendMsg(JSONUtil.toJsonStr(decryptResult));
@@ -1342,7 +1365,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
public HXResponse redConfirmationConfirm(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.RED_CONFIRMATION_CONFIRM_LOCALHOST, ElephantConstantsV6.RED_CONFIRMATION_CONFIRM_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1366,7 +1389,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
public HXResponse rpaLogin(JSONObject decryptResult, Companyservice companyservice) {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.RPA_LOGIN_LOCALHOST, ElephantConstantsV6.RPA_LOGIN_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -1472,7 +1495,6 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
-
/**
* 申请/上传 红字发票
*
@@ -1647,7 +1669,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
// 存入金四关联日志表
- if("0000".equals(ztxx) && StrUtil.isNotEmpty(queryId)){
+ if ("0000".equals(ztxx) && StrUtil.isNotEmpty(queryId)) {
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
allApiLog.setUrl(WebServiceConstant.SQHZFPXXQRD);
allApiLog.setSendMsg("");
@@ -1663,7 +1685,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
HXResponse response = new HXResponse("0000", "申请成功");
response.put("queryid", queryId);
return response;
- }else{
+ } else {
return new HXResponse(ztxx);
}
@@ -2090,7 +2112,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
- log.info("【销项发票】【大象发票】发票专用章图片生成请求结果{}", StrUtil.sub(queryResult.toString(),0,50));
+ log.info("【销项发票】【大象发票】发票专用章图片生成请求结果{}", StrUtil.sub(queryResult.toString(), 0, 50));
// 判断外层报文是否成功
@@ -2316,7 +2338,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
decryptResult = JsonKeyCase.JsonKeyCase(decryptResult);
- log.info("调用大象V6接口报文key转大写后的报文为{}",decryptResult);
+ log.info("调用大象V6接口报文key转大写后的报文为{}", decryptResult);
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
dxhyInterfaceResponse = ElephantUtils.sendRequestWithoutTokenV6(ElephantConstantsV6.GET_RPA_QY_CODE_LOCALHOST, ElephantConstantsV6.GET_RPA_QY_CODE_METHOD, JSONUtil.parse(decryptResult), companyservice);
@@ -2361,15 +2383,15 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
/**
- * @author kk
+ * @author kk
* 通用查询接口
- */
+ */
@Override
public HXResponse queryResultInfo(InvoiceAllQueryTWODTO invoiceAllYhdjDTO, Companyservice companyservice) {
//存入金财的调用接口表里去
String requestId = invoiceAllYhdjDTO.getRequestId() != null ? invoiceAllYhdjDTO.getRequestId() : "";
- if(StrUtil.isEmpty(requestId)){
+ if (StrUtil.isEmpty(requestId)) {
return new HXResponse("requestId不能为空!");
}
@@ -2403,22 +2425,22 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
response.put("data", invoice);
return response;
- }else if (WebServiceConstant.QRCODE.equals(finalServiceId)) {
+ } else if (WebServiceConstant.QRCODE.equals(finalServiceId)) {
// 获取人脸二维码
//获取税局用户名称
JSONObject param = new JSONObject();
- param.put(ElephantConstants.NSRSBH,companyservice.getSellertax());
+ param.put(ElephantConstants.NSRSBH, companyservice.getSellertax());
HXResponse hxResponse = queryRpaTaxAccount(param, companyservice);
- if (!StringUtils.equals("000000",hxResponse.getCode())){
+ if (!StringUtils.equals("000000", hxResponse.getCode())) {
return hxResponse;
}
JSONObject resp = JSONObject.parseObject(JSON.toJSONString(hxResponse.getData()));
- param.put(ElephantConstants.YHM,resp.getString(ElephantConstants.YHM));
+ param.put(ElephantConstants.YHM, resp.getString(ElephantConstants.YHM));
HXResponse rpaAuthStatus = qrcode(param, companyservice);
- log.info("获取人脸二维码大象返回报文封装后:{}",JSONUtil.toJsonStr(hxResponse));
+ log.info("获取人脸二维码大象返回报文封装后:{}", JSONUtil.toJsonStr(hxResponse));
// if (StringUtils.equals("000000",rpaAuthStatus.getCode())){
// rpaAuthStatus.setCode("200");
@@ -2429,18 +2451,18 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// }
return rpaAuthStatus;
- }else if (WebServiceConstant.SQHZFPXXQRD.equals(finalServiceId)) {
+ } else if (WebServiceConstant.SQHZFPXXQRD.equals(finalServiceId)) {
// 申请红字信息表
//查询红字信息表入库信息
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Redinfo::getFpqqlsh,requestId);
+ queryWrapper.eq(Redinfo::getFpqqlsh, requestId);
Redinfo redinfo = redinfoMapper.selectOne(queryWrapper);
- HXResponse hxResponse = queryRedInfoByElepant(redinfo,companyservice,allApiLog);
+ HXResponse hxResponse = queryRedInfoByElepant(redinfo, companyservice, allApiLog);
return hxResponse;
- }else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
+ } else if (WebServiceConstant.ADD_RED_INVOICE.equals(finalServiceId)) {
// 红字发票开具
//调用大象接口获取数据入库
@@ -2448,26 +2470,26 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
queryBillInfoDTO.setFpqqlsh(requestId);
HXResponse hxResponse = queryInvoice(queryBillInfoDTO, companyservice);
- if(StringUtils.equals("0000",hxResponse.getCode())){
+ if (StringUtils.equals("0000", hxResponse.getCode())) {
return hxResponse;
}
//查询数据库信息并返回
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Invoice::getFpqqlsh,requestId);
+ queryWrapper.eq(Invoice::getFpqqlsh, requestId);
queryWrapper.orderByDesc(Invoice::getId).last("limit 1");
Invoice invoice = invoiceMapper.selectOne(queryWrapper);
- response.put("data",invoice);
+ response.put("data", invoice);
return response;
- }else if (WebServiceConstant.ADD_RED_INVOICE_QRD.equals(finalServiceId)) {
+ } else if (WebServiceConstant.ADD_RED_INVOICE_QRD.equals(finalServiceId)) {
// 红字发票开具-确认单编号方式
// TODO kk:2024/2/26 调用订单查询接口-不入库
JSONObject jsonObject = new JSONObject();
- jsonObject.put("HZQRDBH",requestId);
- jsonObject.put("NSRSBH",allApiLog.getCompany());
+ jsonObject.put("HZQRDBH", requestId);
+ jsonObject.put("NSRSBH", allApiLog.getCompany());
DxhyInterfaceResponse dxhyInterfaceResponse = null;
try {
@@ -2480,32 +2502,32 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
HXResponse hxResponse = parseResult(dxhyInterfaceResponse);
- hxResponse = parseDxhyRes(hxResponse,companyservice);
+ hxResponse = parseDxhyRes(hxResponse, companyservice);
return hxResponse;
- }else if (WebServiceConstant.CXHZFPXXQRD.equals(finalServiceId)) {
+ } else if (WebServiceConstant.CXHZFPXXQRD.equals(finalServiceId)) {
// 查询红字信息表
CxhzJsonDataTwoDTO cxhzJsonDataTwoDTO = null;
try {
String sendMsg = allApiLog.getSendMsg();
- cxhzJsonDataTwoDTO= JSONObject.parseObject(sendMsg, CxhzTwoDTO.class).getJsonData();
+ cxhzJsonDataTwoDTO = JSONObject.parseObject(sendMsg, CxhzTwoDTO.class).getJsonData();
- }catch (Exception e){
- log.error("反序列化失败异常",e);
+ } catch (Exception e) {
+ log.error("反序列化失败异常", e);
throw new JianshuiServiceException("起始日期反序列化失败");
}
JSONObject param = new JSONObject();
- param.put(ElephantConstants.YHJSLX,ElephantConstants.STRING_0);
- param.put(ElephantConstants.XSFNSRSBH,companyservice.getSellertax());
- param.put(ElephantConstants.XSFMC,companyservice.getSellername());
- param.put(ElephantConstants.LRFSF,ElephantConstants.STRING_0);
- param.put(ElephantConstants.LRRQQ,cxhzJsonDataTwoDTO.getKprqq());
- param.put(ElephantConstants.LRRQZ,cxhzJsonDataTwoDTO.getKprqz());
+ param.put(ElephantConstants.YHJSLX, ElephantConstants.STRING_0);
+ param.put(ElephantConstants.XSFNSRSBH, companyservice.getSellertax());
+ param.put(ElephantConstants.XSFMC, companyservice.getSellername());
+ param.put(ElephantConstants.LRFSF, ElephantConstants.STRING_0);
+ param.put(ElephantConstants.LRRQQ, cxhzJsonDataTwoDTO.getKprqq());
+ param.put(ElephantConstants.LRRQZ, cxhzJsonDataTwoDTO.getKprqz());
HXResponse hxResponse = queryRedConfirmationList(param, companyservice);
- log.info(" 查询红字信息表大象返回报文封装后:{}",JSONUtil.toJsonStr(hxResponse));
+ log.info(" 查询红字信息表大象返回报文封装后:{}", JSONUtil.toJsonStr(hxResponse));
HZXXLIST hzxxlist = JSONObject.parseObject(JSONObject.toJSONString(hxResponse.getData()), HZXXLIST.class);
@@ -2514,24 +2536,24 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} else if (WebServiceConstant.SHHZFPXXQRD.equals(finalServiceId)) {
// 审核红字信息表
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Redinfo::getFpqqlsh,requestId);
+ queryWrapper.eq(Redinfo::getFpqqlsh, requestId);
queryWrapper.orderByDesc(Redinfo::getId).last("limit 1");
Redinfo redinfo = redinfoMapper.selectOne(queryWrapper);
- return auditRedInfoResult(allApiLog.getResultMsg(),redinfo,companyservice);
+ return auditRedInfoResult(allApiLog.getResultMsg(), redinfo, companyservice);
} else if (WebServiceConstant.FPEWMXZ.equals(finalServiceId)) {
// 获取发票下载地址
- } else if (WebServiceConstant.KSHC.equals(finalServiceId)) {
+ } else if (WebServiceConstant.KSHC.equals(finalServiceId)) {
// 快速红冲
} else if (WebServiceConstant.QDFPWJHQ.equals(finalServiceId)) {
// 全电发票文件获取
- } else{
+ } else {
return new HXResponse("功能升级中~请稍等~");
}
@@ -2540,8 +2562,10 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
- /** 转换大象返回报文为简税报文 */
- private HXResponse parseDxhyRes(HXResponse hxResponse,Companyservice companyservice) {
+ /**
+ * 转换大象返回报文为简税报文
+ */
+ private HXResponse parseDxhyRes(HXResponse hxResponse, Companyservice companyservice) {
// 判断外层报文是否成功
if (!hxResponse.getCode().equals("000000")) {
@@ -2653,13 +2677,13 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
String fileId = IdUtils.randomUUID();
String fileName = invoice.getFphm();
- if(ddfpxx.getPDFZJL() != null && StrUtil.isNotEmpty(ddfpxx.getPDFZJL())){
+ if (ddfpxx.getPDFZJL() != null && StrUtil.isNotEmpty(ddfpxx.getPDFZJL())) {
String fphm = ddfpxx.getFPHM();
- if(StrUtil.isNotEmpty(fphm)){
+ if (StrUtil.isNotEmpty(fphm)) {
InvoiceFile invoiceFile = new InvoiceFile();
invoiceFile.setFphm(ddfpxx.getFPHM());
List invoiceFileList = invoiceFileMapper.selectInvoiceFileList(invoiceFile);
- if(invoiceFileList != null && invoiceFileList.size() > 0){
+ if (invoiceFileList != null && invoiceFileList.size() > 0) {
invoiceFile = invoiceFileList.get(0);
invoiceFile.setFileContent(ddfpxx.getPDFZJL());
invoiceFile.setFileName(fileName);
@@ -2669,7 +2693,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
fileId = invoiceFile.getFileId();
fileName = invoiceFile.getFileName();
invoiceFileMapper.updateInvoiceFile(invoiceFile);
- }else{
+ } else {
invoiceFile.setId(fileId);
invoiceFile.setFileContent(ddfpxx.getPDFZJL());
invoiceFile.setFileId(fileId);
@@ -2745,12 +2769,12 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
for (HZXXDATA hzxxdata : list) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Redinfo::getRedInfoNo,hzxxdata.getHZFPXXQRDBH());
+ queryWrapper.eq(Redinfo::getRedInfoNo, hzxxdata.getHZFPXXQRDBH());
queryWrapper.orderByDesc(Redinfo::getId).last("limit 1");
//根据红字信息表编号查询红字信息
Redinfo redinfo = redinfoMapper.selectOne(queryWrapper);
//不存在就创建对象
- if (ObjectUtils.isEmpty(redinfo)){
+ if (ObjectUtils.isEmpty(redinfo)) {
redinfo = new Redinfo();
}
redinfo.setRedInfoNo(hzxxdata.getHZFPXXQRDBH());
@@ -2764,7 +2788,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
redinfo.setReqnsrsbh(hzxxdata.getXSFNSRSBH());
redinfos.add(redinfo);
//判断是否存在红字信息,存在执行更新
- if (ObjectUtils.isEmpty(redinfo.getId())){
+ if (ObjectUtils.isEmpty(redinfo.getId())) {
//处理发票表和红字信息表
redInfoAndInvoiceUpdate(hzxxdata, redinfo);
}
@@ -2799,7 +2823,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
- return new HXResponse("200","查询成功",hzxxList,true);
+ return new HXResponse("200", "查询成功", hzxxList, true);
}
@Async
@@ -2823,33 +2847,33 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
invoiceMapper.insertInvoice(invoice);
}
- private HXResponse auditRedInfoResult(String uuid,Redinfo redinfo, Companyservice companyservice) {
- if (ObjectUtils.isEmpty(companyservice)){
+ private HXResponse auditRedInfoResult(String uuid, Redinfo redinfo, Companyservice companyservice) {
+ if (ObjectUtils.isEmpty(companyservice)) {
log.info("请求日志为空或者企业服务为空");
- return new HXResponse("9998","请求日志为空或者企业服务为空");
+ return new HXResponse("9998", "请求日志为空或者企业服务为空");
}
- if (ObjectUtils.isEmpty(redinfo)){
+ if (ObjectUtils.isEmpty(redinfo)) {
log.info("不存在该红字信息");
- return new HXResponse("9998","不存在该红字信息");
+ return new HXResponse("9998", "不存在该红字信息");
}
- if (StringUtils.isBlank(uuid)){
+ if (StringUtils.isBlank(uuid)) {
log.info("红字确认单UUID不能为空");
- return new HXResponse("9998","红字确认单UUID不能为空");
+ return new HXResponse("9998", "红字确认单UUID不能为空");
}
JSONObject param = new JSONObject();
- param.put(ElephantConstants.NSRSBH,companyservice.getSellertax());
- param.put(ElephantConstants.UUID,uuid);
- param.put(ElephantConstants.HZQRDBH,redinfo.getRedInfoNo());
- param.put(ElephantConstants.QRLX,ElephantConstants.QRLX_Y);
+ param.put(ElephantConstants.NSRSBH, companyservice.getSellertax());
+ param.put(ElephantConstants.UUID, uuid);
+ param.put(ElephantConstants.HZQRDBH, redinfo.getRedInfoNo());
+ param.put(ElephantConstants.QRLX, ElephantConstants.QRLX_Y);
//调用大象接口获取确认日期
AjaxResult queryResult = null;
try {
queryResult = ElephantUtils.sendRequestWithoutTokenV6New(ElephantConstantsV6.QUERY_INVOICE_LOCALHOST, ElephantConstantsV6.QUERY_INVOICE_METHOD, JSONUtil.parse(param), companyservice);
- log.info("大象返回报文封装后:{}",JSONUtil.toJsonStr(queryResult));
+ log.info("大象返回报文封装后:{}", JSONUtil.toJsonStr(queryResult));
} catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) {
log.error("【销项发票】【大象接口】【发票开具】发票请求异常,请求报文{},销方信息{}", param.toJSONString(), JSONObject.toJSONString(companyservice));
e.printStackTrace();
@@ -2859,17 +2883,17 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
JSONObject data = queryResult.getJsonData();
String qrrq = data.getString(ElephantConstants.QRRQ);
data.clear();
- data.put(ElephantConstants.CASE_QRRQ,qrrq);
+ data.put(ElephantConstants.CASE_QRRQ, qrrq);
- return new HXResponse(String.valueOf(queryResult.getCode()),queryResult.getMsg(),data,true);
+ return new HXResponse(String.valueOf(queryResult.getCode()), queryResult.getMsg(), data, true);
}
// @Transactional(rollbackFor = Exception.class)
- public HXResponse queryRedInfoByElepant(Redinfo redinfo, Companyservice companyservice,InvoiceAllApiLog apiLog) {
+ public HXResponse queryRedInfoByElepant(Redinfo redinfo, Companyservice companyservice, InvoiceAllApiLog apiLog) {
//返回信息
- if (ObjectUtils.isEmpty(redinfo)){
- return new HXResponse("9998","红字信息未查询到");
+ if (ObjectUtils.isEmpty(redinfo)) {
+ return new HXResponse("9998", "红字信息未查询到");
}
//日志uuid
@@ -2877,16 +2901,16 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
//封装请求参数
JSONObject param = new JSONObject();
- param.put(ElephantConstants.NSRSBH,companyservice.getSellertax());
- param.put(ElephantConstants.UUID,apiLog.getResultMsg());
- param.put(ElephantConstants.XSFNSRSBH,companyservice.getSellertax());
+ param.put(ElephantConstants.NSRSBH, companyservice.getSellertax());
+ param.put(ElephantConstants.UUID, apiLog.getResultMsg());
+ param.put(ElephantConstants.XSFNSRSBH, companyservice.getSellertax());
- debugLog("红字信息表申请查询断点1",uuid,System.currentTimeMillis());
+ debugLog("红字信息表申请查询断点1", uuid, System.currentTimeMillis());
//调用大象接口查询红字信息表明细
AjaxResult queryResult = null;
try {
queryResult = ElephantUtils.sendRequestWithoutTokenV6New(ElephantConstantsV6.QUERY_RED_CONFIRMATION_ITEM_LIST_LOCALHOST, ElephantConstantsV6.QUERY_RED_CONFIRMATION_ITEM_LIST_METHOD, JSONUtil.parse(param), companyservice);
- log.info(" 红字信息表申请大象返回报文封装后:{}",JSONUtil.toJsonStr(queryResult));
+ log.info(" 红字信息表申请大象返回报文封装后:{}", JSONUtil.toJsonStr(queryResult));
} catch (UnsupportedEncodingException | InvalidKeyException | NoSuchAlgorithmException e) {
log.error("【销项发票】【大象接口】【红字信息表申请】发票请求异常,请求报文{},销方信息{}", JSONUtil.parse(param).toString(), JSONObject.toJSONString(companyservice));
e.printStackTrace();
@@ -2945,8 +2969,8 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
int i = redinfoMapper.updateRedinfo(redinfo);
debugLog("断点9", uuid, System.currentTimeMillis());
- if (i<1){
- debugLog("红字订单更新主表信息失败",uuid,System.currentTimeMillis());
+ if (i < 1) {
+ debugLog("红字订单更新主表信息失败", uuid, System.currentTimeMillis());
throw new JianshuiServiceException("红字订单更新主表信息失败");
}
@@ -2991,7 +3015,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
List detailList = new ArrayList<>();
for (ElephantRedInfoDetail elephantRedInfoDetail : elephantRedInfo.getHZQRXXMXLIST()) {
- ElephantRedInfoDetailCase detail = new ElephantRedInfoDetailCase();
+ ElephantRedInfoDetailCase detail = new ElephantRedInfoDetailCase();
detail.setDw(elephantRedInfoDetail.getDW());
detail.setJe(elephantRedInfoDetail.getJE());
detail.setSe(elephantRedInfoDetail.getSE());
@@ -3051,22 +3075,22 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// }
- return new HXResponse("0000","查询成功",addRedInfoInvoiceTWO,true);
+ return new HXResponse("0000", "查询成功", addRedInfoInvoiceTWO, true);
}
-
-
- /** 批量开票接口 */
+ /**
+ * 批量开票接口
+ */
@Override
public HXResponse addInvoiceBeatch(BillInfo billInfo, Companyservice companyservice) throws IllegalAccessException, InstantiationException {
- return submitAddInvoice(billInfo,companyservice);
+ return submitAddInvoice(billInfo, companyservice);
}
@Override
- public void callBackAisino(InvoiceBack invoiceBack, String callBackUrl, String identity,Long id) {
+ public void callBackAisino(InvoiceBack invoiceBack, String callBackUrl, String identity, Long id) {
if (id == null) {
log.info("【控制台】发票回调,id为空");
@@ -3096,14 +3120,14 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
try {
/** 开票成功处理 */
- if("0000".equals(invoiceBack.getResultCode())){
+ if ("0000".equals(invoiceBack.getResultCode())) {
invoice.setUpdateBy("0");
invoiceMapper.updateInvoice(invoice);
}
// 重汽国际不判断null值,给特殊处理下
- if(StrUtil.isEmpty(invoice.getInvoiceResultMsg())){
- invoice.setInvoiceResultMsg("");
+ if (StrUtil.isEmpty(invoice.getInvoiceResultMsg())) {
+ invoice.setInvoiceResultMsg("");
}
log.info("【控制台】发票回调接口,发送数据开始,id={},callBackUrl={},param={}", id, callBackUrl, JSONUtil.toJsonStr(invoice));
@@ -3133,7 +3157,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
}
} catch (Exception e) {
- log.info("【控制台】发票回调接口,发送数据异常,id={},e={}", id,e);
+ log.info("【控制台】发票回调接口,发送数据异常,id={},e={}", id, e);
invoiceBack.setStatus("2");
invoiceBack.setBackMsg("发送数据异常!");
invoiceBackMapper.updateInvoiceBack(invoiceBack);
@@ -3141,18 +3165,18 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
-
- /**
- * @author kk
- * @date 2024/4/8 14:55
- * @param: [billInfo, companyservice]
- * @return: 提交开票
- */
+ /**
+ * @author kk
+ * @date 2024/4/8 14:55
+ * @param: [billInfo, companyservice]
+ * @return: 提交开票
+ */
public HXResponse submitAddInvoice(BillInfo billInfo, Companyservice companyservice) throws IllegalAccessException, InstantiationException {
// 1.订单唯一校验。新增历史订单部分(删除)。
// 订单号唯一校验 start
String outNO = billInfo.getOutTradeOrderno() != null ? billInfo.getOutTradeOrderno() : "";
+ String fpqqlsh = billInfo.getFpqqlsh() != null ? billInfo.getFpqqlsh() : "";
if (StrUtil.isEmpty(outNO)) {
return new HXResponse("批量开票:订单号为空,请检查报文!");
}
@@ -3161,65 +3185,90 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
/** 查找权限ID */
String entId = "";
CompanyserviceProp companyservicePropEntId = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "ent_id");
- if(companyservicePropEntId != null && StrUtil.isNotEmpty(companyservicePropEntId.getValue()) ){
+ if (companyservicePropEntId != null && StrUtil.isNotEmpty(companyservicePropEntId.getValue())) {
entId = companyservicePropEntId.getValue();
- }else{
+ } else {
log.info("权限id未配置,需配置key名 ent_id,实现权限管理");
}
- String clerk = billInfo.getClerk() != null ? billInfo.getClerk():"";
- if(StrUtil.isNotEmpty(clerk)) {
+ String clerk = billInfo.getClerk() != null ? billInfo.getClerk() : "";
+ if (StrUtil.isNotEmpty(clerk)) {
CompanyserviceProp companyservicePropClerk = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), clerk);
- if(companyservicePropClerk != null && StrUtil.isNotEmpty(companyservicePropClerk.getValue()) ){
+ if (companyservicePropClerk != null && StrUtil.isNotEmpty(companyservicePropClerk.getValue())) {
entId = companyservicePropClerk.getValue();
- }else{
+ } else {
log.info("权限id未配置,需配置key名 clerk,实现权限管理");
}
}
- Invoice invoiceValidateTemp = new Invoice();
- List 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) {
- QueryWrapper 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.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.setUpdateTime(new Date());
- invoiceBackMapper.insertInvoiceBack(invoiceBackVali);
+ if(invoice != null){
+ boolean con = true;
+ QueryWrapper invoiceBackQueryWrapper = new QueryWrapper<>();
+ invoiceBackQueryWrapper.eq("system_orderno", invoice.getOutTradeOrderno());
+ InvoiceBack invoiceBackVali = invoiceBackMapper.selectOne(invoiceBackQueryWrapper);
+ if (BeanUtil.isEmpty(invoiceBackVali)) {
+ invoiceBackVali = new InvoiceBack();
+ invoiceBackVali.setSystemOrderno(invoice.getFpqqlsh());
+ invoiceBackVali.setCreateTime(new Date());
+ invoiceBackVali.setId(IdUtils.randomUUID());
+ invoiceBackVali.setIdentity(companyservice.getIdentity());
+ invoiceBackVali.setBackUrl("");
+ invoiceBackVali.setStatus("3");
+ invoiceBackVali.setBackMsg("k:数据为空,初始化数据");
+ invoiceBackVali.setUpdateTime(new Date());
+ invoiceBackMapper.insertInvoiceBack(invoiceBackVali);
+ }
- } else {
- invoiceBackVali.setResultCode("0000");
- invoiceBackVali.setResultMsg("开票成功!");
- invoiceBackVali.setStatus("0");
+ 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());
+ } 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
@@ -3236,10 +3285,10 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// 订单头信息
DDTXX ddtxx = new DDTXX(billInfo);
CompanyserviceProp companyserviceProp = companyservicePropMapper.selectPropByKey(companyservice.getCompanyid(), "account_show");
- if (companyserviceProp != null && "1".equals(companyserviceProp.getValue())){
+ if (companyserviceProp != null && "1".equals(companyserviceProp.getValue())) {
StringBuilder bz = new StringBuilder();
- if (StringUtils.isNotBlank(ddtxx.getBZ())){
+ if (StringUtils.isNotBlank(ddtxx.getBZ())) {
bz.append(ddtxx.getBZ()).append("\n");
}
@@ -3291,17 +3340,17 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
qdtxx.setFJYSLIST(billInfo.getFjyslist());// 附加要素列表
qdtxx.setHWYSLIST(billInfo.getHwysList()); // 货物运输
- if(billInfo.getBdcxsxxList() != null && !billInfo.getBdcxsxxList().isEmpty()){
+ if (billInfo.getBdcxsxxList() != null && !billInfo.getBdcxsxxList().isEmpty()) {
qdtxx.setBDCXSXX(billInfo.getBdcxsxxList().get(0)); // 不动产销售信息
}
- if(billInfo.getJzfwList() != null && !billInfo.getJzfwList().isEmpty()){
+ if (billInfo.getJzfwList() != null && !billInfo.getJzfwList().isEmpty()) {
qdtxx.setJZFWXX(billInfo.getJzfwList().get(0));// 建筑服务信息
}
- if(billInfo.getBdczlxxList() != null && !billInfo.getBdczlxxList().isEmpty()){
+ if (billInfo.getBdczlxxList() != null && !billInfo.getBdczlxxList().isEmpty()) {
qdtxx.setBDCZLXX(billInfo.getBdczlxxList().get(0));// 不动产租赁信息
}
- if(billInfo.getJDCXX() != null ){
- qdtxx.setJDCXX(billInfo.getJDCXX() );// 机动车信息
+ if (billInfo.getJDCXX() != null) {
+ qdtxx.setJDCXX(billInfo.getJDCXX());// 机动车信息
}
// qdtxx.setBDCZLXX(billInfo.getBdczlxxList()); //不动产租赁信息
@@ -3319,14 +3368,14 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
} else if (BeanUtil.isNotEmpty(qdtxx.getBDCZLXX())) {
// GenerateQdBdczlInvoice 不动产租赁信息
url = ElephantConstantsV6.GENERATE_QD_BDXZL_INVOICE;
- }else if( BeanUtil.isNotEmpty(qdtxx.getJDCXX()) ){
+ } else if (BeanUtil.isNotEmpty(qdtxx.getJDCXX())) {
// GenerateQdjdcxsInvoice 数电机动车销售统一发票
url = ElephantConstantsV6.GENERATE_QD_JDCXS_INVOICE;
}
// 机动车专票适配
- String jdcbz = billInfo.getJdcbz() != null ? billInfo.getJdcbz():"";
- if("1".equals(jdcbz)){
+ String jdcbz = billInfo.getJdcbz() != null ? billInfo.getJdcbz() : "";
+ if ("1".equals(jdcbz)) {
billInfo.setTdys("14");
// (数电机动车专票)发票开具/冲红接口
url = ElephantConstantsV6.GENERATE_QD_JDCZP_INVOICE;
@@ -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);
@@ -3427,7 +3481,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
if (contentJson != null) {
String ztdm = contentJson.getString("ZTDM");
// 021002 020111
- if (!StringUtils.equalsAny(ztdm, "020111", "020000", "010000","000000")) {
+ if (!StringUtils.equalsAny(ztdm, "020111", "020000", "010000", "000000")) {
// 开票失败
if (StringUtils.equals("020002", ztdm)) {
billInfo.setState(22);
@@ -3436,10 +3490,10 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
// kk: 2023/12/5 判断人脸识别的状态
String DDFPZXX = contentJson.getString("DDFPZXX") != null ? contentJson.getString("DDFPZXX") : "";
- if(StrUtil.isNotEmpty(DDFPZXX)){
- DDFPZXX ddfpzxx = BeanUtil.copyProperties(DDFPZXX,DDFPZXX.class);
- if(ddfpzxx != null && ddfpzxx.getDDFPXX() != null && "03200".equals(ddfpzxx.getDDFPXX().getDDZT())){
- return new HXResponse("E004",ddfpzxx.getDDFPXX().getDDZTXX() != null ? ddfpzxx.getDDFPXX().getDDZTXX():"发票开具失败,请确认是否人脸识别超期!");
+ if (StrUtil.isNotEmpty(DDFPZXX)) {
+ DDFPZXX ddfpzxx = BeanUtil.copyProperties(DDFPZXX, DDFPZXX.class);
+ if (ddfpzxx != null && ddfpzxx.getDDFPXX() != null && "03200".equals(ddfpzxx.getDDFPXX().getDDZT())) {
+ return new HXResponse("E004", ddfpzxx.getDDFPXX().getDDZTXX() != null ? ddfpzxx.getDDFPXX().getDDZTXX() : "发票开具失败,请确认是否人脸识别超期!");
}
}
@@ -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("开票中,进入队列");
@@ -3480,7 +3534,7 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
}
// 定时拉取保存发票
- AsyncManager.me().execute(new QueryInvoiceTask(billInfo, companyservice, this,invoiceBackMapper));
+ AsyncManager.me().execute(new QueryInvoiceTask(billInfo, companyservice, this, invoiceBackMapper));
// 数电的加入金财表
InvoiceAllApiLog allApiLog = new InvoiceAllApiLog();
@@ -3502,18 +3556,4 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
index 8267032..4b3b9d0 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java
@@ -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;
+ }
+
/**
* 简税和金财数科 发票类型互换
*
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/AddInvoiceBatchTask.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/AddInvoiceBatchTask.java
index 72aa9aa..78dd311 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/AddInvoiceBatchTask.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/AddInvoiceBatchTask.java
@@ -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);
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java
index 20ccc8c..fd4c1dd 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/InvoiceBackTask.java
@@ -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() );
-
- // 明细重插
- List 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());
+ 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 invoiceDetailList = invoiceMapper.selectInvoiceIdForInvoiceDetailList(invoice.getId());
+ if(!invoiceDetailList.isEmpty()){
+ invoice.setInvoiceDetailList(invoiceDetailList);
}
- 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);
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/QueryInvoiceTask.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/QueryInvoiceTask.java
index 01ef10e..d711bc9 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/QueryInvoiceTask.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/QueryInvoiceTask.java
@@ -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);
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/RedInvoiceBackTask.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/RedInvoiceBackTask.java
index 1136c7e..16b000c 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/RedInvoiceBackTask.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/RedInvoiceBackTask.java
@@ -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());
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatInspurUtil.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatInspurUtil.java
index aad2bbb..9a4e579 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatInspurUtil.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatInspurUtil.java
@@ -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);
}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java
index ea9152a..f873fc1 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java
@@ -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);
}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/elephant/ElephantUtils.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/elephant/ElephantUtils.java
index 5538571..9eb4b44 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/elephant/ElephantUtils.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/elephant/ElephantUtils.java
@@ -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();
diff --git a/jianshui-invoice/src/main/resources/mapper/invoice/InvoiceMapper.xml b/jianshui-invoice/src/main/resources/mapper/invoice/InvoiceMapper.xml
index d67615c..6220631 100644
--- a/jianshui-invoice/src/main/resources/mapper/invoice/InvoiceMapper.xml
+++ b/jianshui-invoice/src/main/resources/mapper/invoice/InvoiceMapper.xml
@@ -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
+
+