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.*; /** *

* 培训计划 前端控制器 *

* * @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 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> personTrainingSelect(Page page, String compilerName, Integer departmentId) { IPage 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() .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> 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 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> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName) { List list = personTrainingRecordService.trainingAndAssessmentRecordsPage(trainingDetailedId, userName); return Result.success(list); } @ApiOperation(value = "培训与考核记录 新增人员") @PostMapping("newPersonnelAddedToTrainingRecords") public Result newPersonnelAddedToTrainingRecords(@RequestBody List personTrainingRecord) { personTrainingRecordService.saveBatch(personTrainingRecord); return Result.success(); } @ApiOperation(value = "培训与考核记录 认领") @PostMapping("claimOfTrainingAndAssessmentRecords") public Result claimOfTrainingAndAssessmentRecords(@RequestBody Map 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.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(); } }