package com.ruoyi.personnel.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.domain.Result;
|
import com.ruoyi.common.numgen.NumberGenerator;
|
import com.ruoyi.personnel.dto.*;
|
import com.ruoyi.personnel.pojo.PersonTraining;
|
import com.ruoyi.personnel.pojo.PersonTrainingDetailed;
|
import com.ruoyi.personnel.pojo.PersonTrainingRecord;
|
import com.ruoyi.personnel.service.PersonTrainingDetailedService;
|
import com.ruoyi.personnel.service.PersonTrainingRecordService;
|
import com.ruoyi.personnel.service.PersonTrainingService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.util.*;
|
|
/**
|
* <p>
|
* 培训计划 前端控制器
|
* </p>
|
*
|
* @author 芯导软件(江苏)有限公司
|
* @since 2024-10-11 01:11:49
|
*/
|
@Api(tags = "人员 - 培训计划")
|
@RestController
|
@RequestMapping("/personTraining")
|
public class PersonTrainingController {
|
|
@Autowired
|
private PersonTrainingService personTrainingService;
|
|
@Autowired
|
private PersonTrainingDetailedService personTrainingDetailedService;
|
|
@Autowired
|
private PersonTrainingRecordService personTrainingRecordService;
|
|
@Resource
|
private NumberGenerator<PersonTrainingDetailed> numberGenerator;
|
|
@ApiOperation(value = "培训计划 导入")
|
@PostMapping("personTrainingImport")
|
public Result<?> personTrainingImport(@RequestPart("file") MultipartFile file) {
|
personTrainingService.personTrainingImport(file);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "培训计划 删除")
|
@DeleteMapping("personTrainingDelete")
|
public Result<?> personTrainingDelete(@RequestParam("id") Integer id) {
|
personTrainingService.personTrainingDelete(id);
|
return Result.success();
|
}
|
@ApiOperation(value = "培训计划 查询")
|
@GetMapping("personTrainingSelect")
|
public Result<IPage<PersonTrainingDto>> personTrainingSelect(Page page, String compilerName, Integer departmentId) {
|
IPage<PersonTrainingDto> iPage = personTrainingService.personTrainingSelect(page, compilerName, departmentId);
|
return Result.success(iPage);
|
}
|
|
@ApiOperation(value = "培训计划 年度计划明细表 删除")
|
@DeleteMapping("/deleteDetail")
|
public Result<?> deleteDetail( Integer id) {
|
personTrainingService.deleteDetail(id);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "年度培训计划 审核")
|
@PostMapping("reviewAnnualPersonnelTraining")
|
public Result<?> reviewAnnualPersonnelTraining(@RequestBody PersonTrainingUpdateDto personTrainingUpdateDto) {
|
personTrainingService.reviewAnnualPersonnelTraining(personTrainingUpdateDto);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "培训计划 批准")
|
@PostMapping("approveAnnualPersonnelTraining")
|
public Result<?> approveAnnualPersonnelTraining(@RequestBody PersonTrainingUpdateDto personTrainingUpdateDto) {
|
personTrainingService.approveAnnualPersonnelTraining(personTrainingUpdateDto);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "年度计划明细表 新增/编辑")
|
@PostMapping("addOrUpdatePersonTrainingDetailed")
|
public Result<?> addOrUpdatePersonTrainingDetailed(@RequestBody PersonTrainingDetailed personTrainingDetailed) {
|
if (ObjectUtils.isEmpty(personTrainingDetailed.getId())) {
|
personTrainingDetailed.setState(3);
|
String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
|
String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
|
String processNumber = numberGenerator.generateNumberWithPrefix(4, "KC" + month + "-" + year + month, PersonTrainingDetailed::getCourseCode);
|
personTrainingDetailed.setCourseCode(processNumber);
|
}
|
// 如果是新增 年度计划表需要重新审核、批准
|
if(Objects.isNull(personTrainingDetailed.getId())) {
|
PersonTraining byId = personTrainingService.getById(personTrainingDetailed.getPlanId());
|
personTrainingService.update(new LambdaUpdateWrapper<PersonTraining>()
|
.set(PersonTraining::getReviewerId,null)
|
.set(PersonTraining::getAuditDate,null)
|
.set(PersonTraining::getReviewerStatus,null)
|
.set(PersonTraining::getApproverId,null)
|
.set(PersonTraining::getApprovalStatus,null)
|
.set(PersonTraining::getApprovalDate,null)
|
.eq(PersonTraining::getId,byId.getId()));
|
}
|
// 如果时间已经到了,那么状态就要改为已结束
|
LocalDateTime now = LocalDateTime.now();
|
String trainingDateTwo = personTrainingDetailed.getTrainingDateTwo(); // 日期
|
String endTime = personTrainingDetailed.getEndTime(); // 结束时间
|
LocalDateTime parse = LocalDateTime.parse(trainingDateTwo + "T" + endTime);
|
if(now.isAfter(parse)) {
|
personTrainingDetailed.setState(4);
|
}
|
personTrainingDetailedService.saveOrUpdate(personTrainingDetailed);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "年度计划明细表 批量删除")
|
@DeleteMapping("deleteAnnualPlanDetailTable")
|
public Result<?> deleteAnnualPlanDetailTable(@RequestParam("ids") String ids) {
|
personTrainingDetailedService.deleteAnnualPlanDetailTable(ids);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "年度计划明细表 查询")
|
@GetMapping("queryTheAnnualPlanDetailsTable")
|
public Result<IPage<PersonTrainingDetailedDto>> queryTheAnnualPlanDetailsTable(Page page,
|
String trainingLecturerName, String courseCode,
|
String trainingDate, String id, Integer userId,
|
Integer departId,
|
Integer state) {
|
Integer planId = 0;
|
if(ObjectUtils.isNull(id) || StringUtils.isEmpty(id)) {
|
planId = null;
|
} else {
|
planId = Integer.parseInt(id);
|
}
|
IPage<PersonTrainingDetailedDto> iPage = personTrainingDetailedService.queryTheAnnualPlanDetailsTable(page,
|
trainingLecturerName, courseCode, trainingDate, planId, userId,departId,state);
|
return Result.success(iPage);
|
}
|
|
@ApiOperation(value = "年度计划明细表-结果明细-文件上传")
|
@PostMapping("/fileUpload")
|
public Result<?> fileUpload(@RequestParam MultipartFile file,@RequestParam Integer id) {
|
return Result.success(personTrainingDetailedService.fileUpload(file,id));
|
}
|
|
@ApiOperation(value = "查看所有部门")
|
@GetMapping("/selectDepartLims")
|
public Result<?> selectDepartLims() {
|
return Result.success(personTrainingDetailedService.selectDepartLims());
|
}
|
|
|
@ApiOperation(value = "培训与考核记录 查询")
|
@GetMapping("trainingAndAssessmentRecordsPage")
|
public Result<List<PersonTrainingRecordDto>> trainingAndAssessmentRecordsPage(Integer trainingDetailedId,
|
String userName) {
|
List<PersonTrainingRecordDto> list = personTrainingRecordService.trainingAndAssessmentRecordsPage(trainingDetailedId, userName);
|
return Result.success(list);
|
}
|
|
@ApiOperation(value = "培训与考核记录 新增人员")
|
@PostMapping("newPersonnelAddedToTrainingRecords")
|
public Result<?> newPersonnelAddedToTrainingRecords(@RequestBody List<PersonTrainingRecord> personTrainingRecord) {
|
personTrainingRecordService.saveBatch(personTrainingRecord);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "培训与考核记录 认领")
|
@PostMapping("claimOfTrainingAndAssessmentRecords")
|
public Result<?> claimOfTrainingAndAssessmentRecords(@RequestBody Map<String,Object> map) {
|
Boolean claimAndClaim = (Boolean)map.get("claimAndClaim");
|
Integer courseId = (Integer)map.get("courseId");
|
personTrainingRecordService.claimOfTrainingAndAssessmentRecords(claimAndClaim, courseId);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "培训与考核记录 提交/撤销")
|
@PostMapping("trainingAndAssessmentRecordsAdded")
|
public Result<?> trainingAndAssessmentRecordsAdded(@RequestBody PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) {
|
personTrainingDetailedService.update(Wrappers.<PersonTrainingDetailed>lambdaUpdate()
|
.eq(PersonTrainingDetailed::getId, personTrainingRecordSubmitDto.getTrainingDetailedId())
|
.set(PersonTrainingDetailed::getAssessmentMethod, personTrainingRecordSubmitDto.getAssessmentMethod())
|
.set(PersonTrainingDetailed::getComprehensiveAssessment, personTrainingRecordSubmitDto.getComprehensiveAssessment())
|
.set(PersonTrainingDetailed::getAssessmentUserId, personTrainingRecordSubmitDto.getAssessmentUserId())
|
.set(PersonTrainingDetailed::getAssessmentDate, personTrainingRecordSubmitDto.getAssessmentDate())
|
.set(PersonTrainingDetailed::getState, personTrainingRecordSubmitDto.getState())
|
.set(PersonTrainingDetailed::getTrainingAbstract,personTrainingRecordSubmitDto.getTrainingAbstract()));
|
return Result.success();
|
}
|
|
@ApiOperation(value = "培训与考核记录 删除")
|
@DeleteMapping("deleteTrainingAndAssessmentRecords")
|
public Result<?> deleteTrainingAndAssessmentRecords(@RequestParam("ids") String ids) {
|
personTrainingRecordService.deleteTrainingAndAssessmentRecords(ids);
|
return Result.success();
|
}
|
|
@PostMapping("outOfFocusPreservation")
|
public Result<?> outOfFocusPreservation(@RequestBody PersonTrainingRecord personTrainingRecord) {
|
personTrainingRecordService.outOfFocusPreservation(personTrainingRecord);
|
return Result.success();
|
}
|
|
/**
|
* 导出人员培训计划
|
* @return
|
*/
|
@ApiOperation(value = "导出人员培训计划")
|
@GetMapping("/exportPersonTraining")
|
public void exportPersonTraining(Integer id, HttpServletResponse response){
|
personTrainingService.exportPersonTraining(id, response);
|
}
|
|
/**
|
* 导出人员培训与考核记录
|
* @return
|
*/
|
@ApiOperation(value = "导出人员培训与考核记录")
|
@GetMapping("/exportPersonTrainingRecord")
|
public void exportPersonTrainingRecord(Integer id, HttpServletResponse response){
|
personTrainingService.exportPersonTrainingRecord(id, response);
|
}
|
|
|
/**
|
* 年度计划明细表 附件查询
|
*/
|
@GetMapping("/getFileData")
|
@ApiOperation(value = "附件查询")
|
public Result<?> getFileData(Integer detailedId) {
|
return Result.success(personTrainingDetailedService.getFileData(detailedId));
|
}
|
|
/**
|
* 年度计划明细表 附件删除
|
*/
|
@DeleteMapping("/deleteFile")
|
@ApiOperation(value = "附件删除")
|
public Result<?> deleteFile(Integer id) {
|
personTrainingDetailedService.deleteFile(id);
|
return Result.success();
|
}
|
|
/**
|
* 附件下载
|
*/
|
@ApiOperation(value = "附件下载")
|
@GetMapping("/fileDownLoad")
|
public Result<?> fileDownLoad(Integer id,HttpServletResponse response) {
|
personTrainingDetailedService.fileDownLoad(id,response);
|
return Result.success();
|
}
|
|
|
}
|