package com.yuanchu.mom.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.dto.*; import com.yuanchu.mom.numgen.NumberGenerator; import com.yuanchu.mom.pojo.PersonTraining; import com.yuanchu.mom.pojo.PersonTrainingDetailed; import com.yuanchu.mom.pojo.PersonTrainingRecord; import com.yuanchu.mom.service.PersonTrainingDetailedService; import com.yuanchu.mom.service.PersonTrainingRecordService; import com.yuanchu.mom.service.PersonTrainingService; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; /** *

* 培训计划 前端控制器 *

* * @author * @since 2024-10-11 01:11:49 */ @Api(tags = "人员 - 培训计划") @RestController @RequestMapping("/personTraining") //@CustomClazzName(name = "资源要求", index = 8) public class PersonTrainingController { @Autowired private PersonTrainingService personTrainingService; @Autowired private PersonTrainingDetailedService personTrainingDetailedService; @Autowired private PersonTrainingRecordService personTrainingRecordService; @Autowired private NumberGenerator numberGenerator; @ValueClassify("培训计划") @ApiOperation(value = "培训计划 导入") @PostMapping("personTrainingImport") public Result personTrainingImport(@RequestPart("file") MultipartFile file) { personTrainingService.personTrainingImport(file); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "培训计划 删除") @DeleteMapping("personTrainingDelete") public Result personTrainingDelete(@RequestParam("id") Integer id) { personTrainingService.personTrainingDelete(id); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "培训计划 查询") @GetMapping("personTrainingSelect") public Result> personTrainingSelect(Page page, String compilerName, String departmentId) { IPage iPage = personTrainingService.personTrainingSelect(page, compilerName, departmentId); return Result.success(iPage); } @ValueClassify("培训计划") @ApiOperation(value = "年度培训计划 审核") @PostMapping("reviewAnnualPersonnelTraining") public Result reviewAnnualPersonnelTraining(@RequestBody PersonTrainingUpdateDto personTrainingUpdateDto) { personTrainingService.reviewAnnualPersonnelTraining(personTrainingUpdateDto); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "培训计划 批准") @PostMapping("approveAnnualPersonnelTraining") public Result approveAnnualPersonnelTraining(@RequestBody PersonTrainingUpdateDto personTrainingUpdateDto) { personTrainingService.approveAnnualPersonnelTraining(personTrainingUpdateDto); return Result.success(); } @ValueClassify("培训计划") @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); } personTrainingDetailedService.saveOrUpdate(personTrainingDetailed); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "年度计划明细表 批量删除") @PostMapping("deleteAnnualPlanDetailTable") public Result deleteAnnualPlanDetailTable(@RequestParam("ids") String ids) { personTrainingDetailedService.deleteAnnualPlanDetailTable(ids); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "年度计划明细表 查询") @GetMapping("queryTheAnnualPlanDetailsTable") public Result> queryTheAnnualPlanDetailsTable(Page page, String trainingLecturerName, String courseCode, String trainingDate, Integer id, Integer userId) { IPage iPage = personTrainingDetailedService.queryTheAnnualPlanDetailsTable(page, trainingLecturerName, courseCode, trainingDate, id, userId); return Result.success(iPage); } @ValueClassify("培训计划") @ApiOperation(value = "培训与考核记录 查询") @GetMapping("trainingAndAssessmentRecordsPage") public Result> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName) { List list = personTrainingRecordService.trainingAndAssessmentRecordsPage(trainingDetailedId, userName); return Result.success(list); } @ValueClassify("培训计划") @ApiOperation(value = "培训与考核记录 新增人员") @PostMapping("newPersonnelAddedToTrainingRecords") public Result newPersonnelAddedToTrainingRecords(@RequestBody List personTrainingRecord) { personTrainingRecordService.saveBatch(personTrainingRecord); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "培训与考核记录 认领") @PostMapping("claimOfTrainingAndAssessmentRecords") public Result claimOfTrainingAndAssessmentRecords(@RequestParam("claimAndClaim") Boolean claimAndClaim, @RequestParam("courseId") Integer courseId) { personTrainingRecordService.claimOfTrainingAndAssessmentRecords(claimAndClaim, courseId); return Result.success(); } @ValueClassify("培训计划") @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())); return Result.success(); } @ValueClassify("培训计划") @ApiOperation(value = "培训与考核记录 删除") @PostMapping("deleteTrainingAndAssessmentRecords") public Result deleteTrainingAndAssessmentRecords(@RequestParam("ids") String ids) { personTrainingRecordService.deleteTrainingAndAssessmentRecords(ids); return Result.success(); } @PostMapping("outOfFocusPreservation") @ValueAuth public Result outOfFocusPreservation(@RequestBody PersonTrainingRecord personTrainingRecord) { personTrainingRecordService.updateById(personTrainingRecord); return Result.success(); } /** * 导出人员培训计划 * @return */ @ValueAuth @ApiOperation(value = "导出人员培训计划") @GetMapping("/exportPersonTraining") public void exportPersonTraining(Integer id, HttpServletResponse response){ personTrainingService.exportPersonTraining(id, response); } /** * 导出人员培训与考核记录 * @return */ @ValueAuth @ApiOperation(value = "导出人员培训与考核记录") @GetMapping("/exportPersonTrainingRecord") public void exportPersonTrainingRecord(Integer id, HttpServletResponse response){ personTrainingService.exportPersonTrainingRecord(id, response); } }