package com.ims.eval.controller; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ims.eval.config.CustomException; import com.ims.eval.entity.OrganizationRating; import com.ims.eval.entity.dto.result.R; import com.ims.eval.service.IOrganizationRatingService; import com.ims.eval.util.ExcelUtil; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** *

* 年度评级 前端控制器 *

* * @author wang * @since 2023-06-20 */ @RestController @RequestMapping("//organization-rating") public class OrganizationRatingController { @Autowired private IOrganizationRatingService organizationRatingService; /** * 单位考评评级 */ @PostMapping(value = "grade") public R grade(@RequestBody List orgRating) { return organizationRatingService.grade(orgRating); // return R.ok().data(grade); } /** * 查询 * @param pageNum * @param pageSize * @param id * @param binSection * @param year * @return */ @GetMapping(value = "list") public R list(@RequestParam(value = "pageNum") Integer pageNum, @RequestParam(value = "pageSize") Integer pageSize, @RequestParam(value = "id", required = false) String id, @RequestParam(value = "organizationYearRatingId", required = false) String organizationYearRatingId, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "year", required = false) String year, @RequestParam(value = "organizationShortName", required = false) String organizationShortName, @RequestParam(value = "organizationId", required = false) String organizationId, @RequestParam(value = "safetyEnvProtection", required = false) String safetyEnvProtection, @RequestParam(value = "veto", required = false) String veto, @RequestParam(value = "netProfit", required = false) String netProfit, @RequestParam(value = "compositeScore", required = false) String compositeScore, @RequestParam(value = "annualTarget", required = false) String annualTarget, @RequestParam(value = "bonusPoint", required = false) String bonusPoint, @RequestParam(value = "compositeScoreRaking", required = false) String compositeScoreRaking, @RequestParam(value = "projectLevel", required = false) String projectLevel, @RequestParam(value = "score", required = false) String score) { IPage list = organizationRatingService.list(pageNum, pageSize, id, organizationYearRatingId, binSection, year, organizationShortName, organizationId, safetyEnvProtection, veto, netProfit, compositeScore, annualTarget, bonusPoint, compositeScoreRaking, projectLevel,score); if (list.getRecords().isEmpty()) { return R.ok().data(""); } return R.ok().data(list); } @PostMapping(value = "/save") @ApiOperation(value = "新增(修改)", notes = "新增(修改)") public R addAll(@RequestBody OrganizationRating organizationRating) { try { boolean b = organizationRatingService.saveOrUpdate(organizationRating); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (CustomException e) { return R.customError(e.getMessage()).data("失败!"); } } @PostMapping(value = "/generateRating") @ApiOperation(value = "批量生成明细", notes = "批量生成明细") public R generateRating(@RequestParam(value = "organizationYearRatingId") String organizationYearRatingId, @RequestParam(value = "year") String year) { boolean b = organizationRatingService.generateRating(organizationYearRatingId, year); if (b) { return R.ok().data(b); } else { return R.error().data("操作失败!"); } } /** * 批量删除 * * @param ids * @return */ @PostMapping(value = "/remove/{ids}") @ApiOperation(value = "删除", notes = "删除") public R deleteAll(@PathVariable("ids") String ids) { String[] strings = ids.split(","); boolean b = organizationRatingService.removeByIds(Arrays.asList(strings)); if (b) { return R.ok().data(b); } else { return R.error().data("删除失败!"); } } /** * 导入 * * @param file 文件 * @return 结果 */ @PostMapping(value = "/import") public R importData(@RequestParam("file") MultipartFile file) { if (!file.isEmpty()) { try { //获取原始的文件名 String originalFilename = file.getOriginalFilename(); //获取文件类型 String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length()); //默认从第一行开始读取 int startRows = 1; //获取输入流 InputStream is = file.getInputStream(); List organizationRatingList = new ArrayList<>(); //Excel导入导出的单元类 List strings = ExcelUtil.readData(fileType, startRows - 1, true, is); //遍历Excel表每一行的数据 for (String[] str : strings) { if (startRows == 1) { startRows++; continue; } OrganizationRating organizationRating = new OrganizationRating(); organizationRating.setId(str[0]);//主键 organizationRating.setOrganizationShortName(str[1]);//考评组织名称 organizationRating.setOrganizationId(str[2]);//考评组织ID organizationRating.setBinSection(str[3]);//板块id organizationRating.setYear(str[4]);//年度 organizationRating.setScjyRate(str[5]);//生产经营评级 organizationRating.setQqRate(str[6]);//前期评级 organizationRating.setJjRate(str[7]);//基建评级 organizationRating.setYearRate(str[8]);//年度评级 organizationRating.setRemark(str[9]); if (null == str[0] || "".equals(str[0])) { organizationRating.setCreateTime(DateUtil.date()); } else { organizationRating.setUpdateTime(DateUtil.date()); } organizationRatingList.add(organizationRating); } boolean b = organizationRatingService.saveOrUpdateBatch(organizationRatingList); if (b) { return R.ok().data(b); } else { return R.error().data("保存失败!"); } } catch (Exception e) { return R.customError("失败"); } } return R.customError("上传文件为空!"); } /** * 导出文件 */ @GetMapping(value = "exportExcel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public R exportExcel(HttpServletResponse response, @RequestParam(value = "binSection", required = false) String binSection, @RequestParam(value = "year", required = false) String year) throws IOException { organizationRatingService.exportExcel(response,binSection,year); return R.ok(); } /** * 导入文件 */ @PostMapping(value = "/importExcel") public R importExcel(@RequestParam("file") MultipartFile file, @RequestParam(value = "binSection") String binSection, @RequestParam(value = "year") String year ) { return organizationRatingService.importExcel(file,binSection,year); } }