From 97f048ce14db07ee41ca05f9c7010dfe132150e4 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 十一月 2026 11:06:59 +0800
Subject: [PATCH] feat(mes): 补生产准备检查与仓储收发存汇总接口,附 CFWJ 演示数据种子脚本

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java |   23 +++++++++++++++++++++++
 1 files changed, 23 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..e619d1d 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())
@@ -28,6 +33,8 @@
                 .likeIfPresent(MesProWorkOrderDO::getOrderSourceCode, reqVO.getOrderSourceCode())
                 .eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId())
                 .eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId())
+                .eqIfPresent(MesProWorkOrderDO::getFactoryId, reqVO.getFactoryId())
+                .eqIfPresent(MesProWorkOrderDO::getWorkshopId, reqVO.getWorkshopId())
                 .eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus())
                 .betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate())
                 .orderByDesc(MesProWorkOrderDO::getId));
@@ -44,6 +51,8 @@
                 .likeIfPresent(MesProWorkOrderDO::getOrderSourceCode, reqVO.getOrderSourceCode())
                 .eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId())
                 .eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId())
+                .eqIfPresent(MesProWorkOrderDO::getFactoryId, reqVO.getFactoryId())
+                .eqIfPresent(MesProWorkOrderDO::getWorkshopId, reqVO.getWorkshopId())
                 .eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus())
                 .betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate())
                 .orderByDesc(MesProWorkOrderDO::getId);
@@ -58,6 +67,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