From 9af5090f5d4597fbcfdf53a71189175892d29109 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 05 三月 2026 17:44:35 +0800
Subject: [PATCH] yys 人力资源-员工台账模块优化
---
src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java | 3
src/main/java/com/ruoyi/staff/service/StaffWorkExperienceService.java | 16 +
src/main/resources/mapper/staff/StaffEmergencyContactMapper.xml | 19 +
src/main/java/com/ruoyi/staff/service/StaffEducationService.java | 16 +
src/main/java/com/ruoyi/staff/service/StaffEmergencyContactService.java | 16 +
src/main/java/com/ruoyi/staff/controller/StaffEducationController.java | 18 +
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 91 +++++++
src/main/java/com/ruoyi/staff/controller/StaffWorkExperienceController.java | 18 +
src/main/java/com/ruoyi/staff/service/impl/StaffEducationServiceImpl.java | 20 +
src/main/java/com/ruoyi/staff/pojo/StaffEmergencyContact.java | 65 +++++
src/main/java/com/ruoyi/staff/pojo/StaffWorkExperience.java | 79 +++++++
src/main/resources/mapper/staff/StaffWorkExperienceMapper.xml | 21 +
src/main/resources/mapper/staff/StaffEducationMapper.xml | 21 +
src/main/java/com/ruoyi/staff/mapper/StaffEducationMapper.java | 18 +
src/main/java/com/ruoyi/staff/mapper/StaffEmergencyContactMapper.java | 18 +
src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java | 38 +++
src/main/java/com/ruoyi/staff/controller/StaffEmergencyContactController.java | 18 +
src/main/java/com/ruoyi/staff/service/impl/StaffEmergencyContactServiceImpl.java | 20 +
src/main/java/com/ruoyi/staff/mapper/StaffWorkExperienceMapper.java | 18 +
src/main/java/com/ruoyi/staff/pojo/StaffEducation.java | 79 +++++++
src/main/java/com/ruoyi/staff/service/impl/StaffWorkExperienceServiceImpl.java | 20 +
21 files changed, 624 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffEducationController.java b/src/main/java/com/ruoyi/staff/controller/StaffEducationController.java
new file mode 100644
index 0000000..21c4972
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/StaffEducationController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍛樺伐鏁欒偛缁忓巻琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:08
+ */
+@RestController
+@RequestMapping("/staffEducation")
+public class StaffEducationController {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffEmergencyContactController.java b/src/main/java/com/ruoyi/staff/controller/StaffEmergencyContactController.java
new file mode 100644
index 0000000..45abcdc
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/StaffEmergencyContactController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍛樺伐绱ф�ヨ仈绯讳汉琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:34:17
+ */
+@RestController
+@RequestMapping("/staffEmergencyContact")
+public class StaffEmergencyContactController {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffWorkExperienceController.java b/src/main/java/com/ruoyi/staff/controller/StaffWorkExperienceController.java
new file mode 100644
index 0000000..60a71ba
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/StaffWorkExperienceController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍛樺伐宸ヤ綔缁忓巻琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:36
+ */
+@RestController
+@RequestMapping("/staffWorkExperience")
+public class StaffWorkExperienceController {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java b/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
index 7afd407..0a2c0ae 100644
--- a/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
+++ b/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
@@ -4,6 +4,7 @@
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.staff.pojo.StaffOnJob;
import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -18,8 +19,10 @@
private String contractTerm;
@JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date contractStartTime;
@JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date contractEndTime;
}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffEducationMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffEducationMapper.java
new file mode 100644
index 0000000..0ebce7e
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffEducationMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.mapper;
+
+import com.ruoyi.staff.pojo.StaffEducation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鍛樺伐鏁欒偛缁忓巻琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:08
+ */
+@Mapper
+public interface StaffEducationMapper extends BaseMapper<StaffEducation> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffEmergencyContactMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffEmergencyContactMapper.java
new file mode 100644
index 0000000..6ef19ed
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffEmergencyContactMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.mapper;
+
+import com.ruoyi.staff.pojo.StaffEmergencyContact;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鍛樺伐绱ф�ヨ仈绯讳汉琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:34:17
+ */
+@Mapper
+public interface StaffEmergencyContactMapper extends BaseMapper<StaffEmergencyContact> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffWorkExperienceMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffWorkExperienceMapper.java
new file mode 100644
index 0000000..9077d40
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffWorkExperienceMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.staff.mapper;
+
+import com.ruoyi.staff.pojo.StaffWorkExperience;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鍛樺伐宸ヤ綔缁忓巻琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:36
+ */
+@Mapper
+public interface StaffWorkExperienceMapper extends BaseMapper<StaffWorkExperience> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffEducation.java b/src/main/java/com/ruoyi/staff/pojo/StaffEducation.java
new file mode 100644
index 0000000..8f7a35e
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffEducation.java
@@ -0,0 +1,79 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 鍛樺伐鏁欒偛缁忓巻琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:08
+ */
+@Getter
+@Setter
+@TableName("staff_education")
+@ApiModel(value = "StaffEducation瀵硅薄", description = "鍛樺伐鏁欒偛缁忓巻琛�")
+public class StaffEducation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鍏宠仈staff_on_job琛ㄤ富閿甀D")
+ private Long staffOnJobId;
+
+ @ApiModelProperty("瀛﹀巻")
+ private String education;
+
+ @ApiModelProperty("姣曚笟闄㈡牎")
+ private String schoolName;
+
+ @ApiModelProperty("鍏ュ鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate enrollTime;
+
+ @ApiModelProperty("姣曚笟鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate graduateTime;
+
+ @ApiModelProperty("涓撲笟")
+ private String major;
+
+ @ApiModelProperty("瀛︿綅")
+ private String degree;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffEmergencyContact.java b/src/main/java/com/ruoyi/staff/pojo/StaffEmergencyContact.java
new file mode 100644
index 0000000..1fdeefa
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffEmergencyContact.java
@@ -0,0 +1,65 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 鍛樺伐绱ф�ヨ仈绯讳汉琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:34:17
+ */
+@Getter
+@Setter
+@TableName("staff_emergency_contact")
+@ApiModel(value = "StaffEmergencyContact瀵硅薄", description = "鍛樺伐绱ф�ヨ仈绯讳汉琛�")
+public class StaffEmergencyContact implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鍏宠仈staff_on_job琛ㄤ富閿甀D")
+ private Long staffOnJobId;
+
+ @ApiModelProperty("绱ф�ヨ仈绯讳汉濮撳悕")
+ private String contactName;
+
+ @ApiModelProperty("绱ф�ヨ仈绯讳汉鍏崇郴")
+ private String contactRelation;
+
+ @ApiModelProperty("绱ф�ヨ仈绯讳汉鎵嬫満")
+ private String contactPhone;
+
+ @ApiModelProperty("绱ф�ヨ仈绯讳汉浣忓潃")
+ private String contactAddress;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
index 3ca6fcb..cca0284 100644
--- a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
@@ -12,6 +12,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
+import java.util.List;
/**
* 浜哄憳绠$悊--鍛樺伐鍙拌处/鍚堝悓绠$悊
@@ -208,5 +209,42 @@
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
+ @ApiModelProperty(value = "鍒悕")
+ private String alias;
+
+ @ApiModelProperty(value = "鍑虹敓鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date birthDate;
+
+ @ApiModelProperty(value = "姘戞棌")
+ private String nation;
+
+ @ApiModelProperty(value = "濠氬Щ鐘跺喌")
+ private String maritalStatus;
+
+ @ApiModelProperty(value = "璇曠敤鏈燂紙鏈堬級")
+ private Integer proTerm;
+
+ @ApiModelProperty(value = "杞鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date positiveDate;
+
+ @ApiModelProperty(value = "鍩烘湰宸ヨ祫")
+ private BigDecimal basicSalary;
+
+ @ApiModelProperty(value = "鍛樺伐鏁欒偛缁忓巻闆嗗悎")
+ @TableField(exist = false)
+ private List<StaffEducation> staffEducationList;
+
+ @ApiModelProperty(value = "鍛樺伐宸ヤ綔缁忓巻闆嗗悎")
+ @TableField(exist = false)
+ private List<StaffWorkExperience> staffWorkExperienceList;
+
+ @ApiModelProperty(value = "鍛樺伐绱ф�ヨ仈绯讳汉闆嗗悎")
+ @TableField(exist = false)
+ private List<StaffEmergencyContact> staffEmergencyContactList;
+
}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffWorkExperience.java b/src/main/java/com/ruoyi/staff/pojo/StaffWorkExperience.java
new file mode 100644
index 0000000..6d59f83
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffWorkExperience.java
@@ -0,0 +1,79 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 鍛樺伐宸ヤ綔缁忓巻琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:36
+ */
+@Getter
+@Setter
+@TableName("staff_work_experience")
+@ApiModel(value = "StaffWorkExperience瀵硅薄", description = "鍛樺伐宸ヤ綔缁忓巻琛�")
+public class StaffWorkExperience implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鍏宠仈staff_on_job琛ㄤ富閿甀D")
+ private Long staffOnJobId;
+
+ @ApiModelProperty("鍓嶅叕鍙�")
+ private String formerCompany;
+
+ @ApiModelProperty("鍓嶅叕鍙搁儴闂�")
+ private String formerDept;
+
+ @ApiModelProperty("鍓嶅叕鍙歌亴浣�")
+ private String formerPosition;
+
+ @ApiModelProperty("寮�濮嬫棩鏈�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate startDate;
+
+ @ApiModelProperty("缁撴潫鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate endDate;
+
+ @ApiModelProperty("宸ヤ綔鎻忚堪")
+ private String workDesc;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updateUser;
+}
diff --git a/src/main/java/com/ruoyi/staff/service/StaffEducationService.java b/src/main/java/com/ruoyi/staff/service/StaffEducationService.java
new file mode 100644
index 0000000..ccafc8b
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/StaffEducationService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.staff.service;
+
+import com.ruoyi.staff.pojo.StaffEducation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鍛樺伐鏁欒偛缁忓巻琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:08
+ */
+public interface StaffEducationService extends IService<StaffEducation> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/service/StaffEmergencyContactService.java b/src/main/java/com/ruoyi/staff/service/StaffEmergencyContactService.java
new file mode 100644
index 0000000..65081f4
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/StaffEmergencyContactService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.staff.service;
+
+import com.ruoyi.staff.pojo.StaffEmergencyContact;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鍛樺伐绱ф�ヨ仈绯讳汉琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:34:17
+ */
+public interface StaffEmergencyContactService extends IService<StaffEmergencyContact> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/service/StaffWorkExperienceService.java b/src/main/java/com/ruoyi/staff/service/StaffWorkExperienceService.java
new file mode 100644
index 0000000..a16d84d
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/StaffWorkExperienceService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.staff.service;
+
+import com.ruoyi.staff.pojo.StaffWorkExperience;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鍛樺伐宸ヤ綔缁忓巻琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:36
+ */
+public interface StaffWorkExperienceService extends IService<StaffWorkExperience> {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffEducationServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffEducationServiceImpl.java
new file mode 100644
index 0000000..81acfb9
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffEducationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.staff.service.impl;
+
+import com.ruoyi.staff.pojo.StaffEducation;
+import com.ruoyi.staff.mapper.StaffEducationMapper;
+import com.ruoyi.staff.service.StaffEducationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鍛樺伐鏁欒偛缁忓巻琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:08
+ */
+@Service
+public class StaffEducationServiceImpl extends ServiceImpl<StaffEducationMapper, StaffEducation> implements StaffEducationService {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffEmergencyContactServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffEmergencyContactServiceImpl.java
new file mode 100644
index 0000000..7a90966
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffEmergencyContactServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.staff.service.impl;
+
+import com.ruoyi.staff.pojo.StaffEmergencyContact;
+import com.ruoyi.staff.mapper.StaffEmergencyContactMapper;
+import com.ruoyi.staff.service.StaffEmergencyContactService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鍛樺伐绱ф�ヨ仈绯讳汉琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:34:17
+ */
+@Service
+public class StaffEmergencyContactServiceImpl extends ServiceImpl<StaffEmergencyContactMapper, StaffEmergencyContact> implements StaffEmergencyContactService {
+
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
index 02253f5..8336f90 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -16,12 +16,8 @@
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
import com.ruoyi.staff.dto.StaffOnJobDto;
-import com.ruoyi.staff.mapper.StaffContractMapper;
-import com.ruoyi.staff.mapper.StaffLeaveMapper;
-import com.ruoyi.staff.mapper.StaffOnJobMapper;
-import com.ruoyi.staff.pojo.StaffContract;
-import com.ruoyi.staff.pojo.StaffLeave;
-import com.ruoyi.staff.pojo.StaffOnJob;
+import com.ruoyi.staff.mapper.*;
+import com.ruoyi.staff.pojo.*;
import com.ruoyi.staff.service.IStaffOnJobService;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -64,6 +60,24 @@
@Autowired
private SysUserMapper sysUserMapper;
+ @Autowired
+ private StaffEducationServiceImpl staffEducationService;
+
+ @Autowired
+ private StaffEducationMapper staffEducationMapper;
+
+ @Autowired
+ private StaffWorkExperienceMapper staffWorkExperienceMapper;
+
+ @Autowired
+ private StaffWorkExperienceServiceImpl staffWorkExperienceServiceImpl;
+
+ @Autowired
+ private StaffEmergencyContactMapper staffEmergencyContactMapper;
+
+ @Autowired
+ private StaffEmergencyContactServiceImpl staffEmergencyContactServiceImpl;
+
//鍦ㄨ亴鍛樺伐鍙拌处鍒嗛〉鏌ヨ
@Override
@@ -94,13 +108,17 @@
sysUser1.setNickName(staffOnJobPrams.getStaffName());
String s = SecurityUtils.encryptPassword("123456");
sysUser1.setPassword(s);
- Long[] posts = new Long[]{staffOnJobPrams.getSysPostId().longValue()};
- sysUser1.setPostIds(posts);
+ if(staffOnJobPrams.getSysPostId() != null){
+ Long[] posts = new Long[]{staffOnJobPrams.getSysPostId().longValue()};
+ sysUser1.setPostIds(posts);
+ }
sysUser1.setRoleIds(new Long[]{staffOnJobPrams.getRoleId()});
sysUser1.setDeptIds(new Long[]{staffOnJobPrams.getSysDeptId()});
sysUser1.setStatus("0");
sysUserService.insertUser(sysUser1);
}
+ // 缁戝畾瀛愯〃鏁版嵁
+ bingingStaffOnJobExtra(staffOnJobPrams.getId(),staffOnJobPrams);
// 鍒涘缓鍚堝悓璁板綍
StaffContract staffContract = new StaffContract();
staffContract.setStaffOnJobId(staffOnJobPrams.getId());
@@ -132,9 +150,57 @@
staffContractMapper.updateById(contract);
}
+ // 鍒犻櫎鎵�鏈夊瓙琛ㄦ暟鎹�
+ delStaffOnJobExtra(Arrays.asList(id));
+ // 缁戝畾瀛愯〃鏁版嵁
+ bingingStaffOnJobExtra(id,staffOnJobParams);
// 鏇存柊鍛樺伐鏁版嵁
staffOnJobParams.setContractExpireTime(staffOnJobParams.getContractEndTime());
return staffOnJobMapper.updateById(staffOnJobParams);
+ }
+
+ /**
+ * 缁戝畾鍛樺伐瀛愯〃鏁版嵁
+ * @param staffOnJobPrams
+ * @param id
+ */
+ public void bingingStaffOnJobExtra(Long id,StaffOnJob staffOnJobPrams) {
+ // 鏂板鏁欒偛缁忓巻
+ if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffEducationList())){
+ staffOnJobPrams.getStaffEducationList().stream()
+ .filter(Objects::nonNull) // 杩囨护null瀵硅薄锛岄伩鍏嶇┖鎸囬拡
+ .forEach(staff -> staff.setStaffOnJobId(id)); // 璧嬪��
+ staffEducationService.saveBatch(staffOnJobPrams.getStaffEducationList());
+ }
+ // 鏂板宸ヤ綔缁忓巻
+ if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffWorkExperienceList())){
+ staffOnJobPrams.getStaffWorkExperienceList().stream()
+ .filter(Objects::nonNull) // 杩囨护null瀵硅薄锛岄伩鍏嶇┖鎸囬拡
+ .forEach(staff -> staff.setStaffOnJobId(id)); // 璧嬪��
+ staffWorkExperienceServiceImpl.saveBatch(staffOnJobPrams.getStaffWorkExperienceList());
+ }
+ // 鏂板绱ф�ヨ仈绯讳汉
+ if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffEmergencyContactList())){
+ staffOnJobPrams.getStaffEmergencyContactList().stream()
+ .filter(Objects::nonNull) // 杩囨护null瀵硅薄锛岄伩鍏嶇┖鎸囬拡
+ .forEach(staff -> staff.setStaffOnJobId(id)); // 璧嬪��
+ staffEmergencyContactServiceImpl.saveBatch(staffOnJobPrams.getStaffEmergencyContactList());
+ }
+ }
+
+
+ /**
+ * 閫氳繃鍛樺伐id鍒犻櫎鏁欒偛缁忓巻锛屽伐浣滅粡鍘嗭紝绱ф�ヨ仈绯讳汉
+ * @param ids
+ * @return
+ */
+ public void delStaffOnJobExtra(List<Long> ids) {
+ // 鍒犻櫎鏁欒偛缁忓巻
+ staffEducationService.remove(Wrappers.<StaffEducation>lambdaQuery().in(StaffEducation::getStaffOnJobId,ids));
+ // 鍒犻櫎宸ヤ綔缁忓巻
+ staffWorkExperienceServiceImpl.remove(Wrappers.<StaffWorkExperience>lambdaQuery().in(StaffWorkExperience::getStaffOnJobId,ids));
+ // 鍒犻櫎绱ф�ヨ仈绯讳汉
+ staffEmergencyContactServiceImpl.remove(Wrappers.<StaffEmergencyContact>lambdaQuery().in(StaffEmergencyContact::getStaffOnJobId,ids));
}
//鍒犻櫎鍏ヨ亴
@@ -156,6 +222,8 @@
Long[] longs = sysUsers.stream().map(SysUser::getUserId).toArray(Long[]::new);
sysUserService.deleteUserByIds(longs);
}
+ // 鍒犻櫎瀛愯〃鏁版嵁
+ delStaffOnJobExtra(ids.stream().map(Integer::longValue).collect(Collectors.toList()));
// 鍒犻櫎鍚堝悓鏁版嵁
return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids));
@@ -213,6 +281,13 @@
staffOnJobDto.setContractStartTime(contract.getContractStartTime());
staffOnJobDto.setContractEndTime(contract.getContractEndTime());
}
+ // 鑾峰彇瀛愯〃鏁版嵁
+ staffOnJobDto.setStaffEducationList(staffEducationMapper.selectList(Wrappers.<StaffEducation>lambdaQuery()
+ .eq(StaffEducation::getStaffOnJobId, staffOnJob.getId())));
+ staffOnJobDto.setStaffWorkExperienceList(staffWorkExperienceMapper.selectList(Wrappers.<StaffWorkExperience>lambdaQuery()
+ .eq(StaffWorkExperience::getStaffOnJobId, staffOnJob.getId())));
+ staffOnJobDto.setStaffEmergencyContactList(staffEmergencyContactMapper.selectList(Wrappers.<StaffEmergencyContact>lambdaQuery()
+ .eq(StaffEmergencyContact::getStaffOnJobId, staffOnJob.getId())));
return staffOnJobDto;
}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffWorkExperienceServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffWorkExperienceServiceImpl.java
new file mode 100644
index 0000000..7d04d43
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffWorkExperienceServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.staff.service.impl;
+
+import com.ruoyi.staff.pojo.StaffWorkExperience;
+import com.ruoyi.staff.mapper.StaffWorkExperienceMapper;
+import com.ruoyi.staff.service.StaffWorkExperienceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鍛樺伐宸ヤ綔缁忓巻琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-05 04:33:36
+ */
+@Service
+public class StaffWorkExperienceServiceImpl extends ServiceImpl<StaffWorkExperienceMapper, StaffWorkExperience> implements StaffWorkExperienceService {
+
+}
diff --git a/src/main/resources/mapper/staff/StaffEducationMapper.xml b/src/main/resources/mapper/staff/StaffEducationMapper.xml
new file mode 100644
index 0000000..ddcba2d
--- /dev/null
+++ b/src/main/resources/mapper/staff/StaffEducationMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.staff.mapper.StaffEducationMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.staff.pojo.StaffEducation">
+ <id column="id" property="id" />
+ <result column="staff_on_job_id" property="staffOnJobId" />
+ <result column="education" property="education" />
+ <result column="school_name" property="schoolName" />
+ <result column="enroll_time" property="enrollTime" />
+ <result column="graduate_time" property="graduateTime" />
+ <result column="major" property="major" />
+ <result column="degree" property="degree" />
+ <result column="create_time" property="createTime" />
+ <result column="create_user" property="createUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="update_user" property="updateUser" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/staff/StaffEmergencyContactMapper.xml b/src/main/resources/mapper/staff/StaffEmergencyContactMapper.xml
new file mode 100644
index 0000000..b5cc93f
--- /dev/null
+++ b/src/main/resources/mapper/staff/StaffEmergencyContactMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.staff.mapper.StaffEmergencyContactMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.staff.pojo.StaffEmergencyContact">
+ <id column="id" property="id" />
+ <result column="staff_on_job_id" property="staffOnJobId" />
+ <result column="contact_name" property="contactName" />
+ <result column="contact_relation" property="contactRelation" />
+ <result column="contact_phone" property="contactPhone" />
+ <result column="contact_address" property="contactAddress" />
+ <result column="create_time" property="createTime" />
+ <result column="create_user" property="createUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="update_user" property="updateUser" />
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/staff/StaffWorkExperienceMapper.xml b/src/main/resources/mapper/staff/StaffWorkExperienceMapper.xml
new file mode 100644
index 0000000..1c4b9e5
--- /dev/null
+++ b/src/main/resources/mapper/staff/StaffWorkExperienceMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.staff.mapper.StaffWorkExperienceMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.staff.pojo.StaffWorkExperience">
+ <id column="id" property="id" />
+ <result column="staff_on_job_id" property="staffOnJobId" />
+ <result column="former_company" property="formerCompany" />
+ <result column="former_dept" property="formerDept" />
+ <result column="former_position" property="formerPosition" />
+ <result column="start_date" property="startDate" />
+ <result column="end_date" property="endDate" />
+ <result column="work_desc" property="workDesc" />
+ <result column="create_time" property="createTime" />
+ <result column="create_user" property="createUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="update_user" property="updateUser" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.9.3