Jelajahi Sumber

1. 永诚车险保单修改.

ligang134 3 tahun lalu
induk
melakukan
4745426844

+ 6 - 0
src/main/java/com/ydtech/constants/SysConstants.java

@@ -46,4 +46,10 @@ public class SysConstants {
      */
     public static final String C = "C";
 
+
+    /**
+     * 车险保单目录  add lig 2023-09-21
+     */
+    public static String CAR_INS_POLICY = "carInsPolicy";
+
 }

+ 59 - 22
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.*;
 import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 import com.ydtech.components.InsAlltrustRequestApiComponents;
 import com.ydtech.constants.InsTaskHistoryEnum;
+import com.ydtech.constants.SysConstants;
 import com.ydtech.constants.enums.InsOrderStatus;
 import com.ydtech.constants.enums.InsQuoteFlow;
 import com.ydtech.constants.enums.dict.AttachInsureEnum;
@@ -111,7 +112,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     @Value("${api.url}")
     private String apiUrl;
 
-
     @Autowired
     private YcBuildData ycBuildData;
     @Autowired
@@ -902,6 +902,27 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             AssertionUtils.isEmpty(iac,"报价订单不存在");
             InsOrders order = insOrdersService.getById(iac.getOrderno());
 
+
+            String licensePlate = order.getLicenseno();
+
+            //如果保单已经生成了就直接返回
+            if (policyPrintVo.getType().equals("2")) {
+                Map m = new HashMap();
+
+                String jqFlagUrl = gainExistCarInsPolicy(licensePlate + "-交强险标志.pdf",licensePlate);
+                String jqUrl = gainExistCarInsPolicy(licensePlate + "-交强险保单.pdf",licensePlate);
+                String syUrl = gainExistCarInsPolicy(licensePlate + "-商业险保单.pdf",licensePlate);
+                if(null !=jqFlagUrl || null != jqUrl || null != syUrl ){
+                    m.put("jqFlagUrl", jqFlagUrl);
+                    m.put("jqUrl", jqUrl);
+                    m.put("syUrl", syUrl);
+                    return HttpResult.ok(m);
+                }
+
+            }
+
+
+
             // 获取协议配置信息
             YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
             String policyNo = policyPrintVo.getRiskCode().equals("0507") ? iac.getJqpolicyno() : iac.getSypolicyno();
@@ -927,8 +948,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 Map m = new HashMap();
 
                 String bzInsUrl = StringUtils.isNotEmpty(pResp.getPolicyBZUrl())?pResp.getPolicyBZUrl().replaceAll(";pkid", "&pkid"):"";
-                String licensePlate = order.getLicenseno();
-                String jqFlagUrl = gainCarInsPolicy(bzInsUrl,licensePlate + "-交强险标志.pdf");
+                String jqFlagUrl = gainCarInsPolicy(bzInsUrl,licensePlate + "-交强险标志.pdf",licensePlate);
                 if (policyPrintVo.getType().equals("1")) {
                     m.put("jqFlagUrl", jqFlagUrl);
                     m.put("jqUrl", "");
@@ -938,8 +958,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                     String jqInsUrl = StringUtils.isNotEmpty(pResp.getJqpolicyUrl())?pResp.getJqpolicyUrl().replaceAll(";pkid", "&pkid"):"";
                     String syInsUrl = StringUtils.isNotEmpty(pResp.getSypolicyUrl())?pResp.getSypolicyUrl().replaceAll(";pkid", "&pkid"):"";
 
-                    String jqUrl = gainCarInsPolicy(jqInsUrl,licensePlate + "-交强险保单.pdf");
-                    String syUrl = gainCarInsPolicy(syInsUrl,licensePlate + "-商业险保单.pdf");
+                    String jqUrl = gainCarInsPolicy(jqInsUrl,licensePlate + "-交强险保单.pdf",licensePlate);
+                    String syUrl = gainCarInsPolicy(syInsUrl,licensePlate + "-商业险保单.pdf",licensePlate);
 
                     m.put("jqFlagUrl", jqFlagUrl);
                     m.put("jqUrl", jqUrl);
@@ -1767,29 +1787,29 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
 
         if(null != owner){
-            InsAlltrustRegion insAlltrustRegion = findRegion(owner);
-            if(null != insAlltrustRegion){
-                m.getRequestLabel().getCondition().getVhlowner().setCProvince(insAlltrustRegion.getProvinceCode());
-                m.getRequestLabel().getCondition().getVhlowner().setCCity(insAlltrustRegion.getCityCode());
-                m.getRequestLabel().getCondition().getVhlowner().setCCounty(insAlltrustRegion.getAreaCode());
+            InsAlltrustRegion ownerRegion = findRegion(owner);
+            if(null != ownerRegion){
+                m.getRequestLabel().getCondition().getVhlowner().setCProvince(ownerRegion.getProvinceCode());
+                m.getRequestLabel().getCondition().getVhlowner().setCCity(ownerRegion.getCityCode());
+                m.getRequestLabel().getCondition().getVhlowner().setCCounty(ownerRegion.getAreaCode());
             }
         }
 
         if(null != insured){
-            InsAlltrustRegion insAlltrustRegion = findRegion(insured);
-            if(null != insAlltrustRegion){
-                m.getRequestLabel().getCondition().getInsured().setCProvince(insAlltrustRegion.getProvinceCode());
-                m.getRequestLabel().getCondition().getInsured().setCCity(insAlltrustRegion.getCityCode());
-                m.getRequestLabel().getCondition().getInsured().setCCounty(insAlltrustRegion.getAreaCode());
+            InsAlltrustRegion insuredRegion = findRegion(insured);
+            if(null != insuredRegion){
+                m.getRequestLabel().getCondition().getInsured().setCProvince(insuredRegion.getProvinceCode());
+                m.getRequestLabel().getCondition().getInsured().setCCity(insuredRegion.getCityCode());
+                m.getRequestLabel().getCondition().getInsured().setCCounty(insuredRegion.getAreaCode());
             }
         }
 
         if(null != applicant){
-            InsAlltrustRegion insAlltrustRegion = findRegion(applicant);
-            if(null != insAlltrustRegion){
-                m.getRequestLabel().getCondition().getApplicant().setCProvince(insAlltrustRegion.getProvinceCode());
-                m.getRequestLabel().getCondition().getApplicant().setCCity(insAlltrustRegion.getCityCode());
-                m.getRequestLabel().getCondition().getApplicant().setCCounty(insAlltrustRegion.getAreaCode());
+            InsAlltrustRegion applicantRegion = findRegion(applicant);
+            if(null != applicantRegion){
+                m.getRequestLabel().getCondition().getApplicant().setCProvince(applicantRegion.getProvinceCode());
+                m.getRequestLabel().getCondition().getApplicant().setCCity(applicantRegion.getCityCode());
+                m.getRequestLabel().getCondition().getApplicant().setCCounty(applicantRegion.getAreaCode());
             }
         }
 
@@ -1800,6 +1820,11 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         String city = info.getCity();
         String area = info.getCounty();
 
+        //lig 2023-09-21 临时解决   页面解决后可删除。
+        if(StringUtils.isEmpty(province) && StringUtils.isEmpty(city) && StringUtils.isEmpty(area)){
+            throw new SystemException("永诚报价需要录入省市县");
+        }
+
         LambdaQueryWrapper<InsAlltrustRegion> lqw = new LambdaQueryWrapper<>();
         lqw.eq(StringUtils.isNotEmpty(province),InsAlltrustRegion::getProvince, province);
         lqw.eq(StringUtils.isNotEmpty(city),InsAlltrustRegion::getCity, city);
@@ -1999,10 +2024,22 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
      * @author: lig
      * @date: 2023年09月21日 0021
      */
-    public String gainCarInsPolicy(String url,String fileName){
-        String dir = "carInsPolicy/";
+    public String gainCarInsPolicy(String url,String fileName,String licensePlate){
+        String dir = "carInsPolicy/" + licensePlate + "/";
         return FileUtil.netUrlToFile(url,dir,fileName,uploadFilePath,apiUrl + showFileUrl);
     }
 
+    /**
+     *  获取《存在》的保单地址
+     *
+     * @author: lig
+     * @date: 2023年09月21日 0021
+     */
+    public String gainExistCarInsPolicy(String fileName,String licensePlate){
+        String dir = SysConstants.CAR_INS_POLICY + "/" + licensePlate + "/";
+
+        return FileUtil.fileExist(dir, fileName, uploadFilePath, apiUrl + showFileUrl);
+    }
+
 
 }

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

@@ -5,6 +5,7 @@ import com.ydtech.utils.StringUtils;
 import java.io.*;
 import java.net.MalformedURLException;
 import java.net.URI;
+import java.util.Arrays;
 
 /**
  * 文件读取工具类
@@ -75,25 +76,34 @@ public class FileUtil {
     }
 
 
-
-
     /**
-     *  网络url转文件
-     * @param dir   目录 杠结束  carInsPolicy/
+     * 网络url转文件
      *
+     * @param url 保司返回的保单地址
+     * @param dir 目录 杠结束  carInsPolicy/
+     * @param path  文件真实目录 D:/upload/
+     * @param showUrl  展示地址 http://sxzgkj.baoxianzhanggui.com/web-api/晋A12345/晋A12345-交强险保单.pdf
      * @author: lig
      * @date: 2023年09月21日 0021
      */
-    public static String netUrlToFile(String url, String dir,String fileName,String path,String showUrl) {
+    public static String netUrlToFile(String url, String dir, String fileName, String path, String showUrl) {
 //        String s = "http://eserviceinterface.ciitc.com.cn/ePolicyServices/insurancePolicy.do?downFiles=key&amp&pkid=a7370fea493945868b8ca847d3ef9d9e";
 //        String path = "D:/upload/";
 //        String dir = "carInsPolicy/";
-        if(StringUtils.isEmpty(url)) return "";
-        String showPath = String.format("%s%s%s",showUrl,dir,fileName);
+        if (StringUtils.isEmpty(url)) return "";
+        String showPath = String.format("%s%s%s", showUrl, dir, fileName);
         String uploadPath = path + dir;
 
         try {
 
+            //存在
+            File existFile = new File(uploadPath + fileName);
+            if (existFile.exists()) {
+                System.err.println("存在的文件:" + existFile.getPath());
+                System.err.println("存在的文件的展示地址:" + showPath);
+                return showPath;
+            }
+
             File folder = new File(uploadPath);
             if (!folder.isDirectory()) {
                 folder.mkdirs();
@@ -104,7 +114,7 @@ public class FileUtil {
             File file = new File(uploadPath + fileName);
             copyInputStreamToFile(inputStream, file);
 
-            System.err.println("文件路径:"+file.getPath());
+            System.err.println("文件路径:" + file.getPath());
             return showPath;
 
         } catch (MalformedURLException e) {
@@ -115,6 +125,33 @@ public class FileUtil {
 
     }
 
+    /**
+     * 文件存在
+     *
+     *
+     * @param dir 目录 杠结束  carInsPolicy/
+     * @param path  文件真实目录 D:/upload/
+     * @param showUrl  展示地址 http://sxzgkj.baoxianzhanggui.com/web-api/晋A12345/晋A12345-交强险保单.pdf
+     * @author: lig
+     * @date: 2023年09月21日 0021
+     */
+    public static String fileExist(String dir, String fileName, String path, String showUrl) {
+        String showPath = String.format("%s%s%s", showUrl, dir, fileName);
+        String uploadPath = path + dir;
+
+
+        //存在
+        File existFile = new File(uploadPath + fileName);
+        if (existFile.exists()) {
+            System.err.println("存在的文件:" + existFile.getPath());
+            System.err.println("存在的文件的展示地址:" + showPath);
+            return showPath;
+        }
+        return null;
+
+
+    }
+
 
     // InputStream -> File
     private static void copyInputStreamToFile(InputStream inputStream, File file)
@@ -135,4 +172,15 @@ public class FileUtil {
         }
 
     }
+
+    public static void main(String[] args) {
+        String licensePlate = "晋ABCDEF";
+        String url = "http://eserviceinterface.ciitc.com.cn/ePolicyServices/insurancePolicy.do?downFiles=key&amp&pkid=a7370fea493945868b8ca847d3ef9d9e";
+        String dir = "carInsPolicy/" + licensePlate + "/";
+        String fileName = licensePlate + "-交强险保单.pdf";
+        String path = "D:/upload/";
+        String showUrl = "http://127.0.0.1:8080/upload/";
+        netUrlToFile(url, dir, fileName, path, showUrl);
+
+    }
 }