|
|
@@ -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));
|