From e09f103259fa602382bb5ce2a03361a6397af46a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 15 十月 2026 11:49:15 +0800
Subject: [PATCH] feat(mes): 优化MES模块生产调度与数据管理功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
index d6d43f9..5c94ad9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
@@ -20,6 +20,11 @@
 @Mapper
 public interface MesProWorkOrderMapper extends BaseMapperX<MesProWorkOrderDO> {
 
+    default List<MesProWorkOrderDO> lockScheduleOrders(List<Long> ids) {
+        return selectList(new LambdaQueryWrapperX<MesProWorkOrderDO>()
+                .in(MesProWorkOrderDO::getId, ids).orderByAsc(MesProWorkOrderDO::getId).last("FOR UPDATE"));
+    }
+
     default PageResult<MesProWorkOrderDO> selectPage(MesProWorkOrderPageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<MesProWorkOrderDO>()
                 .likeIfPresent(MesProWorkOrderDO::getCode, reqVO.getCode())
@@ -58,6 +63,20 @@
         return selectPage(reqVO, wrapper);
     }
 
+    /**
+     * 鍒嗛〉鏌ヨ锛堝甫瀹㈡埛鏉冮檺杩囨护涓旀敮鎸佽皟搴︾姸鎬佹煡璇級
+     */
+    default PageResult<MesProWorkOrderDO> selectSchedulePage(MesProWorkOrderPageReqVO pageReqVO, List<Long> permittedClientIds) {
+        com.baomidou.mybatisplus.core.metadata.IPage<MesProWorkOrderDO> mpPage = cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils.buildPage(pageReqVO);
+        com.baomidou.mybatisplus.core.metadata.IPage<MesProWorkOrderDO> result = selectSchedulePage(mpPage, pageReqVO, permittedClientIds);
+        return new PageResult<>(result.getRecords(), result.getTotal());
+    }
+
+    com.baomidou.mybatisplus.core.metadata.IPage<MesProWorkOrderDO> selectSchedulePage(
+            com.baomidou.mybatisplus.core.metadata.IPage<MesProWorkOrderDO> page,
+            @org.apache.ibatis.annotations.Param("pageReqVO") MesProWorkOrderPageReqVO pageReqVO,
+            @org.apache.ibatis.annotations.Param("permittedClientIds") List<Long> permittedClientIds);
+
     default MesProWorkOrderDO selectByCode(String code) {
         return selectOne(MesProWorkOrderDO::getCode, code);
     }

--
Gitblit v1.9.3