From 5bb359883bda6f15b6a6937a2c17ac9bbc67ab8e Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期日, 22 九月 2024 17:17:24 +0800 Subject: [PATCH] add:会员成长值规则 --- src/main/java/com/mzl/flower/schedule/WarehouseScheduleService.java | 46 +++++++++++++++++++++++++++++++--------------- 1 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/mzl/flower/schedule/WarehouseScheduleService.java b/src/main/java/com/mzl/flower/schedule/WarehouseScheduleService.java index 6790866..8689b36 100644 --- a/src/main/java/com/mzl/flower/schedule/WarehouseScheduleService.java +++ b/src/main/java/com/mzl/flower/schedule/WarehouseScheduleService.java @@ -41,18 +41,18 @@ List<Order> orders = orderService.selectPaymentOrderList(); if(orders!=null && orders.size()>0){ //订单按照合伙人分组排序 - Map<Long,List<String>> partnerOrders = new HashMap<>(); - List<String> customerOrders = new ArrayList<>(); + Map<Long,List<Order>> partnerOrders = new HashMap<>(); + List<Order> customerOrders = new ArrayList<>(); for (Order order : orders) { Long partnerId = order.getPartnerId(); if(partnerId==null || partnerId==0){ //非合伙人订单 - customerOrders.add(order.getId()); + customerOrders.add(order); }else{ //合伙人订单 if(partnerOrders.containsKey(partnerId)){ - partnerOrders.get(partnerId).add(order.getId()); + partnerOrders.get(partnerId).add(order); }else{ - List<String> orderIds = new ArrayList<>(); - orderIds.add(order.getId()); + List<Order> orderIds = new ArrayList<>(); + orderIds.add(order); partnerOrders.put(partnerId,orderIds); } } @@ -61,14 +61,22 @@ //查询库位队列信息 Queue<WarehouseLocationDTO> locations = warehouseService.selectAllocatedWarehouseLocation(); if(locations!=null && locations.size()>0){ + Map<String, WarehouseLocationDTO> partnerLocationMap = new HashMap<>(); if(partnerOrders!=null && partnerOrders.size()>0 ){ //合伙人订单 for (Long partnerId : partnerOrders.keySet()) { - List<String> orderIds = partnerOrders.get(partnerId); - for (String orderId : orderIds) { + List<Order> orderIds = partnerOrders.get(partnerId); + for (Order order : orderIds) { if(locations!=null && locations.size()>0){ - WarehouseLocationDTO location = locations.poll(); - orderService.allocatedWarehouseLocation(orderId, location.getWarehouseId(), - location.getWarehouseName(),location.getId(), location.getCode()); + String key = order.getCreateBy()+"||"+order.getCustomerAddress(); + WarehouseLocationDTO location = null; + if(partnerLocationMap.containsKey(key)){ + location = partnerLocationMap.get(key); + } else { + location = locations.poll(); + partnerLocationMap.put(key,location); + } + orderService.allocatedWarehouseLocation(order.getId(), location.getWarehouseId(), + location.getWarehouseName(), location.getId(), location.getCode()); } } if(locations!=null && locations.size()>0){ //两个合伙人之间空一个库位 @@ -77,10 +85,18 @@ } } if(customerOrders!=null && customerOrders.size()>0){ //散户订单 - for (String orderId : customerOrders) { + Map<String, WarehouseLocationDTO> customerLocationMap = new HashMap<>(); + for (Order order : customerOrders) { if(locations!=null && locations.size()>0){ - WarehouseLocationDTO location = locations.poll(); - orderService.allocatedWarehouseLocation(orderId, location.getWarehouseId(), + String key = order.getCreateBy()+"||"+order.getCustomerAddress(); + WarehouseLocationDTO location = null; + if(customerLocationMap.containsKey(key)){ + location = customerLocationMap.get(key); + } else { + location = locations.poll(); + customerLocationMap.put(key,location); + } + orderService.allocatedWarehouseLocation(order.getId(), location.getWarehouseId(), location.getWarehouseName(),location.getId(), location.getCode()); } } @@ -94,7 +110,7 @@ /** * 每天凌晨2点,合伙人发货 */ - @Scheduled(cron = "0 0 2 * * ?") + @Scheduled(cron = "0 0 4 * * ?") public void clearWarehouseLocation() { log.info("定时合伙人发货开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); orderService.setPartnerOrderSend(); -- Gitblit v1.9.3