|
|
@ -2,6 +2,9 @@ package com.ruoyi.warehouse.service.impl; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; |
|
|
@ -1354,6 +1357,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS |
|
|
|
} |
|
|
|
} |
|
|
|
//更新入库单的数据
|
|
|
|
warehouseStorageOrder.setStorageTime(DateUtils.getNowDate()); |
|
|
|
warehouseStorageOrder.setUpdateBy(loginName); |
|
|
|
warehouseStorageOrder.setWarehouseEmployee(loginName); |
|
|
|
warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate()); |
|
|
|
int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder); |
|
|
|
if (updateResult <= 0){ |
|
|
|
throw new BusinessException("更新入库单数据失败,未影响任何行"); |
|
|
@ -2291,4 +2298,58 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS |
|
|
|
|
|
|
|
return exportWarehouseStorageOrderVos; |
|
|
|
} |
|
|
|
|
|
|
|
/*根据时间区间划分自然周时间段,并获取各时间段生产订单入库周产量*/ |
|
|
|
@Override |
|
|
|
public List<Integer> getMakeOrderStorageByWeeks(Date beginDate, Date endDate){ |
|
|
|
List<Integer> list = new ArrayList<>(); |
|
|
|
|
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
|
calendar.setTime(beginDate); |
|
|
|
Date nowDate = new Date(); |
|
|
|
|
|
|
|
// 调整到该周的周一
|
|
|
|
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); |
|
|
|
int daysToMonday = dayOfWeek - Calendar.MONDAY; |
|
|
|
if (daysToMonday < 0) { |
|
|
|
daysToMonday += 7; // 如果已经是周一,则不需要调整
|
|
|
|
} |
|
|
|
|
|
|
|
calendar.add(Calendar.DAY_OF_YEAR, -daysToMonday); |
|
|
|
|
|
|
|
while (!calendar.getTime().after(endDate)) { |
|
|
|
Date startTime = calendar.getTime(); |
|
|
|
|
|
|
|
// 设置结束时间为下周的第一天的前一天(即本周的周日)
|
|
|
|
Calendar endCalendar = (Calendar) calendar.clone(); |
|
|
|
endCalendar.add(Calendar.DAY_OF_YEAR, 6); // 加上6天得到本周的周日
|
|
|
|
if (endCalendar.getTime().after(nowDate)) { |
|
|
|
endCalendar.setTime(nowDate); |
|
|
|
} |
|
|
|
Date endTime = endCalendar.getTime(); |
|
|
|
// System.out.println("Start: " + formatDate(startTime) + ", End: " + formatDate(endTime));
|
|
|
|
|
|
|
|
List<WarehouseStorageOrder> storageOrders = warehouseStorageOrderMapper.selectByDateRange(startTime,endTime); |
|
|
|
if(StringUtils.isEmpty(storageOrders)){ |
|
|
|
list.add(0); |
|
|
|
}else{ |
|
|
|
int storageSum = storageOrders.stream() |
|
|
|
.filter(Objects::nonNull) // 过滤掉 null 的 WarehouseStorageOrder 对象
|
|
|
|
.mapToInt(order -> Optional.ofNullable(order.getStorageNum()).orElse(0)) // 如果 storageNum 为 null,则使用 0
|
|
|
|
.sum(); |
|
|
|
list.add(storageSum); |
|
|
|
} |
|
|
|
System.out.println(list); |
|
|
|
// 将日历设置为下一周的开始
|
|
|
|
calendar.add(Calendar.DAY_OF_YEAR, 7); |
|
|
|
} |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
/*转换日期格式*/ |
|
|
|
private static String formatDate(Date date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
return sdf.format(date); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|