TPssrFrameModelController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package com.ruoyi.project.pssr.controller;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6. import com.alibaba.fastjson.JSON;
  7. import com.ruoyi.common.utils.file.ExcelUtils;
  8. import com.ruoyi.project.pssr.domain.TPssrRegion;
  9. import org.apache.commons.collections4.CollectionUtils;
  10. import org.apache.poi.ss.usermodel.Cell;
  11. import org.apache.poi.ss.usermodel.Row;
  12. import org.apache.poi.ss.usermodel.Sheet;
  13. import org.apache.poi.ss.usermodel.Workbook;
  14. import org.springframework.security.access.prepost.PreAuthorize;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import com.ruoyi.framework.aspectj.lang.annotation.Log;
  18. import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
  19. import com.ruoyi.project.pssr.domain.TPssrFrameModel;
  20. import com.ruoyi.project.pssr.service.ITPssrFrameModelService;
  21. import com.ruoyi.framework.web.controller.BaseController;
  22. import com.ruoyi.framework.web.domain.AjaxResult;
  23. import com.ruoyi.common.utils.poi.ExcelUtil;
  24. import com.ruoyi.framework.web.page.TableDataInfo;
  25. import org.springframework.web.multipart.MultipartFile;
  26. /**
  27. * 支(吊)架Controller
  28. *
  29. * @author ssy
  30. * @date 2024-12-18
  31. */
  32. @RestController
  33. @RequestMapping("/pssr/frameModel")
  34. public class TPssrFrameModelController extends BaseController
  35. {
  36. @Autowired
  37. private ITPssrFrameModelService tPssrFrameModelService;
  38. /**
  39. * 查询支(吊)架列表
  40. */
  41. @PreAuthorize("@ss.hasPermi('pssr:frameModel:list')")
  42. @GetMapping("/list")
  43. public TableDataInfo list(TPssrFrameModel tPssrFrameModel)
  44. {
  45. startPage();
  46. List<TPssrFrameModel> list = tPssrFrameModelService.selectTPssrFrameModelList(tPssrFrameModel);
  47. return getDataTable(list);
  48. }
  49. /**
  50. * 导出支(吊)架列表
  51. */
  52. @PreAuthorize("@ss.hasPermi('pssr:frameModel:export')")
  53. @Log(title = "支(吊)架", businessType = BusinessType.EXPORT)
  54. @GetMapping("/export")
  55. public AjaxResult export(TPssrFrameModel tPssrFrameModel)
  56. {
  57. List<TPssrFrameModel> list = tPssrFrameModelService.selectTPssrFrameModelList(tPssrFrameModel);
  58. ExcelUtil<TPssrFrameModel> util = new ExcelUtil<TPssrFrameModel>(TPssrFrameModel.class);
  59. return util.exportExcel(list, "frameModel");
  60. }
  61. /**
  62. * 获取支(吊)架详细信息
  63. */
  64. @PreAuthorize("@ss.hasPermi('pssr:frameModel:query')")
  65. @GetMapping(value = "/{id}")
  66. public AjaxResult getInfo(@PathVariable("id") Long id)
  67. {
  68. return AjaxResult.success(tPssrFrameModelService.selectTPssrFrameModelById(id));
  69. }
  70. /**
  71. * 新增支(吊)架
  72. */
  73. @PreAuthorize("@ss.hasPermi('pssr:frameModel:add')")
  74. @Log(title = "支(吊)架", businessType = BusinessType.INSERT)
  75. @PostMapping
  76. public AjaxResult add(@RequestBody TPssrFrameModel tPssrFrameModel)
  77. {
  78. return toAjax(tPssrFrameModelService.insertTPssrFrameModel(tPssrFrameModel));
  79. }
  80. private int insertOrUpdate(TPssrFrameModel tPssrFrameModel) {
  81. TPssrFrameModel model = new TPssrFrameModel();
  82. model.setRegion(tPssrFrameModel.getRegion());
  83. model.setBracketNumber(tPssrFrameModel.getBracketNumber());
  84. List<TPssrFrameModel> tPssrFrameModels = tPssrFrameModelService.selectTPssrFrameModelList(model);
  85. if (CollectionUtils.isEmpty(tPssrFrameModels)) {
  86. return tPssrFrameModelService.insertTPssrFrameModel(tPssrFrameModel);
  87. } else {
  88. tPssrFrameModel.setId(tPssrFrameModels.get(0).getId());
  89. return tPssrFrameModelService.updateTPssrFrameModel(tPssrFrameModel);
  90. }
  91. }
  92. /**
  93. * 修改支(吊)架
  94. */
  95. @PreAuthorize("@ss.hasPermi('pssr:frameModel:edit')")
  96. @Log(title = "支(吊)架", businessType = BusinessType.UPDATE)
  97. @PutMapping
  98. public AjaxResult edit(@RequestBody TPssrFrameModel tPssrFrameModel)
  99. {
  100. return toAjax(tPssrFrameModelService.updateTPssrFrameModel(tPssrFrameModel));
  101. }
  102. /**
  103. * 删除支(吊)架
  104. */
  105. @PreAuthorize("@ss.hasPermi('pssr:frameModel:remove')")
  106. @Log(title = "支(吊)架", businessType = BusinessType.DELETE)
  107. @DeleteMapping("/{ids}")
  108. public AjaxResult remove(@PathVariable Long[] ids)
  109. {
  110. return toAjax(tPssrFrameModelService.deleteTPssrFrameModelByIds(ids));
  111. }
  112. @PreAuthorize("@ss.hasPermi('pssr:region:add')")
  113. @Log(title = "分离培训模版", businessType = BusinessType.INSERT)
  114. @PostMapping("/importData")
  115. public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException {
  116. //获取操作人员ID
  117. Long userId = getUserId();
  118. //报错行数统计
  119. List<Integer> failRow = new ArrayList<Integer>();
  120. Workbook workbook = ExcelUtils.getWorkBook(file);
  121. Sheet sheet = workbook.getSheetAt(0);
  122. List<TPssrFrameModel> list = new ArrayList<>();
  123. int rowNum = sheet.getLastRowNum();
  124. int failNumber = 0;
  125. String topic = "";
  126. boolean flag = false;
  127. for (int i = 2; i <= rowNum; i++) {
  128. try {
  129. logger.info("读取行数:" + i);
  130. Row row = sheet.getRow(i);
  131. if (row == null) {
  132. sheet.removeRow(row);
  133. rowNum++;
  134. continue;
  135. }
  136. int cellNum = row.getLastCellNum();
  137. TPssrFrameModel entity = new TPssrFrameModel();
  138. for (int j = 0; j < cellNum; j++) {
  139. Cell cell = row.getCell(j);
  140. if (cell == null) {
  141. continue;
  142. }
  143. String cellValue = ExcelUtils.getCellValue(cell);
  144. logger.info("cellValue:" + cellValue);
  145. if (j == 0) {
  146. entity.setRegion(cellValue);
  147. } else if (j == 1) {
  148. entity.setBracketNumber(cellValue);
  149. } else if (j == 2) {
  150. entity.setPipelineNumber(cellValue);
  151. } else if (j == 3) {
  152. entity.setDevNo(cellValue);
  153. } else if (j == 4) {
  154. entity.setUnit(cellValue);
  155. } else if (j == 5) {
  156. entity.setSupportType(cellValue);
  157. }
  158. }
  159. entity.setCreaterCode(userId.toString());
  160. entity.setCreatedate(new Date());
  161. logger.info("entity:" + entity);
  162. list.add(entity);
  163. } catch (Exception e) {
  164. failNumber++;
  165. failRow.add(i + 1);
  166. }
  167. }
  168. int successNumber = 0;
  169. int failNum = 0;
  170. for (TPssrFrameModel t : list) {
  171. failNum++;
  172. try {
  173. add(t);
  174. successNumber++;
  175. } catch (Exception e) {
  176. e.printStackTrace();
  177. failNumber++;
  178. failRow.add(failNum + 1);
  179. }
  180. }
  181. logger.info("list:" + JSON.toJSONString(list));
  182. logger.info("successNumber:{}", successNumber);
  183. logger.info("failNumber:{}", failNumber);
  184. logger.info("failRow:{}", failRow);
  185. return AjaxResult.success(String.valueOf(successNumber), failRow);
  186. }
  187. }