From 97bb8990931dd0efc411edee06df650a59ccda24 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Fri, 6 Feb 2026 09:22:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=89=B9=E9=87=8F=E6=8F=92=E5=85=A5=E6=88=96?= =?UTF-8?q?=E6=9B=B4=E6=96=B0Mapper=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在CcdiEmployeeMapper中新增insertOrUpdateBatch方法: - 支持批量插入员工信息 - 使用ON DUPLICATE KEY UPDATE实现upsert功能 - 基于employee_id主键判断重复 - 插入时记录创建时间和创建人 - 更新时保留原创建信息,更新修改时间和修改人 Co-Authored-By: Claude Sonnet 4.5 --- .../ruoyi/ccdi/mapper/CcdiEmployeeMapper.java | 11 ++++++++++ .../mapper/ccdi/CcdiEmployeeMapper.xml | 22 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/mapper/CcdiEmployeeMapper.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/mapper/CcdiEmployeeMapper.java index 0467a6b..0dae687 100644 --- a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/mapper/CcdiEmployeeMapper.java +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/mapper/CcdiEmployeeMapper.java @@ -7,6 +7,8 @@ import com.ruoyi.ccdi.domain.dto.CcdiEmployeeQueryDTO; import com.ruoyi.ccdi.domain.vo.CcdiEmployeeVO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 员工信息 数据层 * @@ -32,4 +34,13 @@ public interface CcdiEmployeeMapper extends BaseMapper { * @return 员工VO */ CcdiEmployeeVO selectEmployeeWithRelatives(@Param("employeeId") Long employeeId); + + /** + * 批量插入或更新员工信息 + * 使用ON DUPLICATE KEY UPDATE语法 + * + * @param list 员工信息列表 + * @return 影响行数 + */ + int insertOrUpdateBatch(@Param("list") List list); } diff --git a/ruoyi-ccdi/src/main/resources/mapper/ccdi/CcdiEmployeeMapper.xml b/ruoyi-ccdi/src/main/resources/mapper/ccdi/CcdiEmployeeMapper.xml index ced3092..67bad85 100644 --- a/ruoyi-ccdi/src/main/resources/mapper/ccdi/CcdiEmployeeMapper.xml +++ b/ruoyi-ccdi/src/main/resources/mapper/ccdi/CcdiEmployeeMapper.xml @@ -44,4 +44,26 @@ ORDER BY e.create_time DESC + + + INSERT INTO ccdi_employee + (employee_id, name, dept_id, id_card, phone, hire_date, status, + create_time, create_by, update_by, update_time, remark) + VALUES + + (#{item.employeeId}, #{item.name}, #{item.deptId}, #{item.idCard}, + #{item.phone}, #{item.hireDate}, #{item.status}, NOW(), + #{item.createBy}, #{item.updateBy}, NOW(), #{item.remark}) + + ON DUPLICATE KEY UPDATE + name = VALUES(name), + dept_id = VALUES(dept_id), + phone = VALUES(phone), + hire_date = VALUES(hire_date), + status = VALUES(status), + update_by = VALUES(update_by), + update_time = NOW(), + remark = VALUES(remark) + +