wks 1 год назад
Родитель
Сommit
3d09fbd758

+ 11 - 2
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -23,14 +23,13 @@ import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
-import com.ydtech.modules.scheme.service.PtlSchemeRulesService;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
@@ -533,4 +532,14 @@ public class InsOrdersController extends BaseController {
         return HttpResult.ok(insured);
     }
 
+    @PostMapping("/shutDown/{orderNo}")
+    @ApiOperation(value = "关闭订单")
+    public HttpResult shutDown(@PathVariable String orderNo) {
+        InsOrders insOrders = insOrdersService.getById(orderNo);
+        insOrders.setDelFlag("0");
+        boolean b = insOrdersService.updateById(insOrders);
+        AssertionUtils.isSucceed(b, "关闭订单失败");
+        return HttpResult.ok();
+    }
+
 }

+ 9 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -17,6 +17,7 @@ import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
+import com.ydtech.modules.order.entity.dto.SubOrderCountDTO;
 import com.ydtech.modules.order.entity.vo.OrderQueryVo;
 import com.ydtech.modules.order.entity.vo.RejectPageQueryVo;
 import org.apache.ibatis.annotations.Param;
@@ -323,6 +324,14 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @return  查询已审核的外部订单
      */
     Page<InsAreaCompany> orderCheckPage(Page page, @Param("userId") String userId, @Param("vo") RejectPageQueryVo rejectPageQueryVo);
+
+    /**
+     * 获取子订单数量
+     * @param orderNo 订单数量
+     * @return 子订单数量
+     */
+    List<SubOrderCountDTO> getSubOrderCountDTO(List<String> orderNo);
+
     /**
      * @description:   财务中心-费用校验-合计
      * @author: whp

+ 38 - 7
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -27,6 +27,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -342,9 +343,30 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private String checkType;
 
-   // @ApiModelProperty("对接人")
-   // @TableField(value = "del_flag")
-   // private String delFlag;
+    @ApiModelProperty("是否删除")
+    @TableField(value = "del_flag")
+    private String delFlag;
+
+    @ApiModelProperty("报价完成")
+    @TableField(exist = false)
+    private String orderStatus0;
+
+    @ApiModelProperty("待核保")
+    @TableField(exist = false)
+    private String orderStatus1;
+
+    @ApiModelProperty("已核保待缴费")
+    @TableField(exist = false)
+    private String orderStatus2;
+
+    @ApiModelProperty("已承保")
+    @TableField(exist = false)
+    private String orderStatus3;
+
+    @ApiModelProperty("核保退回")
+    @TableField(exist = false)
+    private String orderStatus4;
+
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单
@@ -369,7 +391,7 @@ public class InsOrders implements Serializable {
         //被保人 是否同投保人
         quoteInfoVo.getInsuredPersonInfo().setInsuranceHolder(quoteInfoVo.getInsuredPersonInfo().contrastInfo(quoteInfoVo.getPolicyHolderInfo()));
         //被保人是否同车主
-        if(!quoteInfoVo.getInsuredPersonInfo().isInsuranceHolder()){
+        if (!quoteInfoVo.getInsuredPersonInfo().isInsuranceHolder()) {
             quoteInfoVo.getInsuredPersonInfo().setOwner(quoteInfoVo.getInsuredPersonInfo().contrastInfo(quoteInfoVo.getOwnerInfo()));
         }
         this.setInsureinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getInsuredPersonInfo())));
@@ -386,13 +408,13 @@ public class InsOrders implements Serializable {
         this.setKing(JSON.parseArray(JSON.toJSONString(quoteInfoVo.getKindList())));
 
         // 2.4 产品信息
-        if(Objects.isNull(quoteInfoVo.getProductId())) {
+        if (Objects.isNull(quoteInfoVo.getProductId())) {
             this.productInformation(risks, kinds);
-        }else{
+        } else {
             this.setProductid(quoteInfoVo.getProductId());
             this.setProduct(ProductsType.getByCode(quoteInfoVo.getProductId()).getDesc());
         }
-        if(!Objects.isNull(quoteInfoVo.getOrderSource())){
+        if (!Objects.isNull(quoteInfoVo.getOrderSource())) {
 //            this.setOrderSource(quoteInfoVo.getOrderSource());
         }
         this.setCreatetime(LocalDateTime.now());
@@ -482,4 +504,13 @@ public class InsOrders implements Serializable {
         map.put("syFlag", syFlag);
         return map;
     }
+
+    public void setSubOrderStatus(Map<String, String> subOrderCountDTO) {
+        orderStatus0 = subOrderCountDTO.get(orderno + InsOrderStatusEnum.QUOTE_ING.getCode());
+        orderStatus1 = subOrderCountDTO.get(orderno + InsOrderStatusEnum.WAIT_AUDIT.getCode());
+        orderStatus2 = subOrderCountDTO.get(orderno + InsOrderStatusEnum.WAIT_PAY.getCode());
+        orderStatus3 = subOrderCountDTO.get(orderno + InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
+        orderStatus4 = subOrderCountDTO.get(orderno + InsOrderStatusEnum.TO_BACK.getCode());
+    }
+
 }

+ 26 - 0
src/main/java/com/ydtech/modules/order/entity/dto/SubOrderCountDTO.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.order.entity.dto;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SubOrderCountDTO implements Serializable {
+
+    private static final long serialVersionUID = -8127429749889632955L;
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 订单状态
+     */
+    private String orderStatus;
+    /**
+     * 订单数量
+     */
+    private String count;
+
+}

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/DaJiaOrderService.java

@@ -50,5 +50,5 @@ public interface DaJiaOrderService extends BaseOrderService<Object>{
     * @Exception
     *
     */
-    public void verifyPaymentNew(String companyId);
+     void verifyPaymentNew(String companyId);
 }

+ 70 - 43
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
+import com.ydtech.modules.order.entity.dto.SubOrderCountDTO;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
@@ -16,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Administrator
@@ -54,7 +56,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * @param insAreaCompany
      */
     @Transactional
-    default void updateCompanyAndOrdersMessage(InsAreaCompany insAreaCompany, String messages){
+    default void updateCompanyAndOrdersMessage(InsAreaCompany insAreaCompany, String messages) {
         updateCompanyAndOrders(insAreaCompany);
         saveInsOrdersUnderwritingReason(insAreaCompany.getId(), messages, insAreaCompany.getOrderstatus());
     }
@@ -71,11 +73,12 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * 插入子订单 并且修改订单状态
      *
      * @param insAreaCompany
-     * @param insAreaCompanyAccidentalDriving   驾意险信息
+     * @param insAreaCompanyAccidentalDriving 驾意险信息
      */
     void insertCompanyAndOrders(InsAreaCompany insAreaCompany, InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving);
 
     void insertCompanyAndOrders(InsAreaCompany insAreaCompany, List<InsAreaCompanyAccidentalDriving> insAreaCompanyAccidentalDriving);
+
     /**
      * 插入子订单 并且修改订单状态
      *
@@ -102,12 +105,14 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
     /**
      * 查询待审核的订单
+     *
      * @return
      */
     Page<InsOrders> getAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
     /**
      * 查询已审核得订单
+     *
      * @param page
      * @param orderQueryVo
      * @return
@@ -121,36 +126,41 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
     InsAreaCompany getByInsOrderNoNew(String insOrderNo, String timeFiltering);
 
     InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew);
+
+    /**
+     * @version
+     * @author: hxl
+     * @Date: 2024/5/8 18:08
+     * @Description: 根据年份查询数据
+     */
+    OrderVo selectEntityByinsOrderNo(String insOrderNo, String timeFiltering);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/5/8 18:08
-     *  @Description: 根据年份查询数据
-     */
-   OrderVo selectEntityByinsOrderNo(String insOrderNo, String timeFiltering);
-   /**
-    *  @version
-    *  @author: hxl
-    *  @Date: 2024/5/13 8:42
-    *  @Description: 批量更新险种状态
-    */
+     * @version
+     * @author: hxl
+     * @Date: 2024/5/13 8:42
+     * @Description: 批量更新险种状态
+     */
     HttpResult updateBatchPruductById(String subOrderId);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/6/3 11:41
-     *  @Description:  通过类型查询数据
+     * @version
+     * @author: hxl
+     * @Date: 2024/6/3 11:41
+     * @Description: 通过类型查询数据
      */
     InsOrders selectByInFeeOrderNewByType(InsFeeOrderNew insFeeOrderNew, String type);
 
     /**
      * 保存子订单信息
+     *
      * @return
      */
     boolean saveSubOrder(BaseQuoteInfoVo quoteInfo, BaseQuoteVo<AccidentalDrivingVo> quoteVo);
 
     /**
      * 根据订单id 获取已承保的子订单信息
+     *
      * @param orderno
      * @return
      */
@@ -158,6 +168,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
     /**
      * 标注疑问订单
+     *
      * @param problemOrderQueryVo
      * @return
      */
@@ -165,64 +176,80 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
     /**
      * 获取审核驳回订单
+     *
      * @param userId
      * @return
      */
-    Page<InsAreaCompany> getRejectOrder(Page page,String userId,RejectPageQueryVo rejectPageQueryVo);
+    Page<InsAreaCompany> getRejectOrder(Page page, String userId, RejectPageQueryVo rejectPageQueryVo);
 
     /**
      * 更新外部订单
+     *
      * @param insOrdersEditingVo
      * @return
      */
     boolean updateOrderAndSubOrder(InsOrdersEditingVo insOrdersEditingVo);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/7/10 17:40
-     *  @Description:  获取暂存订单数据
+     * @version
+     * @author: hxl
+     * @Date: 2024/7/10 17:40
+     * @Description: 获取暂存订单数据
      */
-    Page<InsAreaCompany> getStageOrder(Page page, String userId,RejectPageQueryVo rejectPageQueryVo);
+    Page<InsAreaCompany> getStageOrder(Page page, String userId, RejectPageQueryVo rejectPageQueryVo);
 
     /**
-     *  @version
-     *  @author: whp
-     *  @Date: 2024/8/08
-     *  @Description:  控制台出单人力
+     * @version
+     * @author: whp
+     * @Date: 2024/8/08
+     * @Description: 控制台出单人力
      */
     QxFrontlineAgentDto getOrderManpower(List<String> ids);
 
     QxFrontlineAgentDto getOrderManpowerByUserId(String id);
 
     QxFrontlineAgentDto getOrderManpowerNew(@Param("vo") QxFrontlineAgentDto qxFrontlineAgentDto);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/8/30 10:23
-     *  @Description:  通过用户id查询到导出的数据
+     * @version
+     * @author: hxl
+     * @Date: 2024/8/30 10:23
+     * @Description: 通过用户id查询到导出的数据
      */
     Double getOrderPremiumByUserIds(List<String> ids);
 
 
     /**
      * 保存核保退回原因
-     * @param subNoOrder 子订单号
-     * @param message 退回原因
+     *
+     * @param subNoOrder  子订单号
+     * @param message     退回原因
      * @param orderStatus 订单状态
      */
     void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/9/14 16:58
-     *  @Description: 查询外部审核通过的订单
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/14 16:58
+     * @Description: 查询外部审核通过的订单
      */
-    Page<InsAreaCompany>  orderCheckPage(Page page, String id, RejectPageQueryVo rejectPageQueryVo);
+    Page<InsAreaCompany> orderCheckPage(Page page, String id, RejectPageQueryVo rejectPageQueryVo);
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/9/18 10:56
-     *  @Description:  外部订单逻辑删除
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/18 10:56
+     * @Description: 外部订单逻辑删除
      */
     void updateDeleteFalg(String id);
+
+    /**
+     * 获取子订单数量
+     *
+     * @param orderNo
+     * @return
+     */
+    Map<String, String> getSubOrderCountDTO(List<String> orderNo);
+
 }

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

@@ -58,5 +58,11 @@ public interface InsCrawlerOrderService extends BaseOrderService<Object> {
     * @Exception
     *
     */
-    public void verifyPaymentNew(String insAreaCompanyId);
+     void verifyPaymentNew(String insAreaCompanyId);
+
+
+    /**
+     * 撤销订单
+     */
+    void quash(String subOrderNo);
 }

+ 29 - 19
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -25,6 +25,7 @@ import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.*;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
+import com.ydtech.modules.order.entity.dto.SubOrderCountDTO;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
@@ -47,6 +48,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author Administrator
@@ -163,8 +165,8 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
 
         //更新主订单的投保时间
-        insOrdersService.updateOrderStartingInsruanceTime(insAreaCompany.getOrderno(),insAreaCompany.getJqStartDate(),insAreaCompany.getJqEndDate(),
-                insAreaCompany.getSyStartDate(),insAreaCompany.getSyEndDate());
+        insOrdersService.updateOrderStartingInsruanceTime(insAreaCompany.getOrderno(), insAreaCompany.getJqStartDate(), insAreaCompany.getJqEndDate(),
+                insAreaCompany.getSyStartDate(), insAreaCompany.getSyEndDate());
 
 
         baseMapper.insert(insAreaCompany);
@@ -190,8 +192,8 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         insAreaCompany = updateEntityPruductAndPruductid(insAreaCompany);
 
         //更新主订单的投保时间
-        insOrdersService.updateOrderStartingInsruanceTime(insAreaCompany.getOrderno(),insAreaCompany.getJqStartDate(),insAreaCompany.getJqEndDate(),
-                insAreaCompany.getSyStartDate(),insAreaCompany.getSyEndDate());
+        insOrdersService.updateOrderStartingInsruanceTime(insAreaCompany.getOrderno(), insAreaCompany.getJqStartDate(), insAreaCompany.getJqEndDate(),
+                insAreaCompany.getSyStartDate(), insAreaCompany.getSyEndDate());
 
         baseMapper.insert(insAreaCompany);
         //保存驾意险信息
@@ -1000,11 +1002,12 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         return baseMapper.getOrderManpowerNew(qxFrontlineAgentDto);
 
     }
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/8/30 10:27
-     *  @Description:  通过用户id查询总保费
+     * @version
+     * @author: hxl
+     * @Date: 2024/8/30 10:27
+     * @Description: 通过用户id查询总保费
      */
     @Override
     public Double getOrderPremiumByUserIds(List<String> ids) {
@@ -1013,34 +1016,41 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
     @Override
     public void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus) {
-        if(!Arrays.asList(InsOrderStatusEnum.getRefuseUnderwriting()).contains(orderStatus)){
+        if (!Arrays.asList(InsOrderStatusEnum.getRefuseUnderwriting()).contains(orderStatus)) {
             return;
         }
         insOrdersUnderwritingReasonService.saveInsOrdersUnderwritingReason(subNoOrder, message, orderStatus);
     }
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/9/14 16:59
-     *  @Description: 审核通过的外部订单
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/14 16:59
+     * @Description: 审核通过的外部订单
      */
     @Override
     public Page<InsAreaCompany> orderCheckPage(Page page, String userId, RejectPageQueryVo rejectPageQueryVo) {
-        return  baseMapper.orderCheckPage(page, userId, rejectPageQueryVo);
+        return baseMapper.orderCheckPage(page, userId, rejectPageQueryVo);
     }
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/9/18 10:57
-     *  @Description: 外部订单删除
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/18 10:57
+     * @Description: 外部订单删除
      */
     @Override
     public void updateDeleteFalg(String id) {
         UpdateWrapper<InsAreaCompany> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.set("del_flag",0).eq("id", id);
+        updateWrapper.set("del_flag", 0).eq("id", id);
         update(updateWrapper);
     }
 
+    @Override
+    public Map<String, String> getSubOrderCountDTO(List<String> orderNo) {
+        List<SubOrderCountDTO> subOrderCountDTO = baseMapper.getSubOrderCountDTO(orderNo);
+        return subOrderCountDTO.stream().collect(Collectors.toMap(x -> x.getOrderNo() + x.getOrderStatus(), SubOrderCountDTO::getCount));
+    }
 
 }
 

+ 13 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -528,4 +528,17 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
         }
     }
+
+    @Override
+    public void quash(String subOrderNo) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
+        CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
+        CrawlerBaseResponse request = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
+                PtlCrawlerApiType.API_9.getDesc(), crawlerBaseRequest, CrawlerBaseResponse.class);
+        if (request.getCode() == CrawlerAuditStatus.CAS_200.getCode()) {
+            insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
+        }
+        insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
+    }
+
 }

+ 33 - 25
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -356,19 +356,19 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         LocalDateTime oneMonthAgo = now.minus(1, ChronoUnit.MONTHS);
         //条件 产品  车牌 用户
         List<InsOrders> insOrdersList = this.list(new LambdaQueryWrapper<InsOrders>()
-                .eq(InsOrders::getProductid,quoteInfoVo.getProductId())
-                .eq(InsOrders::getLicenseno,quoteInfoVo.getCarInfo().getLicenseNo())
-                .eq(InsOrders::getUserid,quoteInfoVo.getUserId())
-                .eq(InsOrders::getEntryStatus,insOrders.getEntryStatus())
+                .eq(InsOrders::getProductid, quoteInfoVo.getProductId())
+                .eq(InsOrders::getLicenseno, quoteInfoVo.getCarInfo().getLicenseNo())
+                .eq(InsOrders::getUserid, quoteInfoVo.getUserId())
+                .eq(InsOrders::getEntryStatus, insOrders.getEntryStatus())
                 .ge(InsOrders::getCreatetime, oneMonthAgo)
                 .le(InsOrders::getCreatetime, now));
 
-        if(!insOrdersList.isEmpty()){
+        if (!insOrdersList.isEmpty()) {
             InsOrders newOrders = new InsOrders(user, dept, quoteInfoVo);
             // 同步订单id
             newOrders.setOrderno(insOrdersList.get(0).getOrderno());
             // 对比订单是否进行修改
-            if(!this.contrastOrder(insOrdersList.get(0),newOrders)) {
+            if (!this.contrastOrder(insOrdersList.get(0), newOrders)) {
                 this.updateById(newOrders);
                 //刷新缓存
                 this.updateOrderCache(newOrders);
@@ -377,7 +377,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
 
 
-
         //需要赋值代录单人ID
         if (ObjectUtils.isEmpty(insOrders1)) {
             // 录入订单状态
@@ -471,17 +470,25 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             deptId = dept.getId();
             isDxFlag = true;
         }
-        Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, adminFalg, isCdy, deptId,isDxFlag);
-        Long total = baseMapper.queryPageOrderCount(orderQueryVo, adminFalg, isCdy, deptId,isDxFlag);
+        Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, adminFalg, isCdy, deptId, isDxFlag);
+        Long total = baseMapper.queryPageOrderCount(orderQueryVo, adminFalg, isCdy, deptId, isDxFlag);
         orderVoPage.setTotal(total);
 
         List<InsOrders> records = orderVoPage.getRecords();
-        records.forEach(x->{
-            JSONArray risk = x.getRisk();
-            List<RiskInfoVo> javaList = risk.toJavaList(RiskInfoVo.class);
-            javaList.forEach(RiskInfoVo::expirationTime);
-            JSONArray objects = JSON.parseArray(JSON.toJSONString(javaList));
-            x.setRisk(objects);
+        List<String> collect = records.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+        Map<String, String> subOrderCountDTO = insAreaCompanyService.getSubOrderCountDTO(collect);
+
+        records.forEach(x -> {
+
+            if (InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(x.getOrderstatus())) {
+                JSONArray risk = x.getRisk();
+                List<RiskInfoVo> javaList = risk.toJavaList(RiskInfoVo.class);
+                javaList.forEach(RiskInfoVo::expirationTime);
+                JSONArray objects = JSON.parseArray(JSON.toJSONString(javaList));
+                x.setRisk(objects);
+            }
+
+            x.setSubOrderStatus(subOrderCountDTO);
         });
 
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
@@ -807,7 +814,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
             orderAndAreaCompany.setAccidentInfo(accidentInfo);
             orderAndAreaCompany.setJyName(insAreaCompanyAccidentalDriving.getRideRiskName());
-            if(!Objects.isNull(insAreaCompanyAccidentalDriving.getQuantity())) {
+            if (!Objects.isNull(insAreaCompanyAccidentalDriving.getQuantity())) {
                 orderAndAreaCompany.setJyQuantity(insAreaCompanyAccidentalDriving.getQuantity().toString());
             }
         } else {
@@ -1103,9 +1110,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
         ptlAgreementInsCompanyDtos.forEach(companyDto -> {
             InsOrdersEditingVo.InsAreaCompanyEditingDto insAreaCompanyEditingDto = insAreaCompanyEditingDtos.stream().filter(x -> x.getInscompany().equals(companyDto.getNamesimple())).findFirst().orElse(null);
-            if(!Objects.isNull(insAreaCompanyEditingDto)) {
+            if (!Objects.isNull(insAreaCompanyEditingDto)) {
                 InsAreaCompanyAccidentalDriving byCompanyId = insAreaCompanyAccidentalDrivingService.getByCompanyId(insAreaCompanyEditingDto.getCompanyId());
-                if(!Objects.isNull(byCompanyId)){
+                if (!Objects.isNull(byCompanyId)) {
                     insAreaCompanyEditingDto.setJyQuantity(byCompanyId.getQuantity().toString());
                     insAreaCompanyEditingDto.setJyName(byCompanyId.getRideRiskName());
                 }
@@ -2016,12 +2023,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
      * 更新订单的起保与终保时间
      */
     @Override
-    public void updateOrderStartingInsruanceTime(String orderno,String jqStartTime,String jqEndTime,String syStartTime,String syEndTime){
+    public void updateOrderStartingInsruanceTime(String orderno, String jqStartTime, String jqEndTime, String syStartTime, String syEndTime) {
         InsOrders order = this.getById(orderno);
-        if((Objects.isNull(order.getJqstartdate()) || !order.getJqstartdate().equals(jqStartTime)) &&
+        if ((Objects.isNull(order.getJqstartdate()) || !order.getJqstartdate().equals(jqStartTime)) &&
                 (Objects.isNull(order.getJqenddate()) || !order.getJqenddate().equals(jqEndTime)) &&
                 (Objects.isNull(order.getSystartdate()) || !order.getSystartdate().equals(syStartTime)) &&
-                (Objects.isNull(order.getSyenddate()) || !order.getSyenddate().equals(syEndTime))){
+                (Objects.isNull(order.getSyenddate()) || !order.getSyenddate().equals(syEndTime))) {
             order.setJqstartdate(jqStartTime);
             order.setJqenddate(jqEndTime);
             order.setSystartdate(syStartTime);
@@ -2034,23 +2041,24 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
     @Override
-    public void updateOrderCache(InsOrders orders){
+    public void updateOrderCache(InsOrders orders) {
         // 9-24 修改 key   订单号 + 产品id
-        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + orders.getOrderno(),JSONObject.toJSONString(orders), QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
+        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + orders.getOrderno(), JSONObject.toJSONString(orders), QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
     }
 
     @Override
-    public String getOrderCacheData(String orderno){
+    public String getOrderCacheData(String orderno) {
         return redisTemplate.opsForValue().get(QUOTE_INFO_KEY + orderno);
     }
 
 
     /**
      * 对比订单
+     *
      * @return
      */
     @Override
-    public boolean contrastOrder(InsOrders oldOrder,InsOrders newOrder){
+    public boolean contrastOrder(InsOrders oldOrder, InsOrders newOrder) {
         JSONObject oldOrderObj = JSONObject.parseObject(JSONObject.toJSONString(oldOrder));
         JSONObject newOrderObj = JSONObject.parseObject(JSONObject.toJSONString(newOrder));
         oldOrderObj.remove("createtime");

+ 3 - 1
src/main/java/com/ydtech/modules/protocol/entity/constants/PtlCrawlerApiType.java

@@ -14,7 +14,9 @@ public enum PtlCrawlerApiType {
     API_5(5, "缴费查询"),
     API_6(6, "保单下载"),
     API_7(7, "非车险查询"),
-    API_8(8, "人工核保状态刷新");
+    API_8(8, "人工核保状态刷新"),
+    API_9(9, "撤销订单"),
+    API_10(10, "验车码");
 
     private final int code;
 

+ 11 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -2559,4 +2559,15 @@
     </select>
 
 
+    <select id="getSubOrderCountDTO" resultType="com.ydtech.modules.order.entity.dto.SubOrderCountDTO">
+        select orderno, orderstatus, count(*) as count
+        from ins_area_company
+        where orderno in
+        <foreach collection="orderNo" open="(" separator="," close=")" item="item" index="index">
+            #{item,jdbcType=VARCHAR}
+        </foreach>
+        and del_flag = '1'
+        group by orderno, orderstatus
+    </select>
+
 </mapper>