From b852254d90e7d1955db31db154193ec8ee84d8b3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 10:57:59 +0800
Subject: [PATCH] feat(hrm): 新增员工用工性质、班组归属字段及考勤异常处理优化

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/sn/MesWmSnMapper.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/sn/MesWmSnMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/sn/MesWmSnMapper.java
index 24d6543..fb721f7 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/sn/MesWmSnMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/sn/MesWmSnMapper.java
@@ -5,8 +5,11 @@
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnGroupRespVO;
+import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnInStockPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnPageReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.sn.MesWmSnDO;
+import cn.iocoder.yudao.module.mes.enums.wm.MesWmSnStatusEnum;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -51,4 +54,35 @@
                 .eq(MesWmSnDO::getUuid, uuid));
     }
 
+    default MesWmSnDO selectByCode(String code) {
+        return selectOne(MesWmSnDO::getCode, code);
+    }
+
+    /**
+     * 鍑哄簱鏍搁攢锛氱疆涓哄凡鍑哄簱骞舵竻绌哄湪搴撳簱浣�
+     */
+    default void markOutStockAndClearLocation(Long id) {
+        update(null, new LambdaUpdateWrapper<MesWmSnDO>()
+                .eq(MesWmSnDO::getId, id)
+                .set(MesWmSnDO::getStatus, MesWmSnStatusEnum.OUT_STOCK.getStatus())
+                .set(MesWmSnDO::getWarehouseId, null)
+                .set(MesWmSnDO::getLocationId, null)
+                .set(MesWmSnDO::getAreaId, null));
+    }
+
+    /**
+     * 鎸� SN 鐘舵��/搴撲綅/鐗╂枡绛夌淮搴﹀垎椤垫煡璇�
+     */
+    default PageResult<MesWmSnDO> selectStatusPage(MesWmSnInStockPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<MesWmSnDO>()
+                .likeIfPresent(MesWmSnDO::getCode, reqVO.getCode())
+                .eqIfPresent(MesWmSnDO::getItemId, reqVO.getItemId())
+                .likeIfPresent(MesWmSnDO::getBatchCode, reqVO.getBatchCode())
+                .eqIfPresent(MesWmSnDO::getWarehouseId, reqVO.getWarehouseId())
+                .eqIfPresent(MesWmSnDO::getLocationId, reqVO.getLocationId())
+                .eqIfPresent(MesWmSnDO::getAreaId, reqVO.getAreaId())
+                .eqIfPresent(MesWmSnDO::getStatus, reqVO.getStatus())
+                .orderByDesc(MesWmSnDO::getId));
+    }
+
 }

--
Gitblit v1.9.3