From 375cc20507dbacaad684f539362d8eee7c7ec205 Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <cuizf@fengyuntec.com>
Date: 星期二, 24 九月 2024 20:19:05 +0800
Subject: [PATCH] 供应商的结算明细
---
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