Browse Source

feat(eam): 优化设备维修工单导出功能

- 新增日期范围查询条件支持创建时间筛选
- 实现Excel导出时对特定列设置固定宽度
- 针对反馈描述、故障原因、处理方式等列设置50单位宽度
- 采用临时流处理方式实现Excel列宽精确控制
- 导入ByteArrayInputStream支持Excel工作簿操作
master
qiankanghui 3 weeks ago
parent
commit
6c39d454e1
  1. 26
      src/main/java/com/xujie/sys/modules/pms/controller/EamController.java
  2. 6
      src/main/resources/mapper/pms/EamMapper.xml

26
src/main/java/com/xujie/sys/modules/pms/controller/EamController.java

@ -34,6 +34,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -153,12 +154,25 @@ public class EamController {
//获取数据 //获取数据
PageUtils page = eamService.eamWorkOrderSearchForDefect2(data); PageUtils page = eamService.eamWorkOrderSearchForDefect2(data);
// 写入Excel
EasyExcel.write(response.getOutputStream(), EamWorkOrderExportData.class)
//自适应列宽
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.sheet("设备维修组维修工单")
.doWrite(page.getList());
// 写入Excel先写入临时流再设置特定列宽
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
EasyExcel.write(outputStream, EamWorkOrderExportData.class)
//自适应列宽
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.sheet("设备维修组维修工单")
.doWrite(page.getList());
try (XSSFWorkbook workbook = new XSSFWorkbook(new ByteArrayInputStream(outputStream.toByteArray()))) {
XSSFSheet sheet = workbook.getSheetAt(0);
// 反馈描述(4)故障原因(24)处理方式(25)预防措施(26)备注说明(27) 设置50宽度
sheet.setColumnWidth(4, 50 * 256);
sheet.setColumnWidth(24, 50 * 256);
sheet.setColumnWidth(25, 50 * 256);
sheet.setColumnWidth(26, 50 * 256);
sheet.setColumnWidth(27, 50 * 256);
workbook.write(response.getOutputStream());
}
}
} }
/** /**

6
src/main/resources/mapper/pms/EamMapper.xml

@ -1260,6 +1260,12 @@
<if test="query.repairReportingType != null and query.repairReportingType != ''"> <if test="query.repairReportingType != null and query.repairReportingType != ''">
AND a.repair_reporting_type = #{query.repairReportingType} AND a.repair_reporting_type = #{query.repairReportingType}
</if> </if>
<if test="query.createdStartDate != null">
AND b.CreatedDate >= #{query.createdStartDate}
</if>
<if test="query.createdEndDate != null">
AND #{query.createdEndDate} >= b.CreatedDate
</if>
<if test="query.repairType != null and query.repairType != ''"> <if test="query.repairType != null and query.repairType != ''">
AND a.repair_type = #{query.repairType} AND a.repair_type = #{query.repairType}
</if> </if>

Loading…
Cancel
Save