|
|
|
|
@ -18,7 +18,9 @@ import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
@ -52,12 +54,13 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public R regularization(List<Long> ids) { |
|
|
|
|
// 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败
|
|
|
|
|
Long matchedCount = this.lambdaQuery() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
// .eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.of(""))
|
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.of("实习工").getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FIELD_WORK.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getIsDeleted, 0) |
|
|
|
|
.count(); |
|
|
|
|
if (matchedCount < ids.size()) { |
|
|
|
|
@ -67,15 +70,16 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos |
|
|
|
|
//更新阶段
|
|
|
|
|
boolean updateSuccess = this.lambdaUpdate() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.of("实习工").getCode()) |
|
|
|
|
.set(PostHandleEntity::getStaffType, StaffTypeEnum.of("正式工").getCode()) |
|
|
|
|
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.of("正常").getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FIELD_WORK.getCode()) |
|
|
|
|
.set(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode()) |
|
|
|
|
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.NORMALITY.getCode()) |
|
|
|
|
.set(PostHandleEntity::getUpdateTime, new Date()) |
|
|
|
|
.update(); |
|
|
|
|
return R.status(updateSuccess); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public R saveOrUpdateHandle(PostHandleEntity postHandleEntity) { |
|
|
|
|
|
|
|
|
|
if (null != postHandleEntity.getId() && postHandleEntity.getId() > 0) { |
|
|
|
|
@ -91,10 +95,10 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos |
|
|
|
|
return R.fail("该用户已存在岗位处理记录,不允许重复添加"); |
|
|
|
|
} |
|
|
|
|
// 如果是正式工状态为正常
|
|
|
|
|
if (postHandleEntity.getStaffType() == StaffTypeEnum.of("正式工").getCode().shortValue()) { |
|
|
|
|
postHandleEntity.setPhStatus(PostHandleStatusEnum.of("正常").getCode().shortValue()); |
|
|
|
|
if (postHandleEntity.getStaffType() == StaffTypeEnum.FORMAL.getCode().shortValue()) { |
|
|
|
|
postHandleEntity.setPhStatus(PostHandleStatusEnum.NORMALITY.getCode().shortValue()); |
|
|
|
|
} else { |
|
|
|
|
postHandleEntity.setPhStatus(PostHandleStatusEnum.of("实习中").getCode().shortValue()); |
|
|
|
|
postHandleEntity.setPhStatus(PostHandleStatusEnum.IN_PRACTICE.getCode().shortValue()); |
|
|
|
|
} |
|
|
|
|
boolean save = this.save(postHandleEntity); |
|
|
|
|
//实习工自动创建一条培训计划
|
|
|
|
|
@ -104,9 +108,85 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public R JobTransferPlan(List<Long> ids, Long teacherId, String teacherName, Long trainingPlanId) { |
|
|
|
|
// 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败
|
|
|
|
|
Long matchedCount = this.lambdaQuery() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.NORMALITY.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getIsDeleted, 0) |
|
|
|
|
.count(); |
|
|
|
|
if (matchedCount < ids.size()) { |
|
|
|
|
return R.fail("请选择正式工安排转岗计划"); |
|
|
|
|
} |
|
|
|
|
// 2. 更新人员岗位数据
|
|
|
|
|
boolean updateSuccess = this.lambdaUpdate() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.NORMALITY.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode()) |
|
|
|
|
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.JOB_TRANSFER.getCode()) |
|
|
|
|
.set(PostHandleEntity::getUpdateTime, new Date()) |
|
|
|
|
.update(); |
|
|
|
|
if (!updateSuccess) { |
|
|
|
|
return R.fail("转岗计划操作失败"); |
|
|
|
|
} |
|
|
|
|
// 3. 为每条转岗计划新增培训安排
|
|
|
|
|
List<CultivateDetailEntity> cultivateDetails = new ArrayList<>(); |
|
|
|
|
for (Long phId : ids) { |
|
|
|
|
CultivateDetailEntity detail = new CultivateDetailEntity(); |
|
|
|
|
detail.setType((short) 2); |
|
|
|
|
detail.setPlanId(trainingPlanId); |
|
|
|
|
detail.setPhId(phId); |
|
|
|
|
detail.setCaStatus(TrainingStatusEnum.WAIT_DISTRIBUTE.getCode().shortValue()); |
|
|
|
|
detail.setTeacherId(teacherId); |
|
|
|
|
detail.setTeacherName(teacherName); |
|
|
|
|
cultivateDetails.add(detail); |
|
|
|
|
} |
|
|
|
|
boolean saveResult = iCultivateDetailService.saveBatch(cultivateDetails); |
|
|
|
|
|
|
|
|
|
return R.status(saveResult, "操作成功"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public R layoffPlan(List<Long> ids, Long teacherId, String teacherName, Long trainingPlanId) { |
|
|
|
|
// 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败
|
|
|
|
|
Long matchedCount = this.lambdaQuery() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.NORMALITY.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getIsDeleted, 0) |
|
|
|
|
.count(); |
|
|
|
|
if (matchedCount < ids.size()) { |
|
|
|
|
return R.fail("请选择正式工安排下岗计划"); |
|
|
|
|
} |
|
|
|
|
// 2. 更新人员岗位数据
|
|
|
|
|
boolean updateSuccess = this.lambdaUpdate() |
|
|
|
|
.in(PostHandleEntity::getId, ids) |
|
|
|
|
.eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.NORMALITY.getCode()) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode()) |
|
|
|
|
.set(PostHandleEntity::getPhStatus, PostHandleStatusEnum.LAID_OFF.getCode()) |
|
|
|
|
.set(PostHandleEntity::getUpdateTime, new Date()) |
|
|
|
|
.update(); |
|
|
|
|
if (!updateSuccess) { |
|
|
|
|
return R.fail("下岗计划操作失败"); |
|
|
|
|
} |
|
|
|
|
// 3. 为每条下岗计划新增培训安排
|
|
|
|
|
List<CultivateDetailEntity> cultivateDetails = new ArrayList<>(); |
|
|
|
|
for (Long phId : ids) { |
|
|
|
|
CultivateDetailEntity detail = new CultivateDetailEntity(); |
|
|
|
|
detail.setType((short) 3); |
|
|
|
|
detail.setPlanId(trainingPlanId); |
|
|
|
|
detail.setPhId(phId); |
|
|
|
|
detail.setCaStatus(TrainingStatusEnum.WAIT_DISTRIBUTE.getCode().shortValue()); |
|
|
|
|
detail.setTeacherId(teacherId); |
|
|
|
|
detail.setTeacherName(teacherName); |
|
|
|
|
cultivateDetails.add(detail); |
|
|
|
|
} |
|
|
|
|
boolean saveResult = iCultivateDetailService.saveBatch(cultivateDetails); |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
return R.status(saveResult, "操作成功"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|