From 57cd4d6f53f9fd6ba1122de5fa80196b5664f1dc Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 19 一月 2026 16:09:46 +0800
Subject: [PATCH] 员工台账-续签合同
---
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 38 +++++++++++++++++++++++++++++++++-----
1 files changed, 33 insertions(+), 5 deletions(-)
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 3de1ca9..21f4c2b 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -69,6 +69,7 @@
throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
}
// 鍒涘缓鍏ヨ亴鏁版嵁
+ staffOnJobPrams.setContractExpireTime(staffOnJobPrams.getContractEndTime());
staffOnJobMapper.insert(staffOnJobPrams);
// 鍒涘缓鍚堝悓璁板綍
@@ -90,20 +91,22 @@
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)
+ .last("limit 1")
.orderByDesc(StaffContract::getId));
if (contract != null){
BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties);
- return staffContractMapper.updateById(contract);
+ staffContractMapper.updateById(contract);
}
- return 0;
+
+ // 鏇存柊鍛樺伐鏁版嵁
+ BeanUtils.copyProperties(staffOnJobParams,job,ignoreProperties);
+ job.setContractExpireTime(staffOnJobParams.getContractEndTime());
+ return staffOnJobMapper.updateById(job);
}
//鍒犻櫎鍏ヨ亴
@@ -116,6 +119,30 @@
staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids));
// 鍒犻櫎鍚堝悓鏁版嵁
return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids));
+ }
+
+ // 缁鍚堝悓
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int renewContract(Long id, StaffContract staffContract) {
+ // 鍒ゆ柇瀵硅薄鏄惁瀛樺湪
+ StaffOnJob job = staffOnJobMapper.selectById(id);
+ if (job == null){
+ throw new BaseException("璇ュ憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
+ }
+
+ // 澧炲姞鍚堝悓
+ StaffContract newStaffContract = new StaffContract();
+ newStaffContract.setStaffOnJobId(id);
+ newStaffContract.setContractTerm(staffContract.getContractTerm());
+ newStaffContract.setContractStartTime(staffContract.getContractStartTime());
+ newStaffContract.setContractEndTime(staffContract.getContractEndTime());
+ staffContractMapper.insert(newStaffContract);
+
+ // 鏇存柊鍛樺伐鍚堝悓杩囨湡鏃堕棿
+ job.setContractExpireTime(staffContract.getContractEndTime());
+ staffOnJobMapper.updateById(job);
+ return 0;
}
//鍦ㄨ亴鍛樺伐璇︽儏
@@ -131,6 +158,7 @@
// 鏌ヨ鍚堝悓淇℃伅
StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
.eq(StaffContract::getStaffOnJobId, staffOnJob.getId())
+ .last("limit 1")
.orderByDesc(StaffContract::getId));
if (contract != null){
staffOnJobDto.setContractTerm(contract.getContractTerm());
--
Gitblit v1.9.3