785834757 1 gadu atpakaļ
vecāks
revīzija
ccf1d83add

+ 4 - 0
src/main/java/com/ydtech/modules/fee/service/impl/CostsCalServiceImpl.java

@@ -248,6 +248,10 @@ public class CostsCalServiceImpl implements CostsCalcService {
         subOrderExportFeeVo.setJqExportCosts(insFeeOrderNew.getJqExportSuperviseCostsPremiums().add(insFeeOrderNew.getJqExportOtherCostsPremiums()));
         subOrderExportFeeVo.setSyExportCosts(insFeeOrderNew.getSyExportSuperviseCostsPremiums().add(insFeeOrderNew.getSyExportOtherCostsPremiums()));
         subOrderExportFeeVo.setNoExportCosts(insFeeOrderNew.getNoExportSuperviseCostsPremiums().add(insFeeOrderNew.getNoExportOtherCostsPremiums()));
+        subOrderExportFeeVo.setJqExportRadio(insFeeOrderNew.getJqCostsExportProportion().add(insFeeOrderNew.getJqExportOtherCostsProportion()));
+        subOrderExportFeeVo.setSyExportRadio(insFeeOrderNew.getSyCostsExportProportion().add(insFeeOrderNew.getSyExportOtherCostsProportion()));
+        subOrderExportFeeVo.setNoExportRadio(insFeeOrderNew.getNoCostsExportProportion().add(insFeeOrderNew.getNoExportOtherCostsProportion()));
+
         return subOrderExportFeeVo;
     }
 }

+ 22 - 0
src/main/java/com/ydtech/modules/ins/model/vo/CustomerInfoVo.java

@@ -63,4 +63,26 @@ public class CustomerInfoVo {
     @ApiModelProperty(value = "同投保人")
     private boolean insuranceHolder;
 
+    public boolean contrastInfo(CustomerInfoVo customerInfoVo){
+        if(!this.name.equals(customerInfoVo.getName()))
+            return false;
+        if(!this.identifyNumber.equals(customerInfoVo.getIdentifyNumber()))
+            return false;
+        if(!this.identifyType.equals(customerInfoVo.getIdentifyType()))
+            return false;
+        if(!this.addr.equals(customerInfoVo.getAddr()))
+            return false;
+        if(!this.age.equals(customerInfoVo.getAge()))
+            return false;
+        if(!this.gender.equals(customerInfoVo.getGender()))
+            return false;
+        if(!this.mobile.equals(customerInfoVo.getMobile()))
+            return false;
+        if(!this.identifyValidDate.equals(customerInfoVo.getIdentifyValidDate()))
+            return false;
+        if(!this.identifyValidEndDate.equals(customerInfoVo.getIdentifyValidEndDate()))
+            return false;
+        return true;
+    }
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/dao/InsDrivingIntentionInsuranceMapper.java

@@ -21,6 +21,9 @@ public interface InsDrivingIntentionInsuranceMapper extends BaseMapper<InsDrivin
      */
     List<InsDrivingIntentionInsurance> getInsDrivingIntentionInsuranceList(@Param("param") DrivingIntentionQueryVo drivingIntentionQueryVo);
 
+    List<InsDrivingIntentionInsurance> getOptionalSchemeDrivingList(@Param("schemeId") String schemeId,@Param("seatNum") String seatNum);
+
+
 
     List<InsDrivingIntentionInsuranceVo> getInsDrivingIntentionInsuranceList1(@Param("param") DrivingIntentionQueryVo drivingIntentionQueryVo);
 

+ 8 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -359,7 +359,15 @@ public class InsOrders implements Serializable {
 
         // 2.2 人员信息
         this.setOwnerinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getOwnerInfo())));
+        //投保人判断是否同车主
+        quoteInfoVo.getPolicyHolderInfo().setOwner(quoteInfoVo.getPolicyHolderInfo().contrastInfo(quoteInfoVo.getOwnerInfo()));
         this.setApplyinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getPolicyHolderInfo())));
+        //被保人 是否同投保人
+        quoteInfoVo.getInsuredPersonInfo().setInsuranceHolder(quoteInfoVo.getInsuredPersonInfo().contrastInfo(quoteInfoVo.getPolicyHolderInfo()));
+        //被保人是否同车主
+        if(!quoteInfoVo.getInsuredPersonInfo().isInsuranceHolder()){
+            quoteInfoVo.getInsuredPersonInfo().setOwner(quoteInfoVo.getInsuredPersonInfo().contrastInfo(quoteInfoVo.getOwnerInfo()));
+        }
         this.setInsureinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getInsuredPersonInfo())));
         this.setInsuredname(quoteInfoVo.getPolicyHolderInfo().getName());
 

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.entity.vo;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -125,6 +126,10 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
         @TableField(value = "kindList", typeHandler = FastjsonTypeHandler.class)
         private List<QuoteKindRespVo> kindList;
 
+        @ApiModelProperty("交强险种")
+        @TableField(exist = false)
+        private JSONArray jqList;
+
         @ApiModelProperty("交强险和商业险")
         @TableField(value = "riskList", typeHandler = FastjsonTypeHandler.class)
         private List<QuoteRiskRespVo> riskList;
@@ -226,9 +231,20 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
         @ApiModelProperty("总共出口费用")
         private BigDecimal sumExportFee;
 
+        @ApiModelProperty("交强出口比例")
+        private BigDecimal jqExportRadio;
+
+        @ApiModelProperty("商业出口比例")
+        private BigDecimal syExportRadio;
+
+        @ApiModelProperty("非车出口比例")
+        private BigDecimal noExportRadio;
+
         @ApiModelProperty("驾意险信息")
         private List<InsBusinessInsurance> drivingList = new ArrayList<>();
 
+        @ApiModelProperty("产品id")
+        private String productid;
 
         public void feeVacant() {
             this.jqExportFee = null;

+ 9 - 0
src/main/java/com/ydtech/modules/order/entity/vo/SubOrderExportFeeVo.java

@@ -19,4 +19,13 @@ public class SubOrderExportFeeVo {
 
     @ApiModelProperty("非车出口费用")
     private BigDecimal noExportCosts;
+
+    @ApiModelProperty("交强出口比例")
+    private BigDecimal jqExportRadio;
+
+    @ApiModelProperty("商业出口比例")
+    private BigDecimal syExportRadio;
+
+    @ApiModelProperty("非车出口比例")
+    private BigDecimal noExportRadio;
 }

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

@@ -74,4 +74,6 @@ public interface InsDrivingIntentionInsuranceService extends IService<InsDriving
      * @return
      */
     List<InsDrivingIntentionInsuranceType> getSchemeDrivingIntentionInsuranceType(String companyId);
+
+    List<InsDrivingIntentionInsurance> getOptionalSchemeDrivingList(String schemeId,String seatNum);
 }

+ 7 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsDrivingIntentionInsuranceServiceImpl.java

@@ -299,7 +299,8 @@ public class InsDrivingIntentionInsuranceServiceImpl extends ServiceImpl<InsDriv
                     .eq(PtlOptionalScheme::getVehicleType,drivingIntentionQueryVo.getVehicleType())
                     .eq(PtlOptionalScheme::getCarnature,drivingIntentionQueryVo.getCarnature()));
             LambdaQueryWrapper<PtlOptionalSchemeInsuranceDrivingIntention> eq = new LambdaQueryWrapper<PtlOptionalSchemeInsuranceDrivingIntention>()
-                    .eq(PtlOptionalSchemeInsuranceDrivingIntention::getSchemeId, ptlOptionalScheme.getId());
+                    .eq(PtlOptionalSchemeInsuranceDrivingIntention::getSchemeId, ptlOptionalScheme.getId())
+                    .eq(PtlOptionalSchemeInsuranceDrivingIntention::getSeatNum, drivingIntentionQueryVo.getSeatNum());
             List<PtlOptionalSchemeInsuranceDrivingIntention> list = ptlOptionalSchemeInsuranceDrivingIntentionService.list(eq);
             List<String> collect = list.stream().map(x -> x.getDrivingIntentionId()).collect(Collectors.toList());
             if(collect.isEmpty()){
@@ -332,6 +333,11 @@ public class InsDrivingIntentionInsuranceServiceImpl extends ServiceImpl<InsDriv
         return baseMapper.getSchemeDrivingIntentionInsuranceType(companyId);
     }
 
+    @Override
+    public List<InsDrivingIntentionInsurance> getOptionalSchemeDrivingList(String schemeId, String seatNum) {
+        return baseMapper.getOptionalSchemeDrivingList(schemeId,seatNum);
+    }
+
 
     public List<InsDrivingIntentionInsurance> buildHierarchy(List<InsDrivingIntentionInsurance> list) {
         // 使用 Map 存储所有的对象,key 是 id,value 是对象本身

+ 15 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -879,6 +879,18 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
                 insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
 
+
+        insAreaCompanyEditingDtos.forEach(item->{
+            InsAreaCompanyQueryDto insAreaCompanyQueryDto = insAreaCompanyQueryDtos.stream().filter(x -> x.getId().equals(item.getCompanyId())).findFirst().orElse(null);
+            item.setProductid(insAreaCompanyQueryDto.getProductid());
+            if(item.getProductid().equals(ProductsType.PT_0330.getCode()) ||
+            item.getProductid().equals(ProductsType.PT_0330034002.getCode()) ||
+            item.getProductid().equals(ProductsType.PT_0330034001.getCode())) {
+                JSONArray jsonArray = JqInsuranceType.toJsonArray();
+                item.setJqList(jsonArray);
+            }
+        });
+
         List<String> companyIds = insAreaCompanyEditingDtos.stream().map(x -> x.getCompanyId()).collect(Collectors.toList());
 
 
@@ -909,6 +921,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 result.setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
                 result.setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
                 result.setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
+                result.setJqExportRadio(subOrderExportFeeVo.getJqExportRadio());
+                result.setSyExportRadio(subOrderExportFeeVo.getSyExportRadio());
+                result.setNoExportRadio(subOrderExportFeeVo.getNoExportRadio());
                 result.setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
                         .add(subOrderExportFeeVo.getSyExportCosts())
                         .add(subOrderExportFeeVo.getNoExportCosts()));

+ 28 - 1
src/main/java/com/ydtech/modules/scheme/controller/PtlSchemeController.java

@@ -355,6 +355,13 @@ public class PtlSchemeController extends BaseController {
                 "删除成功" :
                 "删除失败");
     }
+
+    @ApiOperation(value = "获取自选方案驾意险信息")
+    @GetMapping(value = "optionalSchemeDriving")
+    public HttpResult  optionalSchemeDriving(String schemeId , String seatNum){
+        List<InsDrivingIntentionInsurance> optionalSchemeDrivingList = insDrivingIntentionInsuranceService.getOptionalSchemeDrivingList(schemeId, seatNum);
+        return HttpResult.ok(optionalSchemeDrivingList);
+    }
     //endregion
 
 
@@ -394,6 +401,8 @@ public class PtlSchemeController extends BaseController {
         List<CompanySchemeVo> companySchemeInfo = ptlSchemeService.getCompanySchemeInfo(schemeQueryVo);
         List<PcCompanySchemeVo> pcCompanySchemeVos = new ArrayList<>();
 
+
+
         //分组 主险 附加险 服务
         companySchemeInfo.forEach(item->{
             JSONArray main = new JSONArray();
@@ -423,8 +432,26 @@ public class PtlSchemeController extends BaseController {
             pcCompanySchemeVo.setKinds(kinds);
             pcCompanySchemeVos.add(pcCompanySchemeVo);
         });
+
+
+        CompanyOptionalSchemeVo pcSchemeInsuranceInfo = ptlOptionalSchemeService.getPcSchemeInsuranceInfo(schemeQueryVo);
+
+        if(schemeQueryVo.getProductId().equals(ProductsType.PT_0330.getCode()) ||
+                schemeQueryVo.getProductId().equals(ProductsType.PT_0330034001.getCode()) ||
+                schemeQueryVo.getProductId().equals(ProductsType.PT_0330034002.getCode())){
+            JSONObject jqx = new JSONObject();
+            jqx.put("name","交通事故强制责任险");
+            jqx.put("amount","");
+            pcCompanySchemeVos.forEach(vo->{
+                vo.setJqx(jqx);
+            });
+            if(!Objects.isNull(pcSchemeInsuranceInfo)) {
+                pcSchemeInsuranceInfo.setJqx(jqx);
+            }
+        }
+
         resultVo.setSchemes(pcCompanySchemeVos);
-        resultVo.setOptionalScheme(ptlOptionalSchemeService.getPcSchemeInsuranceInfo(schemeQueryVo));
+        resultVo.setOptionalScheme(pcSchemeInsuranceInfo);
         return HttpResult.ok(resultVo);
     }
 

+ 6 - 0
src/main/java/com/ydtech/modules/scheme/entity/po/PtlOptionalSchemeInsuranceDrivingIntention.java

@@ -11,6 +11,12 @@ public class PtlOptionalSchemeInsuranceDrivingIntention {
 
     private String schemeId;
 
+    private String alias;
+
+    private String seatNum;
+
     private String drivingIntentionId;
 
+    private String title;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/scheme/entity/vo/CompanyOptionalSchemeVo.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.scheme.entity.vo;
 
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ydtech.modules.order.entity.InsDrivingIntentionInsurance;
 import com.ydtech.modules.order.entity.InsDrivingIntentionInsuranceType;
 import lombok.Data;
@@ -24,6 +25,8 @@ public class CompanyOptionalSchemeVo {
 
     private JSONArray jqList;
 
+    private JSONObject jqx;
+
     private List<InsDrivingIntentionInsurance> drivingList;
 
     private List<InsDrivingIntentionInsuranceType> drivingTypeList;

+ 42 - 7
src/main/java/com/ydtech/modules/scheme/entity/vo/OptionalSchemeSaveVo.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.scheme.entity.vo;
 
 import com.ydtech.modules.order.entity.InsBusinessInsuranceOption;
+import com.ydtech.modules.order.entity.InsDrivingIntentionInsurance;
 import com.ydtech.modules.scheme.entity.po.PtlOptionalScheme;
 import com.ydtech.modules.scheme.entity.po.PtlOptionalSchemeInsurance;
 import com.ydtech.modules.scheme.entity.po.PtlOptionalSchemeInsuranceDrivingIntention;
@@ -40,7 +41,7 @@ public class OptionalSchemeSaveVo {
 
     private List<OptionsSchemeKinds>  kinds;
 
-    private List<String> drvingIntentions;
+    private List<OptionsSchemeInsurance> drvingList;
 
 
     @Data
@@ -67,6 +68,34 @@ public class OptionalSchemeSaveVo {
 
     }
 
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class OptionsSchemeInsurance{
+
+        private String seatNum;
+
+        private List<IsOptions> isOptions;
+
+        private List<InsDrivingIntentionInsurance> undrvingList;
+
+        @Data
+        @NoArgsConstructor
+        @AllArgsConstructor
+        public static class IsOptions{
+
+            private String id;
+
+            private String drivingIntentionId;
+
+            private String alias;
+
+            private String projectName;
+
+            private String title;
+        }
+    }
+
     /**
      * 获取自选方案对象
      * @return
@@ -124,12 +153,18 @@ public class OptionalSchemeSaveVo {
      */
     public List<PtlOptionalSchemeInsuranceDrivingIntention> getOptionsSchemeInsruanceDrvingIntentionList(String schemeId){
         List<PtlOptionalSchemeInsuranceDrivingIntention> intentions = new ArrayList<>();
-        this.drvingIntentions.forEach(item->{
-            PtlOptionalSchemeInsuranceDrivingIntention intention = new PtlOptionalSchemeInsuranceDrivingIntention();
-            intention.setId(IdGenerate.nextId());
-            intention.setSchemeId(schemeId);
-            intention.setDrivingIntentionId(item);
-            intentions.add(intention);
+        this.drvingList.forEach(item->{
+            item.getIsOptions().forEach(isOptions -> {
+                PtlOptionalSchemeInsuranceDrivingIntention intention = new PtlOptionalSchemeInsuranceDrivingIntention();
+                intention.setId(IdGenerate.nextId());
+                intention.setSchemeId(schemeId);
+                intention.setAlias(isOptions.getProjectName());
+                intention.setDrivingIntentionId(isOptions.getId());
+                intention.setSeatNum(item.getSeatNum());
+                intention.setTitle(isOptions.getTitle());
+                intentions.add(intention);
+            });
+
         });
         return intentions;
     }

+ 2 - 0
src/main/java/com/ydtech/modules/scheme/entity/vo/PcCompanySchemeVo.java

@@ -24,5 +24,7 @@ public class PcCompanySchemeVo {
 
     private JSONObject kinds;
 
+    private JSONObject jqx;
+
     private List<InsDrivingIntentionInsurance> drivingList;
 }

+ 32 - 6
src/main/java/com/ydtech/modules/scheme/service/impl/PtlOptionalSchemeServiceImpl.java

@@ -25,10 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -55,6 +52,9 @@ public class PtlOptionalSchemeServiceImpl extends ServiceImpl<PtlOptionalSchemeM
     @Autowired
     InsDrivingIntentionInsuranceTypeService insDrivingIntentionInsuranceTypeService;
 
+    @Autowired
+    InsDrivingIntentionInsuranceService insDrivingIntentionInsuranceService;
+
     @Override
     @Transactional
     public boolean addOptionScheme(OptionalSchemeSaveVo optionalSchemeSaveVo) {
@@ -166,8 +166,34 @@ public class PtlOptionalSchemeServiceImpl extends ServiceImpl<PtlOptionalSchemeM
         //驾意险
         List<PtlOptionalSchemeInsuranceDrivingIntention> drivingIntentions = ptlOptionalSchemeInsuranceDrivingIntentionService.list(new LambdaQueryWrapper<PtlOptionalSchemeInsuranceDrivingIntention>()
                 .eq(PtlOptionalSchemeInsuranceDrivingIntention::getSchemeId,optionalScheme.getId()));
-        List<String> collect = drivingIntentions.stream().map(x -> x.getDrivingIntentionId()).collect(Collectors.toList());
-        optionalSchemeSaveVo.setDrvingIntentions(collect);
+        List<OptionalSchemeSaveVo.OptionsSchemeInsurance> collect = new ArrayList<>();
+        Map<String, List<PtlOptionalSchemeInsuranceDrivingIntention>> maps = new HashMap<>();
+        if(drivingIntentions.size() > 0){
+            maps = drivingIntentions.stream().collect(Collectors.groupingBy(PtlOptionalSchemeInsuranceDrivingIntention::getSeatNum));
+        }
+
+        for (Map.Entry<String, List<PtlOptionalSchemeInsuranceDrivingIntention>> entry : maps.entrySet()) {
+            String seatNum = entry.getKey(); // 获取 SeatNum
+            List<PtlOptionalSchemeInsuranceDrivingIntention> intentions = entry.getValue(); // 获取对应的列表
+            OptionalSchemeSaveVo.OptionsSchemeInsurance insruance = new OptionalSchemeSaveVo.OptionsSchemeInsurance();
+            List<OptionalSchemeSaveVo.OptionsSchemeInsurance.IsOptions> isOptions = new ArrayList<>();
+            for (PtlOptionalSchemeInsuranceDrivingIntention x : intentions) {
+                OptionalSchemeSaveVo.OptionsSchemeInsurance.IsOptions isOption = new OptionalSchemeSaveVo.OptionsSchemeInsurance.IsOptions();
+                isOption.setAlias(x.getAlias());
+                isOption.setProjectName(x.getAlias());
+                isOption.setTitle(x.getTitle());
+                isOption.setId(x.getDrivingIntentionId());
+                isOptions.add(isOption);
+            }
+            insruance.setSeatNum(seatNum);
+            insruance.setIsOptions(isOptions);
+            DrivingIntentionQueryVo drivingIntentionQueryVo = new DrivingIntentionQueryVo();
+            drivingIntentionQueryVo.setCompanyId(companyId);
+            insruance.setUndrvingList(insDrivingIntentionInsuranceService.getSchemeDrivingIntentionInsurance(drivingIntentionQueryVo));
+            collect.add(insruance);
+        }
+
+        optionalSchemeSaveVo.setDrvingList(collect);
 
         return optionalSchemeSaveVo;
     }

+ 41 - 0
src/main/resources/mapper/modules/order/InsDrivingIntentionInsuranceMapper.xml

@@ -26,6 +26,29 @@
     </resultMap>
 
 
+    <resultMap id="OptionalResultMap" type="com.ydtech.modules.order.entity.InsDrivingIntentionInsurance">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="projectName" column="project_name" jdbcType="VARCHAR"/>
+        <result property="projectCode" column="project_code" jdbcType="VARCHAR"/>
+        <result property="riskCode" column="risk_code" jdbcType="VARCHAR"/>
+        <result property="seatNum" column="seat_num" jdbcType="INTEGER"/>
+        <result property="sumAmount" column="sum_amount" jdbcType="DECIMAL"/>
+        <result property="sumPremium" column="sum_premium" jdbcType="DECIMAL"/>
+        <result property="apiType" column="api_type" jdbcType="INTEGER"/>
+        <result property="alias" column="alias" jdbcType="VARCHAR"/>
+        <collection property="insDrivingIntentionInsuranceSon" ofType="com.ydtech.modules.order.entity.InsDrivingIntentionInsuranceSon">
+            <result property="drivingCodeId" column="driving_code_id" jdbcType="VARCHAR"/>
+            <result property="code" column="code" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="amount" column="amount" jdbcType="VARCHAR"/>
+            <result property="premium" column="premium" jdbcType="VARCHAR"/>
+        </collection>
+    </resultMap>
+
+
     <resultMap id="typeMap" type="com.ydtech.modules.order.entity.InsDrivingIntentionInsuranceType">
         <result property="typeName" column="type_name"/>
         <result property="code" column="code"/>
@@ -87,6 +110,24 @@
         </if>
     </select>
 
+    <select id="getOptionalSchemeDrivingList" resultMap="OptionalResultMap">
+        SELECT
+            pos.*,
+            idii.*,
+            idiis.driving_code_id,
+            idiis.CODE,
+            idiis.NAME,
+            idiis.amount,
+            idiis.premium
+        FROM
+            ptl_optional_scheme_insurance_driving_intention pos
+                LEFT JOIN ins_driving_intention_insurance idii ON idii.id = pos.driving_intention_id
+                LEFT JOIN ins_driving_intention_insurance_son idiis ON idii.company_id = idiis.company_id and idii.project_code = idiis.driving_code_id
+        WHERE
+            pos.scheme_id = #{schemeId}
+          AND pos.seat_num = #{seatNum}
+    </select>
+
 
     <select id="getInsDrivingIntentionInsuranceList1" resultMap="BaseResultMap">
         SELECT