diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/ErpPalletController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/ErpPalletController.java index c37e88a3c..a9f4c7fa1 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/ErpPalletController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/ErpPalletController.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.common.enums.QrcodeBizTypeEnum; import cn.iocoder.yudao.module.common.service.qrcordrecord.QrcodeRecordService; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletRespVO; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.pallet.ErpPalletDO; @@ -81,15 +82,18 @@ public class ErpPalletController { @GetMapping("/page") @Operation(summary = "获得托盘分页") @PreAuthorize("@ss.hasPermission('erp:pallet:query')") - public CommonResult> getPalletPage(@Valid ErpPalletPageReqVO pageReqVO) { - PageResult pageResult = palletService.getPalletPage(pageReqVO); + public CommonResult getPalletPage(@Valid ErpPalletPageReqVO pageReqVO) { + ErpPalletPageRespVO respVO = palletService.getPalletPageWithStatistics(pageReqVO); + PageResult doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpPalletDO.class), respVO.getTotal()); Map qrcodeMap = qrcodeService.selectQrcodeUrlMapByBizTypeAndIds(QrcodeBizTypeEnum.PALLET.getCode(), - convertList(pageResult.getList(), ErpPalletDO::getId)); + convertList(doPage.getList(), ErpPalletDO::getId)); Map lockedPackageCountMap = palletService.getLockedPackageCountMap( - convertList(pageResult.getList(), ErpPalletDO::getId)); - List list = convertList(pageResult.getList(), + convertList(doPage.getList(), ErpPalletDO::getId)); + List list = convertList(doPage.getList(), pallet -> buildPalletRespVO(pallet, qrcodeMap, lockedPackageCountMap)); - return success(new PageResult<>(list, pageResult.getTotal())); + respVO.setList(list); + respVO.setTotal(doPage.getTotal()); + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/vo/ErpPalletPageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/vo/ErpPalletPageRespVO.java new file mode 100644 index 000000000..8430241ea --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/pallet/vo/ErpPalletPageRespVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.erp.controller.admin.pallet.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - ERP托盘分页 Response VO(含统计)") +@Data +public class ErpPalletPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "空闲数量 (status=1)") + private Long idleCount; + + @Schema(description = "占用数量 (status=2)") + private Long occupiedCount; + + @Schema(description = "报废数量 (status=3)") + private Long scrappedCount; + +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java index 68eddc4dc..c66ab5510 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockCheckController.java @@ -165,8 +165,13 @@ public class ErpStockCheckController { @GetMapping("/page") @Operation(summary = "获得库存盘点单分页") @PreAuthorize("@ss.hasPermission('erp:stock-check:query')") - public CommonResult> getStockCheckPage(@Valid ErpStockCheckPageReqVO pageReqVO) { - return success(buildStockCheckVOPageResult(stockCheckService.getStockCheckPage(pageReqVO))); + public CommonResult getStockCheckPage(@Valid ErpStockCheckPageReqVO pageReqVO) { + ErpStockCheckPageRespVO respVO = stockCheckService.getStockCheckPageWithStatistics(pageReqVO); + PageResult doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockCheckDO.class), respVO.getTotal()); + PageResult voPage = buildStockCheckVOPageResult(doPage); + respVO.setList(voPage.getList()); + respVO.setTotal(voPage.getTotal()); + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java index 1524b65d6..3b09b5246 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockInController.java @@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRe import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSubmitReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.StockInTypeEnum; import cn.iocoder.yudao.module.erp.dal.dataobject.pallet.ErpPalletDO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpSupplierDO; @@ -177,9 +178,15 @@ public class ErpStockInController { @GetMapping("/page") @Operation(summary = "获得其它入库单分页") @PreAuthorize("@ss.hasPermission('erp:stock-in:query')") - public CommonResult> getStockInPage(@Valid ErpStockInPageReqVO pageReqVO) { + public CommonResult getStockInPage(@Valid ErpStockInPageReqVO pageReqVO) { fillPageReqDefault(pageReqVO); - return success(buildStockInVOPageResult(stockInService.getStockInPage(pageReqVO))); + ErpStockInPageRespVO respVO = stockInService.getStockInPageWithStatistics(pageReqVO); + // 把 DO 列表转成 RespVO(复用 buildStockInVOPageResult 的转换逻辑) + PageResult doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockInDO.class), respVO.getTotal()); + PageResult voPage = buildStockInVOPageResult(doPage); + respVO.setList(voPage.getList()); + respVO.setTotal(voPage.getTotal()); + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java index 5083c861f..ab9038e9d 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProduc import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveApproveRecordRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveProductStockRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSaveReqVO; @@ -167,9 +168,13 @@ public class ErpStockMoveController { @GetMapping("/page") @Operation(summary = "获得库存调拨单分页") @PreAuthorize("@ss.hasPermission('erp:stock-move:query')") - public CommonResult> getStockMovePage(@Valid ErpStockMovePageReqVO pageReqVO) { - PageResult pageResult = stockMoveService.getStockMovePage(pageReqVO); - return success(buildStockMoveVOPageResult(pageResult)); + public CommonResult getStockMovePage(@Valid ErpStockMovePageReqVO pageReqVO) { + ErpStockMovePageRespVO respVO = stockMoveService.getStockMovePageWithStatistics(pageReqVO); + PageResult doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockMoveDO.class), respVO.getTotal()); + PageResult voPage = buildStockMoveVOPageResult(doPage); + respVO.setList(voPage.getList()); + respVO.setTotal(voPage.getTotal()); + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java index db9dd4e5c..399b23561 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockOutController.java @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProduc import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutApproveRecordRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSubmitReqVO; @@ -192,10 +193,15 @@ public class ErpStockOutController { @GetMapping("/page") @Operation(summary = "获得其它出库单分页") @PreAuthorize("@ss.hasPermission('erp:stock-out:query')") - public CommonResult> getStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) { + public CommonResult getStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) { fillPageReqDefault(pageReqVO); applyItemFilter(pageReqVO); - return success(buildStockOutVOPageResult(stockOutService.getStockOutPage(pageReqVO))); + ErpStockOutPageRespVO respVO = stockOutService.getStockOutPageWithStatistics(pageReqVO); + PageResult doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockOutDO.class), respVO.getTotal()); + PageResult voPage = buildStockOutVOPageResult(doPage); + respVO.setList(voPage.getList()); + respVO.setTotal(voPage.getTotal()); + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/check/ErpStockCheckPageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/check/ErpStockCheckPageRespVO.java new file mode 100644 index 000000000..50fa78358 --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/check/ErpStockCheckPageRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - ERP库存盘点单分页 Response VO(含统计)") +@Data +public class ErpStockCheckPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待提交数量 (status=0)") + private Long waitSubmitCount; + + @Schema(description = "已驳回数量 (status=1)") + private Long rejectedCount; + + @Schema(description = "审核中数量 (status=10)") + private Long auditingCount; + + @Schema(description = "审核通过数量 (status=20)") + private Long approvedCount; + + @Schema(description = "已盘点数量 (checkStatus=1)") + private Long checkedCount; + + @Schema(description = "未盘点数量 (checkStatus=0)") + private Long uncheckedCount; + +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInPageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInPageRespVO.java new file mode 100644 index 000000000..1b41f3366 --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/in/ErpStockInPageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - ERP入库单分页 Response VO(含统计)") +@Data +public class ErpStockInPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待入库数量 (status=0)") + private Long waitInCount; + + @Schema(description = "已驳回数量 (status=1)") + private Long rejectedCount; + + @Schema(description = "审核中数量 (status=10)") + private Long auditingCount; + + @Schema(description = "已入库数量 (status=20)") + private Long inStockCount; + +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/move/ErpStockMovePageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/move/ErpStockMovePageRespVO.java new file mode 100644 index 000000000..e985d341a --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/move/ErpStockMovePageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - ERP库存调拨单分页 Response VO(含统计)") +@Data +public class ErpStockMovePageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待提交数量 (status=0)") + private Long waitSubmitCount; + + @Schema(description = "已驳回数量 (status=1)") + private Long rejectedCount; + + @Schema(description = "审核中数量 (status=10)") + private Long auditingCount; + + @Schema(description = "审核通过数量 (status=20)") + private Long approvedCount; + +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutPageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutPageRespVO.java new file mode 100644 index 000000000..18f231552 --- /dev/null +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/out/ErpStockOutPageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - ERP出库单分页 Response VO(含统计)") +@Data +public class ErpStockOutPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待出库数量 (status=0)") + private Long waitOutCount; + + @Schema(description = "已驳回数量 (status=1)") + private Long rejectedCount; + + @Schema(description = "审核中数量 (status=10)") + private Long auditingCount; + + @Schema(description = "已出库数量 (status=20)") + private Long outStockCount; + +} diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/pallet/ErpPalletMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/pallet/ErpPalletMapper.java index 4d16caf4a..62025bc58 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/pallet/ErpPalletMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/pallet/ErpPalletMapper.java @@ -53,6 +53,12 @@ public interface ErpPalletMapper extends BaseMapperX { return selectList(ErpPalletDO::getStatus, status); } + default List selectList(ErpPalletPageReqVO reqVO) { + LambdaQueryWrapperX query = new LambdaQueryWrapperX<>(); + query.orderByDesc(ErpPalletDO::getId); + return selectList(query); + } + default List selectOccupiedList(Collection productIds, Collection warehouseIds, Collection areaIds) { boolean containsNullArea = areaIds != null && areaIds.stream().anyMatch(java.util.Objects::isNull); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockCheckMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockCheckMapper.java index 3c0fb5ec2..599ef728d 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockCheckMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockCheckMapper.java @@ -65,4 +65,10 @@ public interface ErpStockCheckMapper extends BaseMapperX { return selectOne(ErpStockCheckDO::getNo, no); } + default List selectList(ErpStockCheckPageReqVO reqVO) { + MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); + query.orderByDesc(ErpStockCheckDO::getId); + return selectList(query); + } + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockInMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockInMapper.java index 195981031..194117546 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockInMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockInMapper.java @@ -74,4 +74,10 @@ public interface ErpStockInMapper extends BaseMapperX { return selectOne(ErpStockInDO::getNo, no); } + default List selectList(ErpStockInPageReqVO reqVO) { + MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); + query.orderByDesc(ErpStockInDO::getId); + return selectList(query); + } + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockMoveMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockMoveMapper.java index 2968b1405..02ba1de84 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockMoveMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockMoveMapper.java @@ -74,4 +74,10 @@ public interface ErpStockMoveMapper extends BaseMapperX { return selectOne(ErpStockMoveDO::getNo, no); } + default List selectList(ErpStockMovePageReqVO reqVO) { + MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); + query.orderByDesc(ErpStockMoveDO::getId); + return selectList(query); + } + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockOutMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockOutMapper.java index 1ffce95e0..915d2f59b 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockOutMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/stock/ErpStockOutMapper.java @@ -79,4 +79,10 @@ public interface ErpStockOutMapper extends BaseMapperX { default List selectByOutType(List outTypes) { return selectList(new QueryWrapper().in("out_type", outTypes)); } + + default List selectList(ErpStockOutPageReqVO reqVO) { + MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); + query.orderByDesc(ErpStockOutDO::getId); + return selectList(query); + } } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletService.java index 2800a5efb..a28eade17 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.erp.service.pallet; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.pallet.ErpPalletDO; @@ -28,6 +29,8 @@ public interface ErpPalletService { PageResult getPalletPage(ErpPalletPageReqVO pageReqVO); + ErpPalletPageRespVO getPalletPageWithStatistics(ErpPalletPageReqVO pageReqVO); + List getPalletListByStatus(Integer status); List getOccupiedPalletList(Collection productIds, Collection warehouseIds, Collection areaIds); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletServiceImpl.java index 9ed33b691..9d2cc0003 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/pallet/ErpPalletServiceImpl.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.common.enums.QrcodeBizTypeEnum; import cn.iocoder.yudao.module.common.service.qrcordrecord.QrcodeRecordService; import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletPageRespVO; +import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletRespVO; import cn.iocoder.yudao.module.erp.controller.admin.pallet.vo.ErpPalletSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.pallet.ErpPalletDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; @@ -126,6 +128,24 @@ public class ErpPalletServiceImpl implements ErpPalletService { return palletMapper.selectPage(pageReqVO); } + @Override + public ErpPalletPageRespVO getPalletPageWithStatistics(ErpPalletPageReqVO pageReqVO) { + ErpPalletPageRespVO respVO = new ErpPalletPageRespVO(); + PageResult pageResult = getPalletPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), ErpPalletRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + ErpPalletPageReqVO statisticsReq = new ErpPalletPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = palletMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setIdleCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setOccupiedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 2).count()); + respVO.setScrappedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 3).count()); + return respVO; + } + @Override public List getPalletListByStatus(Integer status) { return palletMapper.selectListByStatus(status); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckService.java index b29f9c0fd..90dc47760 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheck import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckGenerateByLocationReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckGenerateByProductReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckRecordPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckSaveReqVO; @@ -83,6 +84,8 @@ public interface ErpStockCheckService { */ PageResult getStockCheckPage(ErpStockCheckPageReqVO pageReqVO); + ErpStockCheckPageRespVO getStockCheckPageWithStatistics(ErpStockCheckPageReqVO pageReqVO); + PageResult getStockCheckRecordPage(ErpStockCheckRecordPageReqVO pageReqVO); // ==================== 盘点项 ==================== diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckServiceImpl.java index 2b8ce25ca..ba4a9118b 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockCheckServiceImpl.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheck import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckGenerateByLocationReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckGenerateByProductReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckRecordPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckSaveReqVO; @@ -298,6 +299,27 @@ public class ErpStockCheckServiceImpl implements ErpStockCheckService { return stockCheckMapper.selectPage(pageReqVO); } + @Override + public ErpStockCheckPageRespVO getStockCheckPageWithStatistics(ErpStockCheckPageReqVO pageReqVO) { + ErpStockCheckPageRespVO respVO = new ErpStockCheckPageRespVO(); + PageResult pageResult = getStockCheckPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), ErpStockCheckRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + ErpStockCheckPageReqVO statisticsReq = new ErpStockCheckPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = stockCheckMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setWaitSubmitCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setRejectedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setAuditingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 10).count()); + respVO.setApprovedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 20).count()); + respVO.setCheckedCount(allList.stream().filter(item -> item.getCheckStatus() != null && item.getCheckStatus() == 1).count()); + respVO.setUncheckedCount(allList.stream().filter(item -> item.getCheckStatus() != null && item.getCheckStatus() == 0).count()); + return respVO; + } + @Override public PageResult getStockCheckRecordPage(ErpStockCheckRecordPageReqVO pageReqVO) { return stockCheckItemMapper.selectRecordPage(pageReqVO); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInService.java index 2f57ce7bd..b1ee71762 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInService.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInAuditR import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSubmitReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRespVO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInApproveRecordDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInItemDO; @@ -32,6 +33,8 @@ public interface ErpStockInService { PageResult getStockInPage(ErpStockInPageReqVO pageReqVO); + ErpStockInPageRespVO getStockInPageWithStatistics(ErpStockInPageReqVO pageReqVO); + List getStockInIdsByItemFilter(Long productId, Long warehouseId); List getStockInItemListByInId(Long inId); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java index b007479f2..670556f47 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java @@ -16,6 +16,8 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRe import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSubmitReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.StockInTypeEnum; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInRespVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.dal.dataobject.pallet.ErpPalletDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; @@ -316,6 +318,25 @@ public class ErpStockInServiceImpl implements ErpStockInService { return stockInMapper.selectPage(pageReqVO); } + @Override + public ErpStockInPageRespVO getStockInPageWithStatistics(ErpStockInPageReqVO pageReqVO) { + ErpStockInPageRespVO respVO = new ErpStockInPageRespVO(); + PageResult pageResult = getStockInPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), ErpStockInRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + ErpStockInPageReqVO statisticsReq = new ErpStockInPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = stockInMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setWaitInCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setRejectedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setAuditingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 10).count()); + respVO.setInStockCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 20).count()); + return respVO; + } + @Override public List getStockInIdsByItemFilter(Long productId, Long warehouseId) { if (productId == null && warehouseId == null) { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveService.java index ef6dcc8e5..bdd23461c 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.erp.service.stock; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSubmitReqVO; @@ -72,6 +73,8 @@ public interface ErpStockMoveService { */ PageResult getStockMovePage(ErpStockMovePageReqVO pageReqVO); + ErpStockMovePageRespVO getStockMovePageWithStatistics(ErpStockMovePageReqVO pageReqVO); + // ==================== 调拨项 ==================== /** diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java index c89e49bd5..c28951556 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java @@ -9,6 +9,8 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageRespVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSubmitReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; @@ -367,6 +369,25 @@ public class ErpStockMoveServiceImpl implements ErpStockMoveService { return stockMoveMapper.selectPage(pageReqVO); } + @Override + public ErpStockMovePageRespVO getStockMovePageWithStatistics(ErpStockMovePageReqVO pageReqVO) { + ErpStockMovePageRespVO respVO = new ErpStockMovePageRespVO(); + PageResult pageResult = getStockMovePage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), ErpStockMoveRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + ErpStockMovePageReqVO statisticsReq = new ErpStockMovePageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = stockMoveMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setWaitSubmitCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setRejectedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setAuditingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 10).count()); + respVO.setApprovedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 20).count()); + return respVO; + } + @Override public List getStockMoveApproveRecordList(Long id) { return stockMoveApproveRecordMapper.selectListByStockMoveId(id); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutService.java index 4aba89c84..ba22bc314 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.erp.service.stock; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSubmitReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; @@ -71,6 +72,8 @@ public interface ErpStockOutService { */ PageResult getStockOutPage(ErpStockOutPageReqVO pageReqVO); + ErpStockOutPageRespVO getStockOutPageWithStatistics(ErpStockOutPageReqVO pageReqVO); + List getStockOutIdsByItemFilter(Long productId, Long warehouseId); // ==================== 出库项 ==================== diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java index 0cb3a6aa7..e0240fd32 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java @@ -15,6 +15,8 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProduc import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ProductPackagingSchemeRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageRespVO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVOItem; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSubmitReqVO; @@ -345,6 +347,25 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { return stockOutMapper.selectPage(pageReqVO); } + @Override + public ErpStockOutPageRespVO getStockOutPageWithStatistics(ErpStockOutPageReqVO pageReqVO) { + ErpStockOutPageRespVO respVO = new ErpStockOutPageRespVO(); + PageResult pageResult = getStockOutPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), ErpStockOutRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + ErpStockOutPageReqVO statisticsReq = new ErpStockOutPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = stockOutMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setWaitOutCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setRejectedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setAuditingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 10).count()); + respVO.setOutStockCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 20).count()); + return respVO; + } + @Override public List getStockOutIdsByItemFilter(Long productId, Long warehouseId) { if (productId == null && warehouseId == null) {