BifronsV 3 роки тому
батько
коміт
2ac4eea29b

+ 7 - 22
src/main/java/com/ydtech/constants/RedisConstant.java

@@ -2,40 +2,25 @@ package com.ydtech.constants;
 
 public class RedisConstant {
 
-    public final static String ORDER_NUMBER = "ins:order:";
-
-    public final static String ORDER_RESULT = "ins:order:result:";
-
     public final static String INS_RENBAO_KEY = "ins:renbao:token:";
 
-    public final static long INS_RENBAO_KEY_TIME = 1L;
-
-    public final static String INS_ZHONGMEI_KEY = "ins:zhongmei:token:";
-
-    public final static long INS_ZHONGMEI_KEY_TIME = 1L;
-
-    public final static String INS_ZHONGMEI_POLICY = "ins:zhongmei:policy:";
-
-    public final static long INS_ZHONGMEI_POLICY_TIME = 1L;
-
     public final static  String INS_HENGBANG_KEY = "ins:hengbang:token:";
 
-    public final static long INS_HENGBANG_KEY_TIME = 1L;
-
     public final static String INS_YONGCHENG_KEY = "ins:yongcheng:token:";
 
     public final static String PHONE_VERIFICATION_CODE_KEY = "sys:login:phone:";
 
     public static final String INS_ANSHENG_KEY = "ins:ansheng:token:";
 
-    public final static long INS_ANSHENG_KEY_TIME = 1L;
-
     public final static long PHONE_VERIFICATION_CODE_KEY_TIME = 5L;
 
-    public final static String WECHAT_LOGIN_KEY = "wechat:login:appid:";
-
-    public final static long WECHAT_LOGIN_KEY_TIME = 5L;
-
+    /**
+     * 订单缓存
+     */
     public final static String QUOTE_INFO_KEY = "ins:orders:";
+    /**
+     * 订单缓存时间
+     */
+    public final static long QUOTE_INFO_KEY_TIME = 1L;
 
 }

+ 4 - 9
src/main/java/com/ydtech/modules/order/controller/YongAnOrderController.java

@@ -36,26 +36,21 @@ public class YongAnOrderController {
 
     @PostMapping("/quote")
     @ApiOperation("报价")
-    public HttpResult quote(@RequestBody BaseQuoteVo<Object> quoteVo){
+    public HttpResult quote(@RequestBody BaseQuoteVo<Object> quoteVo) {
         BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo());
         return this.yongAnOrderService.quote(quoteInfo, quoteVo);
     }
 
     @PostMapping("/audit")
     @ApiOperation("核保")
-    public HttpResult audit(@RequestSingleParam(value = "companyId") String companyId){
+    public HttpResult audit(@RequestSingleParam(value = "companyId") String companyId) {
         return this.yongAnOrderService.audit(companyId);
     }
 
     @PostMapping(value = "/submitImage")
     @ApiOperation(value = "影像上传")
-    public HttpResult submitImage(@RequestSingleParam(value = "companyId") String companyId)  {
-        try {
-            return this.yongAnOrderService.submitImage(companyId);
-        } catch (RestClientException e) {
-            e.printStackTrace();
-            throw new SystemException("提交影像失败");
-        }
+    public HttpResult submitImage(@RequestSingleParam(value = "companyId") String companyId) {
+        return this.yongAnOrderService.submitImage(companyId);
     }
 
     @PostMapping("/getMessage")

+ 10 - 1
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java

@@ -14,10 +14,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 
 @Api(tags = "中煤财险 API ")
 @RestController
-@RequestMapping("/order/zhongMei")
+@RequestMapping("/order/zhongMeiApi")
 public class ZhongMeiOrderApiController {
 
     @Autowired
@@ -29,6 +30,11 @@ public class ZhongMeiOrderApiController {
         return zhongMeiOrderApiService.modelsQuery(modelName, request);
     }
 
+    @PostMapping("/getPolicyPrint")
+    @ApiOperation(value = "电子保单")
+    public HttpResult getPolicyPrint(@RequestSingleParam(value = "companyId") String companyId) throws IOException {
+        return this.zhongMeiOrderApiService.getPolicyPrint(companyId);
+    }
 
     @PostMapping(value = "/uploadImage")
     @ApiOperation(value = "影像上传")
@@ -37,4 +43,7 @@ public class ZhongMeiOrderApiController {
     }
 
 
+
+
+
 }

+ 0 - 6
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderController.java

@@ -81,10 +81,4 @@ public class ZhongMeiOrderController {
         return this.zhongMeiOrderService.getPolicyPrint(companyId);
     }
 
-    @PostMapping("/getQuoteResult")
-    @ApiOperation(value = "获取报价结果")
-    public HttpResult getQuoteResult(@RequestSingleParam(value = "companyId") String companyId) {
-        return this.zhongMeiOrderService.getQuoteResult(companyId);
-    }
-
 }

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java

@@ -10,4 +10,12 @@ public interface ZhongMeiOrderApiService {
 
 
     HttpResult uploadImage(String orderNo);
+
+
+    /**
+     * 中煤保单下载
+     * @param companyId 子订单号
+     * @return 响应
+     */
+    HttpResult getPolicyPrint(String companyId);
 }

+ 0 - 2
src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderService.java

@@ -17,8 +17,6 @@ public interface ZhongMeiOrderService extends BaseOrderService<AccidentalDriving
 
     HttpResult getPolicyPrint(String companyId);
 
-    HttpResult getQuoteResult(String companyId);
-
     List<CarModelDTO> vinSearch(String vin);
 
     HttpResult submitImage(String companyId);

+ 3 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -41,9 +41,11 @@ import org.springframework.util.ObjectUtils;
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import static com.ydtech.constants.RedisConstant.QUOTE_INFO_KEY;
+import static com.ydtech.constants.RedisConstant.QUOTE_INFO_KEY_TIME;
 
 /**
  * @author wenkaisen
@@ -196,7 +198,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         // 4 将报价信息存入redis 中
         String s = JSONObject.toJSONString(quoteInfoVo);
-        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s);
+        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s, QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
         return insOrders;
     }
 

+ 35 - 12
src/main/java/com/ydtech/modules/order/service/impl/YongAnOrderServiceImpl.java

@@ -47,16 +47,22 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
 
     @Value("${ya.url}")
     String url = "";
+
     @Value("${ya.url.sign}")
     String url_sign = "";
+
     @Value("${ya.consumerID}")
     String consumerID = "";
+
     @Value("${ya.consumerAccessKey}")
     String consumerAccessKey_init = "";
+
     @Value("${ya.matchCode}")
     String matchCode = "";
+
     @Value("${ya.userCode}")
     String userCode = "";
+
     @Value("${ya.comCode}")
     String comCode = "";
 
@@ -133,6 +139,21 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
             carModelReq.setEnrollDate(carInfo.getRegisterDate()); // 初登日期
             carModelReq.setEngineNo(carInfo.getEngineNo()); //发动机号
             ResponseDataC1 responseDataC1 = getResponseDataC1(carModelReq);
+
+            // 校验车型 车型年份大于初等日期
+            if (responseDataC1.getResponseBody().getCarModel().size() == 1) {
+                CarModelDTO carModelDTO2 = responseDataC1.getResponseBody().getCarModel().get(0);
+                String year = carModelDTO2.getMarketYear().substring(0, 6);
+                String registerDate = carInfo.getRegisterDate();
+                String registerYear = registerDate.replace("-", "").substring(0, 6);
+                if (Integer.parseInt(year) > Integer.parseInt(registerYear)) {
+                    carModelReq = new CarModel_Req();
+                    carModelReq.setEnrollDate(carInfo.getRegisterDate()); // 初登日期
+                    carModelReq.setModelName(carInfo.getModelcname());
+                    responseDataC1 = getResponseDataC1(carModelReq);
+                }
+            }
+
             // 无法通过车架号查出车型 通过车型查询
             if ("100001".equals(responseDataC1.getResponseHead().getAppCode())) {
                 carModelReq.setModelName(carInfo.getModelcname());
@@ -161,18 +182,20 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
 
             // 通过车型校准永安车型
             CarModelDTO carModelDTO = null;
-            List<CarModelDTO> collect = carModel.stream().filter(a -> Objects.equals(a.getModelName(), carInfo.getBrandName())).collect(Collectors.toList());
 
-            for (CarModelDTO carModelDTO1 : collect) {
-                if (carInfo.getCaryear() == null) {
-                    if (carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
-                        carModelDTO = carModelDTO1;
-                        break;
-                    }
-                } else {
-                    if (carInfo.getCaryear().equals(carModelDTO1.getMarketYear()) && carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
-                        carModelDTO = carModelDTO1;
-                        break;
+            // 车型返回的种类大于一才需要过滤
+            if (carModel.size() > 1) {
+                for (CarModelDTO carModelDTO1 : carModel) {
+                    if (carInfo.getCaryear() == null) {
+                        if (carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
+                            carModelDTO = carModelDTO1;
+                            break;
+                        }
+                    } else {
+                        if (carInfo.getCaryear().equals(carModelDTO1.getMarketYear()) && carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
+                            carModelDTO = carModelDTO1;
+                            break;
+                        }
                     }
                 }
             }
@@ -247,7 +270,7 @@ public class YongAnOrderServiceImpl implements YongAnOrderService {
             requestBodyC2.setSyRebateRateInfo(syRebateRateInfo);
             DeviceItem[] devices = new DeviceItem[0];
             ChargingPileDTO[] chargingPiles = new ChargingPileDTO[0];
-            ExtendInfoDto[] extendInfo = new ExtendInfoDto[1];
+            ExtendInfoDto[] extendInfo = new ExtendInfoDto[2];
             extendInfo[0] = new ExtendInfoDto("matchCode", matchCode);
 
             requestBodyC2.setDevices(devices);

+ 22 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -5,7 +5,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.esm.service.InsTaskImageService;
+import com.ydtech.modules.ins.model.InsOrder;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import com.ydtech.nai.httpvo.*;
@@ -38,6 +41,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     @Autowired
     private InsOrdersService insOrdersService;
 
+    @Autowired
+    private InsAreaCompanyService insAreaCompanyService;
+
     @Autowired
     private InsTaskImageService insTaskImageService;
 
@@ -74,6 +80,22 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         return HttpResult.ok(list);
     }
 
+    @Override
+    public HttpResult getPolicyPrint(String companyId) {
+        String url = ZMUrl + "InsurancePolicyPrint.do";
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
+        InsurancePolicyPrintHeadVO record = new InsurancePolicyPrintHeadVO();
+        record.setPolicyNo(insAreaCompany.getJqpolicyno());
+        record.setRiskCode("0330");
+        record.setBusinessType("P");
+        record.setEndorSeqNo("endorSeqNo");
+        record.setDocumentType("DZ_AE");
+        HeadVO head = head("InsurancePolicyPrint", ZMToken);
+        record.setHead(head);
+        String json = JSON.toJSONString(record);
+        String post = HttpsPostUtil.sendPost(url, json);
+        return HttpResult.ok(post);
+    }
 
     @Override
     public HttpResult uploadImage(String orderNo) {

+ 0 - 10
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderServiceImpl.java

@@ -232,16 +232,6 @@ public class ZhongMeiOrderServiceImpl implements ZhongMeiOrderService {
         return HttpResult.ok(body.getData());
     }
 
-    @Override
-    public HttpResult getQuoteResult(String companyId) {
-        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
-        String s = redisTemplate.opsForValue().get(RedisConstant.ORDER_RESULT + insAreaCompany.getOrderno());
-        if (!StringUtils.isEmpty(s)) {
-            return JSONObject.parseObject(s, HttpResult.class);
-        }
-        return HttpResult.error("稍后重试");
-    }
-
     @Override
     public ZmAscriptionResponse ascription(ZmAscriptionVo zmAscriptionVo) {
         Response<ZmAscriptionResponse> ascription = zhongmeiRequestComponents.ascription(zmAscriptionVo, new ParameterizedTypeReference<Response<ZmAscriptionResponse>>() {

+ 1 - 1
src/main/java/com/ydtech/validation/ObjectNotNullValidator.java

@@ -9,7 +9,7 @@ import javax.validation.ConstraintValidatorContext;
 /**
  * @author wenks
  * @version 0.0.2
- * @description TODO
+ * @description 判断对象是否为空
  * @date 2023/4/18 14:43
  */
 public class ObjectNotNullValidator implements ConstraintValidator<CheckObjectNotNull, Object> {

+ 1 - 1
src/main/java/com/ydtech/validation/annotation/CheckObjectNotNull.java

@@ -10,7 +10,7 @@ import java.lang.annotation.*;
 /**
  * @author wenks
  * @version 0.0.2
- * @description TODO
+ * @description 判断对象是否为空
  * @date 2023/4/18 14:39
  */
 @Target({ElementType.FIELD, ElementType.PARAMETER})