From f3d5c380c2e99cff05dfef25ff91cde2fcb54503 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 16 一月 2026 17:47:09 +0800
Subject: [PATCH] 重构员工台账
---
src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java | 16 +
src/main/java/com/ruoyi/staff/mapper/StaffContractMapper.java | 25 ++
src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java | 3
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 111 ++++++++++-
src/main/java/com/ruoyi/staff/pojo/StaffContract.java | 49 +++++
src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java | 10 +
src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java | 9
src/main/java/com/ruoyi/staff/pojo/StaffLeave.java | 35 +++
doc/20260116_create_table_staff_leave.sql | 13 +
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java | 45 ++++
doc/20260116_create_table_staff_contract.sql | 13 +
src/main/java/com/ruoyi/staff/controller/StaffContractController.java | 34 +++
src/main/java/com/ruoyi/staff/service/impl/StaffContractServiceImpl.java | 23 ++
src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java | 42 ++--
src/main/java/com/ruoyi/staff/dto/StaffContractDto.java | 9 +
src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java | 15 +
src/main/resources/mapper/staff/StaffOnJobMapper.xml | 9
src/main/java/com/ruoyi/staff/service/StaffContractService.java | 19 ++
src/main/resources/mapper/staff/StaffContractMapper.xml | 15 +
src/main/java/com/ruoyi/staff/service/StaffLeaveService.java | 7
20 files changed, 455 insertions(+), 47 deletions(-)
diff --git a/doc/20260116_create_table_staff_contract.sql b/doc/20260116_create_table_staff_contract.sql
new file mode 100644
index 0000000..f8fc20a
--- /dev/null
+++ b/doc/20260116_create_table_staff_contract.sql
@@ -0,0 +1,13 @@
+# 鍛樺伐鍚堝悓琛�
+drop table if exists staff_contract;
+create table staff_contract
+(
+ id bigint auto_increment primary key,
+ staff_on_job_id bigint not null default 0 comment '鍛樺伐鍦ㄨ亴id',
+ contract_start_time datetime null comment '鍚堝悓寮�濮嬫椂闂�',
+ contract_end_time datetime null comment '鍚堝悓缁撴潫鏃堕棿',
+ contract_term int not null default 0 comment '鍚堝悓鏈熼檺',
+ tenant_id bigint not null comment '绉熸埛id',
+ create_time datetime null comment '褰曞叆鏃堕棿',
+ update_time datetime null comment '鏇存柊鏃堕棿'
+);
diff --git a/doc/20260116_create_table_staff_leave.sql b/doc/20260116_create_table_staff_leave.sql
new file mode 100644
index 0000000..7e4b1cf
--- /dev/null
+++ b/doc/20260116_create_table_staff_leave.sql
@@ -0,0 +1,13 @@
+#鍛樺伐绂昏亴琛�
+drop table if exists staff_join_leave_record;
+drop table if exists staff_leave;
+create table staff_leave
+(
+ id bigint auto_increment primary key,
+ staff_on_job_id bigint not null default 0 comment '鍛樺伐鍦ㄨ亴id',
+ reason varchar(255) null comment '绂昏亴鍘熷洜',
+ remark text null comment '绂昏亴澶囨敞',
+ tenant_id bigint not null comment '绉熸埛id',
+ create_time datetime null comment '褰曞叆鏃堕棿',
+ update_time datetime null comment '鏇存柊鏃堕棿'
+);
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffContractController.java b/src/main/java/com/ruoyi/staff/controller/StaffContractController.java
new file mode 100644
index 0000000..af4c90c
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/StaffContractController.java
@@ -0,0 +1,34 @@
+package com.ruoyi.staff.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.staff.pojo.StaffContract;
+import com.ruoyi.staff.service.StaffContractService;
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 鍛樺伐鍙拌处/鍚堝悓绠$悊
+ */
+@RestController
+@RequestMapping("/staff/staffContract")
+@Api(tags = "鍛樺伐鍙拌处/鍚堝悓绠$悊")
+public class StaffContractController {
+
+ @Resource
+ private StaffContractService staffContractService;
+
+
+ /**
+ * 鍛樺伐鍚堝悓鍒嗛〉鏌ヨ
+ * @param page
+ * @param staffContract
+ * @return
+ */
+ @GetMapping("/listPage")
+ public AjaxResult staffContractListPage(Page page, StaffContract staffContract) {
+ return AjaxResult.success(staffContractService.staffContractListPage(page, staffContract));
+ }
+}
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
index 7ddf17d..55a93b2 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -4,6 +4,7 @@
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffOnJob;
import com.ruoyi.staff.service.IStaffJoinLeaveRecordService;
@@ -52,14 +53,48 @@
}
/**
- * 鍦ㄨ亴鍛樺伐璇︽儏
- * @param staffNo
+ * 鏂板鍏ヨ亴
+ * @param staffOnJob
* @return
*/
- @GetMapping("/staffNo")
- public AjaxResult staffOnJobDetail(String staffNo) {
- return AjaxResult.success(staffOnJobService.staffOnJobDetail(staffNo));
+ @PostMapping("")
+ public AjaxResult add(@RequestBody StaffOnJobDto staffOnJob) {
+ return AjaxResult.success(staffOnJobService.add(staffOnJob));
}
+
+ /**
+ * 鏇存柊鍏ヨ亴淇℃伅
+ * @param staffOnJobDto
+ * @return
+ */
+ @PutMapping("/{id}")
+ public AjaxResult update(@PathVariable("id") Long id, @RequestBody StaffOnJobDto staffOnJobDto) {
+ return AjaxResult.success(staffOnJobService.update(id, staffOnJobDto));
+ }
+
+ /**
+ * 鍒犻櫎鍏ヨ亴
+ * @param ids
+ * @return
+ */
+ @DeleteMapping("/del")
+ public AjaxResult delStaffOnJobs(@RequestBody List<Integer> ids) {
+ if(CollectionUtils.isEmpty(ids)){
+ return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ }
+ return AjaxResult.success(staffOnJobService.delStaffOnJobs(ids));
+ }
+
+ /**
+ * 鍦ㄨ亴鍛樺伐璇︽儏
+ * @param id
+ * @return
+ */
+ @GetMapping("/{id}")
+ public AjaxResult staffJoinLeaveRecordDetail(@PathVariable("id") Long id) {
+ return AjaxResult.success(staffOnJobService.staffOnJobDetail(id));
+ }
+
/**
* 鍦ㄨ亴鍛樺伐瀵煎叆
*/
diff --git a/src/main/java/com/ruoyi/staff/dto/StaffContractDto.java b/src/main/java/com/ruoyi/staff/dto/StaffContractDto.java
new file mode 100644
index 0000000..3d74c67
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/dto/StaffContractDto.java
@@ -0,0 +1,9 @@
+package com.ruoyi.staff.dto;
+
+import com.ruoyi.staff.pojo.StaffContract;
+import lombok.Data;
+
+@Data
+public class StaffContractDto extends StaffContract {
+ private String staffName;
+}
diff --git a/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java b/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
index 13c2051..04f5169 100644
--- a/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
+++ b/src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
@@ -1,10 +1,26 @@
package com.ruoyi.staff.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffOnJob;
import lombok.Data;
+import java.util.Date;
+
@Data
public class StaffOnJobDto extends StaffOnJob {
+ @Excel(name = "宀椾綅",sort = 7)
private String postName;
+
+ @Excel(name = "鍚堝悓骞撮檺")
+ private String contractTerm;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍚堝悓寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date contractStartTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍚堝悓缁撴潫鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date contractEndTime;
}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffContractMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffContractMapper.java
new file mode 100644
index 0000000..9545082
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffContractMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.staff.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.staff.dto.StaffContractDto;
+import com.ruoyi.staff.dto.StaffOnJobDto;
+import com.ruoyi.staff.pojo.StaffContract;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface StaffContractMapper extends BaseMapper<StaffContract> {
+ /**
+ * 鍛樺伐鍚堝悓鍒嗛〉鏌ヨ
+ * @param page
+ * @param staffContract
+ * @return
+ */
+ IPage<StaffContractDto> staffContractListPage(Page page, @Param("staffContract") StaffContract staffContract);
+
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java
new file mode 100644
index 0000000..d8fce17
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java
@@ -0,0 +1,10 @@
+package com.ruoyi.staff.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.staff.pojo.StaffLeave;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface StaffLeaveMapper extends BaseMapper<StaffLeave> {
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java b/src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java
index b11847e..1451487 100644
--- a/src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java
+++ b/src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.staff.dto.StaffOnJobDto;
-import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffOnJob;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -16,5 +15,5 @@
IPage<StaffOnJobDto> staffOnJobListPage(Page page, @Param("staffOnJob") StaffOnJob staffOnJob);
- List<StaffOnJob> staffOnJobList(@Param("staffOnJob") StaffOnJob staffOnJob);
+ List<StaffOnJobDto> staffOnJobList(@Param("staffOnJob") StaffOnJob staffOnJob);
}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffContract.java b/src/main/java/com/ruoyi/staff/pojo/StaffContract.java
new file mode 100644
index 0000000..9b2afee
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffContract.java
@@ -0,0 +1,49 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@TableName("staff_contract")
+@Data
+public class StaffContract {
+
+ @ApiModelProperty(value = "搴忓彿")
+ private Long id;
+
+ @ApiModelProperty(value = "鍦ㄨ亴鍛樺伐ID")
+ private Long staffOnJobId;
+
+ @ApiModelProperty(value = "鍚堝悓鏈熼檺")
+ private String contractTerm;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "鍚堝悓寮�濮嬫椂闂�")
+ private Date contractStartTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty(value = "鍚堝悓缁撴潫鏃堕棿")
+ private Date contractEndTime;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffLeave.java b/src/main/java/com/ruoyi/staff/pojo/StaffLeave.java
new file mode 100644
index 0000000..9965c6d
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffLeave.java
@@ -0,0 +1,35 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@TableName("staff_leave")
+@Data
+public class StaffLeave {
+
+ @ApiModelProperty(value = "搴忓彿")
+ private Long id;
+
+ @ApiModelProperty(value = "鍦ㄨ亴鍛樺伐ID")
+ private Long staffOnJobId;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
index 1cee908..2db3869 100644
--- a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
@@ -31,98 +31,97 @@
/**
* 鐘舵��(0:绂昏亴;1:鍦ㄨ亴)
*/
- @Excel(name = "鐘舵��",readConverterExp = "0=绂昏亴,1=鍦ㄨ亴")
+ @Excel(name = "鐘舵��", readConverterExp = "0=绂昏亴,1=鍦ㄨ亴", sort = 1)
private Integer staffState;
/**
* 鍛樺伐缂栧彿
*/
- @Excel(name = "鍛樺伐缂栧彿", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.STRING)
+ @Excel(name = "鍛樺伐缂栧彿", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.STRING, sort = 2)
private String staffNo;
/**
* 鍛樺伐濮撳悕
*/
- @Excel(name = "鍛樺伐濮撳悕")
+ @Excel(name = "鍛樺伐濮撳悕", sort = 3)
private String staffName;
/**
* 鎬у埆
*/
- @Excel(name = "鎬у埆")
+ @Excel(name = "鎬у埆", sort = 4)
private String sex;
/**
* 绫嶈疮
*/
- @Excel(name = "绫嶈疮")
+ @Excel(name = "绫嶈疮", sort = 5)
private String nativePlace;
/**
* 宀椾綅
*/
- @Excel(name = "宀椾綅")
private Integer sysPostId;
/**
* 瀹跺涵浣忓潃
*/
- @Excel(name = "瀹跺涵浣忓潃")
+ @Excel(name = "瀹跺涵浣忓潃", sort = 6)
private String adress;
/**
* 绗竴瀛﹀巻
*/
- @Excel(name = "绗竴瀛﹀巻")
+ @Excel(name = "绗竴瀛﹀巻", sort = 8)
private String firstStudy;
/**
* 涓撲笟
*/
- @Excel(name = "涓撲笟")
+ @Excel(name = "涓撲笟", sort = 9)
private String profession;
/**
* 韬唤璇佸彿鐮�
*/
- @Excel(name = "韬唤璇佸彿鐮�")
+ @Excel(name = "韬唤璇佸彿鐮�", sort = 10)
private String identityCard;
/**
* 骞撮緞
*/
- @Excel(name = "骞撮緞")
+ @Excel(name = "骞撮緞", sort = 11)
private String age;
/**
* 鑱旂郴鐢佃瘽
*/
- @Excel(name = "鑱旂郴鐢佃瘽")
+ @Excel(name = "鑱旂郴鐢佃瘽", sort = 12)
private String phone;
/**
* 绱ф�ヨ仈绯讳汉
*/
- @Excel(name = "绱ф�ヨ仈绯讳汉")
+ @Excel(name = "绱ф�ヨ仈绯讳汉", sort = 13)
private String emergencyContact;
/**
* 绱ф�ヨ仈绯讳汉鐢佃瘽
*/
- @Excel(name = "绱ф�ヨ仈绯讳汉鐢佃瘽")
+ @Excel(name = "绱ф�ヨ仈绯讳汉鐢佃瘽", sort = 14)
private String emergencyContactPhone;
/**
* 鍚堝悓骞撮檺
*/
- @Excel(name = "鍚堝悓骞撮檺")
+ @Excel(name = "鍚堝悓骞撮檺", sort = 15)
private String contractTerm;
/**
* 鍚堝悓鍒版湡鏃ユ湡
*/
@JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鍚堝悓鍒版湡鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+ @Excel(name = "鍚堝悓鍒版湡鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd", sort = 16)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date contractExpireTime;
@@ -130,7 +129,7 @@
* 缁撴潫璇曠敤鏃堕棿
*/
@JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "缁撴潫璇曠敤鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+ @Excel(name = "缁撴潫璇曠敤鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd", sort = 17)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date trialEndDate;
@@ -138,7 +137,7 @@
* 寮�濮嬭瘯鐢ㄦ棩鏈�
*/
@JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "寮�濮嬭瘯鐢ㄦ棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ @Excel(name = "寮�濮嬭瘯鐢ㄦ棩鏈�", width = 30, dateFormat = "yyyy-MM-dd", sort = 18)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date trialStartDate;
@@ -146,7 +145,7 @@
* 绛捐鏃堕棿
*/
@JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "绛捐鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+ @Excel(name = "绛捐鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd", sort = 19)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date signDate;
@@ -159,7 +158,7 @@
/**
* 璇曠敤鏈熷伐璧�
*/
- @Excel(name = "璇曠敤鏈熷伐璧�")
+ @Excel(name = "璇曠敤鏈熷伐璧�", sort = 20)
private BigDecimal proSalary;
/**
@@ -171,9 +170,8 @@
/**
* 澶囨敞锛堢鍒╁緟閬囷級
*/
- @Excel(name = "澶囨敞锛堢鍒╁緟閬囷級")
+ @Excel(name = "澶囨敞锛堢鍒╁緟閬囷級", sort = 21)
private String remark;
-
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
diff --git a/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java b/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
index 419e2f4..e6e5a40 100644
--- a/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
+++ b/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
@@ -6,6 +6,7 @@
import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffOnJob;
+import org.bouncycastle.crypto.digests.LongDigest;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -16,7 +17,13 @@
IPage<StaffOnJobDto> staffOnJobListPage(Page page, StaffOnJob staffOnJob);
- List<StaffJoinLeaveRecord> staffOnJobDetail(String staffNo);
+ StaffOnJobDto staffOnJobDetail(Long id);
+
+ int add(StaffOnJobDto staffOnJob);
+
+ int update(Long id, StaffOnJobDto staffOnJob);
+
+ int delStaffOnJobs(List<Integer> ids);
void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob);
diff --git a/src/main/java/com/ruoyi/staff/service/StaffContractService.java b/src/main/java/com/ruoyi/staff/service/StaffContractService.java
new file mode 100644
index 0000000..5c2319c
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/StaffContractService.java
@@ -0,0 +1,19 @@
+package com.ruoyi.staff.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.staff.dto.StaffContractDto;
+import com.ruoyi.staff.dto.StaffOnJobDto;
+import com.ruoyi.staff.pojo.StaffContract;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+public interface StaffContractService extends IService<StaffContract> {
+
+ IPage<StaffContractDto> staffContractListPage(Page page, StaffContract staffContract);
+}
diff --git a/src/main/java/com/ruoyi/staff/service/StaffLeaveService.java b/src/main/java/com/ruoyi/staff/service/StaffLeaveService.java
new file mode 100644
index 0000000..67aede2
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/StaffLeaveService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.staff.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.staff.pojo.StaffLeave;
+
+public interface StaffLeaveService extends IService<StaffLeave> {
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffContractServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffContractServiceImpl.java
new file mode 100644
index 0000000..ba6e123
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffContractServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ruoyi.staff.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.staff.dto.StaffContractDto;
+import com.ruoyi.staff.mapper.StaffContractMapper;
+import com.ruoyi.staff.pojo.StaffContract;
+import com.ruoyi.staff.service.StaffContractService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class StaffContractServiceImpl extends ServiceImpl<StaffContractMapper, StaffContract> implements StaffContractService {
+ private StaffContractMapper staffContractMapper;
+
+ @Override
+ public IPage<StaffContractDto> staffContractListPage(Page page, StaffContract staffContract) {
+ return staffContractMapper.staffContractListPage(page,staffContract);
+ }
+}
+
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java
new file mode 100644
index 0000000..0fc3807
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java
@@ -0,0 +1,15 @@
+package com.ruoyi.staff.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.staff.mapper.StaffLeaveMapper;
+import com.ruoyi.staff.service.StaffLeaveService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.ruoyi.staff.pojo.StaffLeave;
+
+@AllArgsConstructor
+@Service
+public class StaffLeaveServiceImpl extends ServiceImpl<StaffLeaveMapper, StaffLeave> implements StaffLeaveService {
+
+}
+
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 437eede..69e0638 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -1,40 +1,44 @@
package com.ruoyi.staff.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.dto.WordDateDto;
+import com.ruoyi.project.system.domain.SysPost;
+import com.ruoyi.project.system.mapper.SysPostMapper;
import com.ruoyi.staff.dto.StaffOnJobDto;
+import com.ruoyi.staff.mapper.StaffContractMapper;
import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
+import com.ruoyi.staff.mapper.StaffLeaveMapper;
import com.ruoyi.staff.mapper.StaffOnJobMapper;
+import com.ruoyi.staff.pojo.StaffContract;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffLeave;
import com.ruoyi.staff.pojo.StaffOnJob;
-import com.ruoyi.staff.service.IStaffJoinLeaveRecordService;
import com.ruoyi.staff.service.IStaffOnJobService;
import freemarker.template.Configuration;
import freemarker.template.Template;
-import freemarker.template.TemplateException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
-import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
+import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
@AllArgsConstructor
@Service
@@ -43,7 +47,12 @@
private StaffOnJobMapper staffOnJobMapper;
+ private SysPostMapper sysPostMapper;
+
private StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper;
+ private StaffContractMapper staffContractMapper;
+ private StaffLeaveMapper staffLeaveMapper;
+
//鍦ㄨ亴鍛樺伐鍙拌处鍒嗛〉鏌ヨ
@Override
@@ -51,19 +60,93 @@
return staffOnJobMapper.staffOnJobListPage(page,staffOnJob);
}
+ //鏂板鍏ヨ亴
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int add(StaffOnJobDto staffOnJobPrams) {
+ String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
+ // 鍒ゆ柇缂栧彿鏄惁瀛樺湪
+ List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery().eq(StaffOnJob::getStaffNo, staffOnJobPrams.getStaffNo()));
+ if (staffOnJobs.size()>0){
+ throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
+ }
+ // 鍒涘缓鍏ヨ亴鏁版嵁
+ staffOnJobMapper.insert(staffOnJobPrams);
+
+ // 鍒涘缓鍚堝悓璁板綍
+ StaffContract staffContract = new StaffContract();
+ staffContract.setStaffOnJobId(staffOnJobPrams.getId());
+ staffContract.setContractTerm(staffOnJobPrams.getContractTerm());
+ staffContract.setContractStartTime(staffOnJobPrams.getContractStartTime());
+ staffContract.setContractEndTime(staffOnJobPrams.getContractEndTime());
+ return staffContractMapper.insert(staffContract);
+ }
+
+ //鏇存柊鍏ヨ亴淇℃伅
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int update(Long id, StaffOnJobDto staffOnJobParams) {
+ // 鍒ゆ柇瀵硅薄鏄惁瀛樺湪
+ StaffOnJob job = staffOnJobMapper.selectById(id);
+ if (job == null){
+ throw new BaseException("缂栧彿涓�"+staffOnJobParams.getStaffNo()+"鐨勫憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
+ }
+
+ // 鏇存柊鍛樺伐鏁版嵁
+ String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
+ BeanUtils.copyProperties(staffOnJobParams,job,ignoreProperties);
+ staffOnJobMapper.updateById(job);
+
+ // 鑾峰彇鏈�鏂板悎鍚屾暟鎹紝骞朵笖鏇存柊
+ StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
+ .eq(StaffContract::getStaffOnJobId, id)
+ .orderByDesc(StaffContract::getId));
+ if (contract != null){
+ BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties);
+ return staffContractMapper.updateById(contract);
+ }
+ return 0;
+ }
+
+ //鍒犻櫎鍏ヨ亴
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int delStaffOnJobs(List<Integer> ids) {
+ // 鍒犻櫎鍏ヨ亴鏁版嵁
+ staffOnJobMapper.deleteBatchIds(ids);
+ // 鍒犻櫎绂昏亴鏁版嵁
+ staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids));
+ // 鍒犻櫎鍚堝悓鏁版嵁
+ return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids));
+ }
+
//鍦ㄨ亴鍛樺伐璇︽儏
@Override
- public List<StaffJoinLeaveRecord> staffOnJobDetail(String staffNo) {
- return staffJoinLeaveRecordMapper.selectList(Wrappers.<StaffJoinLeaveRecord>lambdaQuery()
- .eq(StaffJoinLeaveRecord::getStaffState,1)
- .eq(StaffJoinLeaveRecord::getStaffNo,staffNo));
+ public StaffOnJobDto staffOnJobDetail(Long id) {
+ StaffOnJob staffOnJob = staffOnJobMapper.selectById(id);
+ StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
+ BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
+ // 鏌ヨ宀椾綅鍚嶇О
+ SysPost post = sysPostMapper.selectPostById((long) staffOnJob.getSysPostId());
+ staffOnJobDto.setPostName(post.getPostName());
+
+ // 鏌ヨ鍚堝悓淇℃伅
+ StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
+ .eq(StaffContract::getStaffOnJobId, staffOnJob.getId())
+ .orderByDesc(StaffContract::getId));
+ if (contract != null){
+ staffOnJobDto.setContractTerm(contract.getContractTerm());
+ staffOnJobDto.setContractStartTime(contract.getContractStartTime());
+ staffOnJobDto.setContractEndTime(contract.getContractEndTime());
+ }
+ return staffOnJobDto;
}
//鍦ㄨ亴鍛樺伐瀵煎嚭
@Override
public void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob) {
- List<StaffOnJob> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob);
- ExcelUtil<StaffOnJob> util = new ExcelUtil<StaffOnJob>(StaffOnJob.class);
+ List<StaffOnJobDto> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob);
+ ExcelUtil<StaffOnJobDto> util = new ExcelUtil<StaffOnJobDto>(StaffOnJobDto.class);
util.exportExcel(response, staffOnJobs, "鍦ㄨ亴鍛樺伐鍙拌处瀵煎嚭");
}
diff --git a/src/main/resources/mapper/staff/StaffContractMapper.xml b/src/main/resources/mapper/staff/StaffContractMapper.xml
new file mode 100644
index 0000000..ac2ad70
--- /dev/null
+++ b/src/main/resources/mapper/staff/StaffContractMapper.xml
@@ -0,0 +1,15 @@
+<?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.StaffContractMapper">
+ <select id="staffContractListPage" resultType="com.ruoyi.staff.dto.StaffContractDto">
+ SELECT
+ sc.*
+ FROM staff_contract as sc
+ LEFT JOIN
+ staff_on_job soj ON soj.id = sc.staff_on_job_id
+ where 1=1
+ <if test="staffContract.staffOnJobId != null">
+ AND soj.id = #{staffContract.staffOnJobId}
+ </if>
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/staff/StaffOnJobMapper.xml b/src/main/resources/mapper/staff/StaffOnJobMapper.xml
index 71eb981..6e0a956 100644
--- a/src/main/resources/mapper/staff/StaffOnJobMapper.xml
+++ b/src/main/resources/mapper/staff/StaffOnJobMapper.xml
@@ -22,12 +22,15 @@
AND contract_expire_time <= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d')
</if>
</select>
- <select id="staffOnJobList" resultType="com.ruoyi.staff.pojo.StaffOnJob">
+ <select id="staffOnJobList" resultType="com.ruoyi.staff.dto.StaffOnJobDto">
SELECT
- *
+ staff_on_job.*,
+ sp.post_name as postName
FROM staff_on_job
+ LEFT JOIN
+ sys_post sp ON sp.post_id = staff_on_job.sys_post_id
where 1=1
- <if test="staffOnJob.staffState != null and staffOnJob.staffState != '' ">
+ <if test="staffOnJob.staffState != null">
AND staff_state = #{staffOnJob.staffState}
</if>
<if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
--
Gitblit v1.9.3