| 
														
															@@ -1,8 +1,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 package com.gree.mall.manager.logic.workorder; 
														 | 
														
														 | 
														
															 package com.gree.mall.manager.logic.workorder; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import cn.hutool.core.bean.BeanUtil; 
														 | 
														
														 | 
														
															 import cn.hutool.core.bean.BeanUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import cn.hutool.core.collection.CollectionUtil; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import cn.hutool.core.collection.ListUtil; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import cn.hutool.core.convert.Convert; 
														 | 
														
														 | 
														
															 import cn.hutool.core.convert.Convert; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import cn.hutool.core.date.DateUtil; 
														 | 
														
														 | 
														
															 import cn.hutool.core.date.DateUtil; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.baomidou.mybatisplus.core.metadata.IPage; 
														 | 
														
														 | 
														
															 import com.baomidou.mybatisplus.core.metadata.IPage; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -10,7 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.bean.admin.AdminUserCom; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.bean.admin.AdminUserCom; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.bean.es.*; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.bean.es.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.gree.mall.manager.bean.listvo.workorder.OperatorLogBean; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.bean.listvo.workorder.OrderBaseVO; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.bean.listvo.workorder.OrderBaseVO; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.commonmapper.CommonMapper; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.commonmapper.CommonMapper; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.gree.mall.manager.enums.MaterialExamineStatusEnum; 
														 | 
														
														 | 
														
															 import com.gree.mall.manager.enums.MaterialExamineStatusEnum; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -186,20 +183,6 @@ public class OrderBaseEsLogic { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class)); 
														 | 
														
														 | 
														
															             page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<OperatorLogBean> operatorList = null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (page.getSize() > 0) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            final List<String> orderBaseIds = page.getRecords().stream().map(OrderBaseVO::getId).distinct().collect(Collectors.toList()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (CollectionUtil.isNotEmpty(orderBaseIds)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                operatorList = commonMapper.selectLastOrderOperatorLog(year, orderBaseIds); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Map<String, List<OperatorLogBean>> operatorMap = null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (CollectionUtil.isNotEmpty(operatorList)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            operatorMap = operatorList.stream() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    .collect(Collectors.groupingBy(OperatorLogBean::getOrderBaseId)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //服务单标识 
														 | 
														
														 | 
														
															         //服务单标识 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (zfireParamBean.getPageSize() != -1 && page.getTotal() > 0 && page.getRecords().size() > 0) { 
														 | 
														
														 | 
														
															         if (zfireParamBean.getPageSize() != -1 && page.getTotal() > 0 && page.getRecords().size() > 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             List<String> orderBaseIds = page.getRecords() 
														 | 
														
														 | 
														
															             List<String> orderBaseIds = page.getRecords() 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -221,10 +204,6 @@ public class OrderBaseEsLogic { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     BigDecimal bigDecimal = workerOrders.stream().map(WorkerOrder::getTotalAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); 
														 | 
														
														 | 
														
															                     BigDecimal bigDecimal = workerOrders.stream().map(WorkerOrder::getTotalAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
														
														 | 
														
															                     orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if (Objects.nonNull(operatorMap) && operatorMap.containsKey(orderBaseVO.getId())) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    orderBaseVO.setLastFeedbackRecord(operatorMap.get(orderBaseVO.getId()).get(0).getContent()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return page; 
														 | 
														
														 | 
														
															         return page; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1042,37 +1021,10 @@ public class OrderBaseEsLogic { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 .eq(WorkerOrder::getPayStatus, MaterialExamineStatusEnum.PAID.getKey()) 
														 | 
														
														 | 
														
															                 .eq(WorkerOrder::getPayStatus, MaterialExamineStatusEnum.PAID.getKey()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 .select(WorkerOrder::getWorkerOrderId, WorkerOrder::getTotalAmount).list(); 
														 | 
														
														 | 
														
															                 .select(WorkerOrder::getWorkerOrderId, WorkerOrder::getTotalAmount).list(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<OperatorLogBean> operatorList = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (CollectionUtil.isNotEmpty(orderBaseIds)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            log.info("最后访问记录开始时间{}", DateUtil.formatDateTime(DateUtil.date())); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            final List<List<String>> pageList = ListUtil.split(orderBaseIds, 10000); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            for (List<String> orderIdPageList : pageList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                operatorList.addAll(commonMapper.selectLastOrderOperatorLog(year, orderIdPageList)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            log.info("最后访问记录结束时间{}", DateUtil.formatDateTime(DateUtil.date())); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Map<String, List<OperatorLogBean>> operatorMap = null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (CollectionUtil.isNotEmpty(operatorList)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            operatorMap = operatorList.stream() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    .collect(Collectors.groupingBy(OperatorLogBean::getOrderBaseId)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        log.info("最后访问记录注入orderBaseVO开始时间{}", DateUtil.formatDateTime(DateUtil.date())); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 预处理:将workerOrderList按workerOrderId分组(O(m)时间复杂度) 
														 | 
														
														 | 
														
															         // 预处理:将workerOrderList按workerOrderId分组(O(m)时间复杂度) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Map<String, List<WorkerOrder>> workerOrderMap = workerOrderList.stream() 
														 | 
														
														 | 
														
															         Map<String, List<WorkerOrder>> workerOrderMap = workerOrderList.stream() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 .collect(Collectors.groupingBy(WorkerOrder::getWorkerOrderId)); 
														 | 
														
														 | 
														
															                 .collect(Collectors.groupingBy(WorkerOrder::getWorkerOrderId)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // 预处理:operatorMap若每个orderBaseId只有一条记录,可简化为直接存储内容(根据业务逻辑调整) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Map<String, String> operatorContentMap = operatorMap != null ? 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                operatorMap.entrySet().stream() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        .collect(Collectors.toMap( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                Map.Entry::getKey, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                entry -> entry.getValue().get(0).getContent() // 假设每个ID只有一条记录 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        )) : 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Collections.emptyMap(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 提前判断workerOrderList是否为空(避免循环内重复判断) 
														 | 
														
														 | 
														
															         // 提前判断workerOrderList是否为空(避免循环内重复判断) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         boolean isWorkerOrderListEmpty = CollectionUtils.isEmpty(workerOrderList); 
														 | 
														
														 | 
														
															         boolean isWorkerOrderListEmpty = CollectionUtils.isEmpty(workerOrderList); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1085,9 +1037,6 @@ public class OrderBaseEsLogic { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //                orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
														
														 | 
														
															 //                orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //            } 
														 | 
														
														 | 
														
															 //            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 // 
														 | 
														
														 | 
														
															 // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//            if (Objects.nonNull(operatorMap) && operatorMap.containsKey(orderBaseVO.getId())) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                orderBaseVO.setLastFeedbackRecord(operatorMap.get(orderBaseVO.getId()).get(0).getContent()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 从Map中直接获取匹配的WorkerOrder列表(O(1)时间复杂度) 
														 | 
														
														 | 
														
															             // 从Map中直接获取匹配的WorkerOrder列表(O(1)时间复杂度) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             List<WorkerOrder> workerOrders = workerOrderMap.getOrDefault(orderBaseVO.getId(), Collections.emptyList()); 
														 | 
														
														 | 
														
															             List<WorkerOrder> workerOrders = workerOrderMap.getOrDefault(orderBaseVO.getId(), Collections.emptyList()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1099,13 +1048,7 @@ public class OrderBaseEsLogic { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         .orElse(BigDecimal.ZERO); 
														 | 
														
														 | 
														
															                         .orElse(BigDecimal.ZERO); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
														
														 | 
														
															                 orderBaseVO.setWorkerPrice(bigDecimal); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            // 直接从简化后的operatorContentMap获取内容(O(1)时间复杂度) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (operatorContentMap.containsKey(orderBaseVO.getId())) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                orderBaseVO.setLastFeedbackRecord(operatorContentMap.get(orderBaseVO.getId())); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        log.info("最后访问记录注入orderBaseVO结束时间{}", DateUtil.formatDateTime(DateUtil.date())); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return orderBaseVOS1; 
														 | 
														
														 | 
														
															         return orderBaseVOS1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |