From bf6502d616b622c0910bad62441ed680830f1339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Thu, 20 Feb 2025 17:15:24 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E5=BA=93=E5=AD=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E5=85=A5=E5=BA=93=E5=8D=95=20=E6=96=B0=E5=A2=9E=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=A6=96=E9=A1=B5=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=91=A8=E4=BA=A7=E9=87=8F=E5=88=86=E6=9E=90controller?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E6=96=B0=E5=A2=9E=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=E9=97=B4=E5=8C=BA=E9=97=B4=E5=88=92=E5=88=86?= =?UTF-8?q?=E8=87=AA=E7=84=B6=E5=91=A8=E6=97=B6=E9=97=B4=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E8=8E=B7=E5=8F=96=E5=90=84=E6=97=B6=E9=97=B4=E6=AE=B5?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=85=A5=E5=BA=93=E5=91=A8?= =?UTF-8?q?=E4=BA=A7=E9=87=8Fservice=E6=96=B9=E6=B3=95=EF=BC=9B=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E6=97=B6=E9=97=B4=E5=8C=BA?= =?UTF-8?q?=E9=97=B4=E6=AE=B5=E6=9F=A5=E8=AF=A2=E5=85=A5=E5=BA=93=E5=8D=95?= =?UTF-8?q?mapper=E6=96=B9=E6=B3=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarehouseStorageOrderController.java | 15 +++++ .../mapper/WarehouseStorageOrderMapper.java | 8 +++ .../IWarehouseStorageOrderService.java | 4 ++ .../WarehouseStorageOrderServiceImpl.java | 61 +++++++++++++++++++ .../warehouse/WarehouseStorageOrderMapper.xml | 11 ++++ 5 files changed, 99 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java index 6784cf3f..802fd810 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java @@ -1,5 +1,7 @@ package com.ruoyi.warehouse.controller; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -12,6 +14,7 @@ import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail; import com.ruoyi.warehouse.service.IWarehouseStorageOrderDetailService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.util.StringUtils; @@ -733,4 +736,16 @@ public class WarehouseStorageOrderController extends BaseController mmap.put("warehouseStorageOrder", warehouseStorageOrder); return prefix + "/storageReturnOrderDetail"; } + + /** + * 获取首页生产订单周产量分析 + */ + @GetMapping("/getIndexList") + @ResponseBody + public List getIndexList(@RequestParam("beginDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginDate, + @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) + { + List list = warehouseStorageOrderService.getMakeOrderStorageByWeeks(beginDate,endDate); + return list; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java index fdb76437..9fd6617c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java @@ -1,8 +1,12 @@ package com.ruoyi.warehouse.mapper; +import java.util.Date; import java.util.List; + +import com.ruoyi.system.domain.SysMakeorderBom; import com.ruoyi.warehouse.domain.WarehouseStorageOrder; import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail; +import org.apache.ibatis.annotations.Param; import org.mapstruct.Mapper; /** @@ -153,4 +157,8 @@ public interface WarehouseStorageOrderMapper * 根据入库单号查询关联单号 */ String selectRelateCodeByCode(String warehouseStorageCode); + + /*首页根据日期区间查找生产订单入库记录*/ + List selectByDateRange(@Param("beginDate") Date beginDate, + @Param("endDate") Date endDate); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java index 400de56b..ae1429a4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java @@ -1,5 +1,6 @@ package com.ruoyi.warehouse.service; +import java.util.Date; import java.util.List; import com.ruoyi.quality.domain.QualityOrder; @@ -153,4 +154,7 @@ public interface IWarehouseStorageOrderService * 导出仓库入库单明细 * */ List exportStorageOrderList(List list); + + /*获取首页生产订单周产量(周入库量)信息*/ + List getMakeOrderStorageByWeeks(Date beginDate, Date endDate); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index c3165eba..54f82a45 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java @@ -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 getMakeOrderStorageByWeeks(Date beginDate, Date endDate){ + List 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 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); + } + } diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml index 0a612605..d59f5b4d 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseStorageOrderMapper.xml @@ -342,4 +342,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file