diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java index 303d6344..fe61d24f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java @@ -1,5 +1,7 @@ package org.springblade.desk.jobTransfer.controller; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.media.Schema; @@ -108,7 +110,7 @@ public class PostHandleController extends BladeController { @ApiOperationSupport(order = 6) @Operation(summary = "新增或修改", description = "传入postHandle") public R submit(@Valid @RequestBody PostHandleEntity postHandle) { - return R.status(postHandleService.saveOrUpdate(postHandle)); + return postHandleService.saveOrUpdateHandle(postHandle); } /** @@ -121,6 +123,39 @@ public class PostHandleController extends BladeController { return R.status(postHandleService.deleteLogic(Func.toLongList(ids))); } + /** + * 批量转正 + * + * @param ids + * @return R + */ + @PostMapping("/regularization") + @ApiOperationSupport(order = 8) + @Operation(summary = "转正", description = "传入ids") + public R regularization(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return postHandleService.regularization(Func.toLongList(ids)); + + } + + /** + * 批量转岗计划 + * + * @param ids + * @param teacherId + * @param teacherName + * @param trainingPlanId + * @return + */ + @PostMapping("/JobTransferPlan") + @ApiOperationSupport(order = 8) + @Operation(summary = "批量转岗计划", description = "传入ids") + public R JobTransferPlan(@Parameter(description = "主键集合", required = true) @RequestParam String ids, + @Parameter(description = "培训师id", required = true) @RequestParam Long teacherId, + @Parameter(description = "培训师姓名", required = true) @RequestParam String teacherName, + @Parameter(description = "培训模板id", required = true) @RequestParam Long trainingPlanId) { + return postHandleService.JobTransferPlan(Func.toLongList(ids), teacherId, teacherName, trainingPlanId); + } + /** * 导出数据 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IPostHandleService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IPostHandleService.java index 319d21d7..871a868c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IPostHandleService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IPostHandleService.java @@ -1,6 +1,7 @@ package org.springblade.desk.jobTransfer.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.tool.api.R; import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity; import org.springblade.desk.jobTransfer.pojo.excel.PostHandleExcel; import org.springblade.desk.jobTransfer.pojo.request.PostHandleQuery; @@ -35,4 +36,21 @@ public interface IPostHandleService extends BaseService { */ List exportPostHandle(Wrapper queryWrapper); + /** + * 批量转正 + * + * @param ids + * @return + */ + R regularization(List ids); + + /** + * 新增 + * + * @param postHandleEntity + * @return + */ + R saveOrUpdateHandle(PostHandleEntity postHandleEntity); + + R JobTransferPlan(List ids, Long teacherId, String teacherName, Long trainingPlanId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java index 0e6c9b11..29d31967 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java @@ -1,21 +1,26 @@ package org.springblade.desk.jobTransfer.service.impl; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import org.springblade.core.tool.api.R; +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.enums.StaffTypeEnum; +import org.springblade.desk.jobTransfer.pojo.enums.TrainingStatusEnum; import org.springblade.desk.jobTransfer.pojo.excel.PostHandleExcel; import org.springblade.desk.jobTransfer.pojo.request.PostHandleQuery; import org.springblade.desk.jobTransfer.pojo.vo.PostHandleVO; import org.springblade.desk.jobTransfer.mapper.PostHandleMapper; +import org.springblade.desk.jobTransfer.service.ICultivateDetailService; import org.springblade.desk.jobTransfer.service.IPostHandleService; -import org.springblade.system.pojo.entity.Dept; -import org.springblade.system.pojo.entity.User; +import org.springframework.beans.factory.annotation.Autowired; 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 java.util.Date; import java.util.List; -import java.util.Objects; /** * 岗位处理 服务实现类 @@ -26,6 +31,9 @@ import java.util.Objects; @Service public class PostHandleServiceImpl extends BaseServiceImpl implements IPostHandleService { + @Autowired + private ICultivateDetailService iCultivateDetailService; + @Override public IPage selectPostHandlePage(IPage page, PostHandleQuery postHandleQuery) { // return page.setRecords(baseMapper.selectPostHandlePage(page, postHandle)); @@ -43,4 +51,76 @@ public class PostHandleServiceImpl extends BaseServiceImpl ids) { + // 1. 验证阶段:查看匹配的数据数量,如数量和id不同,则失败 + Long matchedCount = this.lambdaQuery() + .in(PostHandleEntity::getId, ids) +// .eq(PostHandleEntity::getPhStatus, PostHandleStatusEnum.of("")) + .eq(PostHandleEntity::getStaffType, StaffTypeEnum.of("实习工").getCode()) + .eq(PostHandleEntity::getIsDeleted, 0) + .count(); + if (matchedCount < ids.size()) { + return R.fail("请选择实习工进行转正操作"); + } + + //更新阶段 + 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()) + .set(PostHandleEntity::getUpdateTime, new Date()) + .update(); + return R.status(updateSuccess); + } + + @Override + public R saveOrUpdateHandle(PostHandleEntity postHandleEntity) { + + if (null != postHandleEntity.getId() && postHandleEntity.getId() > 0) { + //更新 + return R.status(this.updateById(postHandleEntity)); + } else { + //同一用户不允许多次新增 + Long existCount = this.lambdaQuery() + .eq(PostHandleEntity::getUserId, postHandleEntity.getUserId()) + .eq(PostHandleEntity::getIsDeleted, 0) + .count(); + if (existCount > 0) { + return R.fail("该用户已存在岗位处理记录,不允许重复添加"); + } + // 如果是正式工状态为正常 + if (postHandleEntity.getStaffType() == StaffTypeEnum.of("正式工").getCode().shortValue()) { + postHandleEntity.setPhStatus(PostHandleStatusEnum.of("正常").getCode().shortValue()); + } else { + postHandleEntity.setPhStatus(PostHandleStatusEnum.of("实习中").getCode().shortValue()); + } + boolean save = this.save(postHandleEntity); + //实习工自动创建一条培训计划 + createPlan(postHandleEntity); + return R.status(save); + } + } + + @Override + public R JobTransferPlan(List ids, Long teacherId, String teacherName, Long trainingPlanId) { + + return null; + } + + /** + * 实习工自动创建一条培训计划 + * + * @param postHandleEntity + */ + public void createPlan(PostHandleEntity postHandleEntity) { + if (postHandleEntity.getStaffType() == StaffTypeEnum.of("实习工").getCode().shortValue()) { + CultivateDetailEntity cultivateDetailEntity = new CultivateDetailEntity(); + cultivateDetailEntity.setPhId(postHandleEntity.getId()); + cultivateDetailEntity.setType((short) 1); + cultivateDetailEntity.setCaStatus(TrainingStatusEnum.of("未配置").getCode().shortValue()); + iCultivateDetailService.save(cultivateDetailEntity); + } + } }