Jelajahi Sumber

手动上传保单

785834757 1 tahun lalu
induk
melakukan
63d11a367b

+ 1 - 1
src/main/java/com/ydtech/constants/InsuranceEnum.java

@@ -85,7 +85,7 @@ public enum InsuranceEnum {
     ZSIC("ZSIC", "浙商财产保险股份有限公司", ""),
     ZSIC("ZSIC", "浙商财产保险股份有限公司", ""),
     ZYBX("ZYBX", "中原农业保险股份有限公司", ""),
     ZYBX("ZYBX", "中原农业保险股份有限公司", ""),
     ZYIC("ZYIC", "中意财产保险有限公司", ""),
     ZYIC("ZYIC", "中意财产保险有限公司", ""),
-    SNPIC("SNPIC", "申能财产保险股份有限公司", "");
+    SNBX("SNBX", "申能财产保险股份有限公司", "shenneng");
 
 
     private final String code;
     private final String code;
 
 

+ 37 - 0
src/main/java/com/ydtech/modules/order/components/FileComponents.java

@@ -6,6 +6,7 @@ import net.lingala.zip4j.core.ZipFile;
 import net.lingala.zip4j.exception.ZipException;
 import net.lingala.zip4j.exception.ZipException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
@@ -77,6 +78,42 @@ public class FileComponents {
         }
         }
     }
     }
 
 
+    public String gainCarInsPolicyNew(MultipartFile file, String subOrderId, boolean flag) {
+        try {
+            String dir = uploadFilePath + "carInsPolicyNew/" + subOrderId + "/";
+            String showPath = apiUrl + showFileUrl + "carInsPolicyNew/" + subOrderId + "/" + file.getOriginalFilename();
+
+            File existFile = new File(dir + file.getOriginalFilename());
+            if (existFile.exists()) {
+                if (!flag) {
+                    return showPath; // 已存在且不要求覆盖
+                } else {
+                    existFile.delete(); // 删除旧文件
+                }
+            }
+
+            File folder = new File(dir);
+            if (!folder.isDirectory()) {
+                folder.mkdirs();
+            }
+
+            // 将上传的文件保存到本地
+            File destFile = new File(dir + file.getOriginalFilename());
+            file.transferTo(destFile);
+
+            return showPath;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new SystemException("文件上传异常");
+        }
+    }
+
+//    public static boolean uploadCarInsPolicyNew(MultipartFile file, String fileName, String subOrderId, boolean flag) {
+//        FileComponents fileComponents = new FileComponents();
+//        String policyPath = fileComponents.gainCarInsPolicyNew(file, fileName, subOrderId, flag);
+//        return true;
+//    }
+
     public static void unzipFile(String url, String zipPath, String zipName, String password, String newFileName) throws ZipException,
     public static void unzipFile(String url, String zipPath, String zipName, String password, String newFileName) throws ZipException,
             IOException {
             IOException {
         String path = zipPath + zipName;
         String path = zipPath + zipName;

+ 16 - 0
src/main/java/com/ydtech/modules/order/controller/InsAreaCompanyController.java

@@ -17,6 +17,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -165,4 +166,19 @@ public class InsAreaCompanyController {
         List<InsOrderPayDateRecord> list=insOrderPayDateRecordService.updateOrderDateRecord(subOrderId);
         List<InsOrderPayDateRecord> list=insOrderPayDateRecordService.updateOrderDateRecord(subOrderId);
         return HttpResult.ok(list);
         return HttpResult.ok(list);
     }
     }
+
+    @PostMapping("/uploadInsurancePolicy")
+    @ApiOperation("手动上传保单")
+    public HttpResult<String> uploadInsurancePolicy(@RequestParam("subOrderId") String subOrderId,
+                                                    @RequestParam("policyType") String policyType,
+                                                    @RequestParam("file") MultipartFile file) {
+        if(subOrderId.contains(",")){
+            subOrderId = subOrderId.replaceAll(",","");
+        }
+        if(policyType.contains(",")){
+            policyType = policyType.replaceAll(",","");
+        }
+        insOrderPdfUrlService.uploadInsurancePolicy(file,policyType,subOrderId,true);
+        return HttpResult.ok("上传成功",file.getOriginalFilename());
+    }
 }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/service/InsOrderPdfUrlService.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.dto.ReadPdfUrlListDto;
 import com.ydtech.modules.order.entity.dto.ReadPdfUrlListDto;
 import com.ydtech.modules.order.entity.po.InsOrderPdfUrl;
 import com.ydtech.modules.order.entity.po.InsOrderPdfUrl;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
 * @author Administrator
 * @author Administrator
@@ -24,4 +25,6 @@ public interface InsOrderPdfUrlService extends IService<InsOrderPdfUrl> {
      *  @Description:
      *  @Description:
      */ 
      */ 
     ReadPdfUrlListDto productOrderPdf(String subOrderId);
     ReadPdfUrlListDto productOrderPdf(String subOrderId);
+
+    String uploadInsurancePolicy(MultipartFile file, String policyType, String subOrderId, boolean flag);
 }
 }

+ 62 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrderPdfUrlServiceImpl.java

@@ -1,9 +1,11 @@
 package com.ydtech.modules.order.service.impl;
 package com.ydtech.modules.order.service.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.components.FileComponents;
 import com.ydtech.modules.order.dao.InsOrderPdfUrlMapper;
 import com.ydtech.modules.order.dao.InsOrderPdfUrlMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyExternalPolicy;
 import com.ydtech.modules.order.entity.InsAreaCompanyExternalPolicy;
@@ -16,6 +18,7 @@ import com.ydtech.utils.OrderUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
@@ -82,6 +85,9 @@ public class InsOrderPdfUrlServiceImpl extends ServiceImpl<InsOrderPdfUrlMapper,
     @Autowired
     @Autowired
     private YangGuangOrderApiService yangGuangOrderApiService;
     private YangGuangOrderApiService yangGuangOrderApiService;
 
 
+    @Autowired
+    private FileComponents fileComponents;
+
 
 
     /**
     /**
      *  @version
      *  @version
@@ -136,6 +142,62 @@ public class InsOrderPdfUrlServiceImpl extends ServiceImpl<InsOrderPdfUrlMapper,
         return readPdfUrlList(subOrderId,true);
         return readPdfUrlList(subOrderId,true);
     }
     }
 
 
+    @Override
+    public String uploadInsurancePolicy(MultipartFile file, String policyType, String subOrderId, boolean flag) {
+        boolean existsFlag = true;
+        String policyPath = fileComponents.gainCarInsPolicyNew(file, subOrderId, flag);
+        if(StringUtils.isBlank(policyPath)){
+            throw  new SystemException("文件上传失败");
+        }
+        // pdf 表中插入数据
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderId);
+        if(Objects.isNull(insAreaCompany)){
+            throw new SystemException("订单不存在");
+        }
+        InsOrderPdfUrl entityBySubOrderId = insOrderPdfUrlMapper.findEntityBySubOrderId(subOrderId);
+        if(Objects.isNull(entityBySubOrderId)){
+            existsFlag = false;
+            // 创建一个新的数据
+            entityBySubOrderId = new InsOrderPdfUrl();
+            entityBySubOrderId.setSubOrderNo(subOrderId);
+            entityBySubOrderId.setRiskCode(insAreaCompany.getProduct());
+        }
+        if (policyType.equals("1")) {
+            if(insAreaCompany.getJqapplyno().equals("")){
+                throw new SystemException("未查询到交强保单号");
+            }
+            entityBySubOrderId.setJqNo(insAreaCompany.getJqapplyno());
+            entityBySubOrderId.setJqUrl(policyPath);
+        }
+        if (policyType.equals("2")){
+            if(insAreaCompany.getJqapplyno().equals("")){
+                throw new SystemException("未查询到交强保单号");
+            }
+            entityBySubOrderId.setJqNo(insAreaCompany.getJqapplyno());
+            entityBySubOrderId.setJqSignUrl(policyPath);
+        }
+        if (policyType.equals("3")){
+            if(insAreaCompany.getSyapplyno().equals("")){
+                throw new SystemException("未查询到商业保单号");
+            }
+            entityBySubOrderId.setSyNo(insAreaCompany.getSyapplyno());
+            entityBySubOrderId.setSyUrl(policyType);
+        }
+        if (policyType.equals("4")){
+            if (insAreaCompany.getCrossInsurance().size() > 0) {
+                entityBySubOrderId.setJyNo(((JSONObject) insAreaCompany.getCrossInsurance().get(0)).getString("applicationNumber"));
+                entityBySubOrderId.setJyUrl(policyType);
+            }else{
+                throw new SystemException("未查询到驾意保单号");
+            }
+        }
+        if(!existsFlag) {
+            insOrderPdfUrlMapper.insert(entityBySubOrderId);
+        }else{
+            insOrderPdfUrlMapper.updateById(entityBySubOrderId);
+        }
+        return policyPath;
+    }
 
 
 
 
     public  ReadPdfUrlListDto  insertOrderPdfData(InsAreaCompany subOrder,InsOrders insOrders,boolean flag,InsOrderPdfUrl jqUrlEntity){
     public  ReadPdfUrlListDto  insertOrderPdfData(InsAreaCompany subOrder,InsOrders insOrders,boolean flag,InsOrderPdfUrl jqUrlEntity){