task:4216 影像ofd to png接口报错暂停开发

release
WangQi 2 years ago
parent c98a2b72d5
commit f1ed220213
  1. 16
      order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java
  2. 6
      order-management-consumer/src/main/resources/bootstrap.yaml
  3. 5
      order-management-invoice/pom.xml
  4. 2
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceDetailsController.java
  5. 19
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OfdToPngSDEnergyService.java
  6. 54
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OfdToPngSDEnergyServiceImpl.java
  7. 13
      order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtil.java

@ -1,7 +1,9 @@
package com.dxhy.order.utils;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.http.HttpRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@ -98,6 +100,20 @@ public class HttpUtils {
}
}
/**
* 上传文件
* @param url
* @param file
* @param fileName
* @return
*/
public static String doPostUpload(String url, byte[] file,String fileName) {
Map<String,String> headers = new HashMap<>();
headers.put("Content-Type", "multipart/form-data");
String rs = HttpRequest.post(url).addHeaders(headers).form("file", file, fileName).execute().body();
return rs;
}
public static String pushCheckResultToSAP(String requestParam,String snYxUrl,String userName,String password) throws Exception {
log.info("获取请求参数:{} , 请求地址:{}", requestParam, snYxUrl);
String post = HttpUtils.sendPo(snYxUrl, requestParam, userName, password);

@ -6,9 +6,10 @@ spring:
name: order-api
profiles:
# Spring 配置文件读取
active: @deployType@
# active: @deployType@
# active: own
# active: std
active: dev
#active: test
jackson:
# jackson 日期格式化
@ -39,7 +40,8 @@ sims:
#订单数据库类型区分,要么mysql,要么Oracle,要么weblogic
db: mysql
#订单redis数据库类型区分,要么redis,要么redis-sentinel
redisDb: redis-sentinel
# redisDb: redis-sentinel
redisDb: redis
# 0 mysql 1 oracle
dataType: 0

@ -374,6 +374,11 @@
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies>
<build>

@ -402,6 +402,8 @@ public class InvoiceDetailsController {
OfdToPngRequest ofdToPngRequest = new OfdToPngRequest();
ofdToPngRequest.setNSRSBH(xhfNsrsbh);
ofdToPngRequest.setOFDWJL(fileDownLoad.getFileContent());
// 解密后的文件流
byte[] fileByte = Base64Encoding.decode(fileDownLoad.getFileContent());
OfdToPngResponse ofdToPngResponse = HttpInvoiceRequestUtil.getOfdPng(invoiceConfig.configOfdToPngUrl(), ofdToPngRequest);
if (ofdToPngResponse != null && ConfigureConstant.STRING_0000.equals(ofdToPngResponse.getZTDM()) && ObjectUtil.isNotEmpty(ofdToPngResponse.getPNGWJL())) {
pngBase64List.addAll(ofdToPngResponse.getPNGWJL());

@ -0,0 +1,19 @@
package com.dxhy.order.invoice.module.invoice.service;
import com.dxhy.order.model.ofd.OfdToPngResponse;
import java.io.IOException;
import java.util.List;
public interface OfdToPngSDEnergyService {
/**
* OFD转png
* @param url
* @param bytes
* @return
* @throws IOException
*/
OfdToPngResponse getOfdPngBySDenergy(byte[] bytes) throws IOException;
}

@ -0,0 +1,54 @@
package com.dxhy.order.invoice.module.invoice.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.order.constant.OrderInfoEnum;
import com.dxhy.order.invoice.module.invoice.service.OfdToPngSDEnergyService;
import com.dxhy.order.model.ofd.OfdToPngResponse;
import com.dxhy.order.utils.HttpUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Date;
@Service
@Slf4j
public class OfdToPngSDEnergyServiceImpl implements OfdToPngSDEnergyService {
@Value("${yx.url}")
private String yxurl;
@Value("${yx.simsSalt}")
private String simsSalt;
@Override
public OfdToPngResponse getOfdPngBySDenergy(byte[] bytes) throws IOException {
Long timestamp = new Date().getTime();
String md5Str = DigestUtil.md5Hex(timestamp + simsSalt);
String url = yxurl + "/yxSims/ofdToImage?timestamp="+timestamp+"&md5Str="+md5Str;
OfdToPngResponse ofdToPngResponse = new OfdToPngResponse();
try {
String rs = HttpUtils.doPostUpload(url, bytes, IdUtil.fastSimpleUUID()+".ofd");
JSONObject res = JSONObject.parseObject(rs);
if (!"200".equals(res.getString("status"))) {
ofdToPngResponse.setZTDM(OrderInfoEnum.INTERFACE_ERROR.getKey());
ofdToPngResponse.setZTXX(res.getString("message"));
return ofdToPngResponse;
}
Arrays.asList(res.getJSONArray("data"));
// ofdToPngResponse.setPNGWJL();
}catch (Exception e) {
log.error("影像系统ofd转png接口异常,异常信息为:{}", e);
ofdToPngResponse.setZTDM(OrderInfoEnum.INTERFACE_ERROR.getKey());
ofdToPngResponse.setZTXX(e.getMessage());
}
return ofdToPngResponse;
}
}

@ -1,11 +1,14 @@
package com.dxhy.order.invoice.utils;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.digest.MD5;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.MD5Utils;
import com.dxhy.order.constant.*;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.model.QueryInvalidResultRequest;
@ -86,9 +89,19 @@ import com.dxhy.order.invoice.module.invoice.model.bo.VehicleInvoiceExpBo;
import com.dxyun.invoice.protocol.InterfaceData;
import com.dxyun.invoice.protocol.ProtocolUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.FileItemFactory;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;

Loading…
Cancel
Save