OrganizationRatingController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. package com.ims.eval.controller;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.ims.eval.config.CustomException;
  6. import com.ims.eval.entity.OrganizationRating;
  7. import com.ims.eval.entity.dto.result.R;
  8. import com.ims.eval.service.IOrganizationRatingService;
  9. import com.ims.eval.util.ExcelUtil;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.MediaType;
  13. import org.springframework.web.bind.annotation.*;
  14. import org.springframework.web.multipart.MultipartFile;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.io.IOException;
  17. import java.io.InputStream;
  18. import java.util.ArrayList;
  19. import java.util.Arrays;
  20. import java.util.List;
  21. /**
  22. * <p>
  23. * 年度评级 前端控制器
  24. * </p>
  25. *
  26. * @author wang
  27. * @since 2023-06-20
  28. */
  29. @RestController
  30. @RequestMapping("//organization-rating")
  31. public class OrganizationRatingController {
  32. @Autowired
  33. private IOrganizationRatingService organizationRatingService;
  34. @PostMapping(value = "grade")
  35. public R grade(@RequestBody List<OrganizationRating> orgRating) {
  36. IPage<OrganizationRating> grade = organizationRatingService.grade(orgRating);
  37. return R.ok().data(grade);
  38. }
  39. /**
  40. * 查询
  41. * @param pageNum
  42. * @param pageSize
  43. * @param id
  44. * @param binSection
  45. * @param year
  46. * @return
  47. */
  48. @GetMapping(value = "list")
  49. public R list(@RequestParam(value = "pageNum") Integer pageNum,
  50. @RequestParam(value = "pageSize") Integer pageSize,
  51. @RequestParam(value = "id", required = false) String id,
  52. @RequestParam(value = "organizationYearRatingId", required = false) String organizationYearRatingId,
  53. @RequestParam(value = "binSection", required = false) String binSection,
  54. @RequestParam(value = "year", required = false) String year,
  55. @RequestParam(value = "organizationShortName", required = false) String organizationShortName,
  56. @RequestParam(value = "organizationId", required = false) String organizationId,
  57. @RequestParam(value = "safetyEnvProtection", required = false) String safetyEnvProtection,
  58. @RequestParam(value = "veto", required = false) String veto,
  59. @RequestParam(value = "netProfit", required = false) String netProfit,
  60. @RequestParam(value = "compositeScore", required = false) String compositeScore,
  61. @RequestParam(value = "annualTarget", required = false) String annualTarget,
  62. @RequestParam(value = "bonusPoint", required = false) String bonusPoint,
  63. @RequestParam(value = "compositeScoreRaking", required = false) String compositeScoreRaking,
  64. @RequestParam(value = "projectLevel", required = false) String projectLevel) {
  65. IPage<OrganizationRating> list = organizationRatingService.list(pageNum, pageSize, id, organizationYearRatingId, binSection, year, organizationShortName, organizationId, safetyEnvProtection, veto, netProfit, compositeScore, annualTarget, bonusPoint,compositeScoreRaking,projectLevel);
  66. if (list.getRecords().isEmpty()) {
  67. return R.ok().data("");
  68. }
  69. return R.ok().data(list);
  70. }
  71. @PostMapping(value = "/save")
  72. @ApiOperation(value = "新增(修改)", notes = "新增(修改)")
  73. public R addAll(@RequestBody OrganizationRating organizationRating) {
  74. try {
  75. boolean b = organizationRatingService.saveOrUpdate(organizationRating);
  76. if (b) {
  77. return R.ok().data(b);
  78. } else {
  79. return R.error().data("保存失败!");
  80. }
  81. } catch (CustomException e) {
  82. return R.customError(e.getMessage()).data("失败!");
  83. }
  84. }
  85. @PostMapping(value = "/generateRating")
  86. @ApiOperation(value = "批量生成明细", notes = "批量生成明细")
  87. public R generateRating(@RequestParam(value = "organizationYearRatingId") String organizationYearRatingId,
  88. @RequestParam(value = "year") String year) {
  89. boolean b = organizationRatingService.generateRating(organizationYearRatingId, year);
  90. if (b) {
  91. return R.ok().data(b);
  92. } else {
  93. return R.error().data("操作失败!");
  94. }
  95. }
  96. /**
  97. * 批量删除
  98. *
  99. * @param ids
  100. * @return
  101. */
  102. @PostMapping(value = "/remove/{ids}")
  103. @ApiOperation(value = "删除", notes = "删除")
  104. public R deleteAll(@PathVariable("ids") String ids) {
  105. String[] strings = ids.split(",");
  106. boolean b = organizationRatingService.removeByIds(Arrays.asList(strings));
  107. if (b) {
  108. return R.ok().data(b);
  109. } else {
  110. return R.error().data("删除失败!");
  111. }
  112. }
  113. /**
  114. * 导入
  115. *
  116. * @param file 文件
  117. * @return 结果
  118. */
  119. @PostMapping(value = "/import")
  120. public R importData(@RequestParam("file") MultipartFile file) {
  121. if (!file.isEmpty()) {
  122. try {
  123. //获取原始的文件名
  124. String originalFilename = file.getOriginalFilename();
  125. //获取文件类型
  126. String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
  127. //默认从第一行开始读取
  128. int startRows = 1;
  129. //获取输入流
  130. InputStream is = file.getInputStream();
  131. List<OrganizationRating> organizationRatingList = new ArrayList<>();
  132. //Excel导入导出的单元类
  133. List<String[]> strings = ExcelUtil.readData(fileType, startRows - 1, true, is);
  134. //遍历Excel表每一行的数据
  135. for (String[] str : strings) {
  136. if (startRows == 1) {
  137. startRows++;
  138. continue;
  139. }
  140. OrganizationRating organizationRating = new OrganizationRating();
  141. organizationRating.setId(str[0]);//主键
  142. organizationRating.setOrganizationShortName(str[1]);//考评组织名称
  143. organizationRating.setOrganizationId(str[2]);//考评组织ID
  144. organizationRating.setBinSection(str[3]);//板块id
  145. organizationRating.setYear(str[4]);//年度
  146. organizationRating.setScjyRate(str[5]);//生产经营评级
  147. organizationRating.setQqRate(str[6]);//前期评级
  148. organizationRating.setJjRate(str[7]);//基建评级
  149. organizationRating.setYearRate(str[8]);//年度评级
  150. organizationRating.setRemark(str[9]);
  151. if (null == str[0] || "".equals(str[0])) {
  152. organizationRating.setCreateTime(DateUtil.date());
  153. } else {
  154. organizationRating.setUpdateTime(DateUtil.date());
  155. }
  156. organizationRatingList.add(organizationRating);
  157. }
  158. boolean b = organizationRatingService.saveOrUpdateBatch(organizationRatingList);
  159. if (b) {
  160. return R.ok().data(b);
  161. } else {
  162. return R.error().data("保存失败!");
  163. }
  164. } catch (Exception e) {
  165. return R.customError("失败");
  166. }
  167. }
  168. return R.customError("上传文件为空!");
  169. }
  170. /**
  171. * 导出文件
  172. */
  173. @GetMapping(value = "exportExcel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
  174. public R exportExcel(HttpServletResponse response,
  175. @RequestParam(value = "binSection", required = false) String binSection,
  176. @RequestParam(value = "year", required = false) String year) throws IOException {
  177. organizationRatingService.exportExcel(response,binSection,year);
  178. return R.ok();
  179. }
  180. /**
  181. * 导入文件
  182. */
  183. @PostMapping(value = "/importExcel")
  184. public R importExcel(@RequestParam("file") MultipartFile file) {
  185. return organizationRatingService.importExcel(file);
  186. }
  187. }