From 0d3689d7533b2adb0d28a575088782ced81bc6c9 Mon Sep 17 00:00:00 2001
From: kk <1910333201@qq.com>
Date: Sat, 28 Oct 2023 11:34:02 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=B1=BD=E5=9B=9E=E8=B0=83=E5=A4=84?=
=?UTF-8?q?=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
jianshui-admin/pom.xml | 12 +-
.../http/invoice/v1/InvoiceController.java | 6 +
.../src/main/test/java/BackTest.java | 30 +++++
.../console/AisinoConsoleConstants.java | 2 +-
.../jianshui/invoice/domain/InvoiceBack.java | 31 ++---
.../AisinoConsoleInvoiceRedDownloadDTO.java | 6 +-
.../console/DownloadJdcDetailItemVO.java | 49 ++++++++
.../aisino/console/DownloadJdcDetailVO.java | 18 +++
.../vo/api/aisino/console/DownloadJdcVO.java | 90 ++++++++++++++
.../AisinoInvoiceRequestAdapterImpl.java | 2 +-
...noConsoleInvoiceApiZhongQiServiceImpl.java | 113 +++++++++++-------
.../invoice/task/InvoiceBackTask.java | 10 +-
.../aisino/console/AisinoConsoleUtil.java | 39 ++++--
13 files changed, 327 insertions(+), 81 deletions(-)
create mode 100644 jianshui-admin/src/main/test/java/BackTest.java
create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailItemVO.java
create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailVO.java
create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcVO.java
diff --git a/jianshui-admin/pom.xml b/jianshui-admin/pom.xml
index ea5b792..a8135f9 100644
--- a/jianshui-admin/pom.xml
+++ b/jianshui-admin/pom.xml
@@ -105,8 +105,16 @@
com.jianshui
jianshui-platform
-
-
+
+ junit
+ junit
+ test
+
+
+ org.springframework.boot
+ spring-boot-test
+ test
+
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 7e5dccd..464b004 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
@@ -18,6 +18,7 @@ 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.task.InvoiceBackTask;
import com.jianshui.invoice.utils.elephant.ElephantUtils;
import com.jianshui.platform.dto.InvoiceAdd.BillInfoPDTO;
import com.jianshui.invoice.domain.Redinfo;
@@ -75,6 +76,7 @@ public class InvoiceController {
private InvoiceAddPService addService;
+
/**
* 功能描述: 红字查询接口
*
@@ -260,6 +262,10 @@ public class InvoiceController {
@ApiImplicitParam(name = "order", value = "请求体", dataType = "java.lang.Void", required = true)})
@PostMapping({"/api/invoice/v1/query", "/api/invoice/v1/query/{identity}", "/invoice/queryInvoice"})
public Object queryInvoice(HttpServletRequest request, String identity) throws Exception {
+
+
+
+
if (StringUtils.isEmpty(identity)) {
return AjaxResult.error(ErrorCode.EMPTY_IDENTITY);
}
diff --git a/jianshui-admin/src/main/test/java/BackTest.java b/jianshui-admin/src/main/test/java/BackTest.java
new file mode 100644
index 0000000..7b90bf7
--- /dev/null
+++ b/jianshui-admin/src/main/test/java/BackTest.java
@@ -0,0 +1,30 @@
+import com.jianshui.JianshuiApplication;
+import com.jianshui.invoice.task.InvoiceBackTask;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+/**
+ * @author kk
+ * @date 2023年10月28日 11:13
+ * 重汽回调定时任务测试
+ */
+@RunWith(SpringJUnit4ClassRunner.class) // SpringJUnit支持,由此引入Spring-Test框架支持!
+@SpringBootTest(classes = JianshuiApplication.class) // 指定我们SpringBoot工程的Application启动类
+@WebAppConfiguration
+@Slf4j
+public class BackTest {
+
+ @Autowired
+ private InvoiceBackTask invoiceBackTask;
+
+ @Test
+ public void test(){
+ invoiceBackTask.bkParams("2");
+ }
+
+}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/aisino/console/AisinoConsoleConstants.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/aisino/console/AisinoConsoleConstants.java
index a3d1c99..3390131 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/aisino/console/AisinoConsoleConstants.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/constant/aisino/console/AisinoConsoleConstants.java
@@ -29,7 +29,7 @@ public class AisinoConsoleConstants {
public static final Integer INVOICE_INVOLID = 4;
/** 22.红字信息表上传*/
- public static final Integer RED_UPLOAD = 0201;
+ public static final Integer RED_UPLOAD = 33;
/** 23.红字信息表下载*/
public static final Integer RED_DOWLOAD = 34;
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/InvoiceBack.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/InvoiceBack.java
index 0d51d5d..d9fc5d4 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/InvoiceBack.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/InvoiceBack.java
@@ -1,17 +1,20 @@
package com.jianshui.invoice.domain;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringBuilder;
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.ToStringStyle;
+import java.util.Date;
+
/**
* 开票接口回调对象 invoice_back
*
* @author jianshui
* @date 2023-10-26
*/
-public class InvoiceBack extends BaseEntity
+public class InvoiceBack
{
private static final long serialVersionUID = 1L;
@@ -38,7 +41,18 @@ public class InvoiceBack extends BaseEntity
@Excel(name = "回调信息")
private String backMsg;
- public void setId(String id)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public void setId(String id)
{
this.id = id;
}
@@ -93,16 +107,5 @@ public class InvoiceBack extends BaseEntity
return backMsg;
}
- @Override
- public String toString() {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("id", getId())
- .append("systemOrderno", getSystemOrderno())
- .append("status", getStatus())
- .append("backUrl", getBackUrl())
- .append("identity", getIdentity())
- .append("createTime", getCreateTime())
- .append("backMsg", getBackMsg())
- .toString();
- }
+
}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/aisino/console/AisinoConsoleInvoiceRedDownloadDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/aisino/console/AisinoConsoleInvoiceRedDownloadDTO.java
index 56f9681..8730292 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/aisino/console/AisinoConsoleInvoiceRedDownloadDTO.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/aisino/console/AisinoConsoleInvoiceRedDownloadDTO.java
@@ -32,11 +32,11 @@ public class AisinoConsoleInvoiceRedDownloadDTO {
@ApiModelProperty(value = "逾期状态")
private String YQZT;
- @Alias("billTimeBegin")
+// @Alias("billTimeBegin")
@ApiModelProperty(value = "填开日期")
private String TKRQ_Q;
- @Alias("billTimeEnd")
+// @Alias("billTimeEnd")
@ApiModelProperty(value = "填开日期")
private String TKRQ_Z;
@@ -46,7 +46,7 @@ public class AisinoConsoleInvoiceRedDownloadDTO {
@ApiModelProperty(value = "销方税号")
private String XFSH;
- @Alias("billInfoNo")
+// @Alias("billInfoNo")
@ApiModelProperty(value = "信息表编号")
private String XXBBH;
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailItemVO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailItemVO.java
new file mode 100644
index 0000000..ad6ce58
--- /dev/null
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailItemVO.java
@@ -0,0 +1,49 @@
+package com.jianshui.invoice.domain.vo.api.aisino.console;
+
+import lombok.Data;
+
+/**
+ * @author kk
+ * @date 2023年10月27日 19:30
+ */
+@Data
+public class DownloadJdcDetailItemVO {
+
+ // 商品名称
+ private String goodsName;
+
+ //计量单位
+ private String goodsUnit;
+
+ //单价
+ private String goodsPrice;
+
+ //税率
+ private String goodsTaxRate;
+
+ //规格型号
+ private String goodsGgxh;
+
+ //数量
+ private String goodsNum;
+
+ //金额
+ private String goodsJE;
+
+ //税额
+ private String goodsSE;
+
+ // 含税标志
+ private String hsbz;
+
+ // 商品编码
+ private String spbm;
+
+ //商品企业自编
+ private String qyspbm;
+ //是否使用优惠政策标识0:不使用,1:使用
+ private String syyhzcbz;
+ // 零税率标识
+ private String LSLBZ;
+
+}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailVO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailVO.java
new file mode 100644
index 0000000..45106a3
--- /dev/null
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcDetailVO.java
@@ -0,0 +1,18 @@
+package com.jianshui.invoice.domain.vo.api.aisino.console;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author kk
+ * @date 2023年10月27日 17:29
+ */
+@Data
+public class DownloadJdcDetailVO {
+
+ private List GoodsMx;
+
+
+
+}
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcVO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcVO.java
new file mode 100644
index 0000000..9358d0a
--- /dev/null
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/vo/api/aisino/console/DownloadJdcVO.java
@@ -0,0 +1,90 @@
+package com.jianshui.invoice.domain.vo.api.aisino.console;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author kk
+ * @date 2023年10月27日 16:24
+ */
+@Data
+public class DownloadJdcVO {
+
+ // 24位申请单号(12位设备编号+12位时间)
+ private String ReqBillNo;
+
+ // 信息表编号
+ private String resBillNo;
+
+ // 信息表状态代码
+ private String statusDM;
+
+ // 信息表状态描述
+ private String statusMC;
+
+ // 信息表类型
+ private String billType;
+
+ // 对应蓝票代码
+ private String typeCode;
+
+ // 对应蓝票号码
+ private String invNo;
+
+ // 税种类别
+ private String szlb;
+
+ // 多税率标志
+ private String isMutiRate;
+
+ // 填开日期
+ private String date;
+
+ // 购方名称
+ private String buyerName;
+
+ // 购方税号
+ private String buyerTaxCode;
+
+ // 购方地址电话
+ private String buyerAdd;
+
+ // 购方银行账号
+ private String buyerBank;
+
+ // 销方名称
+ private String sellerName;
+
+ // 销方税号
+ private String sellTaxCode;
+
+ // 合计金额
+ private String amount;
+
+ // 税率
+ private String taxRate;
+
+ // 合计税额
+ private String tax;
+
+ // 申请说明
+ private String reqMemo;
+
+ // 商品编码版本号
+ private String spbmbbh;
+
+ // 含税税率标识
+ private String slbz;
+
+ // 异地代开
+ private String yddk;
+
+ // 代开比对标识
+ private String dkbdbs;
+
+ // 商品明细
+ private List RedInvReqBillMx;
+
+
+}
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 20b002a..544d46f 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
@@ -104,7 +104,7 @@ public class AisinoInvoiceRequestAdapterImpl implements IInvoiceRequestService {
try {
// TODO: 2023/9/20
-// order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
+ order = AisinoInvoiceDecryptUtil.decrypt(order, JKey);
} catch (Exception e) {
e.printStackTrace();
throw new JianshuiParamErrorException(ErrorCode.DECRYPT_ERROR, companyservice, "invoice");
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 6ef492d..d1d7b9f 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
@@ -1,10 +1,13 @@
package com.jianshui.invoice.service.impl.api;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.codec.Base64;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
@@ -30,6 +33,7 @@ import com.jianshui.invoice.domain.dto.api.aisino.console.vehicle.TaxEquipmentIn
import com.jianshui.invoice.domain.dto.api.aisino.console.vehicle.VehicleInvoiceExpBo;
import com.jianshui.invoice.domain.ele.EleNewMessage;
import com.jianshui.invoice.domain.vo.api.aisino.console.AisinoConsoleInvoiceAddVO;
+import com.jianshui.invoice.domain.vo.api.aisino.console.DownloadJdcVO;
import com.jianshui.invoice.mapper.*;
import com.jianshui.invoice.service.IInvoiceApiService;
import com.jianshui.invoice.utils.BillInfoUtils;
@@ -45,6 +49,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import javax.servlet.http.HttpServletRequest;
@@ -266,10 +272,13 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
try {
// 控制台文档给的不对,反了
String jdcbz = aisinoConsoleInvoiceAddDTO.getJDCBZ() != null ? aisinoConsoleInvoiceAddDTO.getJDCBZ() : "";
+ log.info("机动车标志:{}",jdcbz);
if("1".equals(jdcbz)){
aisinoConsoleInvoiceAddDTO.setJDCBZ("2");
}else if("2".equals(jdcbz)){
aisinoConsoleInvoiceAddDTO.setJDCBZ("1");
+ }else {
+ aisinoConsoleInvoiceAddDTO.setJDCBZ("2");
}
//hutool的beancopy别名会与JSONUTIl冲突
@@ -355,12 +364,14 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
queryInvoiceBack.setSystemOrderno(billInfo.getSystemOrderno());
List invoiceBackList = invoiceBackMapper.selectInvoiceBackList(queryInvoiceBack);
if (CollectionUtils.isEmpty(invoiceBackList)) {
+ queryInvoiceBack.setId(IdUtils.randomUUID());
queryInvoiceBack.setIdentity(companyservice.getIdentity());
queryInvoiceBack.setBackUrl(callBackUrl);
queryInvoiceBack.setStatus("0");
queryInvoiceBack.setCreateTime(new Date());
queryInvoiceBack.setSystemOrderno(billInfo.getSystemOrderno());
queryInvoiceBack.setBackMsg("");
+ invoiceBackMapper.insertInvoiceBack(queryInvoiceBack);
} else {
queryInvoiceBack = invoiceBackList.get(0);
}
@@ -370,7 +381,13 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
AsyncManager.me().execute(new TimerTask() {
@Override
public void run() {
- callBackAisino(finalQueryInvoiceBack,callBackUrl, invoice.getId());
+ try {
+ Long c = Long.valueOf(RandomUtil.randomInt(3, 5));
+ Thread.sleep(c * 1000);
+ callBackAisino(finalQueryInvoiceBack,callBackUrl, invoice.getId());
+ } catch (InterruptedException e) {
+
+ }
}
});
@@ -393,6 +410,8 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
*/
private void callBackAisino(InvoiceBack invoiceBack,String callBackUrl, Long id) {
+ // TODO: 2023/10/27 回调处理
+
if (id == null) {
log.info("【控制台】发票回调,id为空");
return;
@@ -412,12 +431,12 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
if(jsonObject != null){
- String status = jsonObject.get("status") != null ? jsonObject.get("status").toString():"";
- String message = jsonObject.get("message")!= null ? jsonObject.get("message").toString():"";
+ String status = jsonObject.get("Result") != null ? jsonObject.get("Result").toString():"";
+ String message = jsonObject.get("Message")!= null ? jsonObject.get("Message").toString():"";
if("0000".equals(status)){
invoiceBack.setStatus("1");
- invoiceBack.setBackMsg("发票信息未查询到");
+ invoiceBack.setBackMsg(message);
invoiceBackMapper.updateInvoiceBack(invoiceBack);
}else if("9999".equals(status)){
invoiceBack.setStatus("3");
@@ -796,7 +815,7 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
//发起请求
AjaxResult ajaxResult = null;
try {
- ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_UPLOAD, "129", param, companyservice);
+ ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_UPLOAD, "0200", param, companyservice);
} catch (Exception e) {
log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace();
@@ -846,60 +865,35 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
throw new JianshuiServiceException("金税盘编号未配置,请联系管理员!");
}
String goldenTaxDiskNo = companyserviceDetailList.get(0).getGoldenTaxDiskNo();
+ String fjh = companyserviceDetailList.get(0).getFjh();
// 组装报文
- AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(downloadRedInfoDTO, AisinoConsoleInvoiceRedDownloadDTO.class);
+ AisinoConsoleInvoiceRedDownloadDTO downloadDTO = BeanUtil.copyProperties(downloadRedInfoDTO,AisinoConsoleInvoiceRedDownloadDTO.class);
downloadDTO.setYQZT("N");
downloadDTO.setXXBFW("0");
downloadDTO.setPAGENO("1");
downloadDTO.setPAGESIZE("1000");
downloadDTO.setNSRSBH(companyservice.getSellertax());
downloadDTO.setSBBH(goldenTaxDiskNo);
+ downloadDTO.setKPJH(fjh);
+ downloadDTO.setXXBBH(downloadRedInfoDTO.getBillInfoNo());
+ downloadDTO.setTKRQ_Q(downloadRedInfoDTO.getBillTimeBegin());
+ downloadDTO.setTKRQ_Z(downloadRedInfoDTO.getBillTimeEnd());
String param = JSONUtil.toXmlStr(JSONUtil.parse(downloadDTO));
- param = "\n" +
- "\n" +
- "\n" +
+ param = "" +
+ "" +
+ "" +
"" + param + "" +
"";
-
- /*param = "\n" +
- "\n" +
- "\n" +
- "\n" +
- " 370103999999060\n" +
- " \n" +
- " 661027630342\n" +
- " \n" +
- " 0\n" +
- " \n" +
- " N\n" +
- " \n" +
- " 2019-04-01\n" +
- " \n" +
- " 2019-05-01\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " 0\n" +
- " \n" +
- " 1\n" +
- " \n" +
- " 1000\n" +
- "";*/
-
//发起请求
AjaxResult ajaxResult = null;
try {
ajaxResult = AisinoConsoleUtil.sendRequestXML(AisinoConsoleConstants.RED_DOWLOAD, "0201", param, companyservice);
} catch (Exception e) {
- log.error("【销项发票】【总部控制台接口】【发票作废】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
+ log.error("【销项发票】【总部控制台接口】【红字申请表下载】发票请求异常,请求报文{},销方信息{}", "", JSONObject.toJSONString(companyservice));
e.printStackTrace();
throw new JianshuiServiceException("系统异常!");
}
@@ -913,16 +907,47 @@ public class AisinoConsoleInvoiceApiZhongQiServiceImpl implements IInvoiceApiSer
String retcode = resultJSON.get("retcode") != null ? resultJSON.get("retcode").toString() : "";
String retmsg = resultJSON.get("retmsg") != null ? resultJSON.get("retmsg").toString() : "";
- if (!StringUtils.equals("0000", retcode)) {
+ // 返回结果处理
+ if (!StringUtils.equals("0", retcode)) {
- return new HXResponse(retmsg);
- }
+ // TODO: 2023/10/28 返回结果待解析。
+ /*if(sss.indexOf("") != -1 && sss.indexOf("") != -1){
+ System.out.println("存在");
+ String data = sss.substring(sss.indexOf("") + 6,sss.indexOf(""));
+ System.out.println(data);
+ if(StrUtil.isNotEmpty(data)){
+ Map map = new HashMap<>();
+ data = Base64.decodeStr(data,"GB2312");
+ if(data.indexOf("") != -1 && data.indexOf("") != -1){
+ String dataChild = data.substring(data.indexOf("") + 6,data.indexOf(""));
- return null;
+
+ cn.hutool.json.JSONObject dataChildJson = JSONUtil.parseObj(dataChild);
+ String RedInvReqBill = dataChildJson.get("RedInvReqBill").toString();
+ cn.hutool.json.JSONArray jsonArray = JSONUtil.parseArray(RedInvReqBill);
+ List downloadJdcVOList = BeanUtil.copyToList(jsonArray,DownloadJdcVO.class);
+ System.out.println(jsonArray);
+
+
+
+ }
+
+
+ System.out.println(map);
+ }
+ }*/
+
+
+ return new HXResponse("9999",retmsg);
+ }else{
+ return new HXResponse("9999",retmsg);
+ }
}
+
+
/**
* 作废结果查询
*/
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 352b94e..5b5c617 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
@@ -45,7 +45,7 @@ public class InvoiceBackTask
log.info("[重汽回调定时任务开始执行]---{}次",params);
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("status", "0").eq("status","2");
+ queryWrapper.eq("status", "0").or().eq("status","2");
List invoiceBackList = invoiceBackMapper.selectList(queryWrapper);
for (InvoiceBack invoiceBack : invoiceBackList) {
@@ -79,7 +79,7 @@ public class InvoiceBackTask
break;
}
- Invoice invoice = invoiceMapper.selectBySystemOrderNo(null,id);
+ Invoice invoice = invoiceMapper.selectBySystemOrderNo(Long.valueOf(identity),id);
if (invoice == null) {
log.info("【控制台】发票信息未查询到,id={}", id);
invoiceBack.setStatus("3");
@@ -94,12 +94,12 @@ public class InvoiceBackTask
log.info("【控制台】发票回调接口,发送数据结束,id={},接口返回信息={}", id, result);
JSONObject jsonObject = JSONUtil.parseObj(result);
if(jsonObject != null){
- String status = jsonObject.get("status") != null ? jsonObject.get("status").toString():"";
- String message = jsonObject.get("message")!= null ? jsonObject.get("message").toString():"";
+ String status = jsonObject.get("Result") != null ? jsonObject.get("Result").toString():"";
+ String message = jsonObject.get("Message")!= null ? jsonObject.get("Message").toString():"";
if("0000".equals(status)){
invoiceBack.setStatus("1");
- invoiceBack.setBackMsg("发票信息未查询到");
+ invoiceBack.setBackMsg(message);
invoiceBackMapper.updateInvoiceBack(invoiceBack);
}else if("9999".equals(status)){
invoiceBack.setStatus("3");
diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/aisino/console/AisinoConsoleUtil.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/aisino/console/AisinoConsoleUtil.java
index 751bf44..5144a8d 100644
--- a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/aisino/console/AisinoConsoleUtil.java
+++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/aisino/console/AisinoConsoleUtil.java
@@ -200,15 +200,14 @@ public class AisinoConsoleUtil {
throw new JianshuiServiceException("未获取到企业信息,请联系管理员!");
}
-
//JSON明文BASE64加密,字符集GB2312,替换+为-
- String param = Base64.encode(SIDParam,"GB2312").replace("+", "_");
+ String param = Base64.encode(SIDParam,"GB2312");
- param = "\n" +
- "\n" +
- ""+paramId+"\n" +
- ""+param+"\n" +
- "\n";
+ param = "" +
+ "" +
+ ""+paramId+"" +
+ ""+param+"" +
+ "";
//获取请求地址
List companyserviceDetailList = companyservice.getCompanyserviceDetailList();
@@ -220,12 +219,25 @@ public class AisinoConsoleUtil {
// param = "129PEZQWFQ_CiAgICA8SU5QVVQ_CiAgICAgICAgPFJlZEludlJlcUJpbGw_PHJlcW5zcnNiaD45MTEzMDkzMDY3ODUxMTU1WFk8L3JlcW5zcnNiaD48ZmpoPjEyMzwvZmpoPjxqc3BiaD42NjEwMjQ2NDMwNjg8L2pzcGJoPjxvdXRUcmFkZU9yZGVybm8_NjYxMDI0NjQzMDY4MjMwMjE4MTAzNTI0PC9vdXRUcmFkZU9yZGVybm8_PHJlZEluZm9UeXBlPjA8L3JlZEluZm9UeXBlPjxvcmlnaW5GcGRtPjM3MDAyMjIxMzA8L29yaWdpbkZwZG0_PG9yaWdpbkZwaG0_MTA0MDUxNzI8L29yaWdpbkZwaG0_PGJpbGxJbnB1dFRpbWU_MjAyMi0xMS0xMTwvYmlsbElucHV0VGltZT48dGF4VHlwZT4xPC90YXhUeXBlPjxtdWx0VGF4UmF0ZT4wPC9tdWx0VGF4UmF0ZT48RGF0ZT4yMDIyLTExLTExPC9EYXRlPjxidXllck5hbWU_utOxsdbQsaa3qMC8udy8/tbG1OzT0M/euavLvjwvYnV5ZXJOYW1lPjxidXllclRheG51bT45MTEzMDkzMDY3ODUxMTU1WFk8L2J1eWVyVGF4bnVtPjxzZWxsZXJOYW1lPrq90MWy4srUxvPStTwvc2VsbGVyTmFtZT48c2VsbGVyVGF4bnVtPjM3MDEwMzk5OTk5OTAzMDwvc2VsbGVyVGF4bnVtPjxBbW91bnQ_LTE5NTQ1MS4zMjwvQW1vdW50Pjx0YXhyYXRlPjAuMDM8L3RheHJhdGU_PHRheD4tMTI3MDQuMzQ8L3RheD48YXBwbHlSZW1hcms_MDAwMDAwMDEwMDwvYXBwbHlSZW1hcms_PGJtYmJoPjIzMjMyMzI8L2JtYmJoPjxTTEJaPjA8L1NMQlo_PFJlZEludlJlcUJpbGxNeD48R29vZHNNeD48Z29vZE5hbWU_xtXMvLDlUTIzNUI8L2dvb2ROYW1lPjxzcGVjPjQwKjIyMDAqTDwvc3BlYz48cHJpY2U_MzYxOS40NjkwMjY1NTwvcHJpY2U_PG51bT4tMjc8L251bT48dGF4ZnJlZWFtdD4tOTc3MjUuNjY8L3RheGZyZWVhbXQ_PHRheHJhdGU_MC4xMzwvdGF4cmF0ZT48dGF4Pi0xMjcwNC4zNDwvdGF4Pjx3aXRoVGF4RmxhZz5OPC93aXRoVGF4RmxhZz48c3BibT4xMDgwMjA3MDc8L3NwYm0_PHloemNicz4wPC95aHpjYnM_IDwvR29vZHNNeD4gICAgICAgICAgICA8L1JlZEludlJlcUJpbGxNeD4KICAgICAgICA8L1JlZEludlJlcUJpbGw_CiAgICA8L0lOUFVUPgo8L0ZQWFQ_";
- JSONObject jsonObject = new JSONObject();
+ /* JSONObject jsonObject = new JSONObject();
jsonObject.put("param",param);
- String aa = JSONUtil.toJsonStr(jsonObject);
+ String aa = JSONUtil.toJsonStr(jsonObject);*/
+
+ // sb控制台
+ String paramResult = "{'param':'" + param + "'}";
+
+ log.info("【总部控制台】实际发送报文:{}",Base64.encode(paramResult,"GB2312").replace("+", "_"));
+// String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(paramResult,"GB2312").replace("+", "_");
+
+ paramResult.replaceAll("\r|\n","");
+// System.out.println("===="+paramResult);
+
+
+// paramResult = "{'param':'0201PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIj8+PEZQWFQ+PElOUFVUPjxOU1JTQkg+MTEwMTAxMTU2NTcxNDQ3PC9OU1JTQkg+PFNCQkg+NjYxNTY1NzE0NDcxPC9TQkJIPjxLUEpIPjA8L0tQSkg+PFlRWlQ+TjwvWVFaVD48VEtSUV9RPjIwMTYtMTAtMDE8L1RLUlFfUT48VEtSUV9aPjIwMTYtMTEtMDE8L1RLUlFfWj48R0ZTSD5OPC9HRlNIPjxYRlNIPjwvWEZTSD48WFhCQkg+PC9YWEJCSD48WFhCRlc+MDwvWFhCRlc+PFBBR0VOTz4xPC9QQUdFTk8+PFBBR0VTSVpFPjEwPC9QQUdFU0laRT48L0lOUFVUPjwvRlBYVD4='}";
+// System.out.println("===="+paramResult);
+// System.out.println("===="+Base64.encode(paramResult,"GB2312").replace("+", "_"));
+ String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(paramResult,"GB2312").replace("+", "_");
- log.info("【总部控制台】实际发送报文:{}",Base64.encode(aa,"GB2312").replace("+", "_"));
- String requestUrl = clientIp + "?SID="+SID+"&SIDParam=" + Base64.encode(aa,"GB2312").replace("+", "_");
requestUrl = requestUrl.replaceAll("\r|\n","");
try {
@@ -244,6 +256,11 @@ public class AisinoConsoleUtil {
throw new JianshuiServiceException("未获取到接口返回信息!");
}
String decodeResult = Base64.decodeStr(result.replace("_", "+"),"GB2312");
+
+// result = "eydwYXJhbSc6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkdCSyI/PjxGUFhUX0NPTV9JTlBVVD48SUQ_MDIwMTwvSUQ_PERBVEE_UEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVIwSkxJajgrUEVaUVdGUStQRWxPVUZWVVBqeE9VMUpUUWtnK01URXdNVEF4TVRVMk5UY3hORFEzUEM5T1UxSlRRa2crUEZOQ1FrZytOall4TlRZMU56RTBORGN4UEM5VFFrSklQanhMVUVwSVBqQThMMHRRU2tnK1BGbFJXbFErVGp3dldWRmFWRDQ4VkV0U1VWOVJQakl3TVRZdE1UQXRNREU4TDFSTFVsRmZVVDQ4VkV0U1VWOWFQakl3TVRZdE1URXRNREU4TDFSTFVsRmZXajQ4UjBaVFNENU9QQzlIUmxOSVBqeFlSbE5JUGp3dldFWlRTRDQ4V0ZoQ1FrZytQQzlZV0VKQ1NENDhXRmhDUmxjK01Ed3ZXRmhDUmxjK1BGQkJSMFZPVHo0eFBDOVFRVWRGVGs4K1BGQkJSMFZUU1ZwRlBqRXdQQzlRUVVkRlUwbGFSVDQ4TDBsT1VGVlVQand2UmxCWVZEND08L0RBVEE_PC9GUFhUX0NPTV9JTlBVVD4nfQ==";
+// result = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIj8+PEZQWFQ+PElOUFVUPjxOU1JTQkg+MTEwMTAxMTU2NTcxNDQ3PC9OU1JTQkg+PFNCQkg+NjYxNTY1NzE0NDcxPC9TQkJIPjxLUEpIPjA8L0tQSkg+PFlRWlQ+TjwvWVFaVD48VEtSUV9RPjIwMTYtMTAtMDE8L1RLUlFfUT48VEtSUV9aPjIwMTYtMTEtMDE8L1RLUlFfWj48R0ZTSD5OPC9HRlNIPjxYRlNIPjwvWEZTSD48WFhCQkg+PC9YWEJCSD48WFhCRlc+MDwvWFhCRlc+PFBBR0VOTz4xPC9QQUdFTk8+PFBBR0VTSVpFPjEwPC9QQUdFU0laRT48L0lOUFVUPjwvRlBYVD4=";
+ decodeResult = Base64.decodeStr(result.replace("_", "+"),"GB2312");
+
log.info("【总部控制台工具类】请求返回解密报文:" + decodeResult);
JSON resultJSON = JSONUtil.xmlToJson(decodeResult);