diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsReportController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsReportController.java index fe68601e..1e0d291a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsReportController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsReportController.java @@ -114,8 +114,12 @@ public class WmsReportController extends BaseController { @GetMapping("/stagnantInventory") public R> getStagnantInventory( @RequestParam(required = false) String tenantId, - @RequestParam(required = false) Long materialCategoryId) { - List list = wmsReportService.getStagnantInventory(tenantId, materialCategoryId); + @RequestParam(required = false) Long materialCategoryId, + @RequestParam(required = false) Integer stagnantDays) { + if (stagnantDays == null) { + stagnantDays = 180; + } + List list = wmsReportService.getStagnantInventory(tenantId, materialCategoryId, stagnantDays); return R.ok(list); } @@ -128,8 +132,12 @@ public class WmsReportController extends BaseController { public void exportStagnantInventory( @RequestParam(required = false) String tenantId, @RequestParam(required = false) Long materialCategoryId, + @RequestParam(required = false) Integer stagnantDays, HttpServletResponse response) { - List list = wmsReportService.getStagnantInventory(tenantId, materialCategoryId); + if (stagnantDays == null) { + stagnantDays = 180; + } + List list = wmsReportService.getStagnantInventory(tenantId, materialCategoryId, stagnantDays); ExcelUtil.exportExcel(list, "呆滞料库存报表", WmsStagnantInventoryVo.class, response); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMonthlyReport.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMonthlyReport.java index 7994547b..cbecddf3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMonthlyReport.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMonthlyReport.java @@ -1,11 +1,13 @@ package org.dromara.wms.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; -import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.Date; /** * WMS月度报对象 wms_monthly_report @@ -14,13 +16,33 @@ import java.io.Serial; * @date 2025-09-25 */ @Data -@EqualsAndHashCode(callSuper = true) +//@EqualsAndHashCode(callSuper = true) @TableName("wms_monthly_report") -public class WmsMonthlyReport extends TenantEntity { +public class WmsMonthlyReport { @Serial private static final long serialVersionUID = 1L; + /** + * 租户编号 + */ + private String tenantId; + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** * 报表主键 */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsReportMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsReportMapper.java index 3f3c7558..5d0f07f0 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsReportMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsReportMapper.java @@ -155,6 +155,8 @@ public interface WmsReportMapper { /** * 查询呆滞料库存报表 */ + /*从未出库:如果物料从未出库(即没有对应的出库记录),则从首次入库时间开始计算,若距离当前日期已超过180天,则判定为呆滞料。 +长期未出库:如果物料有出库记录,但从最后一次出库时间开始计算,若距离当前日期已超过180天,则判定为呆滞料。*/ @Select("SELECT " + " inv.tenant_id AS tenantId, " + " inv.material_id AS materialId, " + @@ -173,7 +175,7 @@ public interface WmsReportMapper { " END AS stagnantDays, " + " CASE " + " WHEN last_out.lastOutstockTime IS NULL THEN '从未出库' " + - " WHEN DATEDIFF(DAY, last_out.lastOutstockTime, GETDATE()) > 180 THEN '超过6个月未出库' " + + " WHEN DATEDIFF(DAY, last_out.lastOutstockTime, GETDATE()) >= #{stagnantDays} THEN '超过' + CAST(#{stagnantDays} AS VARCHAR(10)) + '天未出库' " + " ELSE '正常' " + " END AS stagnantReason, " + " mi.material_spec AS materialSpec, " + @@ -209,8 +211,8 @@ public interface WmsReportMapper { " AND mi.active_flag = '1' " + " AND mi.del_flag = '0' " + " AND ( " + - " last_out.lastOutstockTime IS NULL " + - " OR DATEDIFF(DAY, last_out.lastOutstockTime, GETDATE()) >= 180 " + + " (last_out.lastOutstockTime IS NULL AND DATEDIFF(DAY, first_in.firstInstockTime, GETDATE()) >= #{stagnantDays}) " + + " OR (last_out.lastOutstockTime IS NOT NULL AND DATEDIFF(DAY, last_out.lastOutstockTime, GETDATE()) >= #{stagnantDays}) " + " ) " + " AND (#{tenantId} IS NULL OR inv.tenant_id = #{tenantId}) " + " AND (#{materialCategoryId} IS NULL OR mc.material_category_id = #{materialCategoryId}) " + @@ -227,7 +229,8 @@ public interface WmsReportMapper { " first_in.firstInstockTime " + "ORDER BY inv.tenant_id, stagnantDays DESC, stagnantInventoryQty DESC") List selectStagnantInventory(@Param("tenantId") String tenantId, - @Param("materialCategoryId") Long materialCategoryId); + @Param("materialCategoryId") Long materialCategoryId, + @Param("stagnantDays") Integer stagnantDays); /** * 查询库存差异报表 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsReportService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsReportService.java index eed39970..62434686 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsReportService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsReportService.java @@ -46,7 +46,7 @@ public interface IWmsReportService { * @param materialCategoryId 物料大类ID * @return 呆滞料库存报表列表 */ - List getStagnantInventory(String tenantId, Long materialCategoryId); + List getStagnantInventory(String tenantId, Long materialCategoryId, Integer stagnantDays); /** * 查询库存差异报表 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReportServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReportServiceImpl.java index 906ece3b..fbea17ba 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReportServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReportServiceImpl.java @@ -48,8 +48,8 @@ public class WmsReportServiceImpl implements IWmsReportService { * 查询呆滞料库存报表 */ @Override - public List getStagnantInventory(String tenantId, Long materialCategoryId) { - return wmsReportMapper.selectStagnantInventory(tenantId, materialCategoryId); + public List getStagnantInventory(String tenantId, Long materialCategoryId, Integer stagnantDays) { + return wmsReportMapper.selectStagnantInventory(tenantId, materialCategoryId, stagnantDays); } /**