package com.ruoyi.personnel.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.dto.DepartmentDto;
import com.ruoyi.common.core.dto.UserPageDto;
import com.ruoyi.common.utils.FileSaveUtil;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.personnel.dto.PersonBasicInfoDetailsDto;
import com.ruoyi.personnel.dto.PersonBasicInfoDto;
import com.ruoyi.personnel.pojo.Annex;
import com.ruoyi.personnel.service.AnnexService;
import com.ruoyi.personnel.service.PersonBasicInfoService;
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 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);
}
/**
* 设备校准 附件上传
* @param file
* @param suffix
* @param id
* @return
*/
@ApiOperation(value = "设备校准 上传文件接口")
@PostMapping("/saveDeviceCalibrationFile")
public Result saveDeviceCalibrationFile(@RequestParam("file") MultipartFile file,@RequestParam("suffix")String suffix,@RequestParam("id") Integer id) {
personBasicInfoService.saveDeviceCalibrationFile(file,suffix,id);
return Result.success();
}
/**
* 查看设备校准附件
* @param id
* @return
*/
@ApiOperation(value = "设备校准 附件查看")
@GetMapping("/getDeviceCalibrationFile")
public Result getDeviceCalibrationFile(Integer id) {
return Result.success(personBasicInfoService.getDeviceCalibrationFile(id));
}
/**
* 删除设备校准附件
* @param id
* @return
*/
@ApiOperation(value = "设备校准 附件删除")
@DeleteMapping("/delDeviceCalibrationFile")
public Result delDeviceCalibrationFile(Integer id) {
personBasicInfoService.delDeviceCalibrationFile(id);
return Result.success();
}
/**
* 下载设备校验附件下载
* @param id
* @return
*/
@ApiOperation(value = "设备校验附件下载")
@GetMapping("/downLoadDeviceCalibrationFile")
public Result downLoadDeviceCalibrationFile(Integer id,HttpServletResponse response) {
personBasicInfoService.downLoadDeviceCalibrationFile(id,response);
return Result.success();
}
@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/{id}")
public Result deleteAnnex(@PathVariable("id") 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));
}
@GetMapping("/getEmployees")
@ApiOperation(value = "对接人员平台 获取所有人员信息")
public Result getEmployees(Integer departId) {
personBasicInfoService.getEmployees(departId);
return Result.success();
}
@GetMapping("/getEmployee")
@ApiOperation(value = "对接人员平台 根据工号获取人员信息")
public Result getEmployee(Integer userId) {
personBasicInfoService.getEmployee(userId);
return Result.success();
}
}