feat(oms): 出库业务单/出库执行单列表计划数量与出库数量分开计算, 返回全量不分页的计划数量总数/出库数量总数

- 新增queryListTotal: 复用queryList同条件片段, LEFT JOIN一级明细汇总SUM(quantity)/SUM(outbound_quantity), 计划数量与出库数量分开计算
- list/list1响应在data/total/code/msg同层级追加totalPlanQuantity/totalOutboundQuantity(与出库排名页合计行模式一致, 前端兼容)
- 执行单列表顺带修复每行totalOutboundQuantity恒为null(补关联子查询+resultMap映射, 对齐业务单178b7697口径)
This commit is contained in:
rcx
2026-09-14 16:24:53 +08:00
parent b1d92fdda8
commit e59173b3f9
16 changed files with 245 additions and 13 deletions
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.executionOutMaterialDetail.repository.po.ExecutionOutMaterialDetailPO;
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import java.util.List;
@@ -21,6 +22,11 @@ public interface IExecutionStockOutOrderService extends IService<ExecutionStockO
*/
public List<ExecutionStockOutOrderPO> queryList(ExecutionStockOutOrderDO stockOutOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ExecutionStockOutOrderTotalPO queryListTotal(ExecutionStockOutOrderDO stockOutOrderDO);
/**
* 新增出库单
*/
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.oms.domain.executionOutMaterialDetail.repository.po.ExecutionOutMaterialDetailPO;
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import org.apache.ibatis.annotations.Param;
//import com.mhd.oms.domain.reservationOutMaterialDetail.repository.po.ExecutionOutMaterialDetailPO;
@@ -23,6 +24,11 @@ public interface ExecutionStockOutOrderMapper extends BaseMapper<ExecutionStockO
*/
public List<ExecutionStockOutOrderPO> queryList(ExecutionStockOutOrderDO stockOutOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ExecutionStockOutOrderTotalPO queryListTotal(ExecutionStockOutOrderDO stockOutOrderDO);
/**
* 出库单提货单打印-表头
*/
@@ -6,6 +6,7 @@ import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
import com.mhd.oms.domain.executionStockOutOrder.repository.mapper.ExecutionStockOutOrderMapper;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +35,15 @@ public class ExecutionStockOutOrderImpl extends ServiceImpl<ExecutionStockOutOrd
return reservationStockOutOrderMapper.queryList(stockOutOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
@Override
public ExecutionStockOutOrderTotalPO queryListTotal(ExecutionStockOutOrderDO stockOutOrderDO)
{
return reservationStockOutOrderMapper.queryListTotal(stockOutOrderDO);
}
/**
* 新增出库单
*/
@@ -0,0 +1,30 @@
package com.mhd.oms.domain.executionStockOutOrder.repository.po;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 出库执行单列表合计PO
*
* <p>当前筛选条件下不分页的全量合计,随分页列表一起返回
* totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算</p>
*
* @author rcx
* @date 2026-09-14
*/
@Data
@ApiModel(value = "出库执行单列表合计对象", description = "出库执行单列表合计响应对象")
public class ExecutionStockOutOrderTotalPO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("计划数量总数(一级明细计划数量之和)")
private BigDecimal totalPlanQuantity;
@ApiModelProperty("出库数量总数(一级明细出库数量之和)")
private BigDecimal totalOutboundQuantity;
}
@@ -26,6 +26,7 @@ import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
import com.mhd.oms.domain.executionStockOutOrder.repository.mapper.ExecutionStockOutOrderMapper;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDTO;
import com.mhd.oms.domain.gwLog.entity.GwLog;
@@ -225,6 +226,15 @@ public class ExecutionStockOutOrderApplicationService {
return stockOutOrderPOS;
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量。
* 须在 queryList/queryList1 之后用同一个DO调用:数据权限条件由列表查询原地写入DO,
* 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。
*/
public ExecutionStockOutOrderTotalPO queryListTotal(ExecutionStockOutOrderDO stockOutOrderDO) {
return stockOutOrderDomainService.queryListTotal(stockOutOrderDO);
}
/**
* 新增出库单
@@ -30,6 +30,7 @@ import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
import com.mhd.oms.domain.executionStockOutOrder.repository.mapper.ExecutionStockOutOrderMapper;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import com.mhd.oms.domain.materialBaseInfo.service.MaterialBaseInfoResolveService;
import com.mhd.oms.domain.reservationDeliveryDetailsLink.entity.ReservationDeliveryDetailsLink;
@@ -114,6 +115,13 @@ public class ExecutionStockOutOrderDomainService {
return stockOutOrderService.queryList(stockOutOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ExecutionStockOutOrderTotalPO queryListTotal(ExecutionStockOutOrderDO stockOutOrderDO) {
return stockOutOrderService.queryListTotal(stockOutOrderDO);
}
/**
* 从单号列表中提取最大序号
* 单号格式: prefix + 数字序号(如 RK260807001 中 prefix=RK260807, 序号=001
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.mhd.oms.domain.reservationOutMaterialDetail.repository.po.ReservationOutMaterialDetailPO;
import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
@@ -22,6 +23,11 @@ public interface IReservationStockOutOrderService extends IService<ReservationSt
*/
public List<ReservationStockOutOrderPO> queryList(ReservationStockOutOrderDO stockOutOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ReservationStockOutOrderTotalPO queryListTotal(ReservationStockOutOrderDO stockOutOrderDO);
/**
* 新增出库单
*/
@@ -6,6 +6,7 @@ import com.mhd.common.core.domain.po.UserPo;
import com.mhd.oms.domain.reservationOutMaterialDetail.repository.po.ReservationOutMaterialDetailPO;
import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
import org.apache.ibatis.annotations.Param;
//import com.mhd.wms.domain.stockOutOrder.entity.ReservationStockOutOrder;
@@ -27,6 +28,11 @@ public interface ReservationStockOutOrderMapper extends BaseMapper<ReservationSt
*/
public List<ReservationStockOutOrderPO> queryList(ReservationStockOutOrderDO stockOutOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ReservationStockOutOrderTotalPO queryListTotal(ReservationStockOutOrderDO stockOutOrderDO);
/**
* 出库单提货单打印-表头
*/
@@ -11,6 +11,7 @@ import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrd
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
import com.mhd.oms.domain.reservationStockOutOrder.repository.mapper.ReservationStockOutOrderMapper;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
import com.mhd.system.api.model.LoginUser;
//import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskTypeService;
@@ -48,6 +49,15 @@ public class ReservationStockOutOrderImpl extends ServiceImpl<ReservationStockOu
return reservationStockOutOrderMapper.queryList(stockOutOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
@Override
public ReservationStockOutOrderTotalPO queryListTotal(ReservationStockOutOrderDO stockOutOrderDO)
{
return reservationStockOutOrderMapper.queryListTotal(stockOutOrderDO);
}
/**
* 新增出库单
*/
@@ -0,0 +1,30 @@
package com.mhd.oms.domain.reservationStockOutOrder.repository.po;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 出库业务单列表合计PO
*
* <p>当前筛选条件下不分页的全量合计,随分页列表一起返回
* totalPlanQuantity/totalOutboundQuantity),计划数量与出库数量分开计算</p>
*
* @author rcx
* @date 2026-09-14
*/
@Data
@ApiModel(value = "出库业务单列表合计对象", description = "出库业务单列表合计响应对象")
public class ReservationStockOutOrderTotalPO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("计划数量总数(一级明细计划数量之和)")
private BigDecimal totalPlanQuantity;
@ApiModelProperty("出库数量总数(一级明细出库数量之和)")
private BigDecimal totalOutboundQuantity;
}
@@ -45,6 +45,7 @@ import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrd
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
import com.mhd.oms.domain.reservationStockOutOrder.repository.mapper.ReservationStockOutOrderMapper;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDTO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.vo.GwOutDetail;
@@ -246,6 +247,15 @@ public class ReservationStockOutOrderApplicationService {
return stockOutOrderPOS;
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量。
* 须在 queryList/queryList1 之后用同一个DO调用:数据权限条件由列表查询原地写入DO,
* 合计查询才能继承生效后的筛选;且 PageHelper startPage 只拦截下一条SQL,本查询不会被分页。
*/
public ReservationStockOutOrderTotalPO queryListTotal(ReservationStockOutOrderDO stockOutOrderDO) {
return stockOutOrderDomainService.queryListTotal(stockOutOrderDO);
}
/**
* 新增出库单
@@ -57,6 +57,7 @@ import com.mhd.oms.domain.reservationInventoryAdjustmentRecord.repository.mapper
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
import com.mhd.oms.domain.reservationStockOutOrder.repository.mapper.ReservationStockOutOrderMapper;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
import com.mhd.oms.domain.reserveStockOutOrder.repository.mapper.ReserveStockOutOrderMapper;
import com.mhd.system.api.SystemServiceFeign;
@@ -142,6 +143,13 @@ public class ReservationStockOutOrderDomainService {
public List<ReservationStockOutOrderPO> queryList(ReservationStockOutOrderDO stockOutOrderDO) {
return stockOutOrderService.queryList(stockOutOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总一级明细的计划数量与出库数量
*/
public ReservationStockOutOrderTotalPO queryListTotal(ReservationStockOutOrderDO stockOutOrderDO) {
return stockOutOrderService.queryListTotal(stockOutOrderDO);
}
/**
* 从单号列表中提取最大序号
* 单号格式: prefix + 数字序号(如 RK260807001 中 prefix=RK260807, 序号=001
@@ -1,15 +1,17 @@
package com.mhd.oms.interfaces.facade.ReservationStockOutOrder;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.mhd.common.core.constant.HttpStatus;
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.mhd.oms.domain.reservationOutMaterialDetail.repository.po.ReservationOutMaterialDetailPO;
import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO;
import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDTO;
import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder;
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO;
import com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDTO;
import com.mhd.oms.domain.reservationStockOutOrder.service.ReservationStockOutOrderApplicationService;
@@ -46,17 +48,19 @@ public class ReservationStockOutOrderApi extends BaseController {
private IReservationStockOutOrderService stockOutOrderService;
/**
* 分页查询出库单列表
* 分页查询出库单列表当前查询条件下全量不分页的计划数量总数/出库数量总数
*/
@ApiOperation("查询出库单列表")
@GetMapping("/list")
public TableDataInfo list(ReservationStockOutOrderDTO stockOutOrderDTO)
public HashMap<String, Object> list(ReservationStockOutOrderDTO stockOutOrderDTO)
{
//转换实体
ReservationStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage();
List<ReservationStockOutOrderPO> list = stockOutOrderApplicationService.queryList(stockOutOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
ReservationStockOutOrderTotalPO total = stockOutOrderApplicationService.queryListTotal(stockOutOrderDO);
return getDataTableWithTotal(list, total);
}
@@ -250,13 +254,31 @@ public class ReservationStockOutOrderApi extends BaseController {
@ApiOperation("查询出库单列表")
@GetMapping("/list1")
public TableDataInfo list1(ReservationStockOutOrderDTO stockOutOrderDTO)
public HashMap<String, Object> list1(ReservationStockOutOrderDTO stockOutOrderDTO)
{
//转换实体
ReservationStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage();
List<ReservationStockOutOrderPO> list = stockOutOrderApplicationService.queryList1(stockOutOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
ReservationStockOutOrderTotalPO total = stockOutOrderApplicationService.queryListTotal(stockOutOrderDO);
return getDataTableWithTotal(list, total);
}
/**
* 分页结果 + 合计data/total/code/msg 之外追加计划数量总数/出库数量总数key与TableDataInfo序列化结果一致仅多两个字段
*/
private HashMap<String, Object> getDataTableWithTotal(List<?> list, ReservationStockOutOrderTotalPO total) {
HashMap<String, Object> 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("生成出库预约单号")
@@ -1,13 +1,15 @@
package com.mhd.oms.interfaces.facade.executionStockOutOrder;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.mhd.common.core.constant.HttpStatus;
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.mhd.oms.domain.executionOutMaterialDetail.repository.po.ExecutionOutMaterialDetailPO;
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDTO;
import com.mhd.oms.domain.executionStockOutOrder.service.ExecutionStockOutOrderApplicationService;
@@ -45,17 +47,19 @@ public class ExecutionStockOutOrderApi extends BaseController {
private IExecutionStockOutOrderService stockOutOrderService;
/**
* 分页查询出库单列表
* 分页查询出库单列表当前查询条件下全量不分页的计划数量总数/出库数量总数
*/
@ApiOperation("查询出库单列表")
@GetMapping("/list")
public TableDataInfo list(ExecutionStockOutOrderDTO stockOutOrderDTO)
public HashMap<String, Object> list(ExecutionStockOutOrderDTO stockOutOrderDTO)
{
//转换实体
ExecutionStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage();
List<ExecutionStockOutOrderPO> list = stockOutOrderApplicationService.queryList(stockOutOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
ExecutionStockOutOrderTotalPO total = stockOutOrderApplicationService.queryListTotal(stockOutOrderDO);
return getDataTableWithTotal(list, total);
}
@@ -234,13 +238,31 @@ public class ExecutionStockOutOrderApi extends BaseController {
@ApiOperation("查询出库单列表")
@GetMapping("/list1")
public TableDataInfo list1(ExecutionStockOutOrderDTO stockOutOrderDTO)
public HashMap<String, Object> list1(ExecutionStockOutOrderDTO stockOutOrderDTO)
{
//转换实体
ExecutionStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage();
List<ExecutionStockOutOrderPO> list = stockOutOrderApplicationService.queryList1(stockOutOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
ExecutionStockOutOrderTotalPO total = stockOutOrderApplicationService.queryListTotal(stockOutOrderDO);
return getDataTableWithTotal(list, total);
}
/**
* 分页结果 + 合计data/total/code/msg 之外追加计划数量总数/出库数量总数key与TableDataInfo序列化结果一致仅多两个字段
*/
private HashMap<String, Object> getDataTableWithTotal(List<?> list, ExecutionStockOutOrderTotalPO total) {
HashMap<String, Object> 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;
}
}
@@ -117,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="businessChargeType" column="BUSINESS_CHARGE_TYPE" />
<result property="businessPriceWay" column="BUSINESS_PRICE_WAY" />
<result property="discount" column="DISCOUNT" />
<result property="totalOutboundQuantity" column="TOTAL_OUTBOUND_QUANTITY" />
</resultMap>
@@ -408,7 +409,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryList" parameterType="com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO" resultMap="StockOutOrderResult">
select
<include refid="selectStockOutOrderPo"/>
<include refid="selectStockOutOrderPo"/>,
<!-- 出库数量:汇总明细表实际出库数量,只统计一级明细(level=1),与出库业务单列表(178b7697)同口径;
原逻辑为Java循环汇总(N+1)后注释,PO字段totalOutboundQuantity无映射导致列表该字段恒为null -->
(select coalesce(sum(emd.outbound_quantity), 0)
from execution_out_material_detail emd
where emd.out_order_number = a.out_order_number
and emd.del_flag = 1
and (emd.level is null or emd.level = 1)) as total_outbound_quantity
from execution_stock_out_order a
<where>
<include refid="selectStockOutOrderPo1"/>
@@ -416,6 +424,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc nulls last
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总一级明细的计划数量与出库数量,计划数量与出库数量分开计算 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO" resultType="com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(md.outbound_quantity), 0) as totalOutboundQuantity
from execution_stock_out_order a
left join (
select out_order_number,
sum(quantity) as plan_quantity,
sum(outbound_quantity) as outbound_quantity
from execution_out_material_detail
where del_flag = 1
and (level is null or level = 1)
group by out_order_number
) md on md.out_order_number = a.out_order_number
<where>
<include refid="selectStockOutOrderPo1"/>
</where>
</select>
<!-- 出库单提货单打印-表头查询 -->
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">
@@ -437,6 +437,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc nulls last
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总一级明细的计划数量与出库数量,计划数量与出库数量分开计算 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO" resultType="com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(md.outbound_quantity), 0) as totalOutboundQuantity
from reservation_stock_out_order a
left join (
select out_order_number,
sum(quantity) as plan_quantity,
sum(outbound_quantity) as outbound_quantity
from reservation_out_material_detail
where del_flag = 1
and (level is null or level = 1)
group by out_order_number
) md on md.out_order_number = a.out_order_number
<where>
<include refid="selectStockOutOrderPo1"/>
</where>
</select>
<!-- 出库单提货单打印-表头查询 -->
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">