|
@@ -52,6 +52,8 @@ public class ReportServiceV3 {
|
|
|
@Autowired
|
|
|
private SysDataDictionaryRepository sysDataDictionaryRepository;
|
|
|
@Autowired
|
|
|
+ private HighQualityCountService highQualityCountService;
|
|
|
+ @Autowired
|
|
|
private ManagementDetailService managementDetailService;
|
|
|
@Autowired
|
|
|
private WorkFlowService workFlowService;
|
|
@@ -71,39 +73,35 @@ public class ReportServiceV3 {
|
|
|
int dayOfMonth = Integer.parseInt(day.substring(6, 8));
|
|
|
BufferedImage screenShot;
|
|
|
Sheet sheet;
|
|
|
+ String area;
|
|
|
// 截图 管理端-移网感知类
|
|
|
sheet = workbook.getSheet("管理端-移网感知类");
|
|
|
if (sheet != null) {
|
|
|
- String area = "A1:" + CellRect.getColumnName(dayOfMonth + 7) + "15";
|
|
|
+ area = "A1:" + CellRect.getColumnName(dayOfMonth + 7) + "15";
|
|
|
screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
ImageIO.write(screenShot, "png",
|
|
|
- Paths.get(file.getParentFile().getAbsolutePath(), day + "-1-投诉率.png").toFile());
|
|
|
+ Paths.get(file.getParentFile().getAbsolutePath(), "管理端-移网感知类" + day + ".png").toFile());
|
|
|
}
|
|
|
// 截图 服请
|
|
|
// 截图 重复投诉 超时工单
|
|
|
- // 截图 三率
|
|
|
- String area = "A1:D15";
|
|
|
- sheet = workbook.getSheet("客户端-投诉问题解决满意度");
|
|
|
+ sheet = workbook.getSheet("投诉处理时长、超时工单概况");
|
|
|
if (sheet != null) {
|
|
|
+ area = "A1:D15";
|
|
|
screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
ImageIO.write(screenShot, "png",
|
|
|
- Paths.get(file.getParentFile().getAbsolutePath(), day + "-5-满意度.png").toFile());
|
|
|
- }
|
|
|
- sheet = workbook.getSheet("客户端-投诉问题解决率");
|
|
|
- if (sheet != null) {
|
|
|
- if (sheet != null) {
|
|
|
- screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
- ImageIO.write(screenShot, "png",
|
|
|
- Paths.get(file.getParentFile().getAbsolutePath(), day + "-6-解决率.png").toFile());
|
|
|
- }
|
|
|
+ Paths.get(file.getParentFile().getAbsolutePath(), "超时工单概况" + day + ".png").toFile());
|
|
|
+ area = "G1:J14";
|
|
|
+ screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
+ ImageIO.write(screenShot, "png",
|
|
|
+ Paths.get(file.getParentFile().getAbsolutePath(), "投诉处理时长" + day + ".png").toFile());
|
|
|
}
|
|
|
- sheet = workbook.getSheet("客户端-投诉问题响应率");
|
|
|
+ // 截图 移网综合投诉评价
|
|
|
+ sheet = workbook.getSheet("移网综合投诉评价");
|
|
|
if (sheet != null) {
|
|
|
- if (sheet != null) {
|
|
|
- screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
- ImageIO.write(screenShot, "png",
|
|
|
- Paths.get(file.getParentFile().getAbsolutePath(), day + "-7-响应率.png").toFile());
|
|
|
- }
|
|
|
+ area = "A1:G15";
|
|
|
+ screenShot = PoiUtil.screenShot(sheet, area, "微软雅黑");
|
|
|
+ ImageIO.write(screenShot, "png",
|
|
|
+ Paths.get(file.getParentFile().getAbsolutePath(), "移网综合投诉评价" + day + ".png").toFile());
|
|
|
}
|
|
|
} catch (EncryptedDocumentException | IOException e) {
|
|
|
e.printStackTrace();
|
|
@@ -123,12 +121,11 @@ public class ReportServiceV3 {
|
|
|
log.info("帐期 {} 管理端-移网感知类 sheet写入成功", day);
|
|
|
// 1.2 写入 服请情况
|
|
|
// 1.3 写入 投诉处理时长、超时工单概况
|
|
|
- // TODO
|
|
|
writeSheet3(workbookWrapper, day);
|
|
|
log.info("帐期 {} 投诉处理时长、超时工单概况 sheet写入成功", day);
|
|
|
// 1.4 写入三率
|
|
|
tslDataService.checkStatDayCount(day);
|
|
|
- writeSheet4_6(workbookWrapper, day);
|
|
|
+ writeSheet4(workbookWrapper, day);
|
|
|
log.info("帐期 {} 客户端-三率 sheet写入成功", day);
|
|
|
// 2. 写入到本地文件
|
|
|
try (OutputStream outputStream = new FileOutputStream(file)) {
|
|
@@ -143,12 +140,10 @@ public class ReportServiceV3 {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 客户端-投诉问题解决满意度
|
|
|
- * 客户端-投诉问题解决率
|
|
|
- * 客户端-投诉问题响应率
|
|
|
+ * 移网综合投诉评价
|
|
|
*/
|
|
|
- private void writeSheet4_6(XSSFWorkbookWrapper workbookWrapper, String day) {
|
|
|
- List<List<List<Object>>> sheet4_6Data = tslDataService.getSheet4_6Data(day);
|
|
|
+ private void writeSheet4(XSSFWorkbookWrapper workbookWrapper, String day) {
|
|
|
+ List<List<Object>> data = highQualityCountService.getThreeRateOfCityV3(day);
|
|
|
// 计算时间常数
|
|
|
Calendar calendar = Calendar.getInstance(Locale.CHINA);
|
|
|
try {
|
|
@@ -157,19 +152,15 @@ public class ReportServiceV3 {
|
|
|
log.error("时间字符串解析失败--{}", day);
|
|
|
}
|
|
|
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
|
|
- Sheet sheet4 = workbookWrapper.getWorkbook().createSheet("客户端-投诉问题解决满意度");
|
|
|
- Sheet sheet5 = workbookWrapper.getWorkbook().createSheet("客户端-投诉问题解决率");
|
|
|
- Sheet sheet6 = workbookWrapper.getWorkbook().createSheet("客户端-投诉问题响应率");
|
|
|
+ Sheet sheet4 = workbookWrapper.getWorkbook().createSheet("移网综合投诉评价");
|
|
|
Row row;
|
|
|
Cell cell;
|
|
|
-
|
|
|
- // 客户端-投诉问题解决满意度 第一行
|
|
|
row = sheet4.createRow(0);
|
|
|
cell = row.createCell(0);
|
|
|
- cell.setCellValue(String.format("投诉问题解决满意率(1-%s)", dayOfMonth));
|
|
|
+ cell.setCellValue(String.format("移网综合投诉评价(1-%s)", dayOfMonth));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
// 合并单元格 A1 - D1
|
|
|
- PoiUtil.addMergedRegion(sheet4, 0, 0, 0, 3);
|
|
|
+ PoiUtil.addMergedRegion(sheet4, 0, 0, 0, 6);
|
|
|
// 客户端-投诉问题解决满意度 第二行
|
|
|
row = sheet4.createRow(1);
|
|
|
cell = row.createCell(0);
|
|
@@ -179,144 +170,63 @@ public class ReportServiceV3 {
|
|
|
cell.setCellValue("满意率");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
cell = row.createCell(2);
|
|
|
- cell.setCellValue("达标值");
|
|
|
+ cell.setCellValue("解决率");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
cell = row.createCell(3);
|
|
|
- cell.setCellValue("与达标值差距");
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- int rowNum = 2;
|
|
|
- for (List<Object> list : sheet4_6Data.get(0)) {
|
|
|
- row = sheet4.createRow(rowNum++);
|
|
|
- // 地市
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue(list.get(0).toString());
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle1());
|
|
|
- // 投诉问题解决满意率
|
|
|
- cell = row.createCell(1);
|
|
|
- cell.setCellValue(((double) list.get(1)));
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- // 达标值
|
|
|
- cell = row.createCell(2);
|
|
|
- cell.setCellValue((double) list.get(2));
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- // 与达标值差距
|
|
|
- cell = row.createCell(3);
|
|
|
- cell.setCellValue(((double) list.get(3)));
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- }
|
|
|
- // 设置条件格式D3-D14
|
|
|
- PoiUtil.setConditionalFormattingRedToGreen(sheet4, 2, 13, 3, 3);
|
|
|
- // 设置列宽 2048 1304 2048 2304
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
- sheet4.setColumnWidth(i, 2848);
|
|
|
- }
|
|
|
- // 设置行高 15.0 15.0...
|
|
|
- for (int i = 0; i < 15; i++) {
|
|
|
- sheet4.getRow(i).setHeightInPoints(15.0F);
|
|
|
- }
|
|
|
-
|
|
|
- // 客户端-投诉问题解决率
|
|
|
- row = sheet5.createRow(0);
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue(String.format("投诉问题解决率(1-%s)", dayOfMonth));
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- // 合并单元格 A1 - D1
|
|
|
- PoiUtil.addMergedRegion(sheet5, 0, 0, 0, 3);
|
|
|
- // 客户端-投诉问题解决率 第二行
|
|
|
- row = sheet5.createRow(1);
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue("地市");
|
|
|
+ cell.setCellValue("响应率");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(1);
|
|
|
- cell.setCellValue("解决率");
|
|
|
+ cell = row.createCell(4);
|
|
|
+ cell.setCellValue("综合评价");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(2);
|
|
|
+ cell = row.createCell(5);
|
|
|
cell.setCellValue("达标值");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(3);
|
|
|
+ cell = row.createCell(6);
|
|
|
cell.setCellValue("与达标值差距");
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- rowNum = 2;
|
|
|
- for (List<Object> list : sheet4_6Data.get(1)) {
|
|
|
- row = sheet5.createRow(rowNum++);
|
|
|
+ // 写入各地市数据
|
|
|
+ int rowNum = 2;
|
|
|
+ for (List<Object> list : data) {
|
|
|
+ row = sheet4.createRow(rowNum++);
|
|
|
// 地市
|
|
|
cell = row.createCell(0);
|
|
|
cell.setCellValue(list.get(0).toString());
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle1());
|
|
|
- // 投诉问题解决率
|
|
|
+ // 满意率
|
|
|
cell = row.createCell(1);
|
|
|
- cell.setCellValue(((double) list.get(1)));
|
|
|
+ cell.setCellValue((double) list.get(1));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- // 达标值
|
|
|
+ // 解决率
|
|
|
cell = row.createCell(2);
|
|
|
cell.setCellValue((double) list.get(2));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- // 与达标值差距
|
|
|
+ // 相应率
|
|
|
cell = row.createCell(3);
|
|
|
- cell.setCellValue(((double) list.get(3)));
|
|
|
+ cell.setCellValue((double) list.get(3));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
- }
|
|
|
- // 设置条件格式D3-D14
|
|
|
- PoiUtil.setConditionalFormattingRedToGreen(sheet5, 2, 13, 3, 3);
|
|
|
- // 设置列宽 2048 1304 2048 2304
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
- sheet5.setColumnWidth(i, 2848);
|
|
|
- }
|
|
|
- // 设置行高 15.0 15.0...
|
|
|
- for (int i = 0; i < 15; i++) {
|
|
|
- sheet5.getRow(i).setHeightInPoints(15.0F);
|
|
|
- }
|
|
|
-
|
|
|
- // 客户端-投诉问题响应率
|
|
|
- row = sheet6.createRow(0);
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue(String.format("投诉问题响应率(1-%s)", dayOfMonth));
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- // 合并单元格 A1 - D1
|
|
|
- PoiUtil.addMergedRegion(sheet6, 0, 0, 0, 3);
|
|
|
- // 客户端-投诉问题响应率 第二行
|
|
|
- row = sheet6.createRow(1);
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue("地市");
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(1);
|
|
|
- cell.setCellValue("响应率");
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(2);
|
|
|
- cell.setCellValue("达标值");
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- cell = row.createCell(3);
|
|
|
- cell.setCellValue("与达标值差距");
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle3());
|
|
|
- rowNum = 2;
|
|
|
- for (List<Object> list : sheet4_6Data.get(2)) {
|
|
|
- row = sheet6.createRow(rowNum++);
|
|
|
- // 地市
|
|
|
- cell = row.createCell(0);
|
|
|
- cell.setCellValue(list.get(0).toString());
|
|
|
- cell.setCellStyle(workbookWrapper.getCellStyle1());
|
|
|
- // 投诉问题解决率
|
|
|
- cell = row.createCell(1);
|
|
|
- cell.setCellValue(((double) list.get(1)));
|
|
|
+ // 综合评价
|
|
|
+ cell = row.createCell(4);
|
|
|
+ // 移网综合投诉评价“三率”=响应率*0.1+解决率*0.4+满意率*0.5
|
|
|
+ cell.setCellValue((double) list.get(4));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
// 达标值
|
|
|
- cell = row.createCell(2);
|
|
|
- cell.setCellValue((double) list.get(2));
|
|
|
+ cell = row.createCell(5);
|
|
|
+ cell.setCellValue((double) list.get(5));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
// 与达标值差距
|
|
|
- cell = row.createCell(3);
|
|
|
- cell.setCellValue(((double) list.get(3)));
|
|
|
+ cell = row.createCell(6);
|
|
|
+ cell.setCellValue((double) list.get(6));
|
|
|
cell.setCellStyle(workbookWrapper.getCellStyle2());
|
|
|
}
|
|
|
// 设置条件格式D3-D14
|
|
|
- PoiUtil.setConditionalFormattingRedToGreen(sheet6, 2, 13, 3, 3);
|
|
|
+ PoiUtil.setConditionalFormattingGreenToRed(sheet4, 2, 13, 6, 6);
|
|
|
// 设置列宽 2048 1304 2048 2304
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
- sheet6.setColumnWidth(i, 2848);
|
|
|
+ for (int i = 0; i < 7; i++) {
|
|
|
+ sheet4.setColumnWidth(i, 2848);
|
|
|
}
|
|
|
// 设置行高 15.0 15.0...
|
|
|
for (int i = 0; i < 15; i++) {
|
|
|
- sheet6.getRow(i).setHeightInPoints(15.0F);
|
|
|
+ sheet4.getRow(i).setHeightInPoints(15.0F);
|
|
|
}
|
|
|
}
|
|
|
|