1 Commits
Author SHA1 Message Date
rcx 50423b4e4b feat(oms,wms): 入库/出库业务单执行单与WMS出入库各页面列表返回计划数量与实际数量总和(全量不分页合计)
- OMS入库业务单/执行单: list/list1返回totalPlanQuantity/totalInQuantity(与行quantity/in_quantity列同源)
- WMS入库/收货/上架: 返回totalPlanQuantity/totalInQuantity(上架计划数量=明细应上架量; 入库数量=收货/上架数量, 与行列同口径)
- WMS出库/拣货/复核/交接: 返回totalPlanQuantity/totalOutboundQuantity(各页实际量列同口径; 复核明细聚合不滤del_flag兼容已反审tab)
- 合计SQL与queryList同条件片段/同JOIN结构, 分页查询后同一DO查询, 响应与total同层级追加字段, 前端纯增量兼容
2026-09-14 18:02:57 +08:00
69 changed files with 1033 additions and 41 deletions
@@ -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<ExecutionStockIn
*/
public List<ExecutionStockInOrderPO> queryList(ExecutionStockInOrderDO stockInOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO);
/**
* 新增入库单
*/
@@ -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<ExecutionStockIn
*/
public List<ExecutionStockInOrderPO> queryList(ExecutionStockInOrderDO stockInOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO);
public MaterialBaseInfoPO getinfo(@Param("id") Long id);
public MaterialBaseInfoPO getByName(@Param("name") String name);
@@ -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<ExecutionStockInOrder
return stockInOrderMapper.queryList(stockInOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
@Override
public ExecutionStockInOrderTotalPO queryListTotal(ExecutionStockInOrderDO stockInOrderDO)
{
return stockInOrderMapper.queryListTotal(stockInOrderDO);
}
/**
* 新增入库单
*/
@@ -0,0 +1,30 @@
package com.mhd.oms.domain.executionStockInOrder.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/totalInQuantity),计划数量与入库数量分开计算</p>
*
* @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;
}
@@ -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);
}
/**
* 新增入库单
@@ -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
@@ -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<ReservationSto
*/
public List<ReservationStockInOrderPO> queryList(ReservationStockInOrderDO stockInOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO);
/**
* 新增入库单
*/
@@ -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<ReservationSto
*/
public List<ReservationStockInOrderPO> queryList(ReservationStockInOrderDO stockInOrderDO);
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO);
public MaterialBaseInfoPO getinfo(@Param("id") Long id);
public MaterialBaseInfoPO getByName(@Param("name") String name);
@@ -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<ReservationStockInO
return stockInOrderMapper.queryList(stockInOrderDO);
}
/**
* 列表合计:按查询条件全量(不分页)汇总计划数量与入库数量
*/
@Override
public ReservationStockInOrderTotalPO queryListTotal(ReservationStockInOrderDO stockInOrderDO)
{
return stockInOrderMapper.queryListTotal(stockInOrderDO);
}
/**
* 新增入库单
*/
@@ -0,0 +1,30 @@
package com.mhd.oms.domain.reservationStockInOrder.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/totalInQuantity),计划数量与入库数量分开计算</p>
*
* @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;
}
@@ -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);
}
/**
* 新增入库单
@@ -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);
}
/**
* 生成入库预约单号
*/
@@ -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<String, Object> list(ExecutionStockInOrderDTO stockInOrderDTO)
{
//转换实体
ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
startPage();
List<ExecutionStockInOrderPO> 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<String, Object> list1(ExecutionStockInOrderDTO stockInOrderDTO)
{
//转换实体
ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
startPage();
List<ExecutionStockInOrderPO> 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的HttpStatuscommon的HttpStatus用全限定名避免冲突
*/
private HashMap<String, Object> getDataTableWithTotal(List<?> list, ExecutionStockInOrderTotalPO total) {
HashMap<String, Object> 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;
}
}
@@ -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<String, Object> list(ReservationStockInOrderDTO stockInOrderDTO)
{
//转换实体
ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
startPage();
List<ReservationStockInOrderPO> 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<String, Object> list1(ReservationStockInOrderDTO stockInOrderDTO)
{
//转换实体
ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
startPage();
List<ReservationStockInOrderPO> 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的HttpStatuscommon的HttpStatus用全限定名避免冲突
*/
private HashMap<String, Object> getDataTableWithTotal(List<?> list, ReservationStockInOrderTotalPO total) {
HashMap<String, Object> 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("生成入库预约单号")
@@ -532,6 +532,17 @@
ORDER BY a.create_time IS NULL, a.create_time DESC
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总计划数量与入库数量,两口径分开计算;与列表行的quantity/in_quantity列同源,底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.executionStockInOrder.repository.todo.ExecutionStockInOrderDO" resultType="com.mhd.oms.domain.executionStockInOrder.repository.po.ExecutionStockInOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(a.in_quantity), 0) as totalInQuantity
from execution_stock_in_order a
<where>
<include refid="selectStockInOrderPo1"/>
</where>
</select>
<select id="getinfo" parameterType="java.lang.Long" resultType="com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO">
select * from "NGWL_TEST_WMS".MATERIAL_BASE_INFO where 1 = 1 and DEL_FLAG = 1 and MATERIAL_BASE_INFO_ID = #{id}
</select>
@@ -539,6 +539,17 @@
ORDER BY a.create_time IS NULL, a.create_time DESC
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总计划数量与入库数量,两口径分开计算;与列表行的quantity/in_quantity列同源,底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO" resultType="com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStockInOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(a.in_quantity), 0) as totalInQuantity
from reservation_stock_in_order a
<where>
<include refid="selectStockInOrderPo1"/>
</where>
</select>
<select id="getinfo" parameterType="java.lang.Long" resultType="com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO">
select * from "NGWL_TEST_WMS".MATERIAL_BASE_INFO where 1 = 1 and DEL_FLAG = 1 and MATERIAL_BASE_INFO_ID = #{id}
</select>
@@ -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);
}
/**
* 新增交接作业单
@@ -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);
}
/**
* 新增拣货单
@@ -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 语义对齐
*/
@@ -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入库签名列表查询
*
@@ -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出库签名列表查询
*
@@ -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);
}
/**
* 修改收货单
*/
@@ -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);
}
/**
* 新增上架单
@@ -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<HandoverTaskOrder>
*/
public List<HandoverTaskOrderPO> queryList(HandoverTaskOrderDO handoverTaskOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量)
*/
public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO);
/**
* 新增交接作业单
*/
@@ -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<HandoverTaskOrder>
*/
public List<HandoverTaskOrderPO> 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);
@@ -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<HandoverTaskOrderMapper,
return handoverTaskOrderMapper.queryList(handoverTaskOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总交接明细的计划数量与出库数量(复核数量)
*/
@Override
public HandoverTaskOrderTotalPO queryListTotal(HandoverTaskOrderDO handoverTaskOrderDO)
{
return handoverTaskOrderMapper.queryListTotal(handoverTaskOrderDO);
}
/**
* 新增交接作业单
*/
@@ -0,0 +1,32 @@
package com.mhd.wms.domain.handoverTaskOrder.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计划数量与出库数量分开计算
* 头表无数量列两口径均按交接明细 task_handover_material_detail(del_flag=1) 求和
* 计划数量=quantity出库数量=check_quantity(复核数量, 与详情页出库数量口径一致)</p>
*
* @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;
}
@@ -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);
}
/**
* 新增交接作业单
@@ -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<PickingOrder>
*/
public List<PickingOrderPO> queryList(PickingOrderDO pickingOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量)
*/
public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO);
/**
* 新增拣货单
*/
@@ -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<PickingOrder>
*/
public List<PickingOrderPO> queryList(PickingOrderDO pickingOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量)
*/
public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO);
/**
* 根据Id关联出库单查询
*/
@@ -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<PickingOrderMapper, PickingOrd
return pickingOrderMapper.queryList(pickingOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量(拣货数量)
*/
@Override
public PickingOrderTotalPO queryListTotal(PickingOrderDO pickingOrderDO)
{
return pickingOrderMapper.queryListTotal(pickingOrderDO);
}
/**
* 新增拣货单
*/
@@ -0,0 +1,31 @@
package com.mhd.wms.domain.pickingOrder.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计划数量与出库数量分开计算
* 出库数量口径与列表行 picking_quantity 列一致拣货明细实拣汇总del_flag随主单</p>
*
* @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;
}
@@ -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);
}
/**
* 新增拣货单
@@ -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<ReviewOrder> {
*/
List<ReviewOrderPO> queryList(ReviewOrderDO query);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量(已复核数量)
*/
ReviewOrderTotalPO queryListTotal(ReviewOrderDO query);
/**
* 详情-主表按主键
*/
@@ -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
*
* <p>当前筛选条件下不分页的全量合计随分页列表一起返回
* totalPlanQuantity/totalOutboundQuantity计划数量与出库数量分开计算
* 口径与列表行的 total_plan_qty/total_reviewed_qty 列一致明细聚合不滤del_flag以兼容已反审tab</p>
*
* @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;
}
@@ -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<StockInOrder>
*/
public List<StockInOrderPO> queryList(StockInOrderDO stockInOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量
*/
public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO);
/**
* 新增入库单
*/
@@ -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<StockInOrder>
*/
public List<StockInOrderPO> queryList(StockInOrderDO stockInOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量
*/
public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO);
List<StockInOrderPO> queryInStockInfoByInOrderNumber(StockInOrderDTO stockInOrderDTO);
List<StockInOrderPO> queryNoticePrint(StockInOrderDO stockInOrderDO);
@@ -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<StockInOrderMapper, StockInOrd
return stockInOrderMapper.queryList(stockInOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量
*/
@Override
public StockInOrderTotalPO queryListTotal(StockInOrderDO stockInOrderDO)
{
return stockInOrderMapper.queryListTotal(stockInOrderDO);
}
/**
* 新增入库单
*/
@@ -0,0 +1,31 @@
package com.mhd.wms.domain.stockInOrder.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/totalInQuantity计划数量与入库数量分开计算
* 入库数量口径与列表行 receipt_quantity 列一致收货单实收汇总</p>
*
* @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;
}
@@ -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入库签名列表查询
*
@@ -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<StockOutOrder>
*/
public List<StockOutOrderPO> queryList(StockOutOrderDO stockOutOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量
*/
public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO);
/**
* 新增出库单
*/
@@ -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<StockOutOrder> {
*/
public List<StockOutOrderPO> queryList(StockOutOrderDO stockOutOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量
*/
public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO);
List<StockOutOrderPO> queryOutStockNoticePrint(StockOutOrderDTO stockOutOrderDTO);
List<OutMaterialDetailPO> queryOutStockNoticePrintDetail(StockOutOrderDTO stockOutOrderDTO);
@@ -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<StockOutOrderMapper, StockOut
return stockOutOrderMapper.queryList(stockOutOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与出库数量
*/
@Override
public StockOutOrderTotalPO queryListTotal(StockOutOrderDO stockOutOrderDO)
{
return stockOutOrderMapper.queryListTotal(stockOutOrderDO);
}
/**
* 新增出库单
*/
@@ -0,0 +1,31 @@
package com.mhd.wms.domain.stockOutOrder.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计划数量与出库数量分开计算
* 出库数量口径与列表行 totalOutboundQuantity 列一致out_material_detail level=1 实际出库汇总</p>
*
* @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;
}
@@ -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)
*/
@@ -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<StockReceiptOrder>
*/
public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量(收货数量)
*/
public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO);
/**
* 新增收货单
*/
@@ -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<StockReceiptOrder>
*/
public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量(收货数量)
*/
public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO);
/**
*
* @param stockReceiptOrderDTO
@@ -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<StockReceiptOrderMapper,
return stockReceiptOrderMapper.queryList(stockReceiptOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总计划数量与入库数量(收货数量)
*/
@Override
public StockReceiptOrderTotalPO queryListTotal(StockReceiptOrderDO stockReceiptOrderDO)
{
return stockReceiptOrderMapper.queryListTotal(stockReceiptOrderDO);
}
/**
* 新增收货单
*/
@@ -0,0 +1,31 @@
package com.mhd.wms.domain.stockReceiptOrder.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/totalInQuantity计划数量与入库数量分开计算
* 入库数量口径与列表行 receipt_quantity 列一致收货单实收</p>
*
* @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;
}
@@ -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);
}
/**
* 批量新增收货单
@@ -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<StockShelfOrder>
*/
public List<StockShelfOrderPO> queryList(StockShelfOrderDO stockShelfOrderDO);
/**
* 列表合计按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量)
*/
public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO);
/**
* 新增上架单
*/
@@ -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<StockShelfOrder>
*/
public List<StockShelfOrderPO> 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);
@@ -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<StockShelfOrderMapper, Stoc
return stockShelfOrderMapper.queryList(stockShelfOrderDO);
}
/**
* 列表合计按查询条件全量(不分页)汇总计划数量(应上架量)与入库数量(上架数量)
*/
@Override
public StockShelfOrderTotalPO queryListTotal(StockShelfOrderDO stockShelfOrderDO)
{
return stockShelfOrderMapper.queryListTotal(stockShelfOrderDO);
}
/**
* 新增上架单
*/
@@ -0,0 +1,31 @@
package com.mhd.wms.domain.stockShelfOrder.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/totalInQuantity计划数量与入库数量分开计算
* 计划数量口径=上架明细(level=1,del_flag=1)计划数量求和(应上架量)入库数量口径与列表行 shelves_quantity 列一致</p>
*
* @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;
}
@@ -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);
}
/**
* 新增上架单
@@ -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<String, Object> list(HandoverTaskOrderDTO handoverTaskOrderDTO)
{
//转换实体
HandoverTaskOrderDO handoverTaskOrderDO = handoverTaskOrderAssembler.toDO(handoverTaskOrderDTO);
startPage();
List<HandoverTaskOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, HandoverTaskOrderTotalPO 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;
}
/**
@@ -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<String, Object> list(PickingOrderDTO pickingOrderDTO)
{
//转换实体
PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO);
startPage();
List<PickingOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, PickingOrderTotalPO 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;
}
/**
@@ -139,13 +160,15 @@ public class PickingOrderApi extends BaseController {
@ApiOperation("查询拣货单列表")
@GetMapping("/list1")
public TableDataInfo list1(PickingOrderDTO pickingOrderDTO)
public HashMap<String, Object> list1(PickingOrderDTO pickingOrderDTO)
{
//转换实体
PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO);
startPage();
List<PickingOrderPO> list = pickingOrderApplicationService.queryList1(pickingOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
PickingOrderTotalPO total = pickingOrderApplicationService.queryListTotal(pickingOrderDO);
return getDataTableWithTotal(list, total);
}
}
@@ -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<String, Object> list(ReviewOrderDTO reviewOrderDTO) {
ReviewOrderDO query = reviewOrderAssembler.toDO(reviewOrderDTO);
startPage();
List<ReviewOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, ReviewOrderTotalPO 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("获取复核单详情")
@@ -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<String, Object> list(StockInOrderDTO stockInOrderDTO)
{
//转换实体
StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
startPage();
List<StockInOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, StockInOrderTotalPO 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("totalInQuantity", total.getTotalInQuantity());
}
return result;
}
/**
@@ -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<String, Object> list(StockOutOrderDTO stockOutOrderDTO) {
//转换实体
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
startPage();
List<StockOutOrderPO> 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的HttpStatuscommon的HttpStatus用全限定名避免冲突
*/
private HashMap<String, Object> getDataTableWithTotal(List<?> list, StockOutOrderTotalPO total) {
HashMap<String, Object> 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("海关确认出库(人工批量触发,参数为空则扫全部已交接状态)")
@@ -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<String, Object> list(StockReceiptOrderDTO stockReceiptOrderDTO)
{
//转换实体
StockReceiptOrderDO stockReceiptOrderDO = stockReceiptOrderAssembler.toDO(stockReceiptOrderDTO);
startPage();
List<StockReceiptOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, StockReceiptOrderTotalPO 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("totalInQuantity", total.getTotalInQuantity());
}
return result;
}
/**
@@ -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<String, Object> list(StockShelfOrderDTO stockShelfOrderDTO)
{
//转换实体
StockShelfOrderDO stockShelfOrderDO = stockShelfOrderAssembler.toDO(stockShelfOrderDTO);
startPage();
List<StockShelfOrderPO> 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<String, Object> getDataTableWithTotal(List<?> list, StockShelfOrderTotalPO 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("totalInQuantity", total.getTotalInQuantity());
}
return result;
}
/**
@@ -109,13 +130,15 @@ public class StockShelfOrderApi extends BaseController {
@ApiOperation("查询上架单列表")
@GetMapping("/list1")
public TableDataInfo list1(StockShelfOrderDTO stockShelfOrderDTO)
public HashMap<String, Object> list1(StockShelfOrderDTO stockShelfOrderDTO)
{
//转换实体
StockShelfOrderDO stockShelfOrderDO = stockShelfOrderAssembler.toDO(stockShelfOrderDTO);
startPage();
List<StockShelfOrderPO> list = stockShelfOrderApplicationService.queryList1(stockShelfOrderDO);
return getDataTable(list);
// 合计须在列表查询后用同一个DO查询数据权限条件由列表查询原地写入DO且不再被分页拦截
StockShelfOrderTotalPO total = stockShelfOrderApplicationService.queryListTotal(stockShelfOrderDO);
return getDataTableWithTotal(list, total);
}
}
@@ -153,6 +153,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总交接明细数量,计划数量与出库数量分开计算;
头表无数量列, 两口径均按交接明细(del_flag=1)按task_number求和: 计划数量=quantity, 出库数量=check_quantity(复核数量,与详情页出库数量口径一致) -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO" resultType="com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(md.check_quantity), 0) as totalOutboundQuantity
from handover_task_order a
left join (
select task_number,
sum(quantity) as plan_quantity,
sum(check_quantity) as check_quantity
from task_handover_material_detail
where del_flag = 1
group by task_number
) md on md.task_number = a.task_number
<where>
<include refid="selectHandoverTaskOrderPo1"/>
</where>
</select>
<update id="updateOmsOrder">
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
</update>
@@ -157,6 +157,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段, 含出库单b关联)全量不分页汇总计划数量与出库数量(拣货数量),两口径分开计算;
出库数量与行的picking_quantity子查询同口径(拣货明细实拣, del_flag随主单),底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO" resultType="com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(pd.picking_quantity), 0) as totalOutboundQuantity
from picking_order a
left join STOCK_OUT_ORDER b ON a.order_number = b.out_order_number and b.del_flag = 1 and a.del_flag = 1
left join (
select picking_order_number, del_flag, sum(picking_quantity) as picking_quantity
from picking_material_detail
group by picking_order_number, del_flag
) pd on pd.picking_order_number = a.picking_order_number and pd.del_flag = a.del_flag
<where>
<include refid="selectPickingOrderPo1"/>
</where>
</select>
<select id="queryOutOrderById" parameterType="java.lang.Long" resultType="com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO">
select
<include refid="selectPickingOrderPo"/>
@@ -214,6 +214,28 @@
order by a.create_time desc
</select>
<!-- 列表合计:与queryList完全同构(agg明细聚合子查询与where条件一致, 同样不滤del_flag以兼容已反审tab),
仅SELECT换成对行的 total_plan_qty/total_reviewed_qty 再求全量总和, 底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.reviewOrder.repository.todo.ReviewOrderDO"
resultType="com.mhd.wms.domain.reviewOrder.repository.po.ReviewOrderTotalPO">
select
coalesce(sum(ifnull(agg.total_plan_qty, 0)), 0) as totalPlanQuantity,
coalesce(sum(ifnull(agg.total_reviewed_qty, 0)), 0) as totalOutboundQuantity
from review_order a
left join (
select
d.review_order_id,
sum(ifnull(d.material_plan_qty, ifnull(d.pending_review_qty, 0) + ifnull(d.reviewed_qty, 0))) as total_plan_qty,
sum(ifnull(d.reviewed_qty, 0)) as total_reviewed_qty
from review_material_detail d
<!-- 不滤 del_flag: 与queryList聚合口径一致(复核明细仅随整单反审统一软删) -->
group by d.review_order_id
) agg on a.review_order_id = agg.review_order_id
<where>
<include refid="reviewOrderWhere"/>
</where>
</select>
<!-- 详情:主表 by id -->
<select id="selectHeaderByReviewOrderId" resultMap="ReviewOrderResult">
select
@@ -516,6 +516,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY a.create_time IS NULL, a.create_time DESC
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总计划数量与入库数量,两口径分开计算;
计划数量与行的quantity列同源,入库数量与行的receipt_quantity子查询(收货单实收)同口径,底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO" resultType="com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(rd.receipt_quantity), 0) as totalInQuantity
from stock_in_order a
left join (
select in_order_number, sum(receipt_quantity) as receipt_quantity
from stock_receipt_order
where del_flag = 1
group by in_order_number
) rd on rd.in_order_number = a.in_order_number
<where>
<include refid="selectStockInOrderPo1"/>
</where>
</select>
<select id="queryInStockInfoByInOrderNumber" resultMap="StockInOrderResult">
SELECT
sio.in_order_number,
@@ -400,6 +400,26 @@
order by a.create_time desc nulls last
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总计划数量与出库数量,两口径分开计算;
出库数量与行的totalOutboundQuantity列同口径(selectAggregatesForStockOutList: del_flag=1 and level=1),底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO"
resultType="com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(od.outbound_quantity), 0) as totalOutboundQuantity
from stock_out_order a
left join (
select out_order_number, sum(outbound_quantity) as outbound_quantity
from out_material_detail
where del_flag = 1
and level = 1
group by out_order_number
) od on od.out_order_number = a.out_order_number
<where>
<include refid="selectStockOutOrderPo1"/>
</where>
</select>
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">
SELECT a.out_order_id,
@@ -189,4 +189,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
ORDER BY a.create_time DESC
</select>
<!-- 列表合计:与queryList完全同构(FROM/JOIN/WHERE一致, 含反审归档del_flag切换与最新入库单去重关联), 仅SELECT换成全量聚合;
计划数量与行的quantity列同源, 入库数量与行的receipt_quantity列(收货单实收)同源, 底部总和与列值之和一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO" resultType="com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderTotalPO">
select
coalesce(sum(a.quantity), 0) as totalPlanQuantity,
coalesce(sum(a.receipt_quantity), 0) as totalInQuantity
from stock_receipt_order a
LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number
<choose>
<when test="reverseAuditStatus != null">
and a.DEL_FLAG = 2 and b.DEL_FLAG = 2
and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c
where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 2)
</when>
<otherwise>
and a.DEL_FLAG = 1 and b.DEL_FLAG = 1
and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c
where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 1)
</otherwise>
</choose>
<where>
<include refid="selectStockReceiptOrderPo1"/>
<include refid="com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper.joinStockInOrderPoWhere"/>
</where>
</select>
</mapper>
@@ -181,6 +181,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY a.create_time DESC
</select>
<!-- 列表合计:与queryList完全同构(FROM/JOIN/WHERE一致, 含反审归档del_flag切换与最新入库单去重关联), 仅SELECT换成全量聚合;
计划数量=上架明细(level=1,del_flag=1)计划数量求和(应上架量), 入库数量与行的shelves_quantity列同源, 底部总和与列值口径一致 -->
<select id="queryListTotal" parameterType="com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO" resultType="com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(a.shelves_quantity), 0) as totalInQuantity
from stock_shelf_order a
LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number
<choose>
<when test="reverseAuditStatus != null">
and a.DEL_FLAG = 2 and b.DEL_FLAG = 2
and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c
where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 2)
</when>
<otherwise>
and a.DEL_FLAG = 1 and b.DEL_FLAG = 1
and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c
where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 1)
</otherwise>
</choose>
left join (
select shelf_order_number, sum(quantity) as plan_quantity
from shelf_material_detail
where del_flag = 1
and (level is null or level = 1)
group by shelf_order_number
) md on md.shelf_order_number = a.shelf_order_number
<where>
<include refid="selectStockShelfOrderPo1"/>
<include refid="com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper.joinStockInOrderPoWhere"/>
</where>
</select>
<select id="getExecutionCount" resultType="java.lang.Integer" parameterType="java.lang.String">
select count(0) from "NGWL_TEST_OMS".EXECUTION_STOCK_IN_ORDER where BUSINESS_IN_ORDER_NUMBER = #{orderNumber} and ISSUE_STATUS != 4 and DEL_FLAG = 1
</select>