Browse Source

【CHG】修改导入规则

zhaomn 2 years ago
parent
commit
d348c9a42a
36 changed files with 1668 additions and 312 deletions
  1. 23 13
      railway-business/src/main/java/com/railway/business/bi/controller/ImportController.java
  2. 5 3
      railway-business/src/main/java/com/railway/business/bi/controller/ShowBdycController.java
  3. 5 3
      railway-business/src/main/java/com/railway/business/bi/controller/ShowDlycController.java
  4. 9 1
      railway-business/src/main/java/com/railway/business/bi/controller/ShowSbxjController.java
  5. 17 12
      railway-business/src/main/java/com/railway/business/bi/domain/ShowBdyc.java
  6. 8 7
      railway-business/src/main/java/com/railway/business/bi/domain/ShowBpdjxjh.java
  7. 16 13
      railway-business/src/main/java/com/railway/business/bi/domain/ShowDlyc.java
  8. 19 10
      railway-business/src/main/java/com/railway/business/bi/domain/ShowGsd.java
  9. 15 9
      railway-business/src/main/java/com/railway/business/bi/domain/ShowGsy.java
  10. 34 33
      railway-business/src/main/java/com/railway/business/bi/domain/ShowSbxj.java
  11. 9 6
      railway-business/src/main/java/com/railway/business/bi/domain/ShowTestPlanDt.java
  12. 7 4
      railway-business/src/main/java/com/railway/business/bi/domain/ShowTestPlanKg.java
  13. 17 12
      railway-business/src/main/java/com/railway/business/bi/domain/ShowYdts.java
  14. 61 0
      railway-business/src/main/java/com/railway/business/bi/enums/ImpFileTypeEnum.java
  15. 48 0
      railway-business/src/main/java/com/railway/business/bi/enums/ImpSheetEnum.java
  16. 42 0
      railway-business/src/main/java/com/railway/business/bi/enums/YcxxFoundModeEnum.java
  17. 42 0
      railway-business/src/main/java/com/railway/business/bi/enums/YcxxRectifyResultEnum.java
  18. 20 0
      railway-business/src/main/java/com/railway/business/bi/service/IShowBpdjxjhService.java
  19. 44 0
      railway-business/src/main/java/com/railway/business/bi/service/IShowFileService.java
  20. 20 0
      railway-business/src/main/java/com/railway/business/bi/service/IShowGsdService.java
  21. 20 0
      railway-business/src/main/java/com/railway/business/bi/service/IShowGsyService.java
  22. 24 4
      railway-business/src/main/java/com/railway/business/bi/service/IShowTestPlanDtService.java
  23. 24 4
      railway-business/src/main/java/com/railway/business/bi/service/IShowTestPlanKgService.java
  24. 42 0
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowBpdjxjhServiceImpl.java
  25. 329 2
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowFileServiceImpl.java
  26. 42 0
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowGsdServiceImpl.java
  27. 42 0
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowGsyServiceImpl.java
  28. 43 0
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowTestPlanDtServiceImpl.java
  29. 42 0
      railway-business/src/main/java/com/railway/business/bi/service/impl/ShowTestPlanKgServiceImpl.java
  30. 2 2
      railway-business/src/main/resources/mapper/bi/ShowBdycMapper.xml
  31. 2 2
      railway-business/src/main/resources/mapper/bi/ShowDlycMapper.xml
  32. 2 2
      railway-business/src/main/resources/mapper/bi/ShowFileMapper.xml
  33. 29 16
      railway-common/src/main/java/com/railway/common/annotation/Excel.java
  34. 87 17
      railway-common/src/main/java/com/railway/common/utils/LocalDateUtil.java
  35. 13 0
      railway-common/src/main/java/com/railway/common/utils/file/FileUtils.java
  36. 464 137
      railway-common/src/main/java/com/railway/common/utils/poi/ExcelUtil.java

+ 23 - 13
railway-business/src/main/java/com/railway/business/bi/controller/ImportController.java

@@ -1,5 +1,6 @@
 package com.railway.business.bi.controller;
 
+import com.railway.business.bi.service.IShowFileService;
 import com.railway.common.core.controller.BaseController;
 import com.railway.common.core.domain.AjaxResult;
 import io.swagger.annotations.Api;
@@ -20,39 +21,48 @@ import org.springframework.web.multipart.MultipartFile;
 @RequestMapping(value = "show/import")
 public class ImportController extends BaseController {
 
-  @ApiOperation(value = "导入电力变电专业每日异常信息统计表")
-  @PostMapping(value = "/yctjb")
-  public AjaxResult impYctjb(@RequestParam(value = "file") MultipartFile file,
-      @RequestParam(value = "date", required = false) String date) {
-    return AjaxResult.success();
+  private final IShowFileService fileService;
+
+  public ImportController(IShowFileService fileService) {
+    this.fileService = fileService;
   }
 
-  @ApiOperation(value = "导入变配电所检修计划表")
+  @ApiOperation(value = "导入-检修兑现情况-2022年变配电所检修计划表(检测数字化)")
   @PostMapping(value = "/bdsjxjhb")
   public AjaxResult impBdsjxjhb(@RequestParam(value = "file") MultipartFile file,
       @RequestParam(value = "date", required = false) String date) {
-    return AjaxResult.success();
+    return fileService.impXlsBdsjxjhb(file);
   }
 
-  @ApiOperation(value = "导入检修计划兑现表")
+  @ApiOperation(value = "导入-试验计划兑现情况-2022检修计划兑现表")
   @PostMapping(value = "/jxjhdxb")
   public AjaxResult impJxjhdxb(@RequestParam(value = "file") MultipartFile file,
       @RequestParam(value = "date", required = false) String date) {
-    return AjaxResult.success();
+    return fileService.impXlsJxjhdxb(file);
   }
 
-  @ApiOperation(value = "导入基础设施段生产任务报表")
+  @ApiOperation(value = "导入-(5月18日)长春高铁基础设施段生产任务报表")
   @PostMapping(value = "/scrwb")
   public AjaxResult impScrwb(@RequestParam(value = "file") MultipartFile file,
       @RequestParam(value = "date", required = false) String date) {
-    return AjaxResult.success();
+    return fileService.impXlsScrw(file);
   }
 
-  @ApiOperation(value = "导入巡检兑现表")
+  @ApiOperation(value = "导入-牵变、电力设备巡检兑现(本月)-电力车间2023巡检兑现表")
   @PostMapping(value = "/xjdxb")
   public AjaxResult impXjdxb(@RequestParam(value = "file") MultipartFile file,
       @RequestParam(value = "date", required = false) String date) {
-    return AjaxResult.success();
+    return fileService.impXlsXjdx(file);
+  }
+
+  /**
+   * 10月23日电力变电专业每日异常信息统计表
+   */
+  @ApiOperation(value = "导入-异常信息-10月23日电力变电专业每日异常信息统计表")
+  @PostMapping(value = "/yctjb")
+  public AjaxResult impYctjb(@RequestParam(value = "file") MultipartFile file,
+      @RequestParam(value = "date", required = false) String date) {
+    return fileService.impXlsYctjb(file);
   }
 
 }

+ 5 - 3
railway-business/src/main/java/com/railway/business/bi/controller/ShowBdycController.java

@@ -2,6 +2,8 @@ package com.railway.business.bi.controller;
 
 import com.railway.business.bi.domain.ShowBdyc;
 import com.railway.business.bi.domain.vo.BdycQuery;
+import com.railway.business.bi.enums.YcxxFoundModeEnum;
+import com.railway.business.bi.enums.YcxxRectifyResultEnum;
 import com.railway.business.bi.service.IShowBdycService;
 import com.railway.common.core.controller.BaseController;
 import com.railway.common.core.page.TableDataInfo;
@@ -32,7 +34,7 @@ public class ShowBdycController extends BaseController {
   @GetMapping(value = "/list")
   public TableDataInfo getList(BdycQuery showBdyc) {
     startPage();
-    showBdyc.setFoundMode("0");
+    showBdyc.setFoundMode(YcxxFoundModeEnum.PUSH.getCode());
     List<ShowBdyc> list = showBdycService.getList(showBdyc);
     return getDataTable(list);
   }
@@ -41,7 +43,7 @@ public class ShowBdycController extends BaseController {
   @GetMapping(value = "/listSelf")
   public TableDataInfo getListBySelf(BdycQuery showBdyc) {
     startPage();
-    showBdyc.setFoundMode("1");
+    showBdyc.setFoundMode(YcxxFoundModeEnum.SELF.getCode());
     List<ShowBdyc> list = showBdycService.getList(showBdyc);
     return getDataTable(list);
   }
@@ -50,7 +52,7 @@ public class ShowBdycController extends BaseController {
   @GetMapping(value = "/remainList")
   public TableDataInfo remainList(BdycQuery showBdyc) {
     startPage();
-    showBdyc.setRectifyResult("0");
+    showBdyc.setRectifyResult(YcxxRectifyResultEnum.NOT_FINISHED.getCode());
     List<ShowBdyc> list = showBdycService.getList(showBdyc);
     return getDataTable(list);
   }

+ 5 - 3
railway-business/src/main/java/com/railway/business/bi/controller/ShowDlycController.java

@@ -2,6 +2,8 @@ package com.railway.business.bi.controller;
 
 import com.railway.business.bi.domain.ShowDlyc;
 import com.railway.business.bi.domain.vo.DlycQuery;
+import com.railway.business.bi.enums.YcxxFoundModeEnum;
+import com.railway.business.bi.enums.YcxxRectifyResultEnum;
 import com.railway.business.bi.service.IShowDlycService;
 import com.railway.common.core.controller.BaseController;
 import com.railway.common.core.page.TableDataInfo;
@@ -32,7 +34,7 @@ public class ShowDlycController extends BaseController {
   @GetMapping(value = "/list")
   public TableDataInfo getList(DlycQuery showDlyc) {
     startPage();
-    showDlyc.setFoundMode("0");
+    showDlyc.setFoundMode(YcxxFoundModeEnum.PUSH.getCode());
     List<ShowDlyc> list = showDlycService.getList(showDlyc);
     return getDataTable(list);
   }
@@ -41,7 +43,7 @@ public class ShowDlycController extends BaseController {
   @GetMapping(value = "/listSelf")
   public TableDataInfo getListBySelf(DlycQuery showDlyc) {
     startPage();
-    showDlyc.setFoundMode("1");
+    showDlyc.setFoundMode(YcxxFoundModeEnum.SELF.getCode());
     List<ShowDlyc> list = showDlycService.getList(showDlyc);
     return getDataTable(list);
   }
@@ -50,7 +52,7 @@ public class ShowDlycController extends BaseController {
   @GetMapping(value = "/remainList")
   public TableDataInfo remainList(DlycQuery showDlyc) {
     startPage();
-    showDlyc.setRectifyResult("0");
+    showDlyc.setRectifyResult(YcxxRectifyResultEnum.NOT_FINISHED.getCode());
     List<ShowDlyc> list = showDlycService.getList(showDlyc);
     return getDataTable(list);
   }

+ 9 - 1
railway-business/src/main/java/com/railway/business/bi/controller/ShowSbxjController.java

@@ -37,7 +37,7 @@ public class ShowSbxjController extends BaseController {
     return AjaxResult.success(list);
   }
 
-  @ApiOperation(value = "导入数据展示列表")
+  @ApiOperation(value = "导入电力数据展示列表")
   @GetMapping(value = "list")
   public TableDataInfo getList(ShowSbxj showSbxj) {
     startPage();
@@ -45,4 +45,12 @@ public class ShowSbxjController extends BaseController {
     return getDataTable(list);
   }
 
+  @ApiOperation(value = "导入变电数据展示列表")
+  @GetMapping(value = "listBd")
+  public TableDataInfo getBdList(ShowSbxj showSbxj) {
+    startPage();
+    List<ShowSbxj> list = showSbxjService.getList(showSbxj);
+    return getDataTable(list);
+  }
+
 }

+ 17 - 12
railway-business/src/main/java/com/railway/business/bi/domain/ShowBdyc.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -21,68 +21,73 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowBdyc extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "序号")
   private Long id;
 
   @ApiModelProperty(value = "发现时间")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "发现时间", dateFormat = "yyyy/MM/dd")
   private LocalDate foundDate;
 
   @ApiModelProperty(value = "线别")
-  @Length(min = 1, max = 255, message = "【线别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线别")
   private String lineName;
 
   @ApiModelProperty(value = "所亭名称")
-  @Length(min = 1, max = 255, message = "【所亭名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "所亭名称")
   private String stationName;
 
   @ApiModelProperty(value = "缺陷设备名称")
-  @Length(min = 1, max = 255, message = "【缺陷设备名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "缺陷设备名称")
   private String qxsbmc;
 
   @ApiModelProperty(value = "运行编号")
-  @Length(min = 1, max = 255, message = "【运行编号】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "运行编号")
   private String yxbh;
 
   @ApiModelProperty(value = "缺陷等级")
-  @Length(min = 1, max = 255, message = "【缺陷等级】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "缺陷等级")
   private String qxdj;
 
   @ApiModelProperty(value = "缺陷内容")
-  @Length(min = 1, max = 255, message = "【缺陷内容】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "缺陷内容")
   private String qxnr;
 
   @ApiModelProperty(value = "原因")
-  @Length(min = 1, max = 255, message = "【原因】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "原因")
   private String reason;
 
   @ApiModelProperty(value = "责任部门")
-  @Length(min = 1, max = 255, message = "【责任部门】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "责任部门")
   private String zrbm;
 
   @ApiModelProperty(value = "涉及工区")
-  @Length(min = 1, max = 255, message = "【涉及工区】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "涉及工区")
   private String sjgq;
 
   @ApiModelProperty(value = "整改情况")
-  @Length(min = 1, max = 255, message = "【整改情况】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "整改情况")
   private String rectifyResult;
 
   @ApiModelProperty(value = "整改措施")
-  @Length(min = 1, max = 255, message = "【整改措施】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "整改措施")
   private String rectifyWay;
 
   @ApiModelProperty(value = "整改时间")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "整改时间", dateFormat = "yyyy/MM/dd")
   private LocalDate rectifyDate;
 
   @ApiModelProperty(value = "计数")
+  @Excel(name = "计数")
   private Integer counted;
 
   @ApiModelProperty(value = "计划处理时间(每周倒排计划)")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "计划处理时间\n(每周倒排计划)", dateFormat = "yyyy/MM/dd")
   private LocalDate planDate;
 
   @ApiModelProperty(value = "del_flag")

+ 8 - 7
railway-business/src/main/java/com/railway/business/bi/domain/ShowBpdjxjh.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -24,32 +24,33 @@ public class ShowBpdjxjh extends BaseEntity {
   private Long id;
 
   @ApiModelProperty(value = "线路信息")
-  @Length(min = 1, max = 255, message = "【线路信息】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线路信息")
   private String linName;
 
   @ApiModelProperty(value = "所别")
-  @Length(min = 1, max = 64, message = "【所别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "所别")
   private String substation;
 
   @ApiModelProperty(value = "所亭名称")
-  @Length(min = 1, max = 255, message = "【所亭名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "所亭名称")
   private String substationName;
 
   @ApiModelProperty(value = "计划月")
-  @Length(min = 1, max = 16, message = "【计划月】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计划月")
   private String jhMonth;
 
   @ApiModelProperty(value = "计划日")
-  @Length(min = 1, max = 16, message = "【计划日】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计划日")
   private String jhDay;
 
   @ApiModelProperty(value = "兑现状态")
-  @Length(min = 1, max = 1, message = "【兑现状态】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "兑现状态")
   private String completionState;
 
   @ApiModelProperty(value = "兑现日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "兑现日期", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate;
 
   @ApiModelProperty(value = "del_flag")

+ 16 - 13
railway-business/src/main/java/com/railway/business/bi/domain/ShowDlyc.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -21,64 +21,67 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowDlyc extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "序号")
   private Long id;
 
   @ApiModelProperty(value = "缺陷设备名称")
-  @Length(min = 1, max = 255, message = "【缺陷设备名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "缺陷设备名称")
   private String qxsbmc;
 
   @ApiModelProperty(value = "工区")
-  @Length(min = 1, max = 255, message = "【工区】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "工区")
   private String ssgq;
 
   @ApiModelProperty(value = "速度级别")
-  @Length(min = 1, max = 255, message = "【速度级别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "速度级别")
   private String sdjb;
 
   @ApiModelProperty(value = "线别")
-  @Length(min = 1, max = 255, message = "【线别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线别")
   private String lineName;
 
   @ApiModelProperty(value = "发现日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "发现日期", dateFormat = "yyyy/MM/dd")
   private LocalDate foundDate;
 
   @ApiModelProperty(value = "缺陷内容")
-  @Length(min = 1, max = 255, message = "【缺陷内容】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "缺陷内容")
   private String qxnr;
 
   @ApiModelProperty(value = "故障类别")
-  @Length(min = 1, max = 255, message = "【故障类别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "故障类别")
   private String gzlb;
 
   @ApiModelProperty(value = "原因")
-  @Length(min = 1, max = 255, message = "【原因】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "原因")
   private String reason;
 
   @ApiModelProperty(value = "严重性")
-  @Length(min = 1, max = 255, message = "【严重性】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "严重性")
   private String gravity;
 
   @ApiModelProperty(value = "处理措施")
-  @Length(min = 1, max = 255, message = "【处理措施】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "处理措施")
   private String rectifyWay;
 
   @ApiModelProperty(value = "处理结果")
-  @Length(min = 1, max = 255, message = "【处理结果】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "处理结果")
   private String rectifyResult;
 
   @ApiModelProperty(value = "处理缺陷负责人")
-  @Length(min = 1, max = 255, message = "【处理缺陷负责人】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "处理缺陷负责人")
   private String rectifyUser;
 
   @ApiModelProperty(value = "消除日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "消除日期", dateFormat = "yyyy/MM/dd")
   private LocalDate rectifyDate;
 
   @ApiModelProperty(value = "计数")
-  @Length(min = 1, max = 255, message = "【计数】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计数")
   private String counted;
 
   @ApiModelProperty(value = "del_flag")

+ 19 - 10
railway-business/src/main/java/com/railway/business/bi/domain/ShowGsd.java

@@ -1,15 +1,14 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;
 import java.time.LocalDate;
-import java.util.Date;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -23,67 +22,77 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowGsd extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "项目编号")
   private Long id;
 
   @ApiModelProperty(value = "车间")
-  @Length(min = 1, max = 255, message = "【车间】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "车间")
   private String deptName;
 
   @ApiModelProperty(value = "铁路线别")
+  @Excel(name = "铁路线别")
   private Long lineId;
 
   @ApiModelProperty(value = "线路名称")
-  @Length(min = 1, max = 255, message = "【线路名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线路名称")
   private String lineName;
 
   @ApiModelProperty(value = "架空线路 km")
+  @Excel(name = "架空线路")
   private BigDecimal jkxl;
 
   @ApiModelProperty(value = "电缆线路 km")
+  @Excel(name = "电缆线路")
   private BigDecimal dlxl;
 
   @ApiModelProperty(value = "隔离开关")
+  @Excel(name = "隔离开关")
   private Integer glkg;
 
   @ApiModelProperty(value = "断路器")
+  @Excel(name = "断路器")
   private Integer dlq;
 
   @ApiModelProperty(value = "电缆接头")
+  @Excel(name = "电缆接头")
   private Integer dljt;
 
   @ApiModelProperty(value = "电缆井")
+  @Excel(name = "电缆井")
   private Integer dlj;
 
   @ApiModelProperty(value = "接续箱")
+  @Excel(name = "接续箱")
   private Integer jxx;
 
   @ApiModelProperty(value = "维修方式")
-  @Length(min = 1, max = 255, message = "【维修方式】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "维修方式")
   private String wxfs;
 
   @ApiModelProperty(value = "上次维修年度")
-  @Length(min = 1, max = 10, message = "【上次维修年度】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "上次维修年度")
   private String lastTestYear;
 
   @ApiModelProperty(value = "计划完成月份")
-  @Length(min = 1, max = 10, message = "【计划完成月份】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计划完成月份")
   private String planMonth;
 
   @ApiModelProperty(value = "到期提醒")
-  @Length(min = 1, max = 255, message = "【到期提醒】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "到期提醒")
   private String overdueReminder;
 
   @ApiModelProperty(value = "完成日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "完成日期", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate;
 
   @ApiModelProperty(value = "计划调整建议")
-  @Length(min = 1, max = 255, message = "【计划调整建议】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计划调整建议")
   private String planChangeDesc;
 
   @ApiModelProperty(value = "当月未完成原因")
-  @Length(min = 1, max = 255, message = "【当月未完成原因】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "当月未完成原因")
   private String overdueReason;
 
   @ApiModelProperty(value = "del_flag")

+ 15 - 9
railway-business/src/main/java/com/railway/business/bi/domain/ShowGsy.java

@@ -1,14 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
-import java.util.Date;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -22,64 +21,71 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowGsy extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "段序")
   private Long id;
 
   @ApiModelProperty(value = "车间")
-  @Length(min = 1, max = 255, message = "【车间】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "车间")
   private String deptName;
 
   @ApiModelProperty(value = "铁路线别")
-  @Length(min = 1, max = 255, message = "【铁路线别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "铁路线别")
   private String lineName;
 
   @ApiModelProperty(value = "变配电所名称")
-  @Length(min = 1, max = 255, message = "【变配电所名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "变配电所名称")
   private String substationName;
 
   @ApiModelProperty(value = "保护类型")
-  @Length(min = 1, max = 255, message = "【保护类型】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "保护类型")
   private String bhlx;
 
   @ApiModelProperty(value = "上次试验年度")
-  @Length(min = 1, max = 10, message = "【上次试验年度】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "上次试验年度")
   private String lastTestYear;
 
   @ApiModelProperty(value = "试验计划电源一")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "试验计划电源一", dateFormat = "yyyy/MM/dd")
   private LocalDate testPlan1;
 
   @ApiModelProperty(value = "试验计划电源二")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "试验计划电源二", dateFormat = "yyyy/MM/dd")
   private LocalDate testPlan2;
 
   @ApiModelProperty(value = "到期提醒")
-  @Length(min = 1, max = 255, message = "【到期提醒】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "到期提醒")
   private String overdueReminder;
 
   @ApiModelProperty(value = "完成日期电源一")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "完成日期电源一", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate1;
 
   @ApiModelProperty(value = "完成日期电源二")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "完成日期电源二", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate2;
 
   @ApiModelProperty(value = "计划调整建议电源一")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "计划调整建议电源一", dateFormat = "yyyy/MM/dd")
   private LocalDate planChange1;
 
   @ApiModelProperty(value = "计划调整建议电源二")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "计划调整建议电源二", dateFormat = "yyyy/MM/dd")
   private LocalDate planChange2;
 
   @ApiModelProperty(value = "当月未完成原因")
-  @Length(min = 1, max = 255, message = "【当月未完成原因】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "当月未完成原因")
   private String overdueReason;
 
   @ApiModelProperty(value = "del_flag")

+ 34 - 33
railway-business/src/main/java/com/railway/business/bi/domain/ShowSbxj.java

@@ -1,5 +1,6 @@
 package com.railway.business.bi.domain;
 
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,135 +22,135 @@ public class ShowSbxj extends BaseEntity {
   private Long id;
 
   @ApiModelProperty(value = "车间")
-  @Length(min = 1, max = 255, message = "【车间】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "车间")
   private String deptName;
 
   @ApiModelProperty(value = "班组")
-  @Length(min = 1, max = 255, message = "【班组】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "班组")
   private String teamName;
 
   @ApiModelProperty(value = "巡检单元(杆号、箱变名称、变配电所)")
-  @Length(min = 1, max = 255, message = "【巡检单元(杆号、箱变名称、变配电所)】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "巡检单元(杆号、箱变名称、变配电所)")
   private String xjdy;
 
   @ApiModelProperty(value = "箱变")
-  @Length(min = 1, max = 10, message = "【箱变】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "箱变")
   private String xb;
 
   @ApiModelProperty(value = "配电所")
-  @Length(min = 1, max = 10, message = "【配电所】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "配电所")
   private String pds;
 
   @ApiModelProperty(value = "10/0.4变电所")
-  @Length(min = 1, max = 10, message = "【10/0.4变电所】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "10/0.4变电所")
   private String bds;
 
   @ApiModelProperty(value = "受电线路")
-  @Length(min = 1, max = 10, message = "【受电线路】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "受电线路")
   private String sdxl;
 
   @ApiModelProperty(value = "牵引变电所")
-  @Length(min = 1, max = 10, message = "【牵引变电所】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "牵引变电所")
   private String qybds;
 
   @ApiModelProperty(value = "at/分区所")
-  @Length(min = 1, max = 10, message = "【at/分区所】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "at/分区所")
   private String atfqs;
 
   @ApiModelProperty(value = "1月计划")
-  @Length(min = 1, max = 32, message = "【1月计划】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "1月计划")
   private String plan1;
 
   @ApiModelProperty(value = "1月实际")
-  @Length(min = 1, max = 32, message = "【1月实际】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "1月实际")
   private String actual1;
 
   @ApiModelProperty(value = "plan2")
-  @Length(min = 1, max = 32, message = "【plan2】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan2")
   private String plan2;
 
   @ApiModelProperty(value = "actual2")
-  @Length(min = 1, max = 32, message = "【actual2】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual2")
   private String actual2;
 
   @ApiModelProperty(value = "plan3")
-  @Length(min = 1, max = 32, message = "【plan3】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan3")
   private String plan3;
 
   @ApiModelProperty(value = "actual3")
-  @Length(min = 1, max = 32, message = "【actual3】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual3")
   private String actual3;
 
   @ApiModelProperty(value = "plan4")
-  @Length(min = 1, max = 32, message = "【plan4】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan4")
   private String plan4;
 
   @ApiModelProperty(value = "actual4")
-  @Length(min = 1, max = 32, message = "【actual4】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual4")
   private String actual4;
 
   @ApiModelProperty(value = "plan5")
-  @Length(min = 1, max = 32, message = "【plan5】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan5")
   private String plan5;
 
   @ApiModelProperty(value = "actual5")
-  @Length(min = 1, max = 32, message = "【actual5】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual5")
   private String actual5;
 
   @ApiModelProperty(value = "plan6")
-  @Length(min = 1, max = 32, message = "【plan6】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan6")
   private String plan6;
 
   @ApiModelProperty(value = "actual6")
-  @Length(min = 1, max = 32, message = "【actual6】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual6")
   private String actual6;
 
   @ApiModelProperty(value = "plan7")
-  @Length(min = 1, max = 32, message = "【plan7】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan7")
   private String plan7;
 
   @ApiModelProperty(value = "actual7")
-  @Length(min = 1, max = 32, message = "【actual7】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual7")
   private String actual7;
 
   @ApiModelProperty(value = "plan8")
-  @Length(min = 1, max = 32, message = "【plan8】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan8")
   private String plan8;
 
   @ApiModelProperty(value = "actual8")
-  @Length(min = 1, max = 32, message = "【actual8】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual8")
   private String actual8;
 
   @ApiModelProperty(value = "plan9")
-  @Length(min = 1, max = 32, message = "【plan9】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan9")
   private String plan9;
 
   @ApiModelProperty(value = "actual9")
-  @Length(min = 1, max = 32, message = "【actual9】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual9")
   private String actual9;
 
   @ApiModelProperty(value = "plan10")
-  @Length(min = 1, max = 32, message = "【plan10】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan10")
   private String plan10;
 
   @ApiModelProperty(value = "actual10")
-  @Length(min = 1, max = 32, message = "【actual10】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual10")
   private String actual10;
 
   @ApiModelProperty(value = "plan11")
-  @Length(min = 1, max = 32, message = "【plan11】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan11")
   private String plan11;
 
   @ApiModelProperty(value = "actual11")
-  @Length(min = 1, max = 32, message = "【actual11】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual11")
   private String actual11;
 
   @ApiModelProperty(value = "plan12")
-  @Length(min = 1, max = 32, message = "【plan12】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "plan12")
   private String plan12;
 
   @ApiModelProperty(value = "actual12")
-  @Length(min = 1, max = 32, message = "【actual12】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "actual12")
   private String actual12;
 
   @ApiModelProperty(value = "del_flag")

+ 9 - 6
railway-business/src/main/java/com/railway/business/bi/domain/ShowTestPlanDt.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -21,36 +21,39 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowTestPlanDt extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "序号")
   private Long id;
 
   @ApiModelProperty(value = "线路名称")
-  @Length(min = 1, max = 255, message = "【线路名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线路名称")
   private String lineName;
 
   @ApiModelProperty(value = "所亭名称")
-  @Length(min = 1, max = 255, message = "【所亭名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "所亭名称")
   private String substationName;
 
   @ApiModelProperty(value = "设备名称")
-  @Length(min = 1, max = 255, message = "【设备名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "设备名称")
   private String sbmc;
 
   @ApiModelProperty(value = "运行编号")
-  @Length(min = 1, max = 255, message = "【运行编号】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "运行编号")
   private String yxbh;
 
   @ApiModelProperty(value = "试验周期")
-  @Length(min = 1, max = 255, message = "【试验周期】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "试验周期")
   private String testCycle;
 
   @ApiModelProperty(value = "计划试验日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "计划试验日期", dateFormat = "yyyy/MM/dd")
   private LocalDate testPlanDate;
 
   @ApiModelProperty(value = "完成日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "完成日期", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate;
 
   @ApiModelProperty(value = "del_flag")

+ 7 - 4
railway-business/src/main/java/com/railway/business/bi/domain/ShowTestPlanKg.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -21,28 +21,31 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowTestPlanKg extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "序号")
   private Long id;
 
   @ApiModelProperty(value = "线别")
-  @Length(min = 1, max = 255, message = "【线别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "线别")
   private String lineName;
 
   @ApiModelProperty(value = "控制单元处所")
-  @Length(min = 1, max = 255, message = "【控制单元处所】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "控制单元处所")
   private String substationName;
 
   @ApiModelProperty(value = "开关编号")
-  @Length(min = 1, max = 255, message = "【开关编号】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "开关编号")
   private String kgbh;
 
   @ApiModelProperty(value = "计划时间")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "试验计划时间", dateFormat = "yyyy/MM/dd")
   private LocalDate testPlanDate;
 
   @ApiModelProperty(value = "实际时间")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "试验实际时间", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate;
 
   @ApiModelProperty(value = "del_flag")

+ 17 - 12
railway-business/src/main/java/com/railway/business/bi/domain/ShowYdts.java

@@ -1,13 +1,13 @@
 package com.railway.business.bi.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.railway.common.annotation.Excel;
 import com.railway.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
@@ -21,64 +21,69 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ShowYdts extends BaseEntity {
 
   @ApiModelProperty(value = "主键", hidden = true)
+  @Excel(name = "顺号")
   private Long id;
 
   @ApiModelProperty(value = "段")
-  @Length(min = 1, max = 255, message = "【段】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "段")
   private String branchName;
 
   @ApiModelProperty(value = "车间")
-  @Length(min = 1, max = 255, message = "【车间】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "车间")
   private String deptName;
 
   @ApiModelProperty(value = "高速/普速")
-  @Length(min = 1, max = 255, message = "【高速/普速】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "高速/普速")
   private String lineSddj;
 
   @ApiModelProperty(value = "铁路线别")
-  @Length(min = 1, max = 255, message = "【铁路线别】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "铁路线别")
   private String lineName;
 
   @ApiModelProperty(value = "区间(站区)")
-  @Length(min = 1, max = 255, message = "【区间(站区)】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "区间(站区)")
   private String stationName;
 
   @ApiModelProperty(value = "性质")
-  @Length(min = 1, max = 255, message = "【性质】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "性质")
   private String lineXz;
 
   @ApiModelProperty(value = "所亭名称")
-  @Length(min = 1, max = 255, message = "【所亭名称】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "所亭名称")
   private String substationName;
 
   @ApiModelProperty(value = "开关数量高压")
+  @Excel(name = "开关数量高压")
   private Integer switchHigh;
 
   @ApiModelProperty(value = "开关数量低压")
+  @Excel(name = "开关数量低压")
   private Integer switchLow;
 
   @ApiModelProperty(value = "上次调试年度")
-  @Length(min = 1, max = 255, message = "【上次调试年度】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "上次调试年度")
   private String lastYear;
 
   @ApiModelProperty(value = "计划月份")
+  @Excel(name = "计划月份")
   private Integer planMonth;
 
   @ApiModelProperty(value = "超期提醒")
-  @Length(min = 1, max = 255, message = "【超期提醒】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "超期提醒")
   private String overdueReminder;
 
   @ApiModelProperty(value = "完成日期")
   @JsonFormat(pattern = "yyyy-MM-dd")
   @DateTimeFormat(pattern = "yyyy-MM-dd")
+  @Excel(name = "计划调整建议", dateFormat = "yyyy/MM/dd")
   private LocalDate completionDate;
 
   @ApiModelProperty(value = "计划调整建议")
-  @Length(min = 1, max = 255, message = "【计划调整建议】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "计划调整建议")
   private String jhtzjy;
 
   @ApiModelProperty(value = "当月未完成原因")
-  @Length(min = 1, max = 255, message = "【当月未完成原因】长度必须介于 {min} 和 {max} 之间")
+  @Excel(name = "当月未完成原因")
   private String overdueReason;
 
   @ApiModelProperty(value = "del_flag")

+ 61 - 0
railway-business/src/main/java/com/railway/business/bi/enums/ImpFileTypeEnum.java

@@ -0,0 +1,61 @@
+package com.railway.business.bi.enums;
+
+/**
+ * 数据文件导入类型
+ *
+ * @author ZhaoMn
+ */
+public enum ImpFileTypeEnum {
+
+  /**
+   * 数据文件导入类型
+   */
+  BDSJXJHB("bdsjxjh", "检修兑现情况-2022年变配电所检修计划表(检测数字化)",
+      new String[]{ImpSheetEnum.BD.getName()}),
+  JXJHDXB("jxjhdx", "试验计划兑现情况-2022检修计划兑现表",
+      new String[]{ImpSheetEnum.KGFH.getName(), ImpSheetEnum.DTSY.getName()}),
+  SCRWB("scrw", "(2月13日)长春高铁基础设施段生产任务月报表",
+      new String[]{ImpSheetEnum.YDTS.getName(), ImpSheetEnum.GSY.getName(),
+          ImpSheetEnum.GSD.getName()}),
+  XJDXB("xjdx", "牵变、电力设备巡检兑现(本月)-电力车间2023巡检兑现表",
+      new String[]{ImpSheetEnum.DL.getName(), ImpSheetEnum.BD.getName()}),
+  YCTJB("yctj", "异常信息-2月14日电力变电专业每日异常信息统计表",
+      new String[]{ImpSheetEnum.YCT2.getName(), ImpSheetEnum.YCT3.getName(),
+          ImpSheetEnum.YCT4.getName(), ImpSheetEnum.YCT5.getName()}),
+  ;
+
+
+  private final String code;
+  private final String notes;
+  private final String[] sheetList;
+
+  ImpFileTypeEnum(String code, String notes, String[] sheetList) {
+    this.code = code;
+    this.notes = notes;
+    this.sheetList = sheetList;
+  }
+
+  public String getCode() {
+    return code;
+  }
+
+  public String getNotes() {
+    return notes;
+  }
+
+  public String[] getSheetList() {
+    return sheetList;
+  }
+
+  public static ImpFileTypeEnum ofValue(String code) {
+    if (null == code) {
+      return null;
+    }
+    for (ImpFileTypeEnum investor : ImpFileTypeEnum.values()) {
+      if (investor.getCode().equals(code)) {
+        return investor;
+      }
+    }
+    return null;
+  }
+}

+ 48 - 0
railway-business/src/main/java/com/railway/business/bi/enums/ImpSheetEnum.java

@@ -0,0 +1,48 @@
+package com.railway.business.bi.enums;
+
+/**
+ * 数据文件导入Sheet Name
+ *
+ * @author ZhaoMn
+ */
+public enum ImpSheetEnum {
+
+  /**
+   * 数据文件导入类型
+   */
+  BD("变电"),
+  DL("电力"),
+  KGFH("开关分合试验明细表"),
+  DTSY("单体试验设备明细"),
+  YDTS("远动调试"),
+  GSY("高试验"),
+  GSD("高受电"),
+  YCT2("表2变电异常信息详情表"),
+  YCT3("表3电力异常调度推送"),
+  YCT4("表4电力异常自主发现问题"),
+  YCT5("表5变电异常自主发现问题"),
+  ;
+
+
+  private final String name;
+
+  ImpSheetEnum(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public static ImpSheetEnum ofValue(String name) {
+    if (null == name) {
+      return null;
+    }
+    for (ImpSheetEnum investor : ImpSheetEnum.values()) {
+      if (investor.getName().equals(name)) {
+        return investor;
+      }
+    }
+    return null;
+  }
+}

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/enums/YcxxFoundModeEnum.java

@@ -0,0 +1,42 @@
+package com.railway.business.bi.enums;
+
+/**
+ * 异常信息 发现方式
+ *
+ * @author ZhaoMn
+ */
+public enum YcxxFoundModeEnum {
+
+  /** 发现方式:0调度推送,1自主发现 */
+  SELF("1", "自主发现"),
+  PUSH("0", "调度推送"),
+  ;
+
+  private final String code;
+  private final String notes;
+
+  YcxxFoundModeEnum(String code, String notes) {
+    this.code = code;
+    this.notes = notes;
+  }
+
+  public String getCode() {
+    return code;
+  }
+
+  public String getNotes() {
+    return notes;
+  }
+
+  public static YcxxFoundModeEnum ofValue(String code) {
+    if(null == code){
+      return null;
+    }
+    for (YcxxFoundModeEnum investor : YcxxFoundModeEnum.values()) {
+      if (investor.getCode().equals(code)) {
+        return investor;
+      }
+    }
+    return null;
+  }
+}

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/enums/YcxxRectifyResultEnum.java

@@ -0,0 +1,42 @@
+package com.railway.business.bi.enums;
+
+/**
+ * 异常信息 处理结果
+ *
+ * @author ZhaoMn
+ */
+public enum YcxxRectifyResultEnum {
+
+  /** 1-已处理,0-未处理 */
+  COMPLETED("1", "已处理"),
+  NOT_FINISHED("0", "未处理"),
+  ;
+
+  private final String code;
+  private final String notes;
+
+  YcxxRectifyResultEnum(String code, String notes) {
+    this.code = code;
+    this.notes = notes;
+  }
+
+  public String getCode() {
+    return code;
+  }
+
+  public String getNotes() {
+    return notes;
+  }
+
+  public static YcxxRectifyResultEnum ofValue(String code) {
+    if(null == code){
+      return null;
+    }
+    for (YcxxRectifyResultEnum investor : YcxxRectifyResultEnum.values()) {
+      if (investor.getCode().equals(code)) {
+        return investor;
+      }
+    }
+    return null;
+  }
+}

+ 20 - 0
railway-business/src/main/java/com/railway/business/bi/service/IShowBpdjxjhService.java

@@ -12,6 +12,26 @@ import java.util.List;
  */
 public interface IShowBpdjxjhService {
 
+  /**
+   * 新增
+   */
+  int create(ShowBpdjxjh showBpdjxjh);
+
+  /**
+   * 删除
+   */
+  int delete(String[] ids);
+
+  /**
+   * 更新
+   */
+  int update(ShowBpdjxjh showBpdjxjh);
+
+  /**
+   * 获取单个
+   */
+  ShowBpdjxjh getInfo(String id);
+
   /**
    * 查询列表
    */

+ 44 - 0
railway-business/src/main/java/com/railway/business/bi/service/IShowFileService.java

@@ -1,7 +1,11 @@
 package com.railway.business.bi.service;
 
 import com.railway.business.bi.domain.ShowFile;
+import com.railway.common.core.domain.AjaxResult;
+import java.io.IOException;
 import java.util.List;
+import org.springframework.web.multipart.MultipartFile;
+
 /**
 * 大屏展示-导入文件记录
 * @author ZhaoMn
@@ -9,6 +13,46 @@ import java.util.List;
 */
 public interface IShowFileService{
 
+    /**
+     * 检修兑现情况-2022年变配电所检修计划表(检测数字化)
+     *
+     * @param file 2022年变配电所检修计划表(检测数字化)
+     * @return 导入结果
+     */
+    AjaxResult impXlsBdsjxjhb(MultipartFile file);
+
+    /**
+     * 试验计划兑现情况-2022检修计划兑现表
+     *
+     * @param file 2022检修计划兑现表
+     * @return 导入结果
+     */
+    AjaxResult impXlsJxjhdxb(MultipartFile file);
+
+    /**
+     * 生产任务报表
+     *
+     * @param file (5月18日)长春高铁基础设施段生产任务报表
+     * @return 导入结果
+     */
+    AjaxResult impXlsScrw(MultipartFile file);
+
+    /**
+     * 牵变、电力设备巡检兑现(本月)-电力车间2023巡检兑现表
+     *
+     * @param file 电力车间2023巡检兑现表
+     * @return 导入结果
+     */
+    AjaxResult impXlsXjdx(MultipartFile file);
+
+    /**
+     * 异常信息-10月23日电力变电专业每日异常信息统计表
+     *
+     * @param file 10月23日电力变电专业每日异常信息统计表
+     * @return 导入结果
+     */
+    AjaxResult impXlsYctjb(MultipartFile file);
+
     /**
     * 新增
     */

+ 20 - 0
railway-business/src/main/java/com/railway/business/bi/service/IShowGsdService.java

@@ -12,6 +12,26 @@ import java.util.List;
  */
 public interface IShowGsdService {
 
+  /**
+   * 新增
+   */
+  int create(ShowGsd showGsd);
+
+  /**
+   * 删除
+   */
+  int delete(String[] ids);
+
+  /**
+   * 更新
+   */
+  int update(ShowGsd showGsd);
+
+  /**
+   * 获取单个
+   */
+  ShowGsd getInfo(String id);
+
   /**
    * 查询列表
    */

+ 20 - 0
railway-business/src/main/java/com/railway/business/bi/service/IShowGsyService.java

@@ -12,6 +12,26 @@ import java.util.List;
  */
 public interface IShowGsyService {
 
+  /**
+   * 新增
+   */
+  int create(ShowGsy showGsy);
+
+  /**
+   * 删除
+   */
+  int delete(String[] ids);
+
+  /**
+   * 更新
+   */
+  int update(ShowGsy showGsy);
+
+  /**
+   * 获取单个
+   */
+  ShowGsy getInfo(String id);
+
   /**
    * 查询列表
    */

+ 24 - 4
railway-business/src/main/java/com/railway/business/bi/service/IShowTestPlanDtService.java

@@ -12,9 +12,29 @@ import java.util.List;
  */
 public interface IShowTestPlanDtService {
 
-  /**
-   * 查询列表
-   */
-  List<ShowTestPlanDt> getList(TestPlanDtQuery query);
+    /**
+    * 新增
+    */
+    int create(ShowTestPlanDt showTestPlanDt);
+
+    /**
+    * 删除
+    */
+    int delete(String[] ids);
+
+    /**
+    * 更新
+    */
+    int update(ShowTestPlanDt showTestPlanDt);
+
+    /**
+    * 获取单个
+    */
+    ShowTestPlanDt getInfo(String id);
+
+    /**
+    * 查询列表
+    */
+    List<ShowTestPlanDt> getList(TestPlanDtQuery query);
 
 }

+ 24 - 4
railway-business/src/main/java/com/railway/business/bi/service/IShowTestPlanKgService.java

@@ -12,9 +12,29 @@ import java.util.List;
  */
 public interface IShowTestPlanKgService {
 
-  /**
-   * 查询列表
-   */
-  List<ShowTestPlanKg> getList(TestPlanKgQuery query);
+    /**
+    * 新增
+    */
+    int create(ShowTestPlanKg showTestPlanKg);
+
+    /**
+    * 删除
+    */
+    int delete(String[] ids);
+
+    /**
+    * 更新
+    */
+    int update(ShowTestPlanKg showTestPlanKg);
+
+    /**
+    * 获取单个
+    */
+    ShowTestPlanKg getInfo(String id);
+
+    /**
+    * 查询列表
+    */
+    List<ShowTestPlanKg> getList(TestPlanKgQuery query);
 
 }

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowBpdjxjhServiceImpl.java

@@ -4,6 +4,8 @@ import com.railway.business.bi.domain.ShowBpdjxjh;
 import com.railway.business.bi.domain.vo.BpdjxjhQuery;
 import com.railway.business.bi.mapper.ShowBpdjxjhMapper;
 import com.railway.business.bi.service.IShowBpdjxjhService;
+import com.railway.common.utils.SecurityUtils;
+import java.time.LocalDateTime;
 import java.util.List;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +26,46 @@ public class ShowBpdjxjhServiceImpl implements IShowBpdjxjhService {
     this.showBpdjxjhMapper = showBpdjxjhMapper;
   }
 
+  /**
+   * 新增
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int create(ShowBpdjxjh showBpdjxjh) {
+    showBpdjxjh.setCreateTime(LocalDateTime.now());
+    showBpdjxjh.setCreateBy(SecurityUtils.getUsername());
+    return showBpdjxjhMapper.insert(showBpdjxjh);
+  }
+
+  /**
+   * 删除
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int delete(String[] ids) {
+    int r = 0;
+    for (String id : ids) {
+      int j = showBpdjxjhMapper.delete(id);
+      r = r + j;
+    }
+    return r;
+  }
+
+  /**
+   * 更新
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int update(ShowBpdjxjh showBpdjxjh) {
+    showBpdjxjh.setUpdateTime(LocalDateTime.now());
+    showBpdjxjh.setUpdateBy(SecurityUtils.getUsername());
+    return showBpdjxjhMapper.update(showBpdjxjh);
+  }
+
+  /**
+   * 获取单个
+   */
+  public ShowBpdjxjh getInfo(String id) {
+    return showBpdjxjhMapper.getInfo(id);
+  }
+
   /**
    * 查询列表
    */

+ 329 - 2
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowFileServiceImpl.java

@@ -1,13 +1,39 @@
 package com.railway.business.bi.service.impl;
 
+import com.railway.business.bi.domain.ShowBdyc;
+import com.railway.business.bi.domain.ShowBpdjxjh;
+import com.railway.business.bi.domain.ShowDlyc;
 import com.railway.business.bi.domain.ShowFile;
+import com.railway.business.bi.domain.ShowGsd;
+import com.railway.business.bi.domain.ShowGsy;
+import com.railway.business.bi.domain.ShowSbxj;
+import com.railway.business.bi.domain.ShowTestPlanDt;
+import com.railway.business.bi.domain.ShowTestPlanKg;
+import com.railway.business.bi.domain.ShowYdts;
+import com.railway.business.bi.enums.ImpFileTypeEnum;
+import com.railway.business.bi.enums.ImpSheetEnum;
+import com.railway.business.bi.enums.YcxxFoundModeEnum;
 import com.railway.business.bi.mapper.ShowFileMapper;
+import com.railway.business.bi.service.IShowBdycService;
+import com.railway.business.bi.service.IShowBpdjxjhService;
+import com.railway.business.bi.service.IShowDlycService;
 import com.railway.business.bi.service.IShowFileService;
+import com.railway.business.bi.service.IShowGsdService;
+import com.railway.business.bi.service.IShowGsyService;
+import com.railway.business.bi.service.IShowSbxjService;
+import com.railway.business.bi.service.IShowTestPlanDtService;
+import com.railway.business.bi.service.IShowTestPlanKgService;
+import com.railway.business.bi.service.IShowYdtsService;
+import com.railway.common.core.domain.AjaxResult;
+import com.railway.common.enums.BusinessStatus;
 import com.railway.common.utils.SecurityUtils;
+import com.railway.common.utils.poi.ExcelUtil;
 import java.time.LocalDateTime;
 import java.util.List;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 大屏展示-导入文件记录
@@ -16,13 +42,314 @@ import org.springframework.transaction.annotation.Transactional;
  * @date 2023/02/10
  */
 @Service
-@Transactional(readOnly = true)
 public class ShowFileServiceImpl implements IShowFileService {
 
   private final ShowFileMapper showFileMapper;
+  private final IShowBdycService bdycService;
+  private final IShowDlycService dlycService;
+  private final IShowTestPlanDtService dtService;
+  private final IShowTestPlanKgService kgService;
+  private final IShowBpdjxjhService bpdjxjhService;
+  private final IShowGsdService gsdService;
+  private final IShowGsyService gsyService;
+  private final IShowYdtsService ydtsService;
+  private final IShowSbxjService sbxjService;
 
-  public ShowFileServiceImpl(ShowFileMapper showFileMapper) {
+  public ShowFileServiceImpl(ShowFileMapper showFileMapper, IShowBdycService bdycService,
+      IShowDlycService dlycService, IShowTestPlanDtService dtService,
+      IShowTestPlanKgService kgService, IShowBpdjxjhService bpdjxjhService,
+      IShowGsdService gsdService, IShowGsyService gsyService, IShowYdtsService ydtsService,
+      IShowSbxjService sbxjService) {
     this.showFileMapper = showFileMapper;
+    this.bdycService = bdycService;
+    this.dlycService = dlycService;
+    this.dtService = dtService;
+    this.kgService = kgService;
+    this.bpdjxjhService = bpdjxjhService;
+    this.gsdService = gsdService;
+    this.gsyService = gsyService;
+    this.ydtsService = ydtsService;
+    this.sbxjService = sbxjService;
+  }
+
+
+  /**
+   * 检修兑现情况-2022年变配电所检修计划表(检测数字化)
+   *
+   * @param file 2022年变配电所检修计划表(检测数字化)
+   * @return 导入结果
+   */
+  @Override
+  public AjaxResult impXlsBdsjxjhb(MultipartFile file) {
+    ImpFileTypeEnum fileTypeEnum = ImpFileTypeEnum.BDSJXJHB;
+    Workbook wb = ExcelUtil.getWorkbook(file);
+    ShowFile showFile = create(file, fileTypeEnum);
+    Long fileId = showFile.getId();
+    String[] sheetList = fileTypeEnum.getSheetList();
+    for (String sheetName : sheetList) {
+      ImpSheetEnum sheetEnum = ImpSheetEnum.ofValue(sheetName);
+      if (sheetEnum != ImpSheetEnum.BD) {
+        continue;
+      }
+      ExcelUtil<ShowBpdjxjh> util = new ExcelUtil<>(ShowBpdjxjh.class);
+      List<ShowBpdjxjh> bdList;
+      try {
+        bdList = util.importExcel(sheetName, wb, 3);
+      } catch (Exception e) {
+        e.printStackTrace();
+        return AjaxResult.error("文件读取失败");
+      }
+      for (ShowBpdjxjh show : bdList) {
+        show.setFileId(fileId);
+        bpdjxjhService.create(show);
+      }
+    }
+    showFile.setImpResult(String.valueOf(BusinessStatus.SUCCESS.ordinal()));
+    return AjaxResult.success();
+  }
+
+  /**
+   * 试验计划兑现情况-2022检修计划兑现表
+   *
+   * @param file 2022检修计划兑现表
+   * @return 导入结果
+   */
+  @Override
+  public AjaxResult impXlsJxjhdxb(MultipartFile file) {
+    ImpFileTypeEnum fileTypeEnum = ImpFileTypeEnum.JXJHDXB;
+    Workbook wb = ExcelUtil.getWorkbook(file);
+    ShowFile showFile = create(file, fileTypeEnum);
+    Long fileId = showFile.getId();
+    String[] sheetList = fileTypeEnum.getSheetList();
+    for (String sheetName : sheetList) {
+      ImpSheetEnum sheetEnum = ImpSheetEnum.ofValue(sheetName);
+      switch (sheetEnum) {
+        case KGFH:
+          ExcelUtil<ShowTestPlanKg> bdUtil = new ExcelUtil<>(ShowTestPlanKg.class);
+          List<ShowTestPlanKg> bdList;
+          try {
+            bdList = bdUtil.importExcel(sheetName, wb, 2, 4);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowTestPlanKg bdyc : bdList) {
+            bdyc.setFileId(fileId);
+            kgService.create(bdyc);
+          }
+          break;
+        case DTSY:
+          ExcelUtil<ShowTestPlanDt> dlUtil = new ExcelUtil<>(ShowTestPlanDt.class);
+          List<ShowTestPlanDt> dlList;
+          try {
+            dlList = dlUtil.importExcel(sheetName, wb, 1);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowTestPlanDt dlyc : dlList) {
+            dlyc.setFileId(fileId);
+            dtService.create(dlyc);
+          }
+          break;
+        default:
+          break;
+      }
+    }
+    showFile.setImpResult(String.valueOf(BusinessStatus.SUCCESS.ordinal()));
+    return AjaxResult.success();
+  }
+
+  /**
+   * 生产任务报表
+   *
+   * @param file (5月18日)长春高铁基础设施段生产任务报表
+   * @return 导入结果
+   */
+  @Override
+  public AjaxResult impXlsScrw(MultipartFile file) {
+    ImpFileTypeEnum fileTypeEnum = ImpFileTypeEnum.SCRWB;
+    Workbook wb = ExcelUtil.getWorkbook(file);
+    ShowFile showFile = create(file, fileTypeEnum);
+    Long fileId = showFile.getId();
+    String[] sheetList = fileTypeEnum.getSheetList();
+    for (String sheetName : sheetList) {
+      ImpSheetEnum sheetEnum = ImpSheetEnum.ofValue(sheetName);
+      switch (sheetEnum) {
+        case YDTS:
+          ExcelUtil<ShowYdts> bdUtil = new ExcelUtil<>(ShowYdts.class);
+          List<ShowYdts> bdList;
+          try {
+            bdList = bdUtil.importExcel(sheetName, wb);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowYdts bdyc : bdList) {
+            bdyc.setFileId(fileId);
+            ydtsService.create(bdyc);
+          }
+          break;
+        case GSD:
+          ExcelUtil<ShowGsd> dlUtil = new ExcelUtil<>(ShowGsd.class);
+          List<ShowGsd> dlList;
+          try {
+            dlList = dlUtil.importExcel(sheetName, wb);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowGsd dlyc : dlList) {
+            dlyc.setFileId(fileId);
+            gsdService.create(dlyc);
+          }
+          break;
+        case GSY:
+          ExcelUtil<ShowGsy> syUtil = new ExcelUtil<>(ShowGsy.class);
+          List<ShowGsy> syList;
+          try {
+            syList = syUtil.importExcel(sheetName, wb);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowGsy dlyc : syList) {
+            dlyc.setFileId(fileId);
+            gsyService.create(dlyc);
+          }
+          break;
+        default:
+          break;
+      }
+    }
+    showFile.setImpResult(String.valueOf(BusinessStatus.SUCCESS.ordinal()));
+    return AjaxResult.success();
+  }
+
+  /**
+   * 牵变、电力设备巡检兑现(本月)-电力车间2023巡检兑现表
+   *
+   * @param file 电力车间2023巡检兑现表
+   * @return 导入结果
+   */
+  @Override
+  public AjaxResult impXlsXjdx(MultipartFile file) {
+    ImpFileTypeEnum fileTypeEnum = ImpFileTypeEnum.XJDXB;
+    Workbook wb = ExcelUtil.getWorkbook(file);
+    ShowFile showFile = create(file, fileTypeEnum);
+    Long fileId = showFile.getId();
+    String[] sheetList = fileTypeEnum.getSheetList();
+    for (String sheetName : sheetList) {
+      ImpSheetEnum sheetEnum = ImpSheetEnum.ofValue(sheetName);
+      ExcelUtil<ShowSbxj> bdUtil = new ExcelUtil<>(ShowSbxj.class);
+      List<ShowSbxj> bdList;
+      switch (sheetEnum) {
+        case BD:
+          try {
+            bdList = bdUtil.importExcel(sheetName, wb, 1);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowSbxj bdyc : bdList) {
+            bdyc.setFileId(fileId);
+            bdyc.setQybds("1");
+            sbxjService.create(bdyc);
+          }
+          break;
+        case DL:
+          try {
+            bdList = bdUtil.importExcel(sheetName, wb, 2);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowSbxj dlyc : bdList) {
+            dlyc.setFileId(fileId);
+            sbxjService.create(dlyc);
+          }
+          break;
+        default:
+          break;
+      }
+    }
+    showFile.setImpResult(String.valueOf(BusinessStatus.SUCCESS.ordinal()));
+    return AjaxResult.success();
+  }
+
+  /**
+   * 异常信息-10月23日电力变电专业每日异常信息统计表
+   *
+   * @param file 10月23日电力变电专业每日异常信息统计表
+   * @return 导入结果
+   */
+  @Override
+  public AjaxResult impXlsYctjb(MultipartFile file) {
+    ImpFileTypeEnum fileTypeEnum = ImpFileTypeEnum.YCTJB;
+    Workbook wb = ExcelUtil.getWorkbook(file);
+    ShowFile showFile = create(file, fileTypeEnum);
+    Long fileId = showFile.getId();
+    String[] sheetList = fileTypeEnum.getSheetList();
+    for (String sheetName : sheetList) {
+      ImpSheetEnum sheetEnum = ImpSheetEnum.ofValue(sheetName);
+      String foundMode = YcxxFoundModeEnum.PUSH.getCode();
+      if (sheetEnum == ImpSheetEnum.YCT4 || sheetEnum == ImpSheetEnum.YCT5) {
+        foundMode = YcxxFoundModeEnum.SELF.getCode();
+      }
+      switch (sheetEnum) {
+        case YCT2:
+        case YCT5:
+          ExcelUtil<ShowBdyc> bdUtil = new ExcelUtil<>(ShowBdyc.class);
+          List<ShowBdyc> bdList;
+          try {
+            bdList = bdUtil.importExcel(sheetName, wb);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowBdyc bdyc : bdList) {
+            if (null == bdyc.getFoundDate()) {
+              continue;
+            }
+            bdyc.setFileId(fileId);
+            bdyc.setFoundMode(foundMode);
+            bdycService.create(bdyc);
+          }
+          break;
+        case YCT3:
+        case YCT4:
+          ExcelUtil<ShowDlyc> dlUtil = new ExcelUtil<>(ShowDlyc.class);
+          List<ShowDlyc> dlList;
+          try {
+            dlList = dlUtil.importExcel(sheetName, wb);
+          } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("文件读取失败");
+          }
+          for (ShowDlyc dlyc : dlList) {
+            if (null == dlyc.getFoundDate()) {
+              continue;
+            }
+            dlyc.setFileId(fileId);
+            dlyc.setFoundMode(foundMode);
+            dlycService.create(dlyc);
+          }
+          break;
+        default:
+          break;
+      }
+    }
+    showFile.setImpResult(String.valueOf(BusinessStatus.SUCCESS.ordinal()));
+    return AjaxResult.success();
+  }
+
+  private ShowFile create(MultipartFile file, ImpFileTypeEnum fileTypeEnum) {
+    ShowFile showFile = new ShowFile();
+    showFile.setImpResult(String.valueOf(BusinessStatus.FAIL.ordinal()));
+    showFile.setDataType(fileTypeEnum.getCode());
+    showFile.setFileName(file.getName());
+    create(showFile);
+    return showFile;
   }
 
   /**

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowGsdServiceImpl.java

@@ -4,6 +4,8 @@ import com.railway.business.bi.domain.ShowGsd;
 import com.railway.business.bi.domain.vo.GsdQuery;
 import com.railway.business.bi.mapper.ShowGsdMapper;
 import com.railway.business.bi.service.IShowGsdService;
+import com.railway.common.utils.SecurityUtils;
+import java.time.LocalDateTime;
 import java.util.List;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +26,46 @@ public class ShowGsdServiceImpl implements IShowGsdService {
     this.showGsdMapper = showGsdMapper;
   }
 
+  /**
+   * 新增
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int create(ShowGsd showGsd) {
+    showGsd.setCreateTime(LocalDateTime.now());
+    showGsd.setCreateBy(SecurityUtils.getUsername());
+    return showGsdMapper.insert(showGsd);
+  }
+
+  /**
+   * 删除
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int delete(String[] ids) {
+    int r =0;
+    for (String id : ids) {
+      int j= showGsdMapper.delete(id);
+      r = r + j;
+    }
+    return	r;
+  }
+
+  /**
+   * 更新
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int update(ShowGsd showGsd) {
+    showGsd.setUpdateTime(LocalDateTime.now());
+    showGsd.setUpdateBy(SecurityUtils.getUsername());
+    return showGsdMapper.update(showGsd);
+  }
+
+  /**
+   * 获取单个
+   */
+  public ShowGsd getInfo(String id) {
+    return showGsdMapper.getInfo(id);
+  }
+
   /**
    * 查询列表
    */

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowGsyServiceImpl.java

@@ -4,6 +4,8 @@ import com.railway.business.bi.domain.ShowGsy;
 import com.railway.business.bi.domain.vo.GsyQuery;
 import com.railway.business.bi.mapper.ShowGsyMapper;
 import com.railway.business.bi.service.IShowGsyService;
+import com.railway.common.utils.SecurityUtils;
+import java.time.LocalDateTime;
 import java.util.List;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +26,46 @@ public class ShowGsyServiceImpl implements IShowGsyService {
     this.showGsyMapper = showGsyMapper;
   }
 
+  /**
+   * 新增
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int create(ShowGsy showGsy) {
+    showGsy.setCreateTime(LocalDateTime.now());
+    showGsy.setCreateBy(SecurityUtils.getUsername());
+    return showGsyMapper.insert(showGsy);
+  }
+
+  /**
+   * 删除
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int delete(String[] ids) {
+    int r =0;
+    for (String id : ids) {
+      int j= showGsyMapper.delete(id);
+      r = r + j;
+    }
+    return	r;
+  }
+
+  /**
+   * 更新
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int update(ShowGsy showGsy) {
+    showGsy.setUpdateTime(LocalDateTime.now());
+    showGsy.setUpdateBy(SecurityUtils.getUsername());
+    return showGsyMapper.update(showGsy);
+  }
+
+  /**
+   * 获取单个
+   */
+  public ShowGsy getInfo(String id) {
+    return showGsyMapper.getInfo(id);
+  }
+  
   /**
    * 查询列表
    */

+ 43 - 0
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowTestPlanDtServiceImpl.java

@@ -4,6 +4,8 @@ import com.railway.business.bi.domain.ShowTestPlanDt;
 import com.railway.business.bi.domain.vo.TestPlanDtQuery;
 import com.railway.business.bi.mapper.ShowTestPlanDtMapper;
 import com.railway.business.bi.service.IShowTestPlanDtService;
+import com.railway.common.utils.SecurityUtils;
+import java.time.LocalDateTime;
 import java.util.List;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +26,47 @@ public class ShowTestPlanDtServiceImpl implements IShowTestPlanDtService {
     this.showTestPlanDtMapper = showTestPlanDtMapper;
   }
 
+  /**
+   * 新增
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int create(ShowTestPlanDt showTestPlanDt) {
+    showTestPlanDt.setCreateTime(LocalDateTime.now());
+    showTestPlanDt.setCreateBy(SecurityUtils.getUsername());
+    return showTestPlanDtMapper.insert(showTestPlanDt);
+  }
+
+  /**
+   * 删除
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int delete(String[] ids) {
+    int r =0;
+    for (String id : ids) {
+      int j= showTestPlanDtMapper.delete(id);
+      r = r + j;
+    }
+    return	r;
+  }
+
+  /**
+   * 更新
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int update(ShowTestPlanDt showTestPlanDt) {
+    showTestPlanDt.setUpdateTime(LocalDateTime.now());
+    showTestPlanDt.setUpdateBy(SecurityUtils.getUsername());
+    return showTestPlanDtMapper.update(showTestPlanDt);
+  }
+
+  /**
+   * 获取单个
+   */
+  public ShowTestPlanDt getInfo(String id) {
+    return showTestPlanDtMapper.getInfo(id);
+  }
+
+
   /**
    * 查询列表
    */

+ 42 - 0
railway-business/src/main/java/com/railway/business/bi/service/impl/ShowTestPlanKgServiceImpl.java

@@ -4,6 +4,8 @@ import com.railway.business.bi.domain.ShowTestPlanKg;
 import com.railway.business.bi.domain.vo.TestPlanKgQuery;
 import com.railway.business.bi.mapper.ShowTestPlanKgMapper;
 import com.railway.business.bi.service.IShowTestPlanKgService;
+import com.railway.common.utils.SecurityUtils;
+import java.time.LocalDateTime;
 import java.util.List;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +26,46 @@ public class ShowTestPlanKgServiceImpl implements IShowTestPlanKgService {
     this.showTestPlanKgMapper = showTestPlanKgMapper;
   }
 
+  /**
+   * 新增
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int create(ShowTestPlanKg showTestPlanKg) {
+    showTestPlanKg.setCreateTime(LocalDateTime.now());
+    showTestPlanKg.setCreateBy(SecurityUtils.getUsername());
+    return showTestPlanKgMapper.insert(showTestPlanKg);
+  }
+
+  /**
+   * 删除
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int delete(String[] ids) {
+    int r =0;
+    for (String id : ids) {
+      int j= showTestPlanKgMapper.delete(id);
+      r = r + j;
+    }
+    return	r;
+  }
+
+  /**
+   * 更新
+   */
+  @Transactional(rollbackFor = Exception.class)
+  public int update(ShowTestPlanKg showTestPlanKg) {
+    showTestPlanKg.setUpdateTime(LocalDateTime.now());
+    showTestPlanKg.setUpdateBy(SecurityUtils.getUsername());
+    return showTestPlanKgMapper.update(showTestPlanKg);
+  }
+
+  /**
+   * 获取单个
+   */
+  public ShowTestPlanKg getInfo(String id) {
+    return showTestPlanKgMapper.getInfo(id);
+  }
+
   /**
    * 查询列表
    */

+ 2 - 2
railway-business/src/main/resources/mapper/bi/ShowBdycMapper.xml

@@ -256,7 +256,7 @@
   </select>
 
   <select id="totalByDay" resultType="com.railway.business.bi.domain.dto.DlycDTO">
-    select dict_label as gq, t1.dict_value as gqCode, sum(yj) as dj1, sum(ej) as dj2, sum(sj) as dj3
+    select t1.dict_label as gq, t1.dict_value as gqCode, sum(yj) as dj1, sum(ej) as dj2, sum(sj) as dj3
     from (select sjgq,
                  case when qxdj = '一级' then 1 else 0 end as yj,
                  case when qxdj = '二级' then 1 else 0 end as ej,
@@ -266,7 +266,7 @@
             and sjgq is not null) x
            right join sys_dict_data t1 on x.sjgq = t1.dict_label
     where t1.dict_type = 'dlyc_sygq'
-    group by sjgq
+    group by t1.dict_label
   </select>
 
 </mapper>

+ 2 - 2
railway-business/src/main/resources/mapper/bi/ShowDlycMapper.xml

@@ -243,7 +243,7 @@
   </select>
 
   <select id="totalByDay" resultType="com.railway.business.bi.domain.dto.DlycDTO">
-    select dict_label as gq, t1.dict_value as gqCode, sum(yj) as dj1, sum(ej) as dj2, sum(sj) as dj3
+    select t1.dict_label as gq, t1.dict_value as gqCode, sum(yj) as dj1, sum(ej) as dj2, sum(sj) as dj3
     from (select ssgq,
                  case when gravity = '一级' then 1 else 0 end as yj,
                  case when gravity = '二级' then 1 else 0 end as ej,
@@ -253,7 +253,7 @@
             and ssgq is not null) x
            right join sys_dict_data t1 on x.ssgq = t1.dict_label
     where t1.dict_type = 'dlyc_sygq'
-    group by ssgq
+    group by t1.dict_label
   </select>
 
 </mapper>

+ 2 - 2
railway-business/src/main/resources/mapper/bi/ShowFileMapper.xml

@@ -34,8 +34,8 @@
   </sql>
 
   <insert id="insert" parameterType="com.railway.business.bi.domain.ShowFile">
-    <selectKey keyProperty="id" order="BEFORE" resultType="String">
-      select replace(uuid(), '-', '') from dual
+    <selectKey keyProperty="id" order="AFTER" resultType="Long">
+      select @@IDENTITY as id
     </selectKey>
     INSERT INTO show_file
     <trim prefix="(" suffix=")" suffixOverrides=",">

+ 29 - 16
railway-common/src/main/java/com/railway/common/annotation/Excel.java

@@ -1,11 +1,13 @@
 package com.railway.common.annotation;
 
+import com.railway.common.utils.poi.ExcelHandlerAdapter;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.math.BigDecimal;
-import com.railway.common.utils.poi.ExcelHandlerAdapter;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
 
 /**
  * 自定义导出Excel数据注解
@@ -107,9 +109,9 @@ public @interface Excel {
   boolean isStatistics() default false;
 
   /**
-   * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右)
+   * 导出字段对齐方式
    */
-  Align align() default Align.AUTO;
+  HorizontalAlignment align() default HorizontalAlignment.CENTER;
 
   /**
    * 自定义数据处理器
@@ -117,23 +119,34 @@ public @interface Excel {
   Class<?> handler() default ExcelHandlerAdapter.class;
 
   /**
-   * 自定义数据处理器参数
+   * 是否需要纵向合并单元格,应对需求:含有list集合单元格)
    */
-  String[] args() default {};
+  boolean needMerge() default false;
 
-  enum Align {
-    /** 对齐方式 */
-    AUTO(0), LEFT(1), CENTER(2), RIGHT(3);
-    private final int value;
+  /**
+   * 导出列头背景色
+   */
+  IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT;
 
-    Align(int value) {
-      this.value = value;
-    }
+  /**
+   * 导出列头字体颜色
+   */
+  IndexedColors headerColor() default IndexedColors.WHITE;
 
-    public int value() {
-      return this.value;
-    }
-  }
+  /**
+   * 导出单元格背景色
+   */
+  IndexedColors backgroundColor() default IndexedColors.WHITE;
+
+  /**
+   * 导出单元格字体颜色
+   */
+  IndexedColors color() default IndexedColors.BLACK;
+
+  /**
+   * 自定义数据处理器参数
+   */
+  String[] args() default {};
 
   /**
    * 字段类型(0:导出导入;1:仅导出;2:仅导入)

+ 87 - 17
railway-common/src/main/java/com/railway/common/utils/LocalDateUtil.java

@@ -2,12 +2,14 @@ package com.railway.common.utils;
 
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.Date;
@@ -21,22 +23,45 @@ public final class LocalDateUtil {
 
   public static final Long ONE_DAY_MILLISECOND = 86400000L;
 
-  public static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM");
-  public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-  public static final DateTimeFormatter DATE_PATH_FORMATTER = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-  public static final DateTimeFormatter DATE_SHOW_FORMATTER = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
-  public static final DateTimeFormatter DATE_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
-  public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-  public static final DateTimeFormatter HOUR_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("HH:mm");
-  public static final DateTimeFormatter MINUTE_SECOND_FORMATTER = DateTimeFormatter.ofPattern("mm:ss");
+  public static String YYYY = "yyyy";
+
+  public static String YYYY_MM = "yyyy-MM";
+
+  public static String YYYY_MM_DD = "yyyy-MM-dd";
+
+  public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
+
+  public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+
+  public static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern(YYYY_MM);
+  public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(YYYY_MM_DD);
+  public static final DateTimeFormatter DATE_PATH_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyy/MM/dd");
+  public static final DateTimeFormatter DATE_SHOW_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyy年MM月dd日");
+  public static final DateTimeFormatter DATE_MINUTE_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyy-MM-dd HH:mm");
+  public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(
+      YYYY_MM_DD_HH_MM_SS);
+  public static final DateTimeFormatter HOUR_MINUTE_FORMATTER = DateTimeFormatter.ofPattern(
+      "HH:mm");
+  public static final DateTimeFormatter MINUTE_SECOND_FORMATTER = DateTimeFormatter.ofPattern(
+      "mm:ss");
   public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");
-  public static final DateTimeFormatter SHORT_MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyyMM");
-  public static final DateTimeFormatter SHORT_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
-  public static final DateTimeFormatter SHORT_DATE_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
-  public static final DateTimeFormatter SHORT_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-  public static final DateTimeFormatter SHORT_HOUR_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("HHmm");
-  public static final DateTimeFormatter SHORT_MINUTE_SECOND_FORMATTER = DateTimeFormatter.ofPattern("mmss");
-  public static final DateTimeFormatter SHORT_TIME_FORMATTER = DateTimeFormatter.ofPattern("HHmmss");
+  public static final DateTimeFormatter SHORT_MONTH_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyyMM");
+  public static final DateTimeFormatter SHORT_DATE_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyyMMdd");
+  public static final DateTimeFormatter SHORT_DATE_MINUTE_FORMATTER = DateTimeFormatter.ofPattern(
+      "yyyyMMddHHmm");
+  public static final DateTimeFormatter SHORT_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(
+      YYYYMMDDHHMMSS);
+  public static final DateTimeFormatter SHORT_HOUR_MINUTE_FORMATTER = DateTimeFormatter.ofPattern(
+      "HHmm");
+  public static final DateTimeFormatter SHORT_MINUTE_SECOND_FORMATTER = DateTimeFormatter.ofPattern(
+      "mmss");
+  public static final DateTimeFormatter SHORT_TIME_FORMATTER = DateTimeFormatter.ofPattern(
+      "HHmmss");
 
   private static final String[] PARSE_PATTERNS = {
       "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
@@ -57,7 +82,8 @@ public final class LocalDateUtil {
    * @param formatter 格式(本类中的静态常量)
    * @return 格式化后的字符串
    */
-  public static String convertLocalDateTimeToString(LocalDateTime date, DateTimeFormatter formatter) {
+  public static String convertLocalDateTimeToString(LocalDateTime date,
+      DateTimeFormatter formatter) {
     if (date == null || formatter == null) {
       return null;
     }
@@ -99,6 +125,14 @@ public final class LocalDateUtil {
     return convertLocalDateTimeToString(convertToLocalDateTime(date), formatter);
   }
 
+  public static String dateTime(final Date date) {
+    return parseDateToStr(YYYY_MM_DD, date);
+  }
+
+  public static String parseDateToStr(final String format, final Date date) {
+    return new SimpleDateFormat(format).format(date);
+  }
+
   //==============================String To Date==============================
 
   /**
@@ -672,7 +706,22 @@ public final class LocalDateUtil {
    */
   public static LocalDateTime getServerStartDate() {
     long time = ManagementFactory.getRuntimeMXBean().getStartTime();
-    return LocalDateTime.ofEpochSecond(time/1000,0, ZoneOffset.ofHours(8));
+    return LocalDateTime.ofEpochSecond(time / 1000, 0, ZoneOffset.ofHours(8));
+  }
+
+  public static LocalDate parseLocalDate(Date date){
+    if(null == date){
+      return null;
+    }
+    //返回当前系统默认的时区
+    ZoneId zoneId = ZoneId.systemDefault();
+    //atZone()方法返回在指定时区,从该Instant生成的ZonedDateTime
+    ZonedDateTime zonedDateTime = date.toInstant().atZone(zoneId);
+    return zonedDateTime.toLocalDate();
+  }
+
+  public static LocalDate parseLocalDate(Object str){
+    return parseLocalDate(parseDate(str));
   }
 
   /**
@@ -682,10 +731,31 @@ public final class LocalDateUtil {
     if (str == null) {
       return null;
     }
+    if(str instanceof Date){
+      return (Date)str;
+    }
     try {
       return DateUtils.parseDate(str.toString(), PARSE_PATTERNS);
     } catch (ParseException e) {
       return null;
     }
   }
+
+  /**
+   * 增加 LocalDateTime ==> Date
+   */
+  public static Date toDate(LocalDateTime temporalAccessor) {
+    ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault());
+    return Date.from(zdt.toInstant());
+  }
+
+  /**
+   * 增加 LocalDate ==> Date
+   */
+  public static Date toDate(LocalDate temporalAccessor) {
+    LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0));
+    ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
+    return Date.from(zdt.toInstant());
+  }
+
 }

+ 13 - 0
railway-common/src/main/java/com/railway/common/utils/file/FileUtils.java

@@ -1,5 +1,6 @@
 package com.railway.common.utils.file;
 
+import com.railway.common.config.RailwayConfig;
 import com.railway.common.utils.LocalDateUtil;
 import com.railway.common.utils.StringUtils;
 import com.railway.common.utils.uuid.IdUtils;
@@ -78,6 +79,18 @@ public class FileUtils {
     }
   }
 
+  /**
+   * 写数据到文件中
+   *
+   * @param data 数据
+   * @return 目标文件
+   * @throws IOException IO异常
+   */
+  public static String writeImportBytes(byte[] data) throws IOException
+  {
+    return writeBytes(data, RailwayConfig.getFilePath());
+  }
+
   /**
    * 写数据到文件中
    *

File diff suppressed because it is too large
+ 464 - 137
railway-common/src/main/java/com/railway/common/utils/poi/ExcelUtil.java


Some files were not shown because too many files changed in this diff