Selaa lähdekoodia

Merge branch 'test' into test-dx

dongxin 1 vuosi sitten
vanhempi
commit
5dca59625d

+ 4 - 2
src/main/java/com/ydtech/modules/admin/controller/SysMenuController.java

@@ -5,6 +5,7 @@ import com.ydtech.modules.admin.model.SysMenu;
 import com.ydtech.modules.admin.model.SysMenuVo;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.service.SysMenuService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.core.page.HttpResult;
 import org.apache.commons.compress.utils.Lists;
@@ -23,7 +24,7 @@ import java.util.stream.Collectors;
  */
 @RestController
 @RequestMapping("menu")
-public class SysMenuController {
+public class SysMenuController extends BaseController {
 
     @Autowired
     private SysMenuService sysMenuService;
@@ -58,7 +59,8 @@ public class SysMenuController {
     //    @PreAuthorize("hasAuthority('sys:menu:view')")
     @GetMapping(value = "/findMenuTree")
     public HttpResult findMenuTree() {
-        return HttpResult.ok(sysMenuService.findTree(null, 0));
+
+        return HttpResult.ok(sysMenuService.findTree(getUserName(), 0));
     }
 
     @GetMapping(value = "v1/findMenuTree")

+ 4 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -21,6 +21,7 @@ import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.regex.Pattern;
 
 /**
@@ -77,6 +78,9 @@ public class RuleAttrMappingVo {
         LocalDate registrationDate = LocalDate.parse(carInfo.getRegisterDate());
         LocalDate currentDate = LocalDate.now();
 
+        //特种车判断
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SpecialVehicle", Objects.nonNull(carInfo.getImportFlag()) && carInfo.getImportFlag().equals("特种车类") ? "1" : "0"));
+
         //交强起保日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqStartTime", insAreaCompany.getJqStartDate()));
 

+ 6 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -56,6 +56,7 @@ import org.redisson.Redisson;
 import org.redisson.api.RLock;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -147,6 +148,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private SysSwitchConfigService sysSwitchConfigService;
 
+    @Autowired
+    private RedisTemplate redisTemplate;
+
     public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper,
                                   InsDeptFeeService insDeptFeeService, EsmUserReferrerService esmUserReferrerService,
                                   SysUserService sysUserService, InsCommissionService insCommissionService,
@@ -432,6 +436,8 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             if (isManagement(order.getUserid()) && sysSwitchConfigService.getBalanceExtractStatus()) {
                 dataServerService.sendLgDataServer(insOrderNo);
             }
+            // 审核完成之后 清空锁
+            redisTemplate.delete("FEE_AUDIT:"+insOrderNo);
         } catch (Exception e) {
             throw new SystemException("当前业务繁忙,请稍后重试");
         } finally {

+ 3 - 0
src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java

@@ -79,6 +79,9 @@ public class CarInfoVo {
     @ApiModelProperty(value = "车辆类型(轿车类,特种车类)")
     private String vehicleclass;
 
+    @ApiModelProperty(value = "车辆类型(轿车类,特种车类)")
+    private String importFlag;
+
 //    @NotNull(message = "车架号不能为空")
     @ApiModelProperty(value = "车架号")
     private String vinNo;

+ 3 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -71,6 +71,9 @@ public class QuoteRespVo {
     @ApiModelProperty("订单号")
     private String orderno;
 
+    @ApiModelProperty("订单状态")
+    private String orderstatus;
+
     @ApiModelProperty("是否真单交")
     private String iszdj;
 

+ 66 - 0
src/main/java/com/ydtech/modules/order/controller/QuoteController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.controller;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -275,9 +276,11 @@ public class QuoteController extends BaseController {
 //            quoteVo1.setAccidentalDrivingVo(javaObject);
 //            return pingAnOrderApiService.quote(quoteInfo, quoteVo1);
         }
+
         PtlAgreementAttribution byId = ptlAgreementAttributionService.getById(quoteVo.getAgreementId());
         if( respVo != null && !ObjectUtils.isEmpty( respVo.getData() )){
             respVo.getData().setApiType(byId.getApiType());
+            respVo.getData().setOrderstatus("0");
         }
         return respVo;
     }
@@ -338,4 +341,67 @@ public class QuoteController extends BaseController {
 
         return httpResult;
     }
+
+
+    @PostMapping(value = "batchOrderStatus")
+    public HttpResult batchOrderStatus(@RequestSingleParam("orderNos") List<String> orderNos) throws Exception {
+        List<InsAreaCompany> list = insAreaCompanyService.list(new LambdaQueryWrapper<InsAreaCompany>()
+                .in(InsAreaCompany::getId, orderNos));
+        list.forEach(item -> {
+            //如果是爬虫的 先调用爬虫的查询订单状态
+            if (Objects.isNull(item.getApiType()) || item.getApiType() == 2) {
+                try {
+                    insCrawlerOrderService.verifyPayment(item.getId());
+                }catch (Exception e){
+
+                }
+            }
+            if (item.getCompanyId().equals("AICS1000000") && item.getApiType() == 1) {
+                try {
+                    yongchengOrderApiService.callbackAnOrder(item.getId());
+                }catch (Exception e){
+
+                }
+            } else if (item.getCompanyId().equals("ZMBX1000000") && item.getApiType() == 1) {
+                try {
+                    zhongMeiOrderApiService.paymentEnquiry(item.getId());
+                }catch (Exception e){}
+            } else if (item.getCompanyId().equals("ZKIC1000000")) {
+                try {
+                    zijinOrderApiService.auditStatusQuery(item.getId());
+                }catch (Exception e){}
+            } else if (item.getCompanyId().equals("XDCX1000000")) {
+                try {
+                    guorenOrderApiService.pay(item.getId());
+                }catch (Exception e){}
+            } else if (item.getCompanyId().equals("YGBX1000000")) {
+                try {
+                    yangGuangOrderApiService.paymentCallback(item.getId());
+                } catch (JsonProcessingException e) {
+                    throw new RuntimeException(e);
+                }
+            } else if (item.getCompanyId().equals("HTIC1000000")) {
+                try {
+                    huaTaiOrderApiService.paymentEnquiry(item.getId());
+                }catch (Exception e){}
+            } else if (item.getCompanyId().equals("DJPC1000000")) {
+                try {
+                    daJiaOrderService.verifyPayment(item.getId());
+                }catch (Exception e){}
+            } else if (item.getCompanyId().equals("CHAC1000000")) {
+                try {
+                    chengTaiOrderApiService.getPayUrl(item.getId());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            } else if (item.getCompanyId().equals("BPIC1000000")) {
+                try {
+                    boHaiOrderApiService.auditStatusQuery(item.getId());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+        return HttpResult.ok("查询成功");
+    }
 }

+ 3 - 2
src/main/java/com/ydtech/modules/order/controller/YongChengOrderApiController.java

@@ -63,8 +63,8 @@ public class YongChengOrderApiController {
     @ApiOperation(value = "永诚API方式 - 影像上传")
     @PostMapping(value = "/uploadImage")
     public HttpResult uploadImageApi(@RequestSingleParam(value = "companyId") String companyId) {
-        return yongchengOrderApiService.uploadImageApi(companyId);
-//        return HttpResult.ok("ok");
+//        return yongchengOrderApiService.uploadImageApi(companyId);
+        return HttpResult.ok("ok");
     }
 
     @ApiOperation(value = "永诚API方式 -电子保单")
@@ -115,6 +115,7 @@ public class YongChengOrderApiController {
 
         lqw.eq(InsAreaCompany::getOrderstatus, InsOrderStatusEnum.WAIT_PAY.getCode());
         lqw.gt(InsAreaCompany::getAudittime, LocalDate.now());
+        lqw.eq(InsAreaCompany::getId,suborderId);
         List<InsAreaCompany> list = insAreaCompanyService.list(lqw);
 
         list.forEach(yongchengOrderApiService::getPayUrlApi);

+ 14 - 10
src/main/java/com/ydtech/modules/order/entity/api/yangguang/request/YangGuangAccuracyCalculateRequest.java

@@ -225,7 +225,7 @@ public class YangGuangAccuracyCalculateRequest extends YangGuangBaseRequest{
                                              YangGuangQueryVehicleModelResponse.carmodellist carmodellist,
                                              RiskInfoVo riskInfoVo, String startDate,
                                              YangGuangConfigureParameters ygConfigureParameters,
-                                             BaseQuoteVo<List<YgQuoteAccidentVo>> quoteVo,boolean isRepeat) {
+                                             BaseQuoteVo<List<YgQuoteAccidentVo>> quoteVo,boolean isRepeat,String remarkCi,String remarkBi) {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         this.RequestNo = "accuracyCalculate";
         this.UnderWritingRate = quoteVo.getCoefficient();
@@ -243,23 +243,27 @@ public class YangGuangAccuracyCalculateRequest extends YangGuangBaseRequest{
                 this.BiEndDate = biEndTime.format(formatter);
                 // 重复投保
                 if (isRepeat) {
-                    LocalDateTime biStartTime1 = LocalDateTime.parse(startDate, formatter);
-                    LocalDateTime biEndTime1 = biStartTime.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
-                    this.BiStartDate = biStartTime1.format(formatter);
-                    this.BiEndDate = biEndTime1.format(formatter);
+                    if (!remarkBi.equals("")) {
+                        LocalDateTime biStartTime1 = LocalDateTime.parse(startDate, formatter);
+                        LocalDateTime biEndTime1 = biStartTime1.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
+                        this.BiStartDate = biStartTime1.format(formatter);
+                        this.BiEndDate = biEndTime1.format(formatter);
+                    }
                 }
             }
             if (InsuranceRisk.TRAFFIC_CODE.equals(riskInfo.getRiskCode())) {
                 LocalDateTime ciStartTime = LocalDateTime.parse(riskInfo.getStartDate(), formatter);
-                LocalDateTime ciEndTime = ciStartTime.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
+                LocalDateTime ciEndTime = LocalDateTime.parse(riskInfo.getEndDate(), formatter);
                 this.CiStartDate = ciStartTime.format(formatter);
                 this.CiEndDate = ciEndTime.format(formatter);
                 // 重复投保
                 if (isRepeat) {
-                    LocalDateTime ciStartTime1 = LocalDateTime.parse(startDate, formatter);
-                    LocalDateTime ciEndTime1 = ciStartTime1.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
-                    this.CiStartDate = ciStartTime1.format(formatter);
-                    this.CiEndDate = ciEndTime1.format(formatter);
+                    if (!remarkCi.equals("")) {
+                        LocalDateTime ciStartTime1 = LocalDateTime.parse(startDate, formatter);
+                        LocalDateTime ciEndTime1 = ciStartTime1.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
+                        this.CiStartDate = ciStartTime1.format(formatter);
+                        this.CiEndDate = ciEndTime1.format(formatter);
+                    }
                 }
             }
         }

+ 8 - 4
src/main/java/com/ydtech/modules/order/service/impl/YangGuangOrderApiServiceImpl.java

@@ -142,7 +142,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
         InsOrders insOrders = insOrdersService.getById(quoteInfoVo.getOrderNo());
         quoteInfoVo.setProductId(insOrders.getProductid());
 
-        YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),startDate,ygConfigureParameters,quoteVo,false);
+        YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),startDate,ygConfigureParameters,quoteVo,false,null,null);
         yangGuangAccuracyCalculateRequest.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
         YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponse = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequest);
         // 如果发生重复投保 将返回的终保日期带入起保日期重新报价
@@ -153,7 +153,9 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
 
                 LocalDateTime dateTime = LocalDateTime.parse(endDate, inputFormatter);
                 String newDateStr = dateTime.format(outputFormatter);
-                YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequestRe = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo,true);
+                String remarkCi = yangGuangAccuracyCalculateResponse.getRemarkCi();
+                String remarkBi = yangGuangAccuracyCalculateResponse.getRemarkBi();
+                YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequestRe = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo,true,remarkCi,remarkBi);
                 yangGuangAccuracyCalculateRequestRe.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
                 maxQuoteNum--;
                 SysQuoteRecord sysQuoteRecord = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
@@ -170,7 +172,9 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
                     if (yangGuangAccuracyCalculateResponseRe.getErrorCode().equals("0")) {
                         YangGuangAccuracyCalculateResponse.itemcar itemcar = yangGuangAccuracyCalculateResponseRe.getItemcar();
                         String actualValue = itemcar.getActualValue();
-                        YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo,true);
+                        String remarkCi1 = yangGuangAccuracyCalculateResponseRe.getRemarkCi();
+                        String remarkBi1 = yangGuangAccuracyCalculateResponseRe.getRemarkBi();
+                        YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo,true,remarkCi1,remarkBi1);
                         yangGuangAccuracyCalculateRequest1.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
                         maxQuoteNum--;
                         SysQuoteRecord sysQuoteRecord1 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
@@ -280,7 +284,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
             if (yangGuangAccuracyCalculateResponse.getErrorCode().equals("0")) {
                 YangGuangAccuracyCalculateResponse.itemcar itemcar = yangGuangAccuracyCalculateResponse.getItemcar();
                 String actualValue = itemcar.getActualValue();
-                YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),startDate,ygConfigureParameters,quoteVo,false);
+                YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),startDate,ygConfigureParameters,quoteVo,false,null,null);
                 yangGuangAccuracyCalculateRequest1.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
                 YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponse1 = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequest1);
                 boolean isEnergy = carInfo.isNewEnergy();

+ 6 - 5
src/main/java/com/ydtech/modules/scheme/entity/po/PtlScheme.java

@@ -3,13 +3,10 @@ package com.ydtech.modules.scheme.entity.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesDictLabal;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
-import java.util.List;
+import java.time.LocalDateTime;
 
 /**
  * 方案规则属性
@@ -54,9 +51,13 @@ public class PtlScheme {
     @TableField("carnature")
     private String carnature;
 
+    @ApiModelProperty(value = "优先级")
+    @TableField("priority_level")
+    private String priorityLevel;
+
     @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time")
-    private String createTime;
+    private LocalDateTime createTime;
 
 
     @ApiModelProperty(value = "创建人")

+ 4 - 0
src/main/java/com/ydtech/modules/scheme/entity/vo/SchemeResultVo.java

@@ -22,6 +22,10 @@ public class SchemeResultVo {
 
     private String description;
 
+    private String priorityLevel;
+
+    private String createTime;
+
     private JSONArray risks;
 
     private JSONArray kinds;

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

@@ -49,6 +49,9 @@ public class SchemeSaveVo {
         @ApiModelProperty(value = "描述")
         private String description;
 
+        @ApiModelProperty(value = "优先级")
+        private String priorityLevel;
+
         @ApiModelProperty(value = "商业险种")
         @JsonProperty("kinds")
         private List<SchemeKindInfoVo> kinds;

+ 22 - 5
src/main/java/com/ydtech/modules/scheme/service/impl/PtlSchemeRulesServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.insurance.EnergyType;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
 import com.ydtech.modules.protocol.service.ITaxSourceExcludeService;
@@ -22,10 +23,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -139,6 +139,11 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
         return rulesPage;
     }
 
+    public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
+        Set<Object> seen = new HashSet<>();
+        return t -> seen.add(keyExtractor.apply(t)); // 如果id已存在则过滤
+    }
+
     /**
      * 根据规则过滤保险公司
      *
@@ -147,9 +152,20 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
      */
     @Override
     public List<PtlAgreementInsCompanyDto> ruleFilterCompany(String userId, RuleFilterVo ruleFilterVo) {
+        List<PtlAgreementInsCompanyDto> userAgreementInsCompany = new ArrayList<>();
+        if(!BaseController.getUserId().equals(userId)){
+
+            userAgreementInsCompany = taxSourceService.getAllAgreement(BaseController.getDeptId(),BaseController.getUserId());
+        }
         String deptId = sysUserService.getById(userId).getDeptId();
         //首先获取有权限的保险公司
         List<PtlAgreementInsCompanyDto> agreementInsCompany = taxSourceService.getAllAgreement(deptId, userId);
+        agreementInsCompany.addAll(userAgreementInsCompany);
+
+        agreementInsCompany = agreementInsCompany.stream()
+                .filter(distinctByKey(PtlAgreementInsCompanyDto::getId))  // 核心:按id去重
+                .collect(Collectors.toList());
+
         //用户可读取的所有保险公司id
         List<String> companyIds = agreementInsCompany.stream()
                 .map(PtlAgreementInsCompanyDto::getId)
@@ -176,6 +192,7 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
                 ruleFilterVo.getInsureInfo(),
                 null);
         //赛选规则
+        List<PtlAgreementInsCompanyDto> finalAgreementInsCompany = agreementInsCompany;
         userAllSchemeByCompanyIds.forEach(scheme -> {
             List<SchemeRuleResultVo> rulesVo = ptlSchemeRulesAttrLinkService.getSchemeRulesAttrLinks(scheme.getCompanyId(), ruleFilterVo.getProductId());
 
@@ -186,7 +203,7 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
                         ruleFilteringService.judgements(r.getAttrLinks(), rulesAttrList, ruleAttrMappingVoList)
                 );
                 if (allRulesPassed) {
-                    agreementInsCompany.stream()
+                    finalAgreementInsCompany.stream()
                             .filter(x -> x.getId().equals(scheme.getCompanyId()))
                             .forEach(item -> {
                                 if (ptlAgreementInsCompanyDtos.stream()

+ 8 - 0
src/main/java/com/ydtech/modules/scheme/service/impl/PtlSchemeServiceImpl.java

@@ -23,10 +23,12 @@ import com.ydtech.modules.scheme.service.*;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.ibatis.annotations.Param;
+import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -100,9 +102,11 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
                 scheme.setProductName(schemeSaveVo.getProductName());
                 scheme.setDescription(item.getDescription());
                 scheme.setSchemeName(item.getSchemeName());
+                scheme.setPriorityLevel(item.getPriorityLevel());
                 scheme.setVehicleType(schemeSaveVo.getVehicleType());
                 scheme.setEnergyType(schemeSaveVo.getEnergyType());
                 scheme.setCarnature(schemeSaveVo.getCarnature());
+                scheme.setCreateTime(LocalDateTime.now());
                 this.save(scheme);
 
 
@@ -362,6 +366,9 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         queryWrapper.eq(PtlScheme::getVehicleType, vehicleType);
         queryWrapper.eq(PtlScheme::getEnergyType, energyType);
         queryWrapper.eq(PtlScheme::getCarnature, carnature);
+        // 排序条件,按照优先级级别升序排序,创建时间降序排序
+        queryWrapper.orderByAsc(PtlScheme::getPriorityLevel)
+                .orderByDesc(PtlScheme::getCreateTime);
         List<PtlScheme> ptlSchemes = baseMapper.selectList(queryWrapper);
         schemeSaveVo.setCompanyId(companyId);
         schemeSaveVo.setProductId(ptlSchemes.get(0).getProductId());
@@ -374,6 +381,7 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
             productVo.setId(scheme.getId());
             productVo.setSchemeName(scheme.getSchemeName());
             productVo.setDescription(scheme.getDescription());
+            productVo.setPriorityLevel(scheme.getPriorityLevel());
             List<SchemeKindInfoVo> kinds = new ArrayList<>();
             //遍历全部options
             List<InsBusinessInsurance> businessInsurance = insBusinessInsuranceService.getBusinessInsurance();

+ 2 - 0
src/main/resources/mapper/modules/scheme/PtlSchemeMapper.xml

@@ -10,6 +10,8 @@
         <result property="productName" column="product_name" />
         <result property="schemeName" column="scheme_name" />
         <result property="description" column="description" />
+        <result property="priorityLevel" column="priority_level" />
+<!--        <result property="createTime" column="create_time" />-->
         <result property="kinds" column="kinds" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
         <collection property="drivingIntentions" ofType="com.ydtech.modules.scheme.entity.po.PtlSchemeInsuranceDrivingIntention">
             <id property="id" column="id" />