package com.ims.eval.controller; import com.alibaba.fastjson.JSONObject; import com.ims.eval.entity.OrganizationEvaluationInfo; import com.ims.eval.entity.dto.request.AddEvaluationInfoDTO; import com.ims.eval.entity.dto.response.OrganizationEvaluationInfoResDTO; import com.ims.eval.entity.dto.result.R; import com.ims.eval.service.IOrganizationEvaluationInfoService; import com.ims.eval.util.ExcelUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 考评指标明细 前端控制器 *

* * @author wang * @since 2023-03-16 */ @Slf4j @RestController @RequestMapping("//organization-evaluation-info") public class OrganizationEvaluationInfoController { @Autowired private IOrganizationEvaluationInfoService organizationEvaluationInfoService; @Autowired private HttpServletRequest request; /** * @param organizationEvaluationId 目标责任书id * @return */ //@ImsPreAuth("eval:organizationEvaluationInfo:view") @GetMapping(value = "finishValueList") public R finishValueList( @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "dept", required = false) String dept) { Map list = organizationEvaluationInfoService.finishValueList(organizationEvaluationId, dept, request); return R.ok().data(list); } /** * 获取当前指标需要考评的指标 * @param organizationEvaluationId * @param binSection * @param binStage * @return */ @GetMapping(value = "getEvaluationIndicatorList") public R getEvaluationIndicatorList( @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "binStage", required = false) String binStage) { List list = organizationEvaluationInfoService.getEvaluationIndicatorList(organizationEvaluationId, binSection,binStage, request); return R.ok().data(list); } /** * 获取考核指标的详情 * @param organizationEvaluationId * @param indicatorId * @return */ @GetMapping(value = "getEvaluationInfoList") public R getEvaluationInfoList( @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "indicatorId", required = false) String indicatorId, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "binStage", required = false) String binStage) { Map list = organizationEvaluationInfoService.getEvaluationInfoList(organizationEvaluationId, indicatorId,binSection,binStage, request); return R.ok().data(list); } @GetMapping("/download-excel") public ResponseEntity downloadExcel( @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "indicatorId", required = false) String indicatorId, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "binStage", required = false) String binStage) throws Exception { byte[] excelBytes = organizationEvaluationInfoService.downloadExcel(organizationEvaluationId, indicatorId,binSection,binStage, request); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", "example.xlsx"); return ResponseEntity.ok().headers(headers).body(excelBytes); } @PostMapping("/import-excel") public R importExcel(@RequestParam("file") MultipartFile file,HttpServletRequest request) throws Exception { boolean b = organizationEvaluationInfoService.importExcel(file,request); if (b) { return R.ok().data(b); } else { return R.error().data("上传失败"); } } /** * 批量修改 * * @param jsonObjects * @return */ //@ImsPreAuth("eval:organizationEvaluationInfo:edit") @PostMapping(value = "/updateEvaluationInfo") @ApiOperation(value = "批量新增(修改)", notes = "批量新增(修改)") public R updateEvaluationInfo(@RequestBody List jsonObjects) { try { boolean b = organizationEvaluationInfoService.updateEvaluationInfo(jsonObjects); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { log.error("错误", e); return R.customError(e.getMessage()).data("失败!"); } } /** * 添加指标 * @param addEvaluationInfoDTOs * @return */ @PostMapping(value = "/addEvaluationInfo") @ApiOperation(value = "新增重点事项、管理事项", notes = "新增重点事项、管理事项") public R addEvaluationInfo(@RequestBody List addEvaluationInfoDTOs) { try { boolean b = organizationEvaluationInfoService.addEvaluationInfo(addEvaluationInfoDTOs); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { log.error("错误", e); return R.customError(e.getMessage()).data("失败!"); } } /** * @param organizationEvaluationId 目标责任书id * @return */ //@ImsPreAuth("eval:organizationEvaluationInfo:view") @GetMapping(value = "finishValueListNew") public R finishValueListNew( @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "dept", required = false) String dept, @RequestParam(value = "organizationShortName", required = false) String organizationShortName, @RequestParam(value = "indicatorName", required = false) String indicatorName, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "isQuantified", required = false) String isQuantified) { List list = organizationEvaluationInfoService.finishValueList(organizationEvaluationId, dept, organizationShortName,indicatorName,binSection,isQuantified,request); return R.ok().data(list); } /** * 批量修改 * * @param OrganizationEvaluationInfo * @return */ //@ImsPreAuth("eval:organizationEvaluationInfo:edit") @PostMapping(value = "/saveBatchDto") @ApiOperation(value = "批量新增(修改)", notes = "批量新增(修改)") public R saveBatchDto(@RequestBody List OrganizationEvaluationInfo) { try { boolean b = organizationEvaluationInfoService.saveBatchDto(OrganizationEvaluationInfo); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { log.error("错误", e); return R.customError(e.getMessage()).data("失败!"); } } @PostMapping(value = "/import") @ResponseBody public R importAlertrule(@RequestParam("file") MultipartFile file,HttpServletRequest request) { if (!file.isEmpty()) { try { //获取原始的文件名 String originalFilename = file.getOriginalFilename(); //获取文件类型 String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length()); //默认从第一行开始读取,第0行为标题 Integer startRows = 1; //获取输入流 InputStream is = file.getInputStream(); List bindingList = new ArrayList<>(); //Excel导入导出的单元类 List strings = ExcelUtil.readData(fileType, startRows, true, is); //遍历Excel表每一行的数据 for (String[] str : strings) { OrganizationEvaluationInfo organizationEvaluationInfo = new OrganizationEvaluationInfo(); organizationEvaluationInfo.setId(str[0]); organizationEvaluationInfo.setQuantifiedValue(Double.parseDouble(str[8].trim().equals("") ? "0" : str[8])); bindingList.add(organizationEvaluationInfo); } boolean b = organizationEvaluationInfoService.saveOrUpdateBatch(bindingList); if (b) { organizationEvaluationInfoService.calculationByEvaluationId("","",bindingList.get(0).getOrganizationEvaluationId(),""); return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { log.error("错误", e); return R.customError(e.getMessage()).data("失败!"); } } return R.customError("上传文件为空!"); } // @PostMapping(value = "/calculation") @ApiOperation(value = "计算得分", notes = "计算得分") public R calculation(@RequestParam(value = "id", required = false)String id, @RequestParam(value = "indicatorId", required = false) String indicatorId , @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId, @RequestParam(value = "optionCode", required = false) String optionCode) { try { boolean b = organizationEvaluationInfoService.calculationByEvaluationId(id,indicatorId,organizationEvaluationId,optionCode); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { log.error("错误", e); return R.customError(e.getMessage()).data("失败!"); } } }