批量培训完成根据不同的人员岗位状态设置不同的目标状态,人员岗位管理转岗功能和离职功能

develop-QA
qinyulong 4 months ago
parent e89e50e3fe
commit 560ef1c7a5
  1. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/enums/PostHandleStatusEnum.java
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java
  4. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java
  5. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java
  6. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java
  7. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IPostHandleService.java
  8. 38
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java
  9. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java

@ -137,9 +137,9 @@ public class PostHandleEntity extends BaseEntity {
@Schema(description = "转岗时间") @Schema(description = "转岗时间")
private Date toNewJob; private Date toNewJob;
/** /**
* 1实习-培训中,2转岗中,3正常,4下岗中,5离职,6培训合格,7培训不合格 * 1实习-培训中,2转岗中,3正常,4下岗中,5离职,6转岗培训合格,7下岗培训合格8实习培训合格9培训不合格
*/ */
@Schema(description = "1实习-培训中,2转岗中,3正常,4下岗中,5离职,6培训合格,7培训不合格") @Schema(description = "1实习-培训中,2转岗中,3正常,4下岗中,5离职,6转岗培训合格,7下岗培训合格,8实习培训合格,9培训不合格")
private Short phStatus; private Short phStatus;
} }

@ -26,8 +26,10 @@ public enum PostHandleStatusEnum {
NORMALITY("正常", 3), NORMALITY("正常", 3),
LAID_OFF("下岗中", 4), LAID_OFF("下岗中", 4),
DEPART("离职", 5), DEPART("离职", 5),
TRAINED("培训合格", 6), JOB_TRANSFER_TRAINED("转岗培训合格", 6),
UNQUALIFIED("培训不合格", 7), LAID_OFF_TRAINED("下岗培训合格", 7),
IN_PRACTICE_TRAINED("实习培训合格", 8),
UNQUALIFIED("培训不合格", 9),
; ;
final String name; final String name;
final Integer code; final Integer code;

@ -191,7 +191,7 @@ public class CultivateDetailController extends BladeController {
cultivateDetail.setCaStatus(TrainingStatusEnum.OK_TRAINED.getCode().shortValue()); cultivateDetail.setCaStatus(TrainingStatusEnum.OK_TRAINED.getCode().shortValue());
cultivateDetail.setFinishTime(new Date()); cultivateDetail.setFinishTime(new Date());
} }
return R.status(cultivateDetailService.saveOrUpdateBatch(cultivateDetails)); return cultivateDetailService.trainingCompleted(cultivateDetails);
} }
@PostConstruct // 项目启动后立即执行一次 @PostConstruct // 项目启动后立即执行一次

@ -225,4 +225,25 @@ public class PostHandleController extends BladeController {
return postHandleService.saveExcelData(importList); return postHandleService.saveExcelData(importList);
} }
/**
* 转岗
*/
@PostMapping("/jobTransfer")
@ApiOperationSupport(order = 13)
@Operation(summary = "转岗", description = "传入postHandle")
public R jobTransfer(@Valid @RequestBody PostHandleEntity postHandle) {
return postHandleService.jobTransfer(postHandle);
}
/**
* 离职
*/
@PostMapping("/depart")
@ApiOperationSupport(order = 14)
@Operation(summary = "离职", description = "传入postHandle")
public R depart(@Valid @RequestBody PostHandleEntity postHandle) {
return postHandleService.depart(postHandle);
}
} }

@ -16,6 +16,8 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.enums.TrainingStatusEnum;
import org.springblade.desk.jobTransfer.pojo.excel.TrainingPlanExcel; import org.springblade.desk.jobTransfer.pojo.excel.TrainingPlanExcel;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -29,6 +31,7 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.BladeConstant;
import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
@ -113,6 +116,16 @@ public class TrainingPlanController extends BladeController {
return R.status(trainingPlanService.deleteLogic(Func.toLongList(ids))); return R.status(trainingPlanService.deleteLogic(Func.toLongList(ids)));
} }
/**
* 批量增改
*/
@PostMapping("/submit-list")
@ApiOperationSupport(order = 8)
@Operation(summary = "批量增改", description = "传入trainingPlanEntities")
public R issued(@Valid @RequestBody List<TrainingPlanEntity> trainingPlanEntities) {
return R.status(trainingPlanService.saveOrUpdateBatch(trainingPlanEntities));
}
/** /**
* 导出数据 * 导出数据

@ -1,6 +1,7 @@
package org.springblade.desk.jobTransfer.service; package org.springblade.desk.jobTransfer.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.core.tool.api.R;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity; import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel; import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery; import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
@ -35,6 +36,13 @@ public interface ICultivateDetailService extends BaseService<CultivateDetailEnti
*/ */
List<CultivateDetailExcel> exportCultivateDetail(Wrapper<CultivateDetailEntity> queryWrapper); List<CultivateDetailExcel> exportCultivateDetail(Wrapper<CultivateDetailEntity> queryWrapper);
/**
* 批量培训完成
*
* @param cultivateDetails
* @return
*/
R trainingCompleted(List<CultivateDetailEntity> cultivateDetails);
/** /**
* 培训超期 * 培训超期
*/ */

@ -82,4 +82,20 @@ public interface IPostHandleService extends BaseService<PostHandleEntity> {
* @return * @return
*/ */
R saveExcelData(List<PostHandleImport> postHandleEntityList); R saveExcelData(List<PostHandleImport> postHandleEntityList);
/**
* 转岗
*
* @param postHandleEntity
* @return
*/
R jobTransfer(PostHandleEntity postHandleEntity);
/**
* 离职
*
* @param postHandleEntity
* @return
*/
R depart(PostHandleEntity postHandleEntity);
} }

@ -1,17 +1,27 @@
package org.springblade.desk.jobTransfer.service.impl; package org.springblade.desk.jobTransfer.service.impl;
import jakarta.annotation.Resource;
import org.springblade.core.tool.api.R;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity; import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity;
import org.springblade.desk.jobTransfer.pojo.enums.PostHandleStatusEnum;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel; import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery; import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO; import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO;
import org.springblade.desk.jobTransfer.mapper.CultivateDetailMapper; import org.springblade.desk.jobTransfer.mapper.CultivateDetailMapper;
import org.springblade.desk.jobTransfer.service.ICultivateDetailService; import org.springblade.desk.jobTransfer.service.ICultivateDetailService;
import org.springblade.desk.jobTransfer.service.IPostHandleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* 培训安排 服务实现类 * 培训安排 服务实现类
@ -22,6 +32,9 @@ import java.util.List;
@Service @Service
public class CultivateDetailServiceImpl extends BaseServiceImpl<CultivateDetailMapper, CultivateDetailEntity> implements ICultivateDetailService { public class CultivateDetailServiceImpl extends BaseServiceImpl<CultivateDetailMapper, CultivateDetailEntity> implements ICultivateDetailService {
@Resource
private IPostHandleService postHandleService;
@Override @Override
public IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailQuery cultivateDetailQuery) { public IPage<CultivateDetailVO> selectCultivateDetailPage(IPage<CultivateDetailVO> page, CultivateDetailQuery cultivateDetailQuery) {
return page.setRecords(baseMapper.selectCultivateDetailPage(page, cultivateDetailQuery)); return page.setRecords(baseMapper.selectCultivateDetailPage(page, cultivateDetailQuery));
@ -37,6 +50,31 @@ public class CultivateDetailServiceImpl extends BaseServiceImpl<CultivateDetailM
return cultivateDetailList; return cultivateDetailList;
} }
@Override
@Transactional(rollbackFor = Exception.class)
public R trainingCompleted(List<CultivateDetailEntity> cultivateDetails) {
//1.批量修改培训计划状态
boolean saved = this.saveOrUpdateBatch(cultivateDetails);
if (!saved) {
return R.fail("批量操作失败");
}
//2.批量修改人员岗位表数据
Set<Long> phIds = cultivateDetails.stream().map(CultivateDetailEntity::getPhId).collect(Collectors.toSet());
boolean updateSuccess = postHandleService.lambdaUpdate()
.in(PostHandleEntity::getId, phIds)
// 根据不同的原始状态设置不同的目标状态
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.JOB_TRANSFER.getCode())
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.JOB_TRANSFER_TRAINED.getCode())
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.LAID_OFF.getCode())
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.LAID_OFF_TRAINED.getCode())
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.IN_PRACTICE.getCode())
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.IN_PRACTICE_TRAINED.getCode())
// 统一设置更新时间
.set(PostHandleEntity::getUpdateTime, new Date())
.update();
return R.status(updateSuccess);
}
@Override @Override
public void exceed() { public void exceed() {
baseMapper.exceed(); baseMapper.exceed();

@ -3,7 +3,9 @@ package org.springblade.desk.jobTransfer.service.impl;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity; import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.entity.EquipmentMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity; import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity;
import org.springblade.desk.jobTransfer.pojo.enums.*; import org.springblade.desk.jobTransfer.pojo.enums.*;
import org.springblade.desk.jobTransfer.pojo.excel.PostHandleExcel; import org.springblade.desk.jobTransfer.pojo.excel.PostHandleExcel;
@ -11,7 +13,9 @@ import org.springblade.desk.jobTransfer.pojo.excel.PostHandleImport;
import org.springblade.desk.jobTransfer.pojo.request.PostHandleQuery; import org.springblade.desk.jobTransfer.pojo.request.PostHandleQuery;
import org.springblade.desk.jobTransfer.pojo.vo.PostHandleVO; import org.springblade.desk.jobTransfer.pojo.vo.PostHandleVO;
import org.springblade.desk.jobTransfer.mapper.PostHandleMapper; import org.springblade.desk.jobTransfer.mapper.PostHandleMapper;
import org.springblade.desk.jobTransfer.service.ICertificateMaintenanceService;
import org.springblade.desk.jobTransfer.service.ICultivateDetailService; import org.springblade.desk.jobTransfer.service.ICultivateDetailService;
import org.springblade.desk.jobTransfer.service.IEquipmentMaintenanceService;
import org.springblade.desk.jobTransfer.service.IPostHandleService; import org.springblade.desk.jobTransfer.service.IPostHandleService;
import org.springblade.system.cache.SysCache; import org.springblade.system.cache.SysCache;
import org.springblade.system.cache.UserCache; import org.springblade.system.cache.UserCache;
@ -40,6 +44,12 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
@Resource @Resource
private ICultivateDetailService iCultivateDetailService; private ICultivateDetailService iCultivateDetailService;
@Resource
private ICertificateMaintenanceService certificateMaintenanceService;
@Resource
private IEquipmentMaintenanceService equipmentMaintenanceService;
@Override @Override
public IPage<PostHandleVO> selectPostHandlePage(IPage<PostHandleVO> page, PostHandleQuery postHandleQuery) { public IPage<PostHandleVO> selectPostHandlePage(IPage<PostHandleVO> page, PostHandleQuery postHandleQuery) {
// return page.setRecords(baseMapper.selectPostHandlePage(page, postHandle)); // return page.setRecords(baseMapper.selectPostHandlePage(page, postHandle));
@ -63,12 +73,12 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
// 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败 // 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败
Long matchedCount = this.lambdaQuery() Long matchedCount = this.lambdaQuery()
.in(PostHandleEntity::getId, ids) .in(PostHandleEntity::getId, ids)
// .eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.of("")) .eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.IN_PRACTICE_TRAINED.getCode().shortValue())
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FIELD_WORK.getCode()) .eq(PostHandleEntity::getStaffType, StaffTypeEnum.FIELD_WORK.getCode())
.eq(PostHandleEntity::getIsDeleted, 0) .eq(PostHandleEntity::getIsDeleted, 0)
.count(); .count();
if (matchedCount < ids.size()) { if (matchedCount < ids.size()) {
return R.fail("请选择实习工进行转正操作"); return R.fail("请在实习培训完成后操作");
} }
//更新阶段 //更新阶段
@ -231,6 +241,43 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
return R.status(saved); return R.status(saved);
} }
@Override
public R jobTransfer(PostHandleEntity postHandleEntity) {
if (!(PostHandleStatusEnum.JOB_TRANSFER_TRAINED.getCode().shortValue() == postHandleEntity.getPhStatus())) {
return R.fail("请在转岗培训完成后操作");
}
postHandleEntity.setPhStatus(PostHandleStatusEnum.NORMALITY.getCode().shortValue());
postHandleEntity.setToNewJob(new Date());
return R.status(this.updateById(postHandleEntity));
}
@Override
@Transactional(rollbackFor = Exception.class)
public R depart(PostHandleEntity postHandleEntity) {
//1.离职修改状态
if (!(PostHandleStatusEnum.LAID_OFF_TRAINED.getCode().shortValue() == postHandleEntity.getPhStatus())) {
return R.fail("请在下岗培训完成后操作");
}
postHandleEntity.setPhStatus(PostHandleStatusEnum.DEPART.getCode().shortValue());
postHandleEntity.setToNewJob(new Date());
boolean updateP = this.updateById(postHandleEntity);
//2.离职后需把证书维护的状态置为离职
boolean updateC = certificateMaintenanceService.lambdaUpdate()
.eq(CertificateMaintenanceEntity::getPhId, postHandleEntity.getId())
.set(CertificateMaintenanceEntity::getMaintenanceStatus, MaintenanceStatusEnum.DEPART.getCode().shortValue())
.update();
//3.离职后需把设备维护的状态置为离职
boolean updateE = equipmentMaintenanceService.lambdaUpdate()
.eq(EquipmentMaintenanceEntity::getPhId, postHandleEntity.getId())
.set(EquipmentMaintenanceEntity::getMaintenanceStatus, MaintenanceStatusEnum.DEPART.getCode().shortValue())
.update();
if (updateP && updateC && updateE) {
return R.status(updateE);
} else {
return R.fail("操作失败");
}
}
/** /**
* 转换单个对象 * 转换单个对象
*/ */

Loading…
Cancel
Save