فهرست منبع

渤海财险代码修改

wks 2 سال پیش
والد
کامیت
332801da9c

+ 1 - 0
src/main/java/com/ydtech/modules/inv/controller/InvReceivableController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.inv.model.po.InvSettlementSource;

+ 80 - 7
src/main/java/com/ydtech/modules/order/components/FileComponents.java

@@ -1,14 +1,18 @@
 package com.ydtech.modules.order.components;
 
+import com.ydtech.exception.SystemException;
 import com.ydtech.utils.baidu.FileUtil;
+import net.lingala.zip4j.core.ZipFile;
+import net.lingala.zip4j.exception.ZipException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import java.io.*;
-import java.net.MalformedURLException;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
+import java.util.ArrayList;
+import java.util.List;
 
 
 @Component
@@ -23,9 +27,78 @@ public class FileComponents {
     @Value("${api.url}")
     private String apiUrl;
 
-    public String gainCarInsPolicy(String url, String fileName, String licensePlate) {
-        String dir = "carInsPolicy/" + licensePlate + "/";
-        return FileUtil.netUrlToFile(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl);
+    public String gainCarInsPolicy(String url, String fileName, String licensePlate, String password) {
+        try {
+            String dir = uploadFilePath + "carInsPolicy/" + licensePlate + "/";
+            String showPath = apiUrl + showFileUrl + "carInsPolicy/" + licensePlate + "/" + fileName;
+            File existFile = new File(dir + fileName);
+            if (existFile.exists()) {
+                return showPath;
+            }
+
+            File folder = new File(dir);
+            if (!folder.isDirectory()) {
+                folder.mkdirs();
+            }
+
+            unzipFile(url, dir, password + ".zip", password, fileName);
+            return showPath;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new SystemException("文件异常");
+        }
+    }
+
+    public static void unzipFile(String url, String zipPath, String zipName, String password, String newFileName) throws ZipException,
+            IOException {
+        String path = zipPath + zipName;
+        URI u = URI.create(url);
+        InputStream inputStream = u.toURL().openStream();
+        File file = new File(path);
+        FileUtil.copyInputStreamToFile(inputStream, file);
+        ZipFile zipFile = new ZipFile(path);
+        zipFile.setPassword(password);
+
+        String s = zipPath + password + "/";
+        zipFile.extractAll(s);
+
+        String fileName = getFileNames(s).get(0);
+        File oldFile = new File(s + fileName);
+        File newFile = new File(zipPath, newFileName);
+
+        oldFile.renameTo(newFile);
+    }
+
+    /**
+     * 得到文件名称
+     */
+    public static List<String> getFileNames(String path) {
+        File file = new File(path);
+        if (!file.exists()) {
+            return null;
+        }
+        List<String> fileNames = new ArrayList<>();
+        return getFileNames(file, fileNames);
     }
 
+    /**
+     * 得到文件名称
+     *
+     * @param file      文件
+     * @param fileNames 文件名
+     * @return {@link List}<{@link String}>
+     */
+    public static List<String> getFileNames(File file, List<String> fileNames) {
+        File[] files = file.listFiles();
+        for (File f : files) {
+            if (f.isDirectory()) {
+                getFileNames(f, fileNames);
+            } else {
+                fileNames.add(f.getName());
+            }
+        }
+        return fileNames;
+    }
+
+
 }

+ 18 - 12
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -71,7 +71,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class,
                 ptlAgreementAttribution);
         NonAutomotiveProductsRequest nonAutomotiveProductsRequest = new NonAutomotiveProductsRequest(parameters, productQueryVo);
-        NonAutomotiveProductsResponse response = boHaiRequestApiComponent.products(nonAutomotiveProductsRequest, parameters.getSysSourceCode());
+        NonAutomotiveProductsResponse response = boHaiRequestApiComponent.products(nonAutomotiveProductsRequest,
+                parameters.getSysSourceCode());
         List<NonAutomotiveProductsResponse.DataDTO.ProductsDTO> products = response.getData().getProducts();
         return HttpResult.ok(products);
     }
@@ -85,7 +86,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 ptlAgreementAttribution);
         NonAutomotiveProductsDetailsRequest nonAutomotiveProductsDetailsRequest = new NonAutomotiveProductsDetailsRequest(parameters,
                 productDetailsQueryVo);
-        NonAutomotiveProductsDetailsResponse response = boHaiRequestApiComponent.productsDetails(nonAutomotiveProductsDetailsRequest, parameters.getSysSourceCode());
+        NonAutomotiveProductsDetailsResponse response = boHaiRequestApiComponent.productsDetails(nonAutomotiveProductsDetailsRequest,
+                parameters.getSysSourceCode());
         List<NonAutomotiveProductsDetailsResponse.DataDTO.CoveragesDTO> coverages = response.getData().getCoverages();
         return HttpResult.ok(coverages);
     }
@@ -102,13 +104,15 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
 
         // 1 生成生成订单
-        GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest, parameters.getSysSourceCode());
+        GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest,
+                parameters.getSysSourceCode());
         String orderNo = generateOrderNoResponse.getData().getOrderNo();
 
         // 2 车型查询接口
         CarInfoVo carInfo = quoteInfoVo.getCarInfo();
         VehicleTypeQueryRequest vehicleTypeQueryRequest = new VehicleTypeQueryRequest(parameters, carInfo.getModelcname(), orderNo);
-        VehicleTypeQueryResponse vehicleTypeQueryResponse = boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest, parameters.getSysSourceCode());
+        VehicleTypeQueryResponse vehicleTypeQueryResponse = boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest,
+                parameters.getSysSourceCode());
         List<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO> vehicleModels = vehicleTypeQueryResponse.getData().getVehicleModels();
         VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO =
                 new CarModelsFilterUtils<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO>().to(vehicleModels, quoteInfoVo.getCarInfo());
@@ -126,7 +130,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 policyHolderInfo.getIdentifyNumber());
         VehicleConfirmationReqeust vehicleConfirmationReqeust = new VehicleConfirmationReqeust(parameters, quoteInfoVo, vehicleModelsDTO,
                 orderNo, ownerInfoArea, insuredPersonArea, policyHolderArea);
-        VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust, parameters.getSysSourceCode());
+        VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust
+                , parameters.getSysSourceCode());
         // 车辆实际价值
         String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
 
@@ -173,7 +178,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         // 核保请求
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
-        UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest, parameters.getSysSourceCode());
+        UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest,
+                parameters.getSysSourceCode());
         int i = underwritingResponse.getData().verificationUnderwriting();
         // 交强
         UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = underwritingResponse.getData().getTrafficPolicy();
@@ -212,6 +218,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
     public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(String subOrderNo) throws Exception {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
         InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
+        CustomerInfoVo customerInfoVo = insOrders.getApplyinfo().toJavaObject(CustomerInfoVo.class);
 
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
@@ -221,22 +228,21 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(parameters, insAreaCompany.getId(),
                 insAreaCompany.getJqpolicyno(), insAreaCompany.getSypolicyno());
-        ElectronicPolicyResponse response = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest, parameters.getSysSourceCode());
+        ElectronicPolicyResponse response = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest,
+                parameters.getSysSourceCode());
 
         ElectronicPolicyResponse.DataDTO data = response.getData();
         CrawlerPolicyPrintVo crawlerPolicyPrintVo = new CrawlerPolicyPrintVo();
         String licenseno = insOrders.getLicenseno();
-
         if (StringUtils.isNotEmpty(data.getTrafficEPolicyUrl())) {
             crawlerPolicyPrintVo.setJqxPolicyUrl(fileComponents.gainCarInsPolicy(data.getTrafficEPolicyUrl(),
-                    licenseno + insAreaCompany.getJqpolicyno() + "-交强险保单.pdf", licenseno));
+                    licenseno + "-" + insAreaCompany.getJqpolicyno() + "-交强险保单.pdf", licenseno, customerInfoVo.getIdentifyNumber()));
             crawlerPolicyPrintVo.setJqxFlagUrl(fileComponents.gainCarInsPolicy(data.getTrafficEPolicyUrl(),
-                    licenseno + insAreaCompany.getJqpolicyno() + "-交强险标志.pdf", licenseno));
+                    licenseno + "-" + insAreaCompany.getJqpolicyno() + "-交强险标志.pdf", licenseno, customerInfoVo.getIdentifyNumber()));
         }
-
         if (StringUtils.isNotEmpty(data.getBusinessEPolicyUrl())) {
             crawlerPolicyPrintVo.setSyxPolicyUrl(fileComponents.gainCarInsPolicy(data.getBusinessEPolicyUrl(),
-                    licenseno + insAreaCompany.getSypolicyno() + "-商业险保单.pdf", licenseno));
+                    licenseno + "-" + insAreaCompany.getSypolicyno() + "-商业险保单.pdf", licenseno, customerInfoVo.getIdentifyNumber()));
         }
 
         return HttpResult.ok(crawlerPolicyPrintVo);

+ 1 - 1
src/main/java/com/ydtech/utils/baidu/FileUtil.java

@@ -160,7 +160,7 @@ public class FileUtil {
 
 
     // InputStream -> File
-    private static void copyInputStreamToFile(InputStream inputStream, File file)
+    public static void copyInputStreamToFile(InputStream inputStream, File file)
             throws IOException {
 
         try (FileOutputStream outputStream = new FileOutputStream(file)) {