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);