From 34e986e6e158450ee35319f1cac872a4bc974a74 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 16 一月 2026 18:02:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 97 insertions(+), 14 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 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, "鍦ㄨ亴鍛樺伐鍙拌处瀵煎嚭");
}
--
Gitblit v1.9.3