package com.yuanchu.mom.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.yuanchu.mom.annotation.CustomClazzName;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.DepartmentDto;
import com.yuanchu.mom.dto.PersonBasicInfoDetailsDto;
import com.yuanchu.mom.dto.PersonBasicInfoDto;
import com.yuanchu.mom.dto.UserPageDto;
import com.yuanchu.mom.pojo.Annex;
import com.yuanchu.mom.service.AnnexService;
import com.yuanchu.mom.service.PersonBasicInfoService;
import com.yuanchu.mom.utils.FileSaveUtil;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
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")
//@CustomClazzName(name = "资源要求", index = 8)
public class PersonBasicInfoController {
@Resource
private PersonBasicInfoService personBasicInfoService;
@Resource
private AnnexService annexService;
@ValueAuth
@ApiOperation(value = "查询CNAS人员侧边栏")
@GetMapping("/selectCNSAPersonTree")
public Result> selectCNSAPersonTree() {
return Result.success(personBasicInfoService.selectCNSAPersonTree());
}
@ValueAuth
@ApiOperation(value = "获取CNAS人员基本信息")
@GetMapping("/getCNASPersonnelInfo")
public Result getCNASPersonnelInfo(Integer userId) {
return Result.success(personBasicInfoService.getCNASPersonnelInfo(userId));
}
@ValueClassify("人员基本信息")
@ApiOperation(value = "保存CNAS人员基本信息")
@PostMapping("/saveCNASPersonnelInfo")
public Result saveCNASPersonnelInfo(@RequestBody PersonBasicInfoDto personBasicInfoDto) {
personBasicInfoService.saveCNASPersonnelInfo(personBasicInfoDto);
return Result.success();
}
@ValueClassify("人员基本信息")
@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")
@ValueAuth
public Result saveFile(@RequestPart("file") MultipartFile file) {
String s = FileSaveUtil.uploadWordFile(file);
return Result.success("上传成功", s);
}
@ValueAuth
@GetMapping("/getAnnexByUserId")
public Result> getAnnexByUserId(Integer userId) {
List list = annexService.list(new LambdaQueryWrapper().eq(Annex::getUserId, userId));
return Result.success(list);
}
// 删除文件
@ValueAuth
@DeleteMapping("/deleteCNASFile")
public Result saveFile(String fileName) {
String[] split = fileName.split(",");
for (String s : split) {
FileSaveUtil.DeleteFile(s);
}
return Result.success();
}
/**
* 人员基本信息附件新增
*/
@ValueAuth
@PostMapping("/addAnnex")
public Result addAnnex(@RequestBody Annex annex) {
annexService.save(annex);
return Result.success();
}
@ValueAuth
@GetMapping("/getAnnex")
public Result getAnnex(Integer id) {
return Result.success(annexService.getById(id));
}
/**
* 人员基本信息附件删除
*/
@ValueAuth
@DeleteMapping("/deleteAnnex/{id}")
public Result deleteAnnex(@PathVariable("id") Integer id) {
annexService.removeById(id);
return Result.success();
}
/**
* 人员基本信息附件修改
*/
@ValueAuth
@PostMapping("/updateAnnex")
public Result updateAnnex(@RequestBody Annex annex) {
annexService.updateById(annex);
return Result.success();
}
@ApiOperation(value = "导出人员基本信息")
@PostMapping("/exportPersonBasicInfo")
@ValueClassify("人员基本信息")
public void exportPersonBasicInfo(@RequestBody Map data, HttpServletResponse response) throws Exception {
UserPageDto userPageDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), UserPageDto.class);
personBasicInfoService.exportPersonBasicInfo(userPageDto, response);
}
@ApiOperation(value = "下载人员档案卡")
@PostMapping("/exportPersonBasicInfoById")
@ValueClassify("人员基本信息")
public Result exportPersonBasicInfoById(Integer id, HttpServletResponse response) {
return Result.success(personBasicInfoService.exportPersonBasicInfoById(id, response));
}
}