Cui Zhi Feng
2024-09-08 bc9bd69850c95dacb22c7da4777a1d0470c33722
src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -878,6 +878,74 @@
        return ls;
    }
    public List<OrderCheckLocationListDTO> selectOrderCheckLocationList(OrderQueryDTO dto) {
        dto.setIdList(splitParam(dto.getIds()));
        dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true));
        dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false));
        dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1));
        dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0));
        List<OrderCheckListDTO> ls = orderMapper.selectOrderCheckList(dto);
        List<OrderCheckLocationListDTO> result = new ArrayList<>();
        if (ls != null && ls.size() > 0) {
            List<String> orderIds = new ArrayList<>();
            Map<Long, OrderCheckLocationListDTO> rMap = new HashMap<>();
            Map<String, OrderCheckListDTO> orderMap = new HashMap<>();
            for (OrderCheckListDTO c : ls) {
                orderIds.add(c.getId());
                orderMap.put(c.getId(), c);
                Long locationId = c.getWarehouseLocationId();
                OrderCheckLocationListDTO llc = rMap.get(locationId);
                if(llc == null){
                    llc = new OrderCheckLocationListDTO();
                    BeanUtils.copyProperties(c, llc);
                    rMap.put(locationId, llc);
                    result.add(llc);
                }
            }
            Map<Long, String> stationMap = prepareStationMap();
            List<OrderItem> itemList = orderItemMapper.selectList(new QueryWrapper<OrderItem>()
                    .in("order_id", orderIds));
            Map<String, List<OrderItemLocationListDTO>> map = new HashMap<>();
            for (OrderItem oi : itemList) {
                String orderId = oi.getOrderId();
                List<OrderItemLocationListDTO> ll = map.computeIfAbsent(orderId, k -> new ArrayList<>());
                OrderItemLocationListDTO d = new OrderItemLocationListDTO();
                BeanUtils.copyProperties(oi, d);
                d.setStationName(stationMap.get(oi.getStationId()));
                OrderCheckListDTO c = orderMap.get(oi.getOrderId());
                d.setOrderNo(c.getOrderNo());
                d.setOrderId(c.getId());
                ll.add(d);
            }
            for (OrderCheckListDTO c : ls) {
                String orderId = c.getId();
                Long locationId = c.getWarehouseLocationId();
                OrderCheckLocationListDTO r = rMap.get(locationId);
                List<OrderItemLocationListDTO> items = r.getItems();
                if(items == null){
                    items = new ArrayList<>();
                    r.setItems(items);
                }
                items.addAll(map.get(orderId));
            }
        }
        return result;
    }
    public Page<OrderListDTO> selectPartnerOrderList(Page page, OrderQueryDTO dto) {
        Partner p = getCurrentPartner();
        dto.setPartnerId(p.getId());