diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/facade/IExecutionStockInOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/facade/IExecutionStockInOrderService.java index 9ffe616d9..6e2077b69 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/facade/IExecutionStockInOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/facade/IExecutionStockInOrderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.oms.domain.executionInMaterialDetail.repository.po.ExecutionInMaterialDetailPO; import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockInOrder.repository.vo.DeliveryDataDTO; import com.mhd.oms.domain.executionStockInOrder.repository.vo.StockInDataDTO; @@ -25,6 +26,11 @@ public interface IExecutionStockInOrderService extends IService queryList(ExecutionStockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO); + /** * 新增入库单 */ diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java index e2621b868..14edeaac2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/mapper/ExecutionStockInOrderMapper.java @@ -7,6 +7,7 @@ import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialGoodsRulePO; import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialWarehouseControlPO; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; //import com.mhd.oms.domain.reservationInMaterialDetail.repository.po.ExecutionInMaterialDetailPO; import org.apache.ibatis.annotations.Param; @@ -27,6 +28,11 @@ public interface ExecutionStockInOrderMapper extends BaseMapper queryList(ExecutionStockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO); + public MaterialBaseInfoPO getinfo(@Param("id") Long id); public MaterialBaseInfoPO getByName(@Param("name") String name); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/persistence/ExecutionStockInOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/persistence/ExecutionStockInOrderImpl.java index c92312bea..6544f1081 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/persistence/ExecutionStockInOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/repository/persistence/ExecutionStockInOrderImpl.java @@ -26,6 +26,7 @@ import com.mhd.oms.domain.executionStockInOrder.repository.listener.StockInExcel import com.mhd.oms.domain.executionStockInOrder.repository.mapper.ExecutionStockInOrderMapper; import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockInOrder.repository.vo.*; import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder; @@ -93,6 +94,15 @@ public class ExecutionStockInOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalInQuantity),计划数量与入库数量分开计算

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "入库执行单列表合计对象", description = "入库执行单列表合计响应对象") +public class ExecutionStockInOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("入库数量总数") + private BigDecimal totalInQuantity; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderApplicationService.java index 0491c2d66..f71a42ae6 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderApplicationService.java @@ -18,6 +18,7 @@ import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder; import com.mhd.oms.domain.executionStockInOrder.repository.mapper.ExecutionStockInOrderMapper; import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDTO; import com.mhd.oms.domain.executionStockInOrder.repository.vo.GwInDetail; @@ -172,6 +173,15 @@ public class ExecutionStockInOrderApplicationService { return stockInOrderDomainService.queryList(stockInOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量。 + * 须在 queryList/queryList1 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO) { + return stockInOrderDomainService.queryListTotal(stockInOrderDO); + } + /** * 新增入库单 diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java index 3758a733e..df652558f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockInOrder/service/ExecutionStockInOrderDomainService.java @@ -30,6 +30,7 @@ import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialGoodsRulePO; import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialWarehouseControlPO; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder; import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService; @@ -113,6 +114,13 @@ public class ExecutionStockInOrderDomainService { return stockInOrderService.queryList(stockInOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO) { + return stockInOrderService.queryListTotal(stockInOrderDO); + } + /** * 从单号列表中提取最大序号 * 单号格式: prefix + 数字序号(如 RK260807001 中 prefix=RK260807, 序号=001) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/facade/IReservationStockInOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/facade/IReservationStockInOrderService.java index 2b73c694d..e09e9ab73 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/facade/IReservationStockInOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/facade/IReservationStockInOrderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.oms.domain.reservationInMaterialDetail.repository.po.ReservationInMaterialDetailPO; import com.mhd.oms.domain.reservationStockInOrder.entity.ReservationStockInOrder; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import com.mhd.oms.domain.reservationStockInOrder.repository.vo.DeliveryDataDTO; import com.mhd.oms.domain.reservationStockInOrder.repository.vo.SheetImportResultDTO; @@ -26,6 +27,11 @@ public interface IReservationStockInOrderService extends IService queryList(ReservationStockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO); + /** * 新增入库单 */ diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/mapper/ReservationStockInOrderMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/mapper/ReservationStockInOrderMapper.java index 9f47433f4..b92675701 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/mapper/ReservationStockInOrderMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/mapper/ReservationStockInOrderMapper.java @@ -8,6 +8,7 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfo import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialGoodsRulePO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialWarehouseControlPO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import org.apache.ibatis.annotations.Param; @@ -27,6 +28,11 @@ public interface ReservationStockInOrderMapper extends BaseMapper queryList(ReservationStockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO); + public MaterialBaseInfoPO getinfo(@Param("id") Long id); public MaterialBaseInfoPO getByName(@Param("name") String name); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/persistence/ReservationStockInOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/persistence/ReservationStockInOrderImpl.java index 837b754b5..309c697be 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/persistence/ReservationStockInOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/persistence/ReservationStockInOrderImpl.java @@ -34,6 +34,7 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.listener.StockInExc import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper; import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import com.mhd.oms.domain.reservationStockInOrder.repository.vo.*; import com.mhd.oms.domain.reservationStockInOrder.service.ReservationStockInOrderDomainService; @@ -106,6 +107,15 @@ public class ReservationStockInOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalInQuantity),计划数量与入库数量分开计算

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "入库业务单列表合计对象", description = "入库业务单列表合计响应对象") +public class ReservationStockInOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("入库数量总数") + private BigDecimal totalInQuantity; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java index 1ad2051aa..8bc363c23 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderApplicationService.java @@ -26,6 +26,7 @@ import com.mhd.oms.domain.reservationStockInOrder.entity.ReservationStockInOrder import com.mhd.oms.domain.reservationStockInOrder.repository.mapper.ReservationStockInOrderMapper; import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDTO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderImportRowDTO; @@ -184,6 +185,15 @@ public class ReservationStockInOrderApplicationService { return stockInOrderDomainService.queryList(stockInOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量。 + * 须在 queryList/queryList1 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO) { + return stockInOrderDomainService.queryListTotal(stockInOrderDO); + } + /** * 新增入库单 diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java index 26595005f..7a017789b 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java @@ -36,6 +36,7 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfo import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialGoodsRulePO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialWarehouseControlPO; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder; import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService; @@ -106,6 +107,13 @@ public class ReservationStockInOrderDomainService { return stockInOrderService.queryList(stockInOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO) { + return stockInOrderService.queryListTotal(stockInOrderDO); + } + /** * 生成入库预约单号 */ diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executionStockInOrder/ExecutionStockInOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executionStockInOrder/ExecutionStockInOrderApi.java index 68469eecf..64b296f15 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executionStockInOrder/ExecutionStockInOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/executionStockInOrder/ExecutionStockInOrderApi.java @@ -2,10 +2,11 @@ package com.mhd.oms.interfaces.facade.executionStockInOrder; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.oms.domain.executionInMaterialDetail.repository.po.ExecutionInMaterialDetailPO; import com.mhd.oms.domain.executionStockInOrder.repository.facade.IExecutionStockInOrderService; import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderPO; +import com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO; import com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDTO; import com.mhd.oms.domain.executionStockInOrder.repository.vo.DeliveryDataDTO; @@ -44,17 +45,19 @@ public class ExecutionStockInOrderApi extends BaseController { private IExecutionStockInOrderService reservationStockInOrderService; /** - * 分页查询入库单列表 + * 分页查询入库单列表(附:当前查询条件下全量不分页的计划数量总数/入库数量总数) */ @ApiOperation("查询入库单列表") @GetMapping("/list") - public TableDataInfo list(ExecutionStockInOrderDTO stockInOrderDTO) + public HashMap list(ExecutionStockInOrderDTO stockInOrderDTO) { //转换实体 ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); startPage(); List list = stockInOrderApplicationService.queryList(stockInOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + ExecutionStockInOrderTotalPO total = stockInOrderApplicationService.queryListTotal(stockInOrderDO); + return getDataTableWithTotal(list, total); } /** @@ -271,13 +274,32 @@ public class ExecutionStockInOrderApi extends BaseController { @ApiOperation("查询入库单列表") @GetMapping("/list1") - public TableDataInfo list1(ExecutionStockInOrderDTO stockInOrderDTO) + public HashMap list1(ExecutionStockInOrderDTO stockInOrderDTO) { //转换实体 ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); startPage(); List list = stockInOrderApplicationService.queryList1(stockInOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + ExecutionStockInOrderTotalPO total = stockInOrderApplicationService.queryListTotal(stockInOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/入库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + * 注:本类已导入spring的HttpStatus,common的HttpStatus用全限定名避免冲突 + */ + private HashMap getDataTableWithTotal(List list, ExecutionStockInOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", com.mhd.common.core.constant.HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalInQuantity", total.getTotalInQuantity()); + } + return result; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java index e104d34a3..88f3d4334 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/reservationStockInOrder/ReservationStockInOrderApi.java @@ -2,10 +2,11 @@ package com.mhd.oms.interfaces.facade.reservationStockInOrder; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.oms.domain.reservationInMaterialDetail.repository.po.ReservationInMaterialDetailPO; import com.mhd.oms.domain.reservationStockInOrder.repository.facade.IReservationStockInOrderService; import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderPO; +import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO; import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDTO; import com.mhd.oms.domain.reservationStockInOrder.repository.vo.DeliveryDataDTO; @@ -49,17 +50,19 @@ public class ReservationStockInOrderApi extends BaseController { private IReservationStockInOrderService reservationStockInOrderService; /** - * 分页查询入库单列表 + * 分页查询入库单列表(附:当前查询条件下全量不分页的计划数量总数/入库数量总数) */ @ApiOperation("查询入库单列表") @GetMapping("/list") - public TableDataInfo list(ReservationStockInOrderDTO stockInOrderDTO) + public HashMap list(ReservationStockInOrderDTO stockInOrderDTO) { //转换实体 ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); startPage(); List list = stockInOrderApplicationService.queryList(stockInOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + ReservationStockInOrderTotalPO total = stockInOrderApplicationService.queryListTotal(stockInOrderDO); + return getDataTableWithTotal(list, total); } /** @@ -317,13 +320,32 @@ public class ReservationStockInOrderApi extends BaseController { @ApiOperation("查询入库单列表") @GetMapping("/list1") - public TableDataInfo list1(ReservationStockInOrderDTO stockInOrderDTO) + public HashMap list1(ReservationStockInOrderDTO stockInOrderDTO) { //转换实体 ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); startPage(); List list = stockInOrderApplicationService.queryList1(stockInOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + ReservationStockInOrderTotalPO total = stockInOrderApplicationService.queryListTotal(stockInOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/入库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + * 注:本类已导入spring的HttpStatus,common的HttpStatus用全限定名避免冲突 + */ + private HashMap getDataTableWithTotal(List list, ReservationStockInOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", com.mhd.common.core.constant.HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalInQuantity", total.getTotalInQuantity()); + } + return result; } @ApiOperation("生成入库预约单号") diff --git a/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml b/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml index e321f8670..57376a1e2 100644 --- a/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/executionStockInOrder/ExecutionStockInOrderMapper.xml @@ -532,6 +532,17 @@ ORDER BY a.create_time IS NULL, a.create_time DESC + + + diff --git a/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml index 26b745141..e70a0048b 100644 --- a/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml @@ -539,6 +539,17 @@ ORDER BY a.create_time IS NULL, a.create_time DESC + + + diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java index fe9c17096..7b4c9919b 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java @@ -21,6 +21,7 @@ import com.mhd.system.api.model.LoginUser; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService; import com.mhd.wms.application.service.materialInventory.MaterialInventoryApplicationService; @@ -126,6 +127,15 @@ public class HandoverTaskOrderApplicationService { return handoverTaskOrderDomainService.queryList(handoverTaskOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量)。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO) { + return handoverTaskOrderDomainService.queryListTotal(handoverTaskOrderDO); + } + /** * 新增交接作业单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index 38a13922b..6a842a382 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -37,6 +37,7 @@ import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDom import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; import com.mhd.wms.domain.pickingOrder.repository.mapper.PickingOrderMapper; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService; import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService; @@ -208,6 +209,15 @@ public class PickingOrderApplicationService { return pickingOrderPOList; } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量)。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO) { + return pickingOrderDomainService.queryListTotal(pickingOrderDO); + } + /** * 新增拣货单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java index ef40b67d0..8e4f9a6ce 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/reviewOrder/ReviewOrderApplicationService.java @@ -33,6 +33,7 @@ import com.mhd.wms.domain.reviewOrder.repository.mapper.ReviewMaterialDetailMapp import com.mhd.wms.domain.reviewOrder.repository.mapper.ReviewOrderMapper; import com.mhd.wms.domain.reviewOrder.repository.po.ReviewMaterialDetailPO; import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderPO; +import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderTotalPO; import com.mhd.wms.domain.reviewOrder.repository.todo.ReviewOrderDO; import com.mhd.wms.domain.stockOutTaskOrder.entity.StockOutTaskOrder; import com.mhd.wms.domain.stockOutTaskOrder.repository.facade.IStockOutTaskOrderService; @@ -107,6 +108,19 @@ public class ReviewOrderApplicationService { return reviewOrderMapper.queryList(query); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(已复核数量)。 + * 与 queryList 同样应用数据权限(方法幂等,重复应用结果一致); + * 须在 queryList 之后用同一个 query 调用,且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public ReviewOrderTotalPO queryListTotal(ReviewOrderDO query) { + if (query == null) { + query = new ReviewOrderDO(); + } + applyReviewOrderDataPermission(query); + return reviewOrderMapper.queryListTotal(query); + } + /** * PDA 复核任务列表:数据来自 REVIEW_ORDER,仅展示已下发任务;与出库单 PDA 列表的 tab 语义对齐。 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java index 042799783..d23cb6307 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java @@ -52,6 +52,7 @@ import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockInOrder.repository.vo.GwInDetail; import com.mhd.wms.domain.stockInOrder.repository.vo.GwStockInOrder; @@ -284,6 +285,15 @@ public class StockInOrderApplicationService { return stockInOrderPOS; } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO) { + return stockInOrderDomainService.queryListTotal(stockInOrderDO); + } + /** * PDA入库签名列表查询 * diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index e43e6d37d..695c6ee77 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -64,6 +64,7 @@ import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.domain.stockOutOrder.service.StockOutOrderDomainService; import com.mhd.wms.domain.outOrderFreezeRecord.service.OutOrderFreezeRecordDomainService; @@ -330,6 +331,15 @@ public class StockOutOrderApplicationService { return stockOutOrderPOS; } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO) { + return stockOutOrderDomainService.queryListTotal(stockOutOrderDO); + } + /** * PDA出库签名列表查询 * diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index 3760dfd7d..027266f82 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -42,6 +42,7 @@ import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAcc import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService; @@ -182,6 +183,15 @@ public class StockReceiptOrderApplicationService { return stockReceiptOrderPOS; } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量(收货数量)。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO) { + return stockReceiptOrderDomainService.queryListTotal(stockReceiptOrderDO); + } + /** * 修改收货单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java index 9d5f81782..54a4678b8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java @@ -58,6 +58,7 @@ import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService; import com.mhd.wms.domain.stockShelfOrder.repository.mapper.StockShelfOrderMapper; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService; import com.mhd.wms.domain.customsDeclarationDetail.repository.facade.ICustomsDeclarationDetailService; @@ -213,6 +214,15 @@ public class StockShelfOrderApplicationService { return stockShelfOrderDomainService.queryList(stockShelfOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量)。 + * 须在 queryList 之后用同一个DO调用:数据权限条件由列表查询原地写入DO, + * 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。 + */ + public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO) { + return stockShelfOrderDomainService.queryListTotal(stockShelfOrderDO); + } + /** * 新增上架单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java index 1909f7ae8..aaeee0f2f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/facade/IHandoverTaskOrderService.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.handoverTaskOrder.repository.facade; import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import java.util.List; @@ -20,6 +21,11 @@ public interface IHandoverTaskOrderService extends IService */ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量) + */ + public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO); + /** * 新增交接作业单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java index 0af21184d..54db84424 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/mapper/HandoverTaskOrderMapper.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.handoverTaskOrder.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,11 @@ public interface HandoverTaskOrderMapper extends BaseMapper */ public List queryList(HandoverTaskOrderDO handoverTaskOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量) + */ + public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO); + public void updateOmsOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status); public void updateOmsExecutionOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java index d14bc4988..78d092676 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/persistence/HandoverTaskOrderImpl.java @@ -11,6 +11,7 @@ import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.mapper.HandoverTaskOrderMapper; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import com.mhd.wms.domain.shiftManage.entity.ShiftManage; import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO; @@ -43,6 +44,15 @@ public class HandoverTaskOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算; + * 头表无数量列,两口径均按交接明细 task_handover_material_detail(del_flag=1) 求和: + * 计划数量=quantity,出库数量=check_quantity(复核数量, 与详情页出库数量口径一致)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "出库交接列表合计对象", description = "出库交接列表合计响应对象") +public class HandoverTaskOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数(交接明细计划数量求和)") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("出库数量总数(交接明细复核数量求和)") + private BigDecimal totalOutboundQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 56804b665..82ed3f23e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -33,6 +33,7 @@ import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import com.mhd.wms.domain.inventoryAdjustmentRecord.entity.InventoryAdjustmentRecord; import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.mapper.InventoryAdjustmentRecordMapper; @@ -135,6 +136,13 @@ public class HandoverTaskOrderDomainService { return handoverTaskOrderService.queryList(handoverTaskOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量) + */ + public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO) { + return handoverTaskOrderService.queryListTotal(handoverTaskOrderDO); + } + /** * 新增交接作业单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/facade/IPickingOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/facade/IPickingOrderService.java index 6cc9e3a25..1f02b0adb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/facade/IPickingOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/facade/IPickingOrderService.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.pickingOrder.repository.facade; import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import java.util.List; @@ -20,6 +21,11 @@ public interface IPickingOrderService extends IService */ public List queryList(PickingOrderDO pickingOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量) + */ + public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO); + /** * 新增拣货单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/mapper/PickingOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/mapper/PickingOrderMapper.java index 6ae3ffd54..94943e554 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/mapper/PickingOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/mapper/PickingOrderMapper.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.pickingOrder.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import java.util.List; @@ -20,6 +21,11 @@ public interface PickingOrderMapper extends BaseMapper */ public List queryList(PickingOrderDO pickingOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量) + */ + public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO); + /** * 根据Id关联出库单查询 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/persistence/PickingOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/persistence/PickingOrderImpl.java index 02187ecf7..5a2ab1df4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/persistence/PickingOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/repository/persistence/PickingOrderImpl.java @@ -8,6 +8,7 @@ import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; import com.mhd.wms.domain.pickingOrder.repository.facade.IPickingOrderService; import com.mhd.wms.domain.pickingOrder.repository.mapper.PickingOrderMapper; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,6 +39,15 @@ public class PickingOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算; + * 出库数量口径与列表行 picking_quantity 列一致(拣货明细实拣汇总,del_flag随主单)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "拣货管理列表合计对象", description = "拣货管理列表合计响应对象") +public class PickingOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("出库数量总数(拣货数量)") + private BigDecimal totalOutboundQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java index 2fbaaf58c..10f86f0e7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java @@ -46,6 +46,7 @@ import com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialD import com.mhd.wms.domain.pickingOrder.entity.PickingOrder; import com.mhd.wms.domain.pickingOrder.repository.facade.IPickingOrderService; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.application.service.reviewOrder.ReviewOrderApplicationService; import com.mhd.wms.domain.pushSyncBms.PushSyncBmsDomainService; @@ -140,6 +141,13 @@ public class PickingOrderDomainService { return pickingOrderService.queryList(pickingOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量) + */ + public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO) { + return pickingOrderService.queryListTotal(pickingOrderDO); + } + /** * 新增拣货单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/mapper/ReviewOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/mapper/ReviewOrderMapper.java index de063e2dd..9e4bf3a00 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/mapper/ReviewOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/mapper/ReviewOrderMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.reviewOrder.entity.ReviewOrder; import com.mhd.wms.domain.reviewOrder.repository.po.ReviewMaterialDetailPO; import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderPO; +import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderTotalPO; import com.mhd.wms.domain.reviewOrder.repository.todo.ReviewOrderDO; import org.apache.ibatis.annotations.Param; @@ -19,6 +20,11 @@ public interface ReviewOrderMapper extends BaseMapper { */ List queryList(ReviewOrderDO query); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量(已复核数量) + */ + ReviewOrderTotalPO queryListTotal(ReviewOrderDO query); + /** * 详情-主表(按主键) */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewOrderTotalPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewOrderTotalPO.java new file mode 100644 index 000000000..b8c9640f1 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewOrderTotalPO.java @@ -0,0 +1,31 @@ +package com.mhd.wms.domain.reviewOrder.repository.po; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 复核管理列表合计PO + * + *

当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算; + * 口径与列表行的 total_plan_qty/total_reviewed_qty 列一致(明细聚合,不滤del_flag以兼容已反审tab)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "复核管理列表合计对象", description = "复核管理列表合计响应对象") +public class ReviewOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数(明细计划量=待复核+已复核)") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("出库数量总数(已复核数量)") + private BigDecimal totalOutboundQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/facade/IStockInOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/facade/IStockInOrderService.java index 2eaf44024..f627471da 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/facade/IStockInOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/facade/IStockInOrderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; @@ -22,6 +23,11 @@ public interface IStockInOrderService extends IService */ public List queryList(StockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO); + /** * 新增入库单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java index 37aabe0c5..7d54ab600 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/mapper/StockInOrderMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; import org.apache.ibatis.annotations.Param; @@ -23,6 +24,11 @@ public interface StockInOrderMapper extends BaseMapper */ public List queryList(StockInOrderDO stockInOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO); + List queryInStockInfoByInOrderNumber(StockInOrderDTO stockInOrderDTO); List queryNoticePrint(StockInOrderDO stockInOrderDO); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/persistence/StockInOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/persistence/StockInOrderImpl.java index 4bedf4ca5..fc887da45 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/persistence/StockInOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/persistence/StockInOrderImpl.java @@ -6,6 +6,7 @@ import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; import org.springframework.beans.BeanUtils; @@ -37,6 +38,15 @@ public class StockInOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalInQuantity),计划数量与入库数量分开计算; + * 入库数量口径与列表行 receipt_quantity 列一致(收货单实收汇总)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "入库管理列表合计对象", description = "入库管理列表合计响应对象") +public class StockInOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("入库数量总数(收货单实收汇总)") + private BigDecimal totalInQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java index c12e66767..51ccb31a8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java @@ -60,6 +60,7 @@ import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockInTaskOrder.entity.StockInTaskOrder; import com.mhd.wms.domain.stockInTaskOrder.repository.facade.IStockInTaskOrderService; @@ -160,6 +161,13 @@ public class StockInOrderDomainService { return stockInOrderService.queryList(stockInOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量 + */ + public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO) { + return stockInOrderService.queryListTotal(stockInOrderDO); + } + /** * PDA入库签名列表查询 * diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/facade/IStockOutOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/facade/IStockOutOrderService.java index c5088a224..556b80587 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/facade/IStockOutOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/facade/IStockOutOrderService.java @@ -5,6 +5,7 @@ import com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; @@ -23,6 +24,11 @@ public interface IStockOutOrderService extends IService */ public List queryList(StockOutOrderDO stockOutOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量 + */ + public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO); + /** * 新增出库单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/mapper/StockOutOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/mapper/StockOutOrderMapper.java index 6cb3b57b1..fc1dc1a5f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/mapper/StockOutOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/mapper/StockOutOrderMapper.java @@ -5,6 +5,7 @@ import com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; @@ -24,6 +25,11 @@ public interface StockOutOrderMapper extends BaseMapper { */ public List queryList(StockOutOrderDO stockOutOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量 + */ + public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO); + List queryOutStockNoticePrint(StockOutOrderDTO stockOutOrderDTO); List queryOutStockNoticePrintDetail(StockOutOrderDTO stockOutOrderDTO); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/persistence/StockOutOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/persistence/StockOutOrderImpl.java index 864ebfcfe..2f93a162e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/persistence/StockOutOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/persistence/StockOutOrderImpl.java @@ -12,6 +12,7 @@ import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; import lombok.extern.slf4j.Slf4j; @@ -45,6 +46,15 @@ public class StockOutOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算; + * 出库数量口径与列表行 totalOutboundQuantity 列一致(out_material_detail level=1 实际出库汇总)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "出库管理列表合计对象", description = "出库管理列表合计响应对象") +public class StockOutOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("出库数量总数(一级明细实际出库汇总)") + private BigDecimal totalOutboundQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index 27a1f0690..a4a03db24 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -92,6 +92,7 @@ import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.mapper.StockOutOrderMapper; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.domain.waveOrder.factorys.WaveOrderServiceFactory; import com.mhd.wms.interfaces.dto.outMaterialDetail.OutMaterialDetailDTO; @@ -194,6 +195,13 @@ public class StockOutOrderDomainService { return stockOutOrderService.queryList(stockOutOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与出库数量 + */ + public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO) { + return stockOutOrderService.queryListTotal(stockOutOrderDO); + } + /** * PDA出库签名列表查询,默认 status=已出库(9) */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/facade/IStockReceiptOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/facade/IStockReceiptOrderService.java index 53b2858f7..681a562e9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/facade/IStockReceiptOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/facade/IStockReceiptOrderService.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockReceiptOrder.repository.facade; import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; @@ -21,6 +22,11 @@ public interface IStockReceiptOrderService extends IService */ public List queryList(StockReceiptOrderDO stockReceiptOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量(收货数量) + */ + public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO); + /** * 新增收货单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/mapper/StockReceiptOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/mapper/StockReceiptOrderMapper.java index 89c421b17..a55f20372 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/mapper/StockReceiptOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/mapper/StockReceiptOrderMapper.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockReceiptOrder.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; @@ -21,6 +22,11 @@ public interface StockReceiptOrderMapper extends BaseMapper */ public List queryList(StockReceiptOrderDO stockReceiptOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量(收货数量) + */ + public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO); + /** * * @param stockReceiptOrderDTO diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/persistence/StockReceiptOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/persistence/StockReceiptOrderImpl.java index 1b1e5c8c9..1473e0605 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/persistence/StockReceiptOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/persistence/StockReceiptOrderImpl.java @@ -11,6 +11,7 @@ import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrderService; import com.mhd.wms.domain.stockReceiptOrder.repository.mapper.StockReceiptOrderMapper; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; import org.springframework.beans.BeanUtils; @@ -44,6 +45,15 @@ public class StockReceiptOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalInQuantity),计划数量与入库数量分开计算; + * 入库数量口径与列表行 receipt_quantity 列一致(收货单实收)

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "收货管理列表合计对象", description = "收货管理列表合计响应对象") +public class StockReceiptOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("入库数量总数(收货数量)") + private BigDecimal totalInQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 08a53a153..2027e02a5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -65,6 +65,7 @@ import com.mhd.wms.domain.stockInTaskOrder.repository.todo.StockInTaskOrderDO; import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrderService; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; @@ -154,6 +155,13 @@ public class StockReceiptOrderDomainService { return stockReceiptOrderService.queryList(stockReceiptOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量(收货数量) + */ + public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO) { + return stockReceiptOrderService.queryListTotal(stockReceiptOrderDO); + } + /** * 批量新增收货单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/facade/IStockShelfOrderService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/facade/IStockShelfOrderService.java index 94d73f025..d6087aad4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/facade/IStockShelfOrderService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/facade/IStockShelfOrderService.java @@ -5,6 +5,7 @@ import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo; import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO; import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import java.math.BigDecimal; @@ -23,6 +24,11 @@ public interface IStockShelfOrderService extends IService */ public List queryList(StockShelfOrderDO stockShelfOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量) + */ + public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO); + /** * 新增上架单 */ diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/mapper/StockShelfOrderMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/mapper/StockShelfOrderMapper.java index 65337a867..cc3783759 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/mapper/StockShelfOrderMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/mapper/StockShelfOrderMapper.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockShelfOrder.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import org.apache.ibatis.annotations.Param; @@ -22,6 +23,11 @@ public interface StockShelfOrderMapper extends BaseMapper */ public List queryList(StockShelfOrderDO stockShelfOrderDO); + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量) + */ + public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO); + public void updateOmsOrder(@Param("orderNumber") String orderNumber, @Param("status") Integer status, @Param("shelvesQuantity") BigDecimal shelvesQuantity); public Integer getExecutionCount(@Param("orderNumber") String orderNumber); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/persistence/StockShelfOrderImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/persistence/StockShelfOrderImpl.java index 1d15b18dd..5d6fb5d2a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/persistence/StockShelfOrderImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/repository/persistence/StockShelfOrderImpl.java @@ -13,6 +13,7 @@ import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService; import com.mhd.wms.domain.stockShelfOrder.repository.mapper.StockShelfOrderMapper; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +46,15 @@ public class StockShelfOrderImpl extends ServiceImpl当前筛选条件下不分页的全量合计,随分页列表一起返回 + * (totalPlanQuantity/totalInQuantity),计划数量与入库数量分开计算; + * 计划数量口径=上架明细(level=1,del_flag=1)计划数量求和(应上架量),入库数量口径与列表行 shelves_quantity 列一致

+ * + * @author rcx + * @date 2026-09-14 + */ +@Data +@ApiModel(value = "上架管理列表合计对象", description = "上架管理列表合计响应对象") +public class StockShelfOrderTotalPO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划数量总数(应上架量,明细计划数量求和)") + private BigDecimal totalPlanQuantity; + + @ApiModelProperty("入库数量总数(上架数量)") + private BigDecimal totalInQuantity; +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java index a374b66ba..3c955b76c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java @@ -79,6 +79,7 @@ import com.mhd.wms.domain.stockInTaskOrder.repository.todo.StockInTaskOrderDO; import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder; import com.mhd.wms.domain.stockShelfOrder.repository.facade.IStockShelfOrderService; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import com.mhd.wms.domain.taskShelfMaterialDetail.entity.TaskShelfMaterialDetail; import com.mhd.wms.domain.taskShelfMaterialDetail.repository.facade.ITaskShelfMaterialDetailService; @@ -162,6 +163,13 @@ public class StockShelfOrderDomainService { return stockShelfOrderService.queryList(stockShelfOrderDO); } + /** + * 列表合计:按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量) + */ + public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO) { + return stockShelfOrderService.queryListTotal(stockShelfOrderDO); + } + /** * 新增上架单 diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java index 798a11e4d..1a25e6ff2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/handoverTaskOrder/HandoverTaskOrderApi.java @@ -1,10 +1,12 @@ package com.mhd.wms.interfaces.facadeApi.handoverTaskOrder; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.wms.application.service.handoverTaskOrder.HandoverTaskOrderApplicationService; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; +import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO; import com.mhd.wms.interfaces.assember.handoverTaskOrder.HandoverTaskOrderAssembler; @@ -15,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** @@ -33,17 +36,35 @@ public class HandoverTaskOrderApi extends BaseController { private HandoverTaskOrderAssembler handoverTaskOrderAssembler; /** - * 分页查询交接作业单列表 + * 分页查询交接作业单列表(附:当前查询条件下全量不分页的计划数量总数/出库数量总数) */ @ApiOperation("查询交接作业单列表") @GetMapping("/list") - public TableDataInfo list(HandoverTaskOrderDTO handoverTaskOrderDTO) + public HashMap list(HandoverTaskOrderDTO handoverTaskOrderDTO) { //转换实体 HandoverTaskOrderDO handoverTaskOrderDO = handoverTaskOrderAssembler.toDO(handoverTaskOrderDTO); startPage(); List list = handoverTaskOrderApplicationService.queryList(handoverTaskOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + HandoverTaskOrderTotalPO total = handoverTaskOrderApplicationService.queryListTotal(handoverTaskOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/出库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, HandoverTaskOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalOutboundQuantity", total.getTotalOutboundQuantity()); + } + return result; } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java index d671fc454..7b4134d5d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java @@ -2,10 +2,12 @@ package com.mhd.wms.interfaces.facadeApi.pickingOrder; import cn.hutool.json.JSONUtil; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.wms.application.service.pickingOrder.PickingOrderApplicationService; import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; +import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.interfaces.assember.pickingOrder.PickingOrderAssembler; import com.mhd.wms.interfaces.dto.pickingOrder.PickingOrderDTO; @@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** @@ -32,17 +35,35 @@ public class PickingOrderApi extends BaseController { private PickingOrderAssembler pickingOrderAssembler; /** - * 分页查询拣货单列表 + * 分页查询拣货单列表(附:当前查询条件下全量不分页的计划数量总数/出库数量总数) */ @ApiOperation("查询拣货单列表") @GetMapping("/list") - public TableDataInfo list(PickingOrderDTO pickingOrderDTO) + public HashMap list(PickingOrderDTO pickingOrderDTO) { //转换实体 PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); startPage(); List list = pickingOrderApplicationService.queryList(pickingOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + PickingOrderTotalPO total = pickingOrderApplicationService.queryListTotal(pickingOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/出库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, PickingOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalOutboundQuantity", total.getTotalOutboundQuantity()); + } + return result; } /** @@ -139,13 +160,15 @@ public class PickingOrderApi extends BaseController { @ApiOperation("查询拣货单列表") @GetMapping("/list1") - public TableDataInfo list1(PickingOrderDTO pickingOrderDTO) + public HashMap list1(PickingOrderDTO pickingOrderDTO) { //转换实体 PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); startPage(); List list = pickingOrderApplicationService.queryList1(pickingOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + PickingOrderTotalPO total = pickingOrderApplicationService.queryListTotal(pickingOrderDO); + return getDataTableWithTotal(list, total); } } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/reviewOrder/ReviewOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/reviewOrder/ReviewOrderApi.java index e98818258..0ea484e7f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/reviewOrder/ReviewOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/reviewOrder/ReviewOrderApi.java @@ -2,10 +2,12 @@ package com.mhd.wms.interfaces.facadeApi.reviewOrder; import cn.hutool.json.JSONUtil; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.wms.application.service.reviewOrder.ReviewOrderApplicationService; import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderPO; +import com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderTotalPO; import com.mhd.wms.domain.reviewOrder.repository.todo.ReviewOrderDO; import com.mhd.wms.interfaces.assember.reviewOrder.ReviewOrderAssembler; import com.mhd.wms.interfaces.dto.reviewOrder.ReviewOrderDTO; @@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** @@ -39,11 +42,29 @@ public class ReviewOrderApi extends BaseController { @ApiOperation("复核单分页列表") @GetMapping("/list") - public TableDataInfo list(ReviewOrderDTO reviewOrderDTO) { + public HashMap list(ReviewOrderDTO reviewOrderDTO) { ReviewOrderDO query = reviewOrderAssembler.toDO(reviewOrderDTO); startPage(); List list = reviewOrderApplicationService.queryList(query); - return getDataTable(list); + // 合计须在列表查询后用同一个query调用:数据权限条件在查询前写入query,且不再被分页拦截 + ReviewOrderTotalPO total = reviewOrderApplicationService.queryListTotal(query); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/出库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, ReviewOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalOutboundQuantity", total.getTotalOutboundQuantity()); + } + return result; } @ApiOperation("获取复核单详情") diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java index 7ff3edcb7..b4a19a218 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java @@ -2,11 +2,13 @@ package com.mhd.wms.interfaces.facadeApi.stockInOrder; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.utils.StringUtils; +import com.github.pagehelper.PageInfo; import com.mhd.system.api.XxlJobServiceFeign; import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; @@ -15,6 +17,7 @@ import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; +import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.assember.stockInOrder.StockInOrderAssembler; @@ -57,17 +60,35 @@ public class StockInOrderApi extends BaseController { // private XxlJobServiceFeign xxlJobServiceFeign; /** - * 分页查询入库单列表 + * 分页查询入库单列表(附:当前查询条件下全量不分页的计划数量总数/入库数量总数) */ @ApiOperation("查询入库单列表") @GetMapping("/list") - public TableDataInfo list(StockInOrderDTO stockInOrderDTO) + public HashMap list(StockInOrderDTO stockInOrderDTO) { //转换实体 StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); startPage(); List list = stockInOrderApplicationService.queryList(stockInOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + StockInOrderTotalPO total = stockInOrderApplicationService.queryListTotal(stockInOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/入库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, StockInOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalInQuantity", total.getTotalInQuantity()); + } + return result; } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java index b2f9f0f51..c02072ca5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java @@ -2,6 +2,7 @@ package com.mhd.wms.interfaces.facadeApi.stockOutOrder; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageInfo; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; @@ -25,6 +26,7 @@ import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.listener.ExcelParseService; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; +import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.domain.outOrderFreezeRecord.service.OutOrderFreezeRecordDomainService; import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler; @@ -102,16 +104,35 @@ public class StockOutOrderApi extends BaseController { } /** - * 分页查询出库单列表 + * 分页查询出库单列表(附:当前查询条件下全量不分页的计划数量总数/出库数量总数) */ @ApiOperation("查询出库单列表") @GetMapping("/list") - public TableDataInfo list(StockOutOrderDTO stockOutOrderDTO) { + public HashMap list(StockOutOrderDTO stockOutOrderDTO) { //转换实体 StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); startPage(); List list = stockOutOrderApplicationService.queryList(stockOutOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + StockOutOrderTotalPO total = stockOutOrderApplicationService.queryListTotal(stockOutOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/出库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + * 注:本类已导入spring的HttpStatus,common的HttpStatus用全限定名避免冲突 + */ + private HashMap getDataTableWithTotal(List list, StockOutOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", com.mhd.common.core.constant.HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalOutboundQuantity", total.getTotalOutboundQuantity()); + } + return result; } // // @ApiOperation("海关确认出库(人工批量触发,参数为空则扫全部已交接状态)") diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java index 1216fecaa..6b450fd88 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java @@ -1,10 +1,12 @@ package com.mhd.wms.interfaces.facadeApi.stockReceiptOrder; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.wms.application.service.stockReceiptOrder.StockReceiptOrderApplicationService; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; +import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.interfaces.assember.stockReceiptOrder.StockReceiptOrderAssembler; import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; @@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** @@ -31,17 +34,35 @@ public class StockReceiptOrderApi extends BaseController { private StockReceiptOrderAssembler stockReceiptOrderAssembler; /** - * 分页查询收货单列表 + * 分页查询收货单列表(附:当前查询条件下全量不分页的计划数量总数/入库数量总数) */ @ApiOperation("查询收货单列表") @GetMapping("/list") - public TableDataInfo list(StockReceiptOrderDTO stockReceiptOrderDTO) + public HashMap list(StockReceiptOrderDTO stockReceiptOrderDTO) { //转换实体 StockReceiptOrderDO stockReceiptOrderDO = stockReceiptOrderAssembler.toDO(stockReceiptOrderDTO); startPage(); List list = stockReceiptOrderApplicationService.queryList(stockReceiptOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + StockReceiptOrderTotalPO total = stockReceiptOrderApplicationService.queryListTotal(stockReceiptOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/入库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, StockReceiptOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalInQuantity", total.getTotalInQuantity()); + } + return result; } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockShelfOrder/StockShelfOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockShelfOrder/StockShelfOrderApi.java index 85f90eb32..4f8b7a634 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockShelfOrder/StockShelfOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockShelfOrder/StockShelfOrderApi.java @@ -1,10 +1,12 @@ package com.mhd.wms.interfaces.facadeApi.stockShelfOrder; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.web.domain.AjaxResult; -import com.mhd.common.core.web.page.TableDataInfo; +import com.github.pagehelper.PageInfo; import com.mhd.wms.application.service.stockShelfOrder.StockShelfOrderApplicationService; import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; +import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import com.mhd.wms.interfaces.assember.stockShelfOrder.StockShelfOrderAssembler; import com.mhd.wms.interfaces.dto.stockShelfOrder.StockShelfOrderDTO; @@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; /** @@ -31,17 +34,35 @@ public class StockShelfOrderApi extends BaseController { private StockShelfOrderAssembler stockShelfOrderAssembler; /** - * 分页查询上架单列表 + * 分页查询上架单列表(附:当前查询条件下全量不分页的计划数量总数/入库数量总数) */ @ApiOperation("查询上架单列表") @GetMapping("/list") - public TableDataInfo list(StockShelfOrderDTO stockShelfOrderDTO) + public HashMap list(StockShelfOrderDTO stockShelfOrderDTO) { //转换实体 StockShelfOrderDO stockShelfOrderDO = stockShelfOrderAssembler.toDO(stockShelfOrderDTO); startPage(); List list = stockShelfOrderApplicationService.queryList(stockShelfOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + StockShelfOrderTotalPO total = stockShelfOrderApplicationService.queryListTotal(stockShelfOrderDO); + return getDataTableWithTotal(list, total); + } + + /** + * 分页结果 + 合计:data/total/code/msg 之外追加计划数量总数/入库数量总数(key与TableDataInfo序列化结果一致,仅多两个字段) + */ + private HashMap getDataTableWithTotal(List list, StockShelfOrderTotalPO total) { + HashMap result = new HashMap<>(); + result.put("data", list); + result.put("total", new PageInfo<>(list).getTotal()); + result.put("code", HttpStatus.SUCCESS); + result.put("msg", "查询成功"); + if (total != null) { + result.put("totalPlanQuantity", total.getTotalPlanQuantity()); + result.put("totalInQuantity", total.getTotalInQuantity()); + } + return result; } /** @@ -109,13 +130,15 @@ public class StockShelfOrderApi extends BaseController { @ApiOperation("查询上架单列表") @GetMapping("/list1") - public TableDataInfo list1(StockShelfOrderDTO stockShelfOrderDTO) + public HashMap list1(StockShelfOrderDTO stockShelfOrderDTO) { //转换实体 StockShelfOrderDO stockShelfOrderDO = stockShelfOrderAssembler.toDO(stockShelfOrderDTO); startPage(); List list = stockShelfOrderApplicationService.queryList1(stockShelfOrderDO); - return getDataTable(list); + // 合计须在列表查询后用同一个DO查询:数据权限条件由列表查询原地写入DO,且不再被分页拦截 + StockShelfOrderTotalPO total = stockShelfOrderApplicationService.queryListTotal(stockShelfOrderDO); + return getDataTableWithTotal(list, total); } } diff --git a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml index e01a2e528..c76e50ac4 100644 --- a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml @@ -153,6 +153,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by a.create_time desc + + + update "NGWL_TEST_OMS".RESERVATION_STOCK_OUT_ORDER set ISSUE_STATUS = #{status},OUTBOUND_TIME = CURRENT_TIMESTAMP where OUT_ORDER_NUMBER = #{orderNumber} and DEL_FLAG = 1 diff --git a/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml b/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml index 71490bd42..1e24bdcea 100644 --- a/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml @@ -157,6 +157,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by a.create_time desc + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml index 3b468716c..44464f0ac 100644 --- a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml @@ -181,6 +181,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY a.create_time DESC + + +