OrganizationRatingController.java 7.3 KB

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