Просмотр исходного кода

app大订单显示详情数据

xuqiang 5 месяцев назад
Родитель
Сommit
1b4f606024

+ 4 - 1
commons/src/main/java/com/jzg/commons/entity/dto/InsOrdersParamVO.java

@@ -5,7 +5,6 @@ import com.jzg.commons.core.base.PageRequest;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -160,4 +159,8 @@ public class InsOrdersParamVO extends PageRequest {
 
     @Schema(description = "动态导出字段的列,以分号分隔")
     private String exportDynamicFields;
+
+    @Schema(description = "区分大订单")
+    private String isLargeOrder;
+
 }

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/orders/vo/OrderListVo.java

@@ -23,6 +23,8 @@ public class OrderListVo {
     @ExcelProperty("公司名称")
     private String companyName;
 
+    @ExcelProperty("报价单号")
+    private String no;
     /**
      * 险种code
      */
@@ -146,4 +148,8 @@ public class OrderListVo {
     //批改后的保费
     @ExcelProperty("批改后的保费")
     private String adjustPremium;
+
+    private Object mainDetails;
+
+
 }

+ 23 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/entity/vo/OrderQuotationCompany.java

@@ -0,0 +1,23 @@
+package com.jzg.quotation.summary.entity.vo;
+
+
+import lombok.Data;
+
+@Data
+public class OrderQuotationCompany {
+
+    private String id;
+
+    private String quoteNo;
+
+    private String companyId;
+
+    private String companyName;
+
+    private String totalPremium;
+
+    private String orderStatus;
+
+    private String logo;
+
+}

+ 5 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsOrdersMapper.java

@@ -10,17 +10,15 @@ import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.vo.HistoryQuoteQueryVo;
 import com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo;
 import com.jzg.commons.entity.orders.vo.OrderListVo;
-import com.jzg.commons.entity.vo.OrdersListVo;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersVo;
+import com.jzg.commons.entity.vo.OrdersListVo;
 import com.jzg.quotation.summary.entity.bo.StatDateCountBo;
-import com.jzg.quotation.summary.entity.vo.BusinessDistributionVo;
-import com.jzg.quotation.summary.entity.vo.BusinessFunnelVo;
-import com.jzg.quotation.summary.entity.vo.BusinessTypeDistributionVo;
-import com.jzg.quotation.summary.entity.vo.OrderTrendVo;
+import com.jzg.quotation.summary.entity.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Set;
 
 @Mapper
 public interface InsOrdersMapper extends BaseMapper<InsOrders> {
@@ -148,4 +146,6 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
                                                                  @Param("systemCode") String systemCode);
 
     InsOrders selectMainOrderNumber(@Param("licenseNo") String licenseNo,@Param("realQuoteUserId") String realQuoteUserId);
+
+    List<OrderQuotationCompany> selectListOrderQuotationCompany(@Param("noIds") Set<String> noIds);
 }

+ 87 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.summary.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.util.ObjectUtil;
@@ -1134,9 +1135,94 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     public Page<OrderListVo> queryList(InsOrdersParamVO insOrdersParam) {
         String userName = baseController.getUserName();
         insOrdersParam.setSalesman(userName);
-        return insOrdersMapper.queryOrderList(insOrdersParam.getPage(), insOrdersParam);
+        Page<OrderListVo> orderListVoPage = insOrdersMapper.queryOrderList(insOrdersParam.getPage(), insOrdersParam);
+        if (StringUtils.equals("1",insOrdersParam.getIsLargeOrder())){
+            processMainOrder(orderListVoPage);
+        }
+        return orderListVoPage;
     }
 
+
+    public void processMainOrder(Page<OrderListVo> orderListVoPage){
+        List<OrderListVo> orderList = orderListVoPage.getRecords();
+        if (CollUtil.isEmpty(orderList)) {
+            return;
+        }
+        Set<String> orderNoSet = orderList.stream()
+                .map(OrderListVo::getNo)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
+        if (CollUtil.isEmpty(orderNoSet)) {
+            return;
+        }
+        List<OrderQuotationCompany> insOrders = insOrdersMapper.selectListOrderQuotationCompany(orderNoSet);
+        if (CollUtil.isEmpty(insOrders)) {
+            return;
+        }
+        for (OrderQuotationCompany insOrder : insOrders) {
+            HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findLogoById(insOrder.getCompanyId());
+            if (esmInsCompanyHttpResult.getCode() == 200) {
+                insOrder.setLogo(esmInsCompanyHttpResult.getData().getLogo());
+            }
+        }
+
+
+        Map<String, Map<String, List<OrderQuotationCompany>>> groupMap = insOrders.stream()
+                .collect(Collectors.groupingBy(
+                        OrderQuotationCompany::getQuoteNo,
+                        Collectors.groupingBy(
+                                OrderQuotationCompany::getOrderStatus
+                        )
+                ));
+        for (OrderListVo orders : orderList) {
+            String orderNo = orders.getNo();
+
+            Map<String, List<OrderQuotationCompany>> statusMap = groupMap.getOrDefault(orderNo, Collections.emptyMap());
+            orders.setMainDetails(orderCount(statusMap));
+        }
+        orderListVoPage.setRecords(orderList);
+    }
+
+
+    public Map<String, List<OrderQuotationCompany>> orderCount(Map<String, List<OrderQuotationCompany>> orderMaps){
+        Map<String, List<OrderQuotationCompany>> data = new HashMap<>();
+        for (int code = 1; code <= 7; code++) {
+            switch (code) {
+                case 1:
+                    // 报价成功
+                    data.put("1", orderMaps.get("1"));
+                    break;
+                case 2:
+                    // 核保中
+                    data.put("2",orderMaps.get("2"));
+                    break;
+                case 3:
+                    // 未报价
+                    data.put("3",null);
+                    break;
+                case 4:
+                    // 待缴费
+                    data.put("4",orderMaps.get("4"));
+                    break;
+                case 5:
+                    // 已承保
+                    data.put("5",orderMaps.get("5"));
+                    break;
+                case 6:
+                    // 报价失败
+                    data.put("6",orderMaps.get("6"));
+                    break;
+                case 7:
+                    // 核保失败
+                    data.put("7",orderMaps.get("7"));
+                    break;
+            }
+        }
+        return data;
+
+    }
+
+
     @Override
     public QuoteEchoVo getOrderDetail(String ordersNo) {
         InsOrdersVo insOrdersVo = selectById(Long.parseLong(ordersNo));

+ 12 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -739,6 +739,7 @@
     <select id="queryOrderList" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
         SELECT
         io.id as order_no,
+        io.quote_no as no,
         io.company_id,
         io.company_name,
         io.product_id as productCode,
@@ -1445,4 +1446,15 @@
         WHERE o.parent_id = 0 AND o.entry_status = 3 AND c.license_no = #{licenseNo} AND o.real_quote_user_id = #{realQuoteUserId}
     </select>
 
+
+
+    <select id="selectListOrderQuotationCompany" resultType="com.jzg.quotation.summary.entity.vo.OrderQuotationCompany">
+        SELECT id,parent_id,quote_no,company_id,company_name,order_status
+        FROM ins_orders
+        WHERE parent_id != 0 AND quote_no IN
+        <foreach collection="noIds" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
 </mapper>