diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java index b12202e4..2f1713be 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.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 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); diff --git a/order-management-consumer/src/main/resources/bootstrap.yaml b/order-management-consumer/src/main/resources/bootstrap.yaml index e3a47db7..f3c94e37 100644 --- a/order-management-consumer/src/main/resources/bootstrap.yaml +++ b/order-management-consumer/src/main/resources/bootstrap.yaml @@ -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 diff --git a/order-management-invoice/pom.xml b/order-management-invoice/pom.xml index dc9c17b8..c86bd38b 100644 --- a/order-management-invoice/pom.xml +++ b/order-management-invoice/pom.xml @@ -374,6 +374,11 @@ + + org.springframework + spring-test + + diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceDetailsController.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceDetailsController.java index 33131452..8f6b40fa 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceDetailsController.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceDetailsController.java @@ -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()); diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OfdToPngSDEnergyService.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OfdToPngSDEnergyService.java new file mode 100644 index 00000000..e6ac8a01 --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OfdToPngSDEnergyService.java @@ -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; + +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OfdToPngSDEnergyServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OfdToPngSDEnergyServiceImpl.java new file mode 100644 index 00000000..8100f6f9 --- /dev/null +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OfdToPngSDEnergyServiceImpl.java @@ -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; + } +} diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtil.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtil.java index a769f27d..59599bbe 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtil.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/utils/HttpInvoiceRequestUtil.java @@ -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;