package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.enums.CellExtraTypeEnum;
import com.alibaba.excel.read.listener.PageReadListener;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.common.GetLook;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.ManageRiskAssessmentResults;
import com.yuanchu.mom.service.ManageRiskAssessmentResultsService;
import com.yuanchu.mom.utils.MyUtil;
import com.yuanchu.mom.vo.ManageRiskAssessmentResultsVo;
import com.yuanchu.mom.vo.Result;
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.io.IOException;
import java.time.LocalDateTime;
/**
*
* 危险因素辨识与风险评价结果一览表 前端控制器
*
*
* @author
* @since 2024-11-15 02:58:51
*/
@Api(tags = "危险因素辨识与风险评价结果一览表")
@RestController
@RequestMapping("/manageRiskAssessmentResults")
public class ManageRiskAssessmentResultsController {
@Autowired
private GetLook getLook;
@Resource
private ManageRiskAssessmentResultsService manageRiskAssessmentResultsService;
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "分页查询")
@GetMapping("/getPageResults")
public Result> getPageResults(Page page) {
IPage ipage = manageRiskAssessmentResultsService.getPageResults(page);
return Result.success(ipage);
}
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "批准")
@GetMapping("/hazardIdentificationAndRiskApproval")
public Result> hazardIdentificationAndRiskApproval(Integer approve, Integer status) {
manageRiskAssessmentResultsService.update(Wrappers.lambdaUpdate()
.set(ManageRiskAssessmentResults::getApprove, approve)
.set(ManageRiskAssessmentResults::getApproveStatus, status)
.set(ManageRiskAssessmentResults::getApproveDate, LocalDateTime.now()));
return Result.success();
}
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "审批")
@GetMapping("/dangerousRiskApproval")
public Result> dangerousRiskApproval(Integer approval, Integer status) {
manageRiskAssessmentResultsService.update(Wrappers.lambdaUpdate()
.set(ManageRiskAssessmentResults::getApproval, approval)
.set(ManageRiskAssessmentResults::getApprovalStatus, status)
.set(ManageRiskAssessmentResults::getApprovalDate, LocalDateTime.now()));
return Result.success();
}
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "导入")
@PostMapping("/riskAssessmentImport")
public void riskAssessmentImport(MultipartFile file) throws IOException {
boolean excelFile = MyUtil.isExcelFile(file);
if (!excelFile) {
throw new ErrorException("请导入excel文件!");
}
EasyExcel.read(file.getInputStream(), ManageRiskAssessmentResults.class, new PageReadListener(dataList -> {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
dataList.forEach(i -> {
i.setEditor(userId);
i.setEditorDate(LocalDateTime.now());
i.setApproveStatus(0);
i.setApprovalStatus(0);
});
manageRiskAssessmentResultsService.saveOrUpdateBatch(dataList);
})).extraRead(CellExtraTypeEnum.MERGE).sheet().doRead();
}
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "新增")
@PostMapping("/addNewRiskFactors")
public void addNewRiskFactors(@RequestBody ManageRiskAssessmentResults manageRiskAssessmentResults) {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
manageRiskAssessmentResults.setEditor(userId);
manageRiskAssessmentResults.setEditorDate(LocalDateTime.now());
manageRiskAssessmentResultsService.saveOrUpdate(manageRiskAssessmentResults);
}
@ValueClassify(value = "危险因素辨识与风险评价结果一览")
@ApiOperation(value = "删除")
@GetMapping("/removeRiskFactors")
public void removeRiskFactors(Integer id) {
manageRiskAssessmentResultsService.removeById(id);
}
/**
* 导出人员培训计划
* @return
*/
@ValueAuth
@ApiOperation(value = "导出危险因素辨识与风险评价结果一览")
@GetMapping("/exportHazardFactorIdentification")
public void exportPersonTraining(HttpServletResponse response){
manageRiskAssessmentResultsService.exportPersonTraining(response);
}
}