TAlarmmodifyController.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. package com.ruoyi.project.process.controller;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.text.SimpleDateFormat;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.List;
  10. import com.alibaba.fastjson.JSON;
  11. import com.ruoyi.common.utils.DateUtils;
  12. import com.ruoyi.common.utils.file.ExcelUtils;
  13. import com.ruoyi.project.system.domain.SysDept;
  14. import com.ruoyi.project.system.domain.SysDictData;
  15. import com.ruoyi.project.system.service.ISysDeptService;
  16. import com.ruoyi.project.system.service.ISysDictTypeService;
  17. import org.apache.poi.ss.usermodel.*;
  18. import org.springframework.security.access.prepost.PreAuthorize;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import com.ruoyi.framework.aspectj.lang.annotation.Log;
  22. import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  23. import com.ruoyi.project.process.domain.TAlarmmodify;
  24. import com.ruoyi.project.process.service.ITAlarmmodifyService;
  25. import com.ruoyi.framework.web.controller.BaseController;
  26. import com.ruoyi.framework.web.domain.AjaxResult;
  27. import com.ruoyi.common.utils.poi.ExcelUtil;
  28. import com.ruoyi.framework.web.page.TableDataInfo;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import javax.servlet.ServletOutputStream;
  31. import javax.servlet.http.HttpServletRequest;
  32. import javax.servlet.http.HttpServletResponse;
  33. /**
  34. * 报警值管理Controller
  35. *
  36. * @author ruoyi
  37. * @date 2020-11-25
  38. */
  39. @RestController
  40. @RequestMapping("/process/alarmmodify")
  41. public class TAlarmmodifyController extends BaseController
  42. {
  43. @Autowired
  44. private ITAlarmmodifyService tAlarmmodifyService;
  45. @Autowired
  46. private ISysDeptService iSysDeptService;
  47. @Autowired
  48. private ISysDictTypeService iSysDictTypeService;
  49. /**
  50. * 查询报警值管理列表
  51. */
  52. @PreAuthorize("@ss.hasPermi('process:alarmmodify:list')")
  53. @GetMapping("/list")
  54. public TableDataInfo list(TAlarmmodify tAlarmmodify)
  55. {
  56. startPage();
  57. List<TAlarmmodify> list = tAlarmmodifyService.selectTAlarmmodifyList(tAlarmmodify);
  58. return getDataTable(list);
  59. }
  60. /**
  61. * 导出报警值管理列表
  62. */
  63. @PreAuthorize("@ss.hasPermi('process:alarmmodify:export')")
  64. @Log(title = "报警值管理", businessType = BusinessType.EXPORT)
  65. @GetMapping("/export")
  66. public AjaxResult export(TAlarmmodify tAlarmmodify)
  67. {
  68. List<TAlarmmodify> list = tAlarmmodifyService.selectTAlarmmodifyList(tAlarmmodify);
  69. ExcelUtil<TAlarmmodify> util = new ExcelUtil<TAlarmmodify>(TAlarmmodify.class);
  70. return util.exportExcel(list, "alarmmodify");
  71. }
  72. /**
  73. * 获取报警值管理详细信息
  74. */
  75. @PreAuthorize("@ss.hasPermi('process:alarmmodify:query')")
  76. @GetMapping(value = "/{id}")
  77. public AjaxResult getInfo(@PathVariable("id") Long id)
  78. {
  79. return AjaxResult.success(tAlarmmodifyService.selectTAlarmmodifyById(id));
  80. }
  81. /**
  82. * 新增报警值管理
  83. */
  84. @PreAuthorize("@ss.hasPermi('process:alarmmodify:add')")
  85. @Log(title = "报警值管理", businessType = BusinessType.INSERT)
  86. @PostMapping
  87. public AjaxResult add(@RequestBody TAlarmmodify tAlarmmodify)
  88. {
  89. tAlarmmodify.setCreaterCode(getUserId().toString());
  90. return toAjax(tAlarmmodifyService.insertTAlarmmodify(tAlarmmodify));
  91. }
  92. /**
  93. * 修改报警值管理
  94. */
  95. @PreAuthorize("@ss.hasPermi('process:alarmmodify:edit')")
  96. @Log(title = "报警值管理", businessType = BusinessType.UPDATE)
  97. @PutMapping
  98. public AjaxResult edit(@RequestBody TAlarmmodify tAlarmmodify)
  99. {
  100. tAlarmmodify.setUpdaterCode(getUserId().toString());
  101. tAlarmmodify.setUpdatedate(new Date());
  102. return toAjax(tAlarmmodifyService.updateTAlarmmodify(tAlarmmodify));
  103. }
  104. /**
  105. * 删除报警值管理
  106. */
  107. @PreAuthorize("@ss.hasPermi('process:alarmmodify:remove')")
  108. @Log(title = "报警值管理", businessType = BusinessType.DELETE)
  109. @DeleteMapping("/{ids}")
  110. public AjaxResult remove(@PathVariable Long[] ids)
  111. {
  112. return toAjax(tAlarmmodifyService.deleteTAlarmmodifyByIds(ids));
  113. }
  114. /**
  115. * 批量导入报警值管理
  116. */
  117. @Log(title = "报警值管理", businessType = BusinessType.INSERT)
  118. @PostMapping("/importData")
  119. public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException
  120. {
  121. //获取操作人员ID
  122. Long userId = getUserId();
  123. //报错行数统计
  124. List<Integer> failRow =new ArrayList<Integer>();
  125. Workbook workbook = ExcelUtils.getWorkBook(file);
  126. Sheet sheet = workbook.getSheetAt(0);
  127. List<TAlarmmodify> list = new ArrayList<TAlarmmodify>();
  128. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  129. //字典查询
  130. List<SysDictData> plant = iSysDictTypeService.selectDictDataByType("PLANT_DIVIDE");
  131. List<SysDictData> area = iSysDictTypeService.selectDictDataByType("AREA_DIVIDE");
  132. //部门查询
  133. List<SysDept> dept = iSysDeptService.selectDeptList(new SysDept());
  134. int rowNum = sheet.getPhysicalNumberOfRows();
  135. int failNumber = 0;
  136. for (int i = 1; i < rowNum; i++) {
  137. try {
  138. logger.info("读取行数:" + i);
  139. Row row = sheet.getRow(i);
  140. int cellNum = row.getLastCellNum();
  141. TAlarmmodify entity = new TAlarmmodify();
  142. for (int j = 0; j < cellNum; j++) {
  143. Cell cell = row.getCell(j);
  144. // cell.setCellType(CellType.STRING);
  145. String cellValue = ExcelUtils.getCellValue(cell);
  146. logger.info("cellValue:" + cellValue);
  147. if (j == 0) {
  148. for (SysDictData p : plant) {
  149. if (p.getDictLabel().equals(cellValue.trim())) {
  150. entity.setPlantCode(p.getDictValue());//装置名称
  151. }
  152. }
  153. } else if (j == 1) {
  154. if (cellValue.length() > 3) {
  155. entity.setTime(new SimpleDateFormat(DateUtils.getDateFormat(cellValue)).parse(cellValue));//时间
  156. }
  157. } else if (j == 2) {
  158. for (SysDictData a : area) {
  159. if (a.getDictLabel().equals(cellValue.trim())) {
  160. entity.setArea(a.getDictValue());//区域
  161. }
  162. }
  163. } else if (j == 3) {
  164. entity.setContents(cellValue);//修改内容
  165. } else if (j == 4) {
  166. entity.setApplicant(cellValue);//批准人
  167. } else if (j == 5) {
  168. entity.setReviewer(cellValue);//申请人
  169. } else if (j == 6) {
  170. entity.setApprover(cellValue);//审核人
  171. } else if (j == 7) {
  172. entity.setExecutor(cellValue);//执行人
  173. } else if (j == 8) {
  174. entity.setRemarks(cellValue);//执行人
  175. } else if (j == 9) {
  176. for (SysDept d : dept) {
  177. if (d.getDeptName().equals(cellValue.trim())) {
  178. entity.setDeptId(d.getDeptId());//部门编号
  179. }
  180. }
  181. }
  182. }
  183. entity.setCreaterCode(userId.toString());
  184. logger.info("entity:" + entity);
  185. list.add(entity);
  186. }catch (Exception e){
  187. failNumber++;
  188. failRow.add(i+1);
  189. }
  190. }
  191. int successNumber = 0;
  192. int failNum = 0;
  193. for (TAlarmmodify t : list
  194. ) {
  195. failNum++;
  196. try {
  197. tAlarmmodifyService.insertTAlarmmodify(t);
  198. successNumber++;
  199. }catch (Exception e){
  200. failNumber++;
  201. failRow.add(failNum+1);
  202. }
  203. }
  204. logger.info("list:" + JSON.toJSONString(list));
  205. logger.info("successNumber:" +String.valueOf(successNumber));
  206. logger.info("failNumber:" +String.valueOf(failNumber));
  207. logger.info("failRow:" +String.valueOf(failRow));
  208. return AjaxResult.success(String.valueOf(successNumber), failRow);
  209. }
  210. }