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:
+6
@@ -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);
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
*/
|
||||
|
||||
+6
@@ -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);
|
||||
|
||||
/**
|
||||
* 出库单提货单打印-表头
|
||||
*/
|
||||
|
||||
+10
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
*/
|
||||
|
||||
+30
@@ -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;
|
||||
}
|
||||
+10
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
|
||||
+8
@@ -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)
|
||||
|
||||
+6
@@ -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 +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);
|
||||
|
||||
/**
|
||||
* 出库单提货单打印-表头
|
||||
*/
|
||||
|
||||
+10
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
*/
|
||||
|
||||
+30
@@ -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;
|
||||
}
|
||||
+10
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
|
||||
+8
@@ -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)
|
||||
|
||||
+28
-6
@@ -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("生成出库预约单号")
|
||||
|
||||
+28
-6
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
+29
-1
@@ -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">
|
||||
|
||||
+20
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user