DataExpertController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. package com.bootdo.datas.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.bootdo.common.annotation.Log;
  4. import com.bootdo.common.utils.PageUtils;
  5. import com.bootdo.common.utils.Query;
  6. import com.bootdo.common.utils.R;
  7. import com.bootdo.common.utils.StringUtils;
  8. import com.bootdo.datas.domain.ExpertOpinionDO;
  9. import com.bootdo.datas.domain.GyDataExcelDO;
  10. import com.bootdo.datas.dto.ExamineLogDTO;
  11. import com.bootdo.datas.dto.GyDataImportDTO;
  12. import com.bootdo.datas.service.DataService;
  13. import com.bootdo.datas.service.ExamineLogService;
  14. import com.bootdo.datas.service.GyDataService;
  15. import com.bootdo.datas.tools.ExcelUtils;
  16. import com.google.common.collect.Lists;
  17. import com.google.common.collect.Maps;
  18. import org.apache.shiro.authz.annotation.RequiresPermissions;
  19. import org.slf4j.Logger;
  20. import org.slf4j.LoggerFactory;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.ui.Model;
  24. import org.springframework.util.CollectionUtils;
  25. import org.springframework.web.bind.annotation.*;
  26. import javax.servlet.http.HttpServletResponse;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * 重要数据表
  32. *
  33. * @author admin
  34. * @email admin@163.com
  35. * @date 2022-03-06 10:37:54
  36. */
  37. @Controller
  38. @RequestMapping("/datas/expertVerify")
  39. public class DataExpertController {
  40. private static Logger log = LoggerFactory.getLogger(DataExpertController.class);
  41. @Autowired
  42. private DataService dataService;
  43. @Autowired
  44. private GyDataService gyDataService;
  45. @Autowired
  46. private ExamineLogService examineLogService;
  47. @GetMapping()
  48. @Log("访问专家审核")
  49. @RequiresPermissions("datas:expertVerify:data")
  50. String Data() {
  51. return "datas/expertVerify/data";
  52. }
  53. @ResponseBody
  54. @GetMapping("/list")
  55. @RequiresPermissions("datas:expertVerify:data")
  56. public PageUtils list(@RequestParam Map<String, Object> params) {
  57. // 查询列表数据
  58. Query query = new Query(params);
  59. String dataStatus = (String) params.get("dataStatus");
  60. if(StringUtils.isNotEmpty(dataStatus)) {
  61. query.put("dataStatusArrs", Lists.newArrayList((dataStatus)));
  62. }
  63. query.put("sendVerify", "2");
  64. query.put("neqDataStatus", "4");
  65. List<GyDataImportDTO> dataList = gyDataService.list(query);
  66. int total = gyDataService.countTotal(query);
  67. PageUtils pageUtils = new PageUtils(dataList, total);
  68. return pageUtils;
  69. }
  70. @GetMapping("/edit/{id}")
  71. @RequiresPermissions("datas:expertVerify:edit")
  72. String edit(@PathVariable("id") Long id, Model model) {
  73. GyDataImportDTO data = gyDataService.get(id);
  74. Map<String, Object> reqParamMap = Maps.newHashMap();
  75. reqParamMap.put("dataType", "DI_OPER");
  76. reqParamMap.put("uniqueKey", id);
  77. List<ExamineLogDTO> examineLogList = examineLogService.list(reqParamMap);
  78. model.addAttribute("data", data);
  79. if (!CollectionUtils.isEmpty(examineLogList)) {
  80. model.addAttribute("examineLog", examineLogList);
  81. }
  82. return "datas/expertVerify/edit";
  83. }
  84. @GetMapping("/expertOpinion/{id}")
  85. @RequiresPermissions("datas:expertVerify:addExpertOpinion")
  86. String expertOpinion(@PathVariable("id") Long id, Model model) {
  87. model.addAttribute("id", id);
  88. return "datas/expertVerify/expertOpinion";
  89. }
  90. /**
  91. * @Description: 专家意见
  92. * @Author: stw
  93. * @Date: 2024/7/13 14:10
  94. * @param expertOpinionDO
  95. * @Return: R
  96. */
  97. @PostMapping("/addExpertOpinion")
  98. @ResponseBody
  99. @RequiresPermissions("datas:expertVerify:addExpertOpinion")
  100. public R addExpertOpinion(ExpertOpinionDO expertOpinionDO) {
  101. log.info("专家意见 备案主键 id:" + expertOpinionDO.getId());
  102. gyDataService.addExpertOpinion(expertOpinionDO);
  103. return R.ok();
  104. }
  105. /**
  106. * @Description: 列表页面 审核通过
  107. * @Author: wangp
  108. * @Date: 2022/3/6 16:35
  109. * @param id
  110. * @Return: R
  111. */
  112. @PostMapping("/verify")
  113. @ResponseBody
  114. @RequiresPermissions("datas:expertVerify:verify")
  115. public R verify(Long id) {
  116. log.info("审核通过 id:" + id);
  117. GyDataImportDTO data = new GyDataImportDTO();
  118. // 0:正常 1:删除 2:已上报 3:通过审核 4:驳回
  119. data.setId(id);
  120. data.setDataStatus("3");
  121. gyDataService.updateStatus(data,"");
  122. return R.ok();
  123. }
  124. /**
  125. * @Description: 批量审核
  126. * @Author: wangp
  127. * @Date: 2022/3/6 16:35
  128. * @param ids
  129. * @Return: R
  130. */
  131. @PostMapping("/batchVerify")
  132. @ResponseBody
  133. @RequiresPermissions("datas:expertVerify:verify")
  134. public R batchVerify(@RequestParam("ids[]") Long[] ids) {
  135. log.info("批量审核通过 ids:" + ids.toString());
  136. List<String> failedDataNames = new ArrayList<>();
  137. List<GyDataImportDTO> dataImportDTOList = new ArrayList<>();
  138. for (Long id : ids) {
  139. log.info("审核通过 id:" + id);
  140. GyDataImportDTO data = new GyDataImportDTO();
  141. // 判断是否已审核过
  142. data = gyDataService.get(id);
  143. log.info("status:" + data.getDataStatus());
  144. if ("2".equals(data.getDataStatus())) {
  145. // 0:正常 1:删除 2:已上报 3:通过审核 4:驳回 5:联合审批 6:终审
  146. data.setId(id);
  147. data.setDataStatus("3");
  148. dataImportDTOList.add(data);
  149. } else {
  150. failedDataNames.add(data.getDataName());
  151. }
  152. }
  153. if (failedDataNames.size() > 0) {
  154. return R.error(String.join(",", failedDataNames) + ",审核失败");
  155. } else {
  156. if(dataImportDTOList.size() > 0){
  157. for(GyDataImportDTO importDTO : dataImportDTOList){
  158. gyDataService.updateStatus(importDTO,"");
  159. }
  160. }
  161. }
  162. return R.ok();
  163. }
  164. /**
  165. * @Description: 列表页面 驳回
  166. * @Author: wangp
  167. * @Date: 2022/3/6 16:35
  168. * @param id
  169. * @Return: R
  170. */
  171. @PostMapping("/rebut")
  172. @ResponseBody
  173. @RequiresPermissions("datas:expertVerify:rebut")
  174. public R rebut(Long id,String opinion) {
  175. log.info("驳回 id:" + id);
  176. GyDataImportDTO data = new GyDataImportDTO();
  177. // 0:正常 1:删除 2:已上报 3:通过审核 4:驳回
  178. data.setId(id);
  179. data.setDataStatus("4");
  180. gyDataService.updateStatus(data,opinion);
  181. return R.ok();
  182. }
  183. /**
  184. * @Description: 批量审核
  185. * @Author: wangp
  186. * @Date: 2022/3/3 14:10
  187. * @param ids
  188. * @Return: R
  189. */
  190. @PostMapping("/batchRebut")
  191. @ResponseBody
  192. @RequiresPermissions("datas:expertVerify:rebut")
  193. public R batchRebut(@RequestParam("ids[]") Long[] ids,@RequestParam("opinion")String opinion) {
  194. log.info("审核通过 备案主键 ids:" + ids);
  195. List<String> failedDataNames = new ArrayList<>();
  196. List<GyDataImportDTO> dataImportDTOList = new ArrayList<>();
  197. for (Long id : ids) {
  198. log.info("审核通过 id:" + id);
  199. GyDataImportDTO data = new GyDataImportDTO();
  200. // 判断是否已审核过
  201. data = gyDataService.get(id);
  202. log.info("status:" + data.getDataStatus());
  203. if ("2".equals(data.getDataStatus())) {
  204. // 0:正常 1:删除 2:已上报 3:通过审核 4:驳回 5:联合审批 6:终审
  205. data.setId(id);
  206. data.setDataStatus("4");
  207. dataImportDTOList.add(data);
  208. } else {
  209. failedDataNames.add(data.getDataName());
  210. }
  211. }
  212. if (failedDataNames.size() > 0) {
  213. return R.error(String.join(",", failedDataNames) + ",驳回失败");
  214. } else {
  215. if(dataImportDTOList.size() > 0){
  216. for(GyDataImportDTO importDTO : dataImportDTOList){
  217. gyDataService.updateStatus(importDTO,opinion);
  218. }
  219. }
  220. }
  221. return R.ok();
  222. }
  223. /**
  224. * @Description: 批量导出
  225. * @Author: wangp
  226. * @Date: 2022/3/16 10:46
  227. * @param idValue
  228. * @Return: R
  229. */
  230. @GetMapping("/batchExports")
  231. public void batchExports(HttpServletResponse responses, String idValue) {
  232. log.info("批量导出 备案主键 idvalue:" + idValue);
  233. List<GyDataExcelDO> list = new ArrayList<>();
  234. JSONArray json = (JSONArray)JSONArray.parse(idValue);
  235. for (int i = 0; i < json.size(); i++) {
  236. String id = String.valueOf(json.get(i));
  237. log.info("批量导出 id:" + json.get(i));
  238. GyDataExcelDO data = new GyDataExcelDO();
  239. data = gyDataService.getDataExcel(Long.parseLong(id));
  240. data.setNo(i + 1); //序号
  241. list.add(data);
  242. }
  243. log.info("list size:" + list.size());
  244. // 导出xlsx操作
  245. try {
  246. ExcelUtils.export(responses, GyDataExcelDO.class, list, "数据备案导出信息");
  247. } catch (Exception e) {
  248. log.error("export error", e);
  249. }
  250. }
  251. /**
  252. * @Description: 联合审批
  253. * @Author: wangp
  254. * @Date: 2022/3/6 16:35
  255. * @param ids
  256. * @Return: R
  257. */
  258. @PostMapping("/nextVerify/{deptId}")
  259. @ResponseBody
  260. @RequiresPermissions("datas:expertVerify:nextVerify")
  261. public R nextVerify(@RequestParam("ids[]") Long[] ids, @PathVariable("deptId") Long deptId) {
  262. log.info("联合审批通过 ids:" + ids.toString());
  263. log.info("联合审批通过 deptId:" + deptId);
  264. for (Long id : ids) {
  265. log.info("联合审批通过 id:" + id);
  266. GyDataImportDTO data = new GyDataImportDTO();
  267. // 判断是否已审核过
  268. data = gyDataService.get(id);
  269. log.info("status:" + data.getDataStatus());
  270. if ("2".equals(data.getDataStatus())) {
  271. // 0:正常 1:删除 2:已上报 3:通过审核 4:驳回
  272. data.setId(id);
  273. data.setDataStatus("2");
  274. data.setSendVerify("3");
  275. data.setNextVerifyDept(deptId);
  276. gyDataService.updateStatus(data,"");
  277. }
  278. }
  279. return R.ok();
  280. }
  281. }