|
@@ -0,0 +1,289 @@
|
|
|
|
|
+package com.ydtech.modules.order.service.impl;
|
|
|
|
|
+
|
|
|
|
|
+import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.ydtech.constants.InsuranceEnum;
|
|
|
|
|
+import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
|
|
|
|
|
+import com.ydtech.exception.SystemException;
|
|
|
|
|
+import com.ydtech.modules.base.controller.BaseController;
|
|
|
|
|
+import com.ydtech.modules.order.dao.InsOrderPdfUrlMapper;
|
|
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompanyExternalPolicy;
|
|
|
|
|
+import com.ydtech.modules.order.entity.InsOrders;
|
|
|
|
|
+import com.ydtech.modules.order.entity.dto.ReadPdfUrlDto;
|
|
|
|
|
+import com.ydtech.modules.order.entity.dto.ReadPdfUrlListDto;
|
|
|
|
|
+import com.ydtech.modules.order.entity.po.InsOrderPdfUrl;
|
|
|
|
|
+import com.ydtech.modules.order.service.*;
|
|
|
|
|
+import com.ydtech.utils.OrderUtils;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Objects;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+* @author Administrator
|
|
|
|
|
+* @description 针对表【ins_order_pdf_url(子订单保单路径表)】的数据库操作Service实现
|
|
|
|
|
+* @createDate 2024-10-15 18:58:08
|
|
|
|
|
+*/
|
|
|
|
|
+@Service
|
|
|
|
|
+public class InsOrderPdfUrlServiceImpl extends ServiceImpl<InsOrderPdfUrlMapper, InsOrderPdfUrl>
|
|
|
|
|
+ implements InsOrderPdfUrlService {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private InsOrderPdfUrlMapper insOrderPdfUrlMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private InsAreaCompanyService insAreaCompanyService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private InsOrdersService insOrdersService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private InsAreaCompanyExternalPolicyService insAreaCompanyExternalPolicyService;
|
|
|
|
|
+
|
|
|
|
|
+ // 爬虫
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private InsCrawlerOrderService insCrawlerOrderService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private YongAnOrderService yongAnOrderService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private HuaTaiOrderApiService huaTaiOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private YongchengOrderApiService yongchengOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private GuorenOrderApiService guorenOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ZijinOrderApiService zijinOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private BoHaiOrderApiService boHaiOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private DaJiaOrderService daJiaOrderService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ZhongMeiOrderApiService zhongMeiOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PingAnOrderApiService pingAnOrderApiService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @version
|
|
|
|
|
+ * @author: hxl
|
|
|
|
|
+ * @Date: 2024/10/16 10:49
|
|
|
|
|
+ * @Description: 统一返回保单的pdf
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ReadPdfUrlListDto readPdfUrlList(String subOrderId,boolean flag) {
|
|
|
|
|
+ //判断外部订单
|
|
|
|
|
+ InsAreaCompany subOrder = insAreaCompanyService.getById(subOrderId);
|
|
|
|
|
+ InsOrders insOrders = insOrdersService.getById(subOrder.getOrderno());
|
|
|
|
|
+ InsOrderPdfUrl jqUrlEntity = insOrderPdfUrlMapper.findEntityBySubOrderId(subOrderId);
|
|
|
|
|
+ return insertOrderPdfData(subOrder,insOrders, false,jqUrlEntity);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @version
|
|
|
|
|
+ * @author: hxl
|
|
|
|
|
+ * @Date: 2024/10/17 15:22
|
|
|
|
|
+ * @Description: 重新生成
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ReadPdfUrlListDto productOrderPdf(String subOrderId) {
|
|
|
|
|
+ InsAreaCompany subOrder = insAreaCompanyService.getById(subOrderId);
|
|
|
|
|
+ InsOrders insOrders = insOrdersService.getById(subOrder.getOrderno());
|
|
|
|
|
+ ReadPdfUrlListDto orderPdfData =null;
|
|
|
|
|
+ try{
|
|
|
|
|
+ orderPdfData = getOrderPdfData(subOrder, insOrders, true);
|
|
|
|
|
+ }catch(Exception e){
|
|
|
|
|
+ throw new SystemException(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ InsOrderPdfUrl insOrderPdfUrl = tranferData(orderPdfData, subOrder.getId(), subOrder.getProduct());
|
|
|
|
|
+ this.saveOrUpdate(insOrderPdfUrl);
|
|
|
|
|
+ return readPdfUrlList(subOrderId,true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public ReadPdfUrlListDto insertOrderPdfData(InsAreaCompany subOrder,InsOrders insOrders,boolean flag,InsOrderPdfUrl jqUrlEntity){
|
|
|
|
|
+ if(jqUrlEntity!=null){
|
|
|
|
|
+ InsAreaCompanyExternalPolicy insAreaCompanyExternalPolicy =new InsAreaCompanyExternalPolicy(subOrder.getId(),
|
|
|
|
|
+ jqUrlEntity.getJqUrl(),jqUrlEntity.getSyUrl(),jqUrlEntity.getJyUrl(),jqUrlEntity.getJqSignUrl());
|
|
|
|
|
+ subOrder.setJyPolicyNo(jqUrlEntity.getJyNo());
|
|
|
|
|
+ return new ReadPdfUrlListDto(insAreaCompanyExternalPolicy,subOrder, insOrders.getIsExternal()==null?"0":String.valueOf(insOrders.getIsExternal()));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ ReadPdfUrlListDto orderPdfData =null;
|
|
|
|
|
+ try{
|
|
|
|
|
+ orderPdfData = getOrderPdfData(subOrder, insOrders, flag);
|
|
|
|
|
+ }catch(Exception e){
|
|
|
|
|
+ throw new SystemException(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ InsOrderPdfUrl insOrderPdfUrl = tranferData(orderPdfData, subOrder.getId(), subOrder.getProduct());
|
|
|
|
|
+ this.saveOrUpdate(insOrderPdfUrl);
|
|
|
|
|
+ return orderPdfData;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ public ReadPdfUrlListDto getOrderPdfData(InsAreaCompany subOrder,InsOrders insOrders,boolean flag){
|
|
|
|
|
+ //处理驾意险保单号
|
|
|
|
|
+ String jyPolicyNo = null;
|
|
|
|
|
+ if (!Objects.isNull(subOrder.getCrossInsurance())) {
|
|
|
|
|
+ jyPolicyNo = OrderUtils.getJyPolicyNo(subOrder.getCompanyId(), String.valueOf(subOrder.getApiType()==null?1:subOrder.getApiType()), subOrder.getCrossInsurance().toString(), insOrders.getIsExternal()==null?"0":String.valueOf(insOrders.getIsExternal()));
|
|
|
|
|
+ }
|
|
|
|
|
+ subOrder.setJyPolicyNo(jyPolicyNo);
|
|
|
|
|
+ if(insOrders.getIsExternal()!=null && insOrders.getIsExternal() ==1){
|
|
|
|
|
+ if(flag ){
|
|
|
|
|
+ throw new SystemException("外部订单不允许重新生成");
|
|
|
|
|
+ }
|
|
|
|
|
+ //外部订单
|
|
|
|
|
+ return insAreaCompanyExternalPolicyService.getPolicyByCompanyIdPdfList(subOrder,insOrders);
|
|
|
|
|
+ }
|
|
|
|
|
+ //永安财险 YAIC 无驾意险保单
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.YAIC.getCode())){
|
|
|
|
|
+ throw new SystemException("永安财险报价暂不支持获取保单");
|
|
|
|
|
+ //return yongAnOrderService.getPolicyByCompanyIdPdfList(subOrder,null,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //华泰财险 HTIC 无驾意险保单
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.HTIC.getCode())){
|
|
|
|
|
+ if(subOrder.getApiType()!=null && subOrder.getApiType()==1){
|
|
|
|
|
+ return huaTaiOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }else if(subOrder.getApiType()!=null && subOrder.getApiType()==2){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //中煤财险 ZMBX 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.ZMBX.getCode())){
|
|
|
|
|
+ return zhongMeiOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //永诚财险 AICS 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.AICS.getCode())){
|
|
|
|
|
+ return yongchengOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 国任财险 XDCX 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.XDCX.getCode())){
|
|
|
|
|
+ return guorenOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //紫金财险 ZKIC 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.ZKIC.getCode())){
|
|
|
|
|
+ return zijinOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //渤海财险 BPIC 测试通过库中暂无驾意险保单无法测试驾意险
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.BPIC.getCode())){
|
|
|
|
|
+ return boHaiOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //恒邦财险 HBIC 爬虫 调不通
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.HBIC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //诚泰财险 TPBX 爬虫 调不通
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.CHAC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //安盛天平 TPBX 爬虫 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.TPBX.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //中国人寿 GPIC 爬虫 测试通过 外部訂單 沒有爬虫订单
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.GPIC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //太平财险 TPIC 爬虫 下载失败
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.TPIC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //华农财险 HNIC 爬虫 下载失败
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.HNIC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //泰康财险 TKIC 爬虫 测试通过
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.TKIC.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //众安财险 ZAPA 爬虫 驾意保单没有返回
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.ZAPA.getCode())){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ //大家财险 DJPC 下载失败
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.DJPC.getCode())){
|
|
|
|
|
+ if(subOrder.getApiType()!=null && subOrder.getApiType()==1){
|
|
|
|
|
+ return daJiaOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ //爬虫 测试通过
|
|
|
|
|
+ }else if(subOrder.getApiType()!=null && subOrder.getApiType()==2){
|
|
|
|
|
+ return insCrawlerOrderService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //平安财险 上线再调式
|
|
|
|
|
+ else if(subOrder.getCompanyId().contains(InsuranceEnum.PAIC.getCode())){
|
|
|
|
|
+ return pingAnOrderApiService.getPolicyByCompanyIdPdfList(subOrder,insOrders,flag);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @version
|
|
|
|
|
+ * @author: hxl
|
|
|
|
|
+ * @Date: 2024/10/17 17:50
|
|
|
|
|
+ * @Description: 转换成保单格式
|
|
|
|
|
+ */
|
|
|
|
|
+ public InsOrderPdfUrl tranferData(ReadPdfUrlListDto readPdfUrlListDto,String subOrderId,String riskCode){
|
|
|
|
|
+ InsOrderPdfUrl jqUrlEntity = insOrderPdfUrlMapper.findEntityBySubOrderId(subOrderId);
|
|
|
|
|
+ InsOrderPdfUrl newEntity =new InsOrderPdfUrl();
|
|
|
|
|
+ if(jqUrlEntity!=null){
|
|
|
|
|
+ newEntity.setId(jqUrlEntity.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ newEntity.setSubOrderNo(subOrderId);
|
|
|
|
|
+ newEntity.setRiskCode(riskCode);
|
|
|
|
|
+ ArrayList<ReadPdfUrlDto> oldfileList = readPdfUrlListDto.getOldfileList();
|
|
|
|
|
+ ArrayList<ReadPdfUrlDto> businessList = readPdfUrlListDto.getBusinessList();
|
|
|
|
|
+ ArrayList<ReadPdfUrlDto> accidentList = readPdfUrlListDto.getAccidentList();
|
|
|
|
|
+ String jqPolicyNo = readPdfUrlListDto.getJqPolicyNo();
|
|
|
|
|
+ String syPolicyNo = readPdfUrlListDto.getSyPolicyNo();
|
|
|
|
|
+ String jyPolicyNo = readPdfUrlListDto.getJyPolicyNo();
|
|
|
|
|
+ if(StringUtils.isNotBlank(jqPolicyNo)){
|
|
|
|
|
+ ReadPdfUrlDto jq= oldfileList.stream().filter(s->s.getFileTitle().equals("交强电子保单")).collect(Collectors.toList()).get(0);
|
|
|
|
|
+ List<ReadPdfUrlDto> jqSignList = oldfileList.stream().filter(s -> s.getFileTitle().equals("交强电子标志")).collect(Collectors.toList());
|
|
|
|
|
+ ReadPdfUrlDto jqSign=null ;
|
|
|
|
|
+ if(jqSignList!=null && jqSignList.size()>0){
|
|
|
|
|
+ jqSign =jqSignList.get(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(jq!=null){
|
|
|
|
|
+ newEntity.setJqNo(jqPolicyNo);
|
|
|
|
|
+ newEntity.setJqUrl(jq.getFileurl());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(jqSign!=null){
|
|
|
|
|
+ newEntity.setJqSignUrl(jqSign.getFileurl());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotBlank(syPolicyNo)){
|
|
|
|
|
+ ReadPdfUrlDto sy= businessList.stream().filter(s->s.getFileTitle().equals("商业电子保单")).collect(Collectors.toList()).get(0);
|
|
|
|
|
+ if(sy!=null){
|
|
|
|
|
+ newEntity.setSyNo(syPolicyNo);
|
|
|
|
|
+ newEntity.setSyUrl(sy.getFileurl());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(StringUtils.isNotBlank(jyPolicyNo)){
|
|
|
|
|
+ ReadPdfUrlDto jy= accidentList.stream().filter(s->s.getFileTitle().equals("驾意险保单")).collect(Collectors.toList()).get(0);
|
|
|
|
|
+ if(jy!=null){
|
|
|
|
|
+ newEntity.setJyNo(jyPolicyNo);
|
|
|
|
|
+ newEntity.setJyUrl(jy.getFileurl());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return newEntity;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|