云
3 天以前 704265308b1227dbada5a36b2027b588c062ded2
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesDetailMapper.java
@@ -14,6 +14,23 @@
@Mapper
public interface MesWmProductSalesDetailMapper extends BaseMapperX<MesWmProductSalesDetailDO> {
    // 仅未取消且尚未完成的出库单占用袋码。旧整托明细也参与重叠判断。
    @org.apache.ibatis.annotations.Select("""
        SELECT d.* FROM mes_wm_product_sales_detail d
        JOIN mes_wm_product_sales s ON s.id = d.sales_id
        WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3)
          AND d.batch_code = #{batchCode}
        """)
    List<MesWmProductSalesDetailDO> selectPickingByBatchCode(String batchCode);
    @org.apache.ibatis.annotations.Select("""
        SELECT d.* FROM mes_wm_product_sales_detail d
        JOIN mes_wm_product_sales s ON s.id = d.sales_id
        WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3)
          AND d.batch_code = #{batchCode} FOR UPDATE
        """)
    List<MesWmProductSalesDetailDO> selectPickingByBatchCodeForUpdate(String batchCode);
    default List<MesWmProductSalesDetailDO> selectListByLineId(Long lineId) {
        return selectList(MesWmProductSalesDetailDO::getLineId, lineId);
    }
@@ -31,7 +48,7 @@
    default MesWmProductSalesDetailDO selectBySalesIdAndPalletCodeId(Long salesId, Long palletCodeId) {
        return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MesWmProductSalesDetailDO>()
                .eq(MesWmProductSalesDetailDO::getSalesId, salesId)
                .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId));
                .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId).orderByAsc(MesWmProductSalesDetailDO::getId).last("LIMIT 1"));
    }
    default void deleteByLineId(Long lineId) {
@@ -42,4 +59,24 @@
        delete(MesWmProductSalesDetailDO::getSalesId, salesId);
    }
    /**
     * 根据袋码编号查询最近的出库明细(供窜货稽查反查出库去向)
     */
    default MesWmProductSalesDetailDO selectLatestByBagCodeId(Long bagCodeId) {
        return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MesWmProductSalesDetailDO>()
                .eq(MesWmProductSalesDetailDO::getBagCodeId, bagCodeId)
                .orderByDesc(MesWmProductSalesDetailDO::getId)
                .last("LIMIT 1"));
    }
    /**
     * 根据托盘码编号查询最近的出库明细(供窜货稽查反查出库去向)
     */
    default MesWmProductSalesDetailDO selectLatestByPalletCodeId(Long palletCodeId) {
        return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MesWmProductSalesDetailDO>()
                .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId)
                .orderByDesc(MesWmProductSalesDetailDO::getId)
                .last("LIMIT 1"));
    }
}