OrganizationEvaluationInfoController.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. package com.ims.eval.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.ims.eval.entity.OrganizationEvaluationInfo;
  4. import com.ims.eval.entity.dto.request.AddEvaluationInfoDTO;
  5. import com.ims.eval.entity.dto.response.OrganizationEvaluationInfoResDTO;
  6. import com.ims.eval.entity.dto.result.R;
  7. import com.ims.eval.service.IOrganizationEvaluationInfoService;
  8. import com.ims.eval.util.ExcelUtil;
  9. import io.swagger.annotations.ApiOperation;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.HttpHeaders;
  13. import org.springframework.http.MediaType;
  14. import org.springframework.http.ResponseEntity;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import javax.servlet.http.HttpServletRequest;
  18. import java.io.InputStream;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * <p>
  24. * 考评指标明细
  25. 前端控制器
  26. * </p>
  27. *
  28. * @author wang
  29. * @since 2023-03-16
  30. */
  31. @Slf4j
  32. @RestController
  33. @RequestMapping("//organization-evaluation-info")
  34. public class OrganizationEvaluationInfoController {
  35. @Autowired
  36. private IOrganizationEvaluationInfoService organizationEvaluationInfoService;
  37. @Autowired
  38. private HttpServletRequest request;
  39. /**
  40. * @param organizationEvaluationId 目标责任书id
  41. * @return
  42. */
  43. //@ImsPreAuth("eval:organizationEvaluationInfo:view")
  44. @GetMapping(value = "finishValueList")
  45. public R finishValueList(
  46. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  47. @RequestParam(value = "dept", required = false) String dept) {
  48. Map list = organizationEvaluationInfoService.finishValueList(organizationEvaluationId, dept, request);
  49. return R.ok().data(list);
  50. }
  51. /**
  52. * 获取当前指标需要考评的指标
  53. * @param organizationEvaluationId
  54. * @param binSection
  55. * @param binStage
  56. * @return
  57. */
  58. @GetMapping(value = "getEvaluationIndicatorList")
  59. public R getEvaluationIndicatorList(
  60. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  61. @RequestParam(value = "binSection", required = false) String binSection,
  62. @RequestParam(value = "binStage", required = false) String binStage) {
  63. List<Map> list = organizationEvaluationInfoService.getEvaluationIndicatorList(organizationEvaluationId, binSection,binStage, request);
  64. return R.ok().data(list);
  65. }
  66. /**
  67. * 获取考核指标的详情
  68. * @param organizationEvaluationId
  69. * @param indicatorId
  70. * @return
  71. */
  72. @GetMapping(value = "getEvaluationInfoList")
  73. public R getEvaluationInfoList(
  74. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  75. @RequestParam(value = "indicatorId", required = false) String indicatorId,
  76. @RequestParam(value = "binSection", required = false) String binSection,
  77. @RequestParam(value = "binStage", required = false) String binStage) {
  78. Map list = organizationEvaluationInfoService.getEvaluationInfoList(organizationEvaluationId, indicatorId,binSection,binStage, request);
  79. return R.ok().data(list);
  80. }
  81. @GetMapping("/download-excel")
  82. public ResponseEntity<byte[]> downloadExcel(
  83. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  84. @RequestParam(value = "indicatorId", required = false) String indicatorId,
  85. @RequestParam(value = "binSection", required = false) String binSection,
  86. @RequestParam(value = "binStage", required = false) String binStage) throws Exception {
  87. byte[] excelBytes = organizationEvaluationInfoService.downloadExcel(organizationEvaluationId, indicatorId,binSection,binStage, request);
  88. HttpHeaders headers = new HttpHeaders();
  89. headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
  90. headers.setContentDispositionFormData("attachment", "example.xlsx");
  91. return ResponseEntity.ok().headers(headers).body(excelBytes);
  92. }
  93. @PostMapping("/import-excel")
  94. public R importExcel(@RequestParam("file") MultipartFile file,HttpServletRequest request) throws Exception {
  95. boolean b = organizationEvaluationInfoService.importExcel(file,request);
  96. if (b) {
  97. return R.ok().data(b);
  98. } else {
  99. return R.error().data("上传失败");
  100. }
  101. }
  102. /**
  103. * 批量修改
  104. *
  105. * @param jsonObjects
  106. * @return
  107. */
  108. //@ImsPreAuth("eval:organizationEvaluationInfo:edit")
  109. @PostMapping(value = "/updateEvaluationInfo")
  110. @ApiOperation(value = "批量新增(修改)", notes = "批量新增(修改)")
  111. public R updateEvaluationInfo(@RequestBody List<JSONObject> jsonObjects) {
  112. try {
  113. boolean b = organizationEvaluationInfoService.updateEvaluationInfo(jsonObjects);
  114. if (b) {
  115. return R.ok().data(b);
  116. } else {
  117. return R.error().data("保存失败!");
  118. }
  119. } catch (Exception e) {
  120. log.error("错误", e);
  121. return R.customError(e.getMessage()).data("失败!");
  122. }
  123. }
  124. /**
  125. * 添加指标
  126. * @param addEvaluationInfoDTOs
  127. * @return
  128. */
  129. @PostMapping(value = "/addEvaluationInfo")
  130. @ApiOperation(value = "新增重点事项、管理事项", notes = "新增重点事项、管理事项")
  131. public R addEvaluationInfo(@RequestBody List<AddEvaluationInfoDTO> addEvaluationInfoDTOs) {
  132. try {
  133. boolean b = organizationEvaluationInfoService.addEvaluationInfo(addEvaluationInfoDTOs);
  134. if (b) {
  135. return R.ok().data(b);
  136. } else {
  137. return R.error().data("保存失败!");
  138. }
  139. } catch (Exception e) {
  140. log.error("错误", e);
  141. return R.customError(e.getMessage()).data("失败!");
  142. }
  143. }
  144. /**
  145. * @param organizationEvaluationId 目标责任书id
  146. * @return
  147. */
  148. //@ImsPreAuth("eval:organizationEvaluationInfo:view")
  149. @GetMapping(value = "finishValueListNew")
  150. public R finishValueListNew(
  151. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  152. @RequestParam(value = "dept", required = false) String dept,
  153. @RequestParam(value = "organizationShortName", required = false) String organizationShortName,
  154. @RequestParam(value = "indicatorName", required = false) String indicatorName,
  155. @RequestParam(value = "binSection", required = false) String binSection,
  156. @RequestParam(value = "isQuantified", required = false) String isQuantified) {
  157. List<OrganizationEvaluationInfoResDTO> list = organizationEvaluationInfoService.finishValueList(organizationEvaluationId, dept, organizationShortName,indicatorName,binSection,isQuantified,request);
  158. return R.ok().data(list);
  159. }
  160. /**
  161. * 批量修改
  162. *
  163. * @param OrganizationEvaluationInfo
  164. * @return
  165. */
  166. //@ImsPreAuth("eval:organizationEvaluationInfo:edit")
  167. @PostMapping(value = "/saveBatchDto")
  168. @ApiOperation(value = "批量新增(修改)", notes = "批量新增(修改)")
  169. public R saveBatchDto(@RequestBody List<OrganizationEvaluationInfo> OrganizationEvaluationInfo) {
  170. try {
  171. boolean b = organizationEvaluationInfoService.saveBatchDto(OrganizationEvaluationInfo);
  172. if (b) {
  173. return R.ok().data(b);
  174. } else {
  175. return R.error().data("保存失败!");
  176. }
  177. } catch (Exception e) {
  178. log.error("错误", e);
  179. return R.customError(e.getMessage()).data("失败!");
  180. }
  181. }
  182. @PostMapping(value = "/import")
  183. @ResponseBody
  184. public R importAlertrule(@RequestParam("file") MultipartFile file,HttpServletRequest request) {
  185. if (!file.isEmpty()) {
  186. try {
  187. //获取原始的文件名
  188. String originalFilename = file.getOriginalFilename();
  189. //获取文件类型
  190. String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
  191. //默认从第一行开始读取,第0行为标题
  192. Integer startRows = 1;
  193. //获取输入流
  194. InputStream is = file.getInputStream();
  195. List<OrganizationEvaluationInfo> bindingList = new ArrayList<>();
  196. //Excel导入导出的单元类
  197. List<String[]> strings = ExcelUtil.readData(fileType, startRows, true, is);
  198. //遍历Excel表每一行的数据
  199. for (String[] str : strings) {
  200. OrganizationEvaluationInfo organizationEvaluationInfo = new OrganizationEvaluationInfo();
  201. organizationEvaluationInfo.setId(str[0]);
  202. organizationEvaluationInfo.setQuantifiedValue(Double.parseDouble(str[8].trim().equals("") ? "0" : str[8]));
  203. bindingList.add(organizationEvaluationInfo);
  204. }
  205. boolean b = organizationEvaluationInfoService.saveOrUpdateBatch(bindingList);
  206. if (b) {
  207. organizationEvaluationInfoService.calculationByEvaluationId("","",bindingList.get(0).getOrganizationEvaluationId(),"");
  208. return R.ok().data(b);
  209. } else {
  210. return R.error().data("保存失败!");
  211. }
  212. } catch (Exception e) {
  213. log.error("错误", e);
  214. return R.customError(e.getMessage()).data("失败!");
  215. }
  216. }
  217. return R.customError("上传文件为空!");
  218. }
  219. //
  220. @PostMapping(value = "/calculation")
  221. @ApiOperation(value = "计算得分", notes = "计算得分")
  222. public R calculation(@RequestParam(value = "id", required = false)String id,
  223. @RequestParam(value = "indicatorId", required = false) String indicatorId ,
  224. @RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
  225. @RequestParam(value = "optionCode", required = false) String optionCode) {
  226. try {
  227. boolean b = organizationEvaluationInfoService.calculationByEvaluationId(id,indicatorId,organizationEvaluationId,optionCode);
  228. if (b) {
  229. return R.ok().data(b);
  230. } else {
  231. return R.error().data("保存失败!");
  232. }
  233. } catch (Exception e) {
  234. log.error("错误", e);
  235. return R.customError(e.getMessage()).data("失败!");
  236. }
  237. }
  238. }