From f5ee8e7afb178179c1d1d078cf42fe33dc7607f9 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期三, 20 五月 2026 16:02:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro
---
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 351 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 273 insertions(+), 78 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 69e0638..4f1e033 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -1,78 +1,111 @@
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.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.dto.WordDateDto;
+import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysPost;
+import com.ruoyi.project.system.domain.SysRole;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysPostMapper;
+import com.ruoyi.project.system.mapper.SysRoleMapper;
+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.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.dto.StaffOnJobExcelDto;
+import com.ruoyi.staff.mapper.*;
+import com.ruoyi.staff.pojo.*;
import com.ruoyi.staff.service.IStaffOnJobService;
import freemarker.template.Configuration;
import freemarker.template.Template;
-import lombok.AllArgsConstructor;
-
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
+import java.util.stream.Collectors;
-import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
-
-@AllArgsConstructor
+@RequiredArgsConstructor
@Service
-public class StaffOnJobServiceImpl extends ServiceImpl<StaffOnJobMapper, StaffOnJob> implements IStaffOnJobService {
+public class StaffOnJobServiceImpl extends ServiceImpl<StaffOnJobMapper, StaffOnJob> implements IStaffOnJobService {
+ private final StaffOnJobMapper staffOnJobMapper;
+ private final SysDeptMapper sysDeptMapper;
+ private final SysRoleMapper sysRoleMapper;
+ private final SysPostMapper sysPostMapper;
+ private final StaffContractMapper staffContractMapper;
+ private final StaffLeaveMapper staffLeaveMapper;
+ private final PersonalAttendanceRecordsMapper personalAttendanceRecordsMapper;
+ private final SysUserServiceImpl sysUserService;
+ private final SysUserMapper sysUserMapper;
+ private final StaffEducationServiceImpl staffEducationService;
+ private final StaffEducationMapper staffEducationMapper;
+ private final StaffWorkExperienceMapper staffWorkExperienceMapper;
+ private final StaffWorkExperienceServiceImpl staffWorkExperienceServiceImpl;
+ private final StaffEmergencyContactMapper staffEmergencyContactMapper;
+ private final StaffEmergencyContactServiceImpl staffEmergencyContactServiceImpl;
- private StaffOnJobMapper staffOnJobMapper;
-
- private SysPostMapper sysPostMapper;
-
- private StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper;
- private StaffContractMapper staffContractMapper;
- private StaffLeaveMapper staffLeaveMapper;
-
-
- //鍦ㄨ亴鍛樺伐鍙拌处鍒嗛〉鏌ヨ
+ // 鍦ㄨ亴鍛樺伐鍙拌处鍒嗛〉鏌ヨ
@Override
public IPage<StaffOnJobDto> staffOnJobListPage(Page page, StaffOnJob staffOnJob) {
- return staffOnJobMapper.staffOnJobListPage(page,staffOnJob);
+ return staffOnJobMapper.staffOnJobListPage(page, staffOnJob);
}
- //鏂板鍏ヨ亴
+ // 鏂板鍏ヨ亴
@Override
@Transactional(rollbackFor = Exception.class)
public int add(StaffOnJobDto staffOnJobPrams) {
- String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
+ 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()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
+ List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(
+ Wrappers.<StaffOnJob>lambdaQuery().eq(StaffOnJob::getStaffNo, staffOnJobPrams.getStaffNo()));
+ if (staffOnJobs != null && !staffOnJobs.isEmpty()) {
+ throw new BaseException("缂栧彿涓�" + staffOnJobPrams.getStaffNo() + "鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
}
- // 鍒涘缓鍏ヨ亴鏁版嵁
- staffOnJobMapper.insert(staffOnJobPrams);
+ // 鍒涘缓鍏ヨ亴鏁版嵁
+ staffOnJobPrams.setContractExpireTime(staffOnJobPrams.getContractEndTime());
+ staffOnJobPrams.setStaffState(1);
+ staffOnJobMapper.insert(staffOnJobPrams);
+ // 鏌ヨ鐢ㄦ埛鏄惁宸茬粡鏂板
+ SysUser sysUser = sysUserService.selectUserById(staffOnJobPrams.getId());
+ if (sysUser == null) {
+ SysUser sysUser1 = new SysUser();
+ sysUser1.setUserName(staffOnJobPrams.getStaffNo());
+ sysUser1.setNickName(staffOnJobPrams.getStaffName());
+ String s = SecurityUtils.encryptPassword("123456");
+ sysUser1.setPassword(s);
+ 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());
@@ -82,91 +115,255 @@
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()+"鐨勫憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
+ if (job == null) {
+ throw new BaseException("缂栧彿涓�" + staffOnJobParams.getStaffNo() + "鐨勫憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
}
- // 鏇存柊鍛樺伐鏁版嵁
- String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
- BeanUtils.copyProperties(staffOnJobParams,job,ignoreProperties);
- staffOnJobMapper.updateById(job);
+ String[] ignoreProperties = { "id" };// 鎺掗櫎鏇存柊灞炴��
// 鑾峰彇鏈�鏂板悎鍚屾暟鎹紝骞朵笖鏇存柊
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);
+ if (contract != null) {
+ BeanUtils.copyProperties(staffOnJobParams, contract, ignoreProperties);
+ staffContractMapper.updateById(contract);
}
- return 0;
+
+ // 鍒犻櫎鎵�鏈夊瓙琛ㄦ暟鎹�
+ 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));
+ }
+
+ // 鍒犻櫎鍏ヨ亴
@Override
@Transactional(rollbackFor = Exception.class)
public int delStaffOnJobs(List<Integer> ids) {
+ List<StaffOnJob> staffOnJobs = staffOnJobMapper
+ .selectList(Wrappers.<StaffOnJob>lambdaQuery().in(StaffOnJob::getId, ids));
+ if (CollectionUtils.isEmpty(staffOnJobs)) {
+ throw new BaseException("璇ュ憳宸ヤ笉瀛樺湪,鏃犳硶鍒犻櫎!!!");
+ }
// 鍒犻櫎鍏ヨ亴鏁版嵁
staffOnJobMapper.deleteBatchIds(ids);
// 鍒犻櫎绂昏亴鏁版嵁
staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids));
+ // 鍒犻櫎鎵撳崱璁板綍
+ personalAttendanceRecordsMapper.delete(
+ Wrappers.<PersonalAttendanceRecords>lambdaQuery().in(PersonalAttendanceRecords::getStaffOnJobId, ids));
+ // 鍒犻櫎鐢ㄦ埛鏁版嵁
+ List<SysUser> sysUsers = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
+ .in(SysUser::getUserName,
+ staffOnJobs.stream().map(StaffOnJob::getStaffNo).collect(Collectors.toList())));
+ if (CollectionUtils.isNotEmpty(sysUsers)) {
+ 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));
+ 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;
+ }
+
+ // 鍦ㄨ亴鍛樺伐璇︽儏
@Override
public StaffOnJobDto staffOnJobDetail(Long id) {
- StaffOnJob staffOnJob = staffOnJobMapper.selectById(id);
+ StaffOnJob staffOnJob = staffOnJobMapper.selectById(id);
+ if (staffOnJob == null) {
+ throw new IllegalArgumentException("璇ュ憳宸ヤ笉瀛樺湪");
+ }
+
StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
// 鏌ヨ宀椾綅鍚嶇О
- SysPost post = sysPostMapper.selectPostById((long) staffOnJob.getSysPostId());
- staffOnJobDto.setPostName(post.getPostName());
+ if (staffOnJob.getSysPostId() != null) {
+ SysPost post = sysPostMapper.selectPostById(staffOnJob.getSysPostId().longValue());
+ if (post != null) {
+ staffOnJobDto.setPostName(post.getPostName());
+ }
+ }
// 鏌ヨ鍚堝悓淇℃伅
StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
.eq(StaffContract::getStaffOnJobId, staffOnJob.getId())
+ .last("limit 1")
.orderByDesc(StaffContract::getId));
- if (contract != null){
+ if (contract != null) {
staffOnJobDto.setContractTerm(contract.getContractTerm());
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;
}
- //鍦ㄨ亴鍛樺伐瀵煎嚭
+ // 鍦ㄨ亴鍛樺伐瀵煎嚭
@Override
public void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob) {
List<StaffOnJobDto> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob);
ExcelUtil<StaffOnJobDto> util = new ExcelUtil<StaffOnJobDto>(StaffOnJobDto.class);
- util.exportExcel(response, staffOnJobs, "鍦ㄨ亴鍛樺伐鍙拌处瀵煎嚭");
+ util.exportExcel(response, staffOnJobs, "鍛樺伐鍙拌处瀵煎嚭");
}
@Override
- public List<StaffJoinLeaveRecord> staffOnJobList() {
- return staffJoinLeaveRecordMapper.staffOnJobList();
+ public List<StaffOnJobDto> staffOnJobList(StaffOnJob staffOnJob) {
+ return staffOnJobMapper.staffOnJobList(staffOnJob);
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public Boolean importData(MultipartFile file) {
try {
- ExcelUtil<StaffOnJob> util = new ExcelUtil<>(StaffOnJob.class);
- List<StaffOnJob> staffOnJobs = util.importExcel(file.getInputStream());
- return saveOrUpdateBatch(staffOnJobs);
+ ExcelUtil<StaffOnJobExcelDto> util = new ExcelUtil<>(StaffOnJobExcelDto.class);
+ List<StaffOnJobExcelDto> staffOnJobs = util.importExcel(file.getInputStream());
+ if (CollectionUtils.isEmpty(staffOnJobs)) {
+ return false;
+ }
+ // 鑾峰彇鎵�鏈夐儴闂ㄦ暟鎹�
+ List<SysDept> sysDepts = sysDeptMapper
+ .selectList(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDelFlag, 0));
+ // 鑾峰彇鎵�鏈夎鑹叉暟鎹�
+ List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
+ staffOnJobs.forEach(staffOnJob -> {
+ // 澶勭悊鍚堝悓鏈熼檺鏁版嵁鏍煎紡
+ if (staffOnJob.getContractTerm() != null && !staffOnJob.getContractTerm().trim().isEmpty()) {
+ String term = staffOnJob.getContractTerm().trim();
+ try {
+ Integer.parseInt(term);
+ } catch (NumberFormatException e) {
+ throw new ServiceException("鍛樺伐[" + staffOnJob.getStaffName() + "]鐨勫悎鍚屾湡闄怺"
+ + staffOnJob.getContractTerm() + "]鏍煎紡涓嶆纭紝蹇呴』涓虹函鏁板瓧(濡�: 1, 2, 3)");
+ }
+ }
+ StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
+ BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
+ // 閫氳繃鍚嶇О鑾峰彇閮ㄩ棬id
+ Long deptId = sysDepts.stream()
+ .filter(dept -> dept.getDeptName() != null
+ && dept.getDeptName().equals(staffOnJob.getSysDeptName()))
+ .findFirst()
+ .map(SysDept::getDeptId)
+ .orElse(null);
+ if (deptId == null) {
+ throw new ServiceException(
+ "鍛樺伐[" + staffOnJob.getStaffName() + "]鐨勯儴闂╗" + staffOnJob.getSysDeptName() + "]涓嶅瓨鍦紝璇锋鏌ユ暟鎹�");
+ }
+ staffOnJobDto.setSysDeptId(deptId);
+
+ // 閫氳繃鍚嶇О鑾峰彇瑙掕壊id
+ Long roleId = sysRoles.stream()
+ .filter(role -> role.getRoleName() != null
+ && role.getRoleName().equals(staffOnJob.getRoleName()))
+ .findFirst()
+ .map(SysRole::getRoleId)
+ .orElse(null);
+ if (roleId == null) {
+ throw new ServiceException(
+ "鍛樺伐[" + staffOnJob.getStaffName() + "]鐨勮鑹瞇" + staffOnJob.getRoleName() + "]涓嶅瓨鍦紝璇锋鏌ユ暟鎹�");
+ }
+ staffOnJobDto.setRoleId(roleId);
+ SpringUtils.getAopProxy(this).add(staffOnJobDto);
+ });
+ return true;
+ } catch (ServiceException | BaseException e) {
+ throw e;
} catch (Exception e) {
- e.printStackTrace();
- return false;
+ log.error("鍛樺伐鍙拌处瀵煎叆澶辫触 : " + e.getMessage());
+ throw new ServiceException("瀵煎叆澶辫触: " + e.getMessage());
}
}
-
@Override
public String exportCopy(HttpServletResponse response, StaffOnJob staffOnJob) throws Exception {
@@ -175,7 +372,7 @@
// 璁剧疆妯℃澘鏂囦欢鎵�鍦ㄧ洰褰曪紙缁濆璺緞锛屼緥濡傦細/templates/锛�
cfg.setClassForTemplateLoading(StaffOnJobServiceImpl.class, "/static");
cfg.setDefaultEncoding("UTF-8");
- //2.瀹氫箟闇�瑕佸~鍏呯殑鍙橀噷
+ // 2.瀹氫箟闇�瑕佸~鍏呯殑鍙橀噷
// 鈶� 鏋勯�犲憳宸ヤ俊鎭紙瀹為檯椤圭洰涓彲浠庢暟鎹簱/Excel璇诲彇锛�
WordDateDto staff = new WordDateDto();
BeanUtils.copyProperties(staffOnJob, staff);
@@ -185,7 +382,7 @@
Instant instant = staff.getContractExpireTime().toInstant();
// 涔熷彲浠ユ寚瀹氬叿浣撴椂鍖猴紝渚嬪Asia/Shanghai锛�
- LocalDate localDate = instant.atZone(ZoneId.of("Asia/Shanghai")).toLocalDate(); // 鍚堝悓缁撴潫鏃堕棿
+ LocalDate localDate = instant.atZone(ZoneId.of("Asia/Shanghai")).toLocalDate(); // 鍚堝悓缁撴潫鏃堕棿
LocalDate localDate1 = localDate.minusYears(Integer.parseInt(staff.getContractTerm()));// 鍚堝悓寮�濮嬫椂闂�
// 绛捐鏃ユ湡杞崲lcoaldate
@@ -198,7 +395,7 @@
staff.setQyear(localDate2.getYear() + "");
staff.setQmoth(localDate2.getMonthValue() + "");
staff.setQday(localDate2.getDayOfMonth() + "");
- if(staff.getDateSelect().equals("A")){
+ if (staff.getDateSelect().equals("A")) {
staff.setSyear(localDate1.getYear() + "");
staff.setSmoth(localDate1.getMonthValue() + "");
staff.setSday(localDate1.getDayOfMonth() + "");
@@ -212,7 +409,7 @@
staff.setSeyear(localDate4.getYear() + "");
staff.setSemoth(localDate4.getMonthValue() + "");
staff.setSeday(localDate4.getDayOfMonth() + "");
- }else if (staff.getDateSelect().equals("B")){
+ } else if (staff.getDateSelect().equals("B")) {
staff.setBsyear(localDate1.getYear() + "");
staff.setBsmoth(localDate1.getMonthValue() + "");
@@ -224,29 +421,27 @@
staff.setBseyear(localDate4.getYear() + "");
staff.setBsemoth(localDate4.getMonthValue() + "");
staff.setBseday(localDate4.getDayOfMonth() + "");
- }else if (staff.getDateSelect().equals("C")){
+ } else if (staff.getDateSelect().equals("C")) {
staff.setCsyear(localDate1.getYear() + "");
staff.setCsmoth(localDate1.getMonthValue() + "");
staff.setCsday(localDate1.getDayOfMonth() + "");
}
- Map<String,Object> data = new HashMap<>();
- data.put("item",staff);
- //3.鍔犺浇XML 妯℃澘
+ Map<String, Object> data = new HashMap<>();
+ data.put("item", staff);
+ // 3.鍔犺浇XML 妯℃澘
Template template = cfg.getTemplate("鍔冲姩鍚堝悓涔�.xml");
- //4.鐢熸垚濉厖鍚庣殑 XML 鍐呭
+ // 4.鐢熸垚濉厖鍚庣殑 XML 鍐呭
StringWriter out = new StringWriter();
template.process(data, out);
String filledXml = out.toString();
- //5.灏哫ML鍐呭鍐欏叆浜や欢骞舵敼涓�.docx 鏍煎紡
+ // 5.灏哫ML鍐呭鍐欏叆浜や欢骞舵敼涓�.docx 鏍煎紡
File outputFile = new File(url);
- try(FileOutputStream fos = new FileOutputStream(outputFile);
- OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) {
+ try (FileOutputStream fos = new FileOutputStream(outputFile);
+ OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) {
osw.write(filledXml);
}
return url;
}
-
-
}
--
Gitblit v1.9.3