package com.ruoyi.personnel.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.core.domain.entity.DepartmentDto;
import com.ruoyi.common.utils.FileSaveUtil;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.personnel.dto.PersonBasicInfoDetailsDto;
import com.ruoyi.personnel.dto.PersonBasicInfoDto;
import com.ruoyi.personnel.dto.UserPageDto;
import com.ruoyi.personnel.pojo.Annex;
import com.ruoyi.personnel.pojo.PersonBasicInfoFile;
import com.ruoyi.personnel.pojo.PersonBasicInfoWork;
import com.ruoyi.personnel.service.AnnexService;
import com.ruoyi.personnel.service.PersonBasicInfoFileService;
import com.ruoyi.personnel.service.PersonBasicInfoService;
import com.ruoyi.personnel.service.PersonBasicInfoWorkService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
*
* 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2024-08-30 09:19:57
*/
@Api(tags = "人员-人员基本信息")
@RestController
@RequestMapping("/personBasicInfo")
public class PersonBasicInfoController {
@Resource
private PersonBasicInfoService personBasicInfoService;
@Resource
private PersonBasicInfoFileService personBasicInfoFileService;
@Resource
private PersonBasicInfoWorkService personBasicInfoWorkService;
@Resource
private AnnexService annexService;
@ApiOperation(value = "查询CNAS人员侧边栏")
@GetMapping("/selectCNSAPersonTree")
public Result> selectCNSAPersonTree() {
return Result.success(personBasicInfoService.selectCNSAPersonTree());
}
@ApiOperation(value = "获取CNAS人员基本信息")
@GetMapping("/getCNASPersonnelInfo")
public Result getCNASPersonnelInfo(Integer userId) {
return Result.success(personBasicInfoService.getCNASPersonnelInfo(userId));
}
@ApiOperation(value = "保存CNAS人员基本信息")
@PostMapping("/saveCNASPersonnelInfo")
public Result saveCNASPersonnelInfo(@RequestBody PersonBasicInfoDto personBasicInfoDto) {
personBasicInfoService.saveCNASPersonnelInfo(personBasicInfoDto);
return Result.success();
}
@ApiOperation(value = "人员明细分页查询")
@GetMapping("basicInformationOfPersonnelSelectPage")
public Result>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId) {
return Result.success(personBasicInfoService.basicInformationOfPersonnelSelectPage(page, name, departmentId));
}
// 上传文件接口
@ApiOperation(value = "上传文件接口")
@PostMapping("/saveCNASFile")
public Result saveFile(@RequestPart("file") MultipartFile file) {
String s = FileSaveUtil.uploadWordFile(file);
return Result.success(s, "上传成功");
}
@GetMapping("/getAnnexByUserId")
public Result> getAnnexByUserId(Integer userId) {
List list = annexService.list(new LambdaQueryWrapper().eq(Annex::getUserId, userId));
return Result.success(list);
}
// 删除文件
@DeleteMapping("/deleteCNASFile")
public Result saveFile(String fileName) {
String[] split = fileName.split(",");
for (String s : split) {
FileSaveUtil.DeleteFile(s);
}
return Result.success();
}
/**
* 人员基本信息附件新增
*/
@PostMapping("/addAnnex")
public Result addAnnex(@RequestBody Annex annex) {
annexService.save(annex);
return Result.success();
}
@GetMapping("/getAnnex")
public Result getAnnex(Integer id) {
return Result.success(annexService.getById(id));
}
/**
* 人员基本信息附件删除
*/
@DeleteMapping("/deleteAnnex")
public Result deleteAnnex(Integer id) {
annexService.removeById(id);
return Result.success();
}
/**
* 人员基本信息附件修改
*
*/
@PostMapping("/updateAnnex")
public Result updateAnnex(@RequestBody Annex annex) {
annexService.updateById(annex);
return Result.success();
}
@ApiOperation(value = "导出人员基本信息")
@GetMapping("/exportPersonBasicInfo")
public void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception {
personBasicInfoService.exportPersonBasicInfo(userPageDto,response);
}
@ApiOperation(value = "下载人员档案卡")
@GetMapping("/exportPersonBasicInfoById")
public Result exportPersonBasicInfoById(Integer id, HttpServletResponse response) {
return Result.success(personBasicInfoService.exportPersonBasicInfoById(id,response));
}
/**
* 人员培训基本信息附件新增
* @param userId
* @param file
* @return
*/
@ApiOperation(value = "人员培训基本信息附件新增")
@PostMapping("/uploadBasicInfoFile")
public Result> uploadBasicInfoFile(Integer userId, MultipartFile file) {
return Result.success(personBasicInfoService.uploadBasicInfoFile(userId, file));
}
/**
* 人员培训基本信息附件列表
* @return
*/
@ApiOperation(value = "人员培训基本信息附件列表")
@GetMapping("/getBasicInfoFileList")
public Result> getBasicInfoFileList(Integer userId){
return Result.success(personBasicInfoFileService.list(Wrappers.lambdaQuery()
.eq(PersonBasicInfoFile::getUserId, userId)));
}
/**
* 人员培训基本信息附件删除
* @return
*/
@ApiOperation(value = "人员培训基本信息附件删除")
@DeleteMapping("/delBasicInfoFileList")
public Result delBasicInfoFileList(Integer basicInfoFileId){
return Result.success(personBasicInfoFileService.removeById(basicInfoFileId));
}
/**
* 人员培训基本信息工作经历新增
* @return
*/
@ApiOperation(value = "人员培训基本信息工作经历新增")
@PostMapping("/addBasicInfoWork")
public Result> addBasicInfoWork(@RequestBody PersonBasicInfoWork basicInfoWork) {
if (basicInfoWork.getUserId() == null) {
throw new ErrorException("缺少人员id");
}
basicInfoWork.setUserId(basicInfoWork.getUserId());
return Result.success(personBasicInfoWorkService.save(basicInfoWork));
}
/**
* 人员工作经历列表
* @return
*/
@ApiOperation(value = "人员工作经历列表")
@GetMapping("/getBasicInfoWorkList")
public Result> getBasicInfoWorkList(Integer userId){
return Result.success(personBasicInfoWorkService.list(Wrappers.lambdaQuery()
.eq(PersonBasicInfoWork::getUserId, userId)));
}
/**
* 人员工作经历删除
* @return
*/
@ApiOperation(value = "人员工作经历删除")
@DeleteMapping("/delBasicInfoWorkList")
public Result delBasicInfoWorkList(Integer basicInfoWorkId){
return Result.success(personBasicInfoWorkService.removeById(basicInfoWorkId));
}
/**
* 人员基本信息附件删除
* @return
*/
@ApiOperation(value = "人员工作经历修改")
@PostMapping("/updateBasicInfoWorkList")
public Result updateBasicInfoWorkList(@RequestBody PersonBasicInfoWork basicInfoWork){
return Result.success(personBasicInfoWorkService.updateById(basicInfoWork));
}
}