feat: 入库/出库/调拨/盘点/托盘 分页接口新增状态统计卡片数据

main^2
zhongwenkai 20 hours ago
parent a8d1e1ebdd
commit aa0afdb345

@ -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<PageResult<ErpPalletRespVO>> getPalletPage(@Valid ErpPalletPageReqVO pageReqVO) {
PageResult<ErpPalletDO> pageResult = palletService.getPalletPage(pageReqVO);
public CommonResult<ErpPalletPageRespVO> getPalletPage(@Valid ErpPalletPageReqVO pageReqVO) {
ErpPalletPageRespVO respVO = palletService.getPalletPageWithStatistics(pageReqVO);
PageResult<ErpPalletDO> doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpPalletDO.class), respVO.getTotal());
Map<Long, String> qrcodeMap = qrcodeService.selectQrcodeUrlMapByBizTypeAndIds(QrcodeBizTypeEnum.PALLET.getCode(),
convertList(pageResult.getList(), ErpPalletDO::getId));
convertList(doPage.getList(), ErpPalletDO::getId));
Map<Long, BigDecimal> lockedPackageCountMap = palletService.getLockedPackageCountMap(
convertList(pageResult.getList(), ErpPalletDO::getId));
List<ErpPalletRespVO> list = convertList(pageResult.getList(),
convertList(doPage.getList(), ErpPalletDO::getId));
List<ErpPalletRespVO> 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")

@ -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<ErpPalletRespVO> 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;
}

@ -165,8 +165,13 @@ public class ErpStockCheckController {
@GetMapping("/page")
@Operation(summary = "获得库存盘点单分页")
@PreAuthorize("@ss.hasPermission('erp:stock-check:query')")
public CommonResult<PageResult<ErpStockCheckRespVO>> getStockCheckPage(@Valid ErpStockCheckPageReqVO pageReqVO) {
return success(buildStockCheckVOPageResult(stockCheckService.getStockCheckPage(pageReqVO)));
public CommonResult<ErpStockCheckPageRespVO> getStockCheckPage(@Valid ErpStockCheckPageReqVO pageReqVO) {
ErpStockCheckPageRespVO respVO = stockCheckService.getStockCheckPageWithStatistics(pageReqVO);
PageResult<ErpStockCheckDO> doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockCheckDO.class), respVO.getTotal());
PageResult<ErpStockCheckRespVO> voPage = buildStockCheckVOPageResult(doPage);
respVO.setList(voPage.getList());
respVO.setTotal(voPage.getTotal());
return success(respVO);
}
@GetMapping("/export-excel")

@ -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<PageResult<ErpStockInRespVO>> getStockInPage(@Valid ErpStockInPageReqVO pageReqVO) {
public CommonResult<ErpStockInPageRespVO> getStockInPage(@Valid ErpStockInPageReqVO pageReqVO) {
fillPageReqDefault(pageReqVO);
return success(buildStockInVOPageResult(stockInService.getStockInPage(pageReqVO)));
ErpStockInPageRespVO respVO = stockInService.getStockInPageWithStatistics(pageReqVO);
// 把 DO 列表转成 RespVO复用 buildStockInVOPageResult 的转换逻辑)
PageResult<ErpStockInDO> doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockInDO.class), respVO.getTotal());
PageResult<ErpStockInRespVO> voPage = buildStockInVOPageResult(doPage);
respVO.setList(voPage.getList());
respVO.setTotal(voPage.getTotal());
return success(respVO);
}
@GetMapping("/export-excel")

@ -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<PageResult<ErpStockMoveRespVO>> getStockMovePage(@Valid ErpStockMovePageReqVO pageReqVO) {
PageResult<ErpStockMoveDO> pageResult = stockMoveService.getStockMovePage(pageReqVO);
return success(buildStockMoveVOPageResult(pageResult));
public CommonResult<ErpStockMovePageRespVO> getStockMovePage(@Valid ErpStockMovePageReqVO pageReqVO) {
ErpStockMovePageRespVO respVO = stockMoveService.getStockMovePageWithStatistics(pageReqVO);
PageResult<ErpStockMoveDO> doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockMoveDO.class), respVO.getTotal());
PageResult<ErpStockMoveRespVO> voPage = buildStockMoveVOPageResult(doPage);
respVO.setList(voPage.getList());
respVO.setTotal(voPage.getTotal());
return success(respVO);
}
@GetMapping("/export-excel")

@ -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<PageResult<ErpStockOutRespVO>> getStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) {
public CommonResult<ErpStockOutPageRespVO> getStockOutPage(@Valid ErpStockOutPageReqVO pageReqVO) {
fillPageReqDefault(pageReqVO);
applyItemFilter(pageReqVO);
return success(buildStockOutVOPageResult(stockOutService.getStockOutPage(pageReqVO)));
ErpStockOutPageRespVO respVO = stockOutService.getStockOutPageWithStatistics(pageReqVO);
PageResult<ErpStockOutDO> doPage = new PageResult<>(BeanUtils.toBean(respVO.getList(), ErpStockOutDO.class), respVO.getTotal());
PageResult<ErpStockOutRespVO> voPage = buildStockOutVOPageResult(doPage);
respVO.setList(voPage.getList());
respVO.setTotal(voPage.getTotal());
return success(respVO);
}
@GetMapping("/export-excel")

@ -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<ErpStockCheckRespVO> 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;
}

@ -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<ErpStockInRespVO> 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;
}

@ -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<ErpStockMoveRespVO> 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;
}

@ -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<ErpStockOutRespVO> 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;
}

@ -53,6 +53,12 @@ public interface ErpPalletMapper extends BaseMapperX<ErpPalletDO> {
return selectList(ErpPalletDO::getStatus, status);
}
default List<ErpPalletDO> selectList(ErpPalletPageReqVO reqVO) {
LambdaQueryWrapperX<ErpPalletDO> query = new LambdaQueryWrapperX<>();
query.orderByDesc(ErpPalletDO::getId);
return selectList(query);
}
default List<ErpPalletDO> selectOccupiedList(Collection<Long> productIds, Collection<Long> warehouseIds,
Collection<Long> areaIds) {
boolean containsNullArea = areaIds != null && areaIds.stream().anyMatch(java.util.Objects::isNull);

@ -65,4 +65,10 @@ public interface ErpStockCheckMapper extends BaseMapperX<ErpStockCheckDO> {
return selectOne(ErpStockCheckDO::getNo, no);
}
default List<ErpStockCheckDO> selectList(ErpStockCheckPageReqVO reqVO) {
MPJLambdaWrapperX<ErpStockCheckDO> query = new MPJLambdaWrapperX<>();
query.orderByDesc(ErpStockCheckDO::getId);
return selectList(query);
}
}

@ -74,4 +74,10 @@ public interface ErpStockInMapper extends BaseMapperX<ErpStockInDO> {
return selectOne(ErpStockInDO::getNo, no);
}
default List<ErpStockInDO> selectList(ErpStockInPageReqVO reqVO) {
MPJLambdaWrapperX<ErpStockInDO> query = new MPJLambdaWrapperX<>();
query.orderByDesc(ErpStockInDO::getId);
return selectList(query);
}
}

@ -74,4 +74,10 @@ public interface ErpStockMoveMapper extends BaseMapperX<ErpStockMoveDO> {
return selectOne(ErpStockMoveDO::getNo, no);
}
default List<ErpStockMoveDO> selectList(ErpStockMovePageReqVO reqVO) {
MPJLambdaWrapperX<ErpStockMoveDO> query = new MPJLambdaWrapperX<>();
query.orderByDesc(ErpStockMoveDO::getId);
return selectList(query);
}
}

@ -79,4 +79,10 @@ public interface ErpStockOutMapper extends BaseMapperX<ErpStockOutDO> {
default List<ErpStockOutDO> selectByOutType(List<String> outTypes) {
return selectList(new QueryWrapper<ErpStockOutDO>().in("out_type", outTypes));
}
default List<ErpStockOutDO> selectList(ErpStockOutPageReqVO reqVO) {
MPJLambdaWrapperX<ErpStockOutDO> query = new MPJLambdaWrapperX<>();
query.orderByDesc(ErpStockOutDO::getId);
return selectList(query);
}
}

@ -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<ErpPalletDO> getPalletPage(ErpPalletPageReqVO pageReqVO);
ErpPalletPageRespVO getPalletPageWithStatistics(ErpPalletPageReqVO pageReqVO);
List<ErpPalletDO> getPalletListByStatus(Integer status);
List<ErpPalletDO> getOccupiedPalletList(Collection<Long> productIds, Collection<Long> warehouseIds, Collection<Long> areaIds);

@ -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<ErpPalletDO> 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<ErpPalletDO> 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<ErpPalletDO> getPalletListByStatus(Integer status) {
return palletMapper.selectListByStatus(status);

@ -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<ErpStockCheckDO> getStockCheckPage(ErpStockCheckPageReqVO pageReqVO);
ErpStockCheckPageRespVO getStockCheckPageWithStatistics(ErpStockCheckPageReqVO pageReqVO);
PageResult<ErpStockCheckItemDO> getStockCheckRecordPage(ErpStockCheckRecordPageReqVO pageReqVO);
// ==================== 盘点项 ====================

@ -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<ErpStockCheckDO> 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<ErpStockCheckDO> 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<ErpStockCheckItemDO> getStockCheckRecordPage(ErpStockCheckRecordPageReqVO pageReqVO) {
return stockCheckItemMapper.selectRecordPage(pageReqVO);

@ -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<ErpStockInDO> getStockInPage(ErpStockInPageReqVO pageReqVO);
ErpStockInPageRespVO getStockInPageWithStatistics(ErpStockInPageReqVO pageReqVO);
List<Long> getStockInIdsByItemFilter(Long productId, Long warehouseId);
List<ErpStockInItemDO> getStockInItemListByInId(Long inId);

@ -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<ErpStockInDO> 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<ErpStockInDO> 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<Long> getStockInIdsByItemFilter(Long productId, Long warehouseId) {
if (productId == null && warehouseId == null) {

@ -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<ErpStockMoveDO> getStockMovePage(ErpStockMovePageReqVO pageReqVO);
ErpStockMovePageRespVO getStockMovePageWithStatistics(ErpStockMovePageReqVO pageReqVO);
// ==================== 调拨项 ====================
/**

@ -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<ErpStockMoveDO> 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<ErpStockMoveDO> 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<ErpStockMoveApproveRecordDO> getStockMoveApproveRecordList(Long id) {
return stockMoveApproveRecordMapper.selectListByStockMoveId(id);

@ -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<ErpStockOutDO> getStockOutPage(ErpStockOutPageReqVO pageReqVO);
ErpStockOutPageRespVO getStockOutPageWithStatistics(ErpStockOutPageReqVO pageReqVO);
List<Long> getStockOutIdsByItemFilter(Long productId, Long warehouseId);
// ==================== 出库项 ====================

@ -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<ErpStockOutDO> 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<ErpStockOutDO> 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<Long> getStockOutIdsByItemFilter(Long productId, Long warehouseId) {
if (productId == null && warehouseId == null) {

Loading…
Cancel
Save