大型解析双收益团队长
This commit is contained in:
@@ -94,12 +94,13 @@ public class LbAssessmentApplyController {
|
|||||||
@RequestParam(required = false) String applicantPhone,
|
@RequestParam(required = false) String applicantPhone,
|
||||||
@RequestParam(required = false) String colleagueName,
|
@RequestParam(required = false) String colleagueName,
|
||||||
@RequestParam(required = false) String teamLeaderName,
|
@RequestParam(required = false) String teamLeaderName,
|
||||||
|
@RequestParam(required = false) String teamBigLeaderName,
|
||||||
@RequestParam(required = false) String assessmentTeacherName,
|
@RequestParam(required = false) String assessmentTeacherName,
|
||||||
@RequestParam(required = false) String moderatorName,
|
@RequestParam(required = false) String moderatorName,
|
||||||
@RequestParam(required = false) String meetingNumber) {
|
@RequestParam(required = false) String meetingNumber) {
|
||||||
Map<String, Object> result = lbAssessmentApplyService.pageQuery(
|
Map<String, Object> result = lbAssessmentApplyService.pageQuery(
|
||||||
current, size, tenantId, applicantName, applicantPhone, colleagueName, teamLeaderName,
|
current, size, tenantId, applicantName, applicantPhone, colleagueName, teamLeaderName,
|
||||||
assessmentTeacherName, moderatorName, meetingNumber
|
teamBigLeaderName, assessmentTeacherName, moderatorName, meetingNumber
|
||||||
);
|
);
|
||||||
Boolean success = (Boolean) result.get("success");
|
Boolean success = (Boolean) result.get("success");
|
||||||
if (success != null && success) {
|
if (success != null && success) {
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ public class LbAssessmentApply implements Serializable {
|
|||||||
@Schema(description = "团队长姓名")
|
@Schema(description = "团队长姓名")
|
||||||
private String teamLeaderName;
|
private String teamLeaderName;
|
||||||
|
|
||||||
|
@TableField("team_big_leader_name")
|
||||||
|
@Schema(description = "全收益团队长姓名")
|
||||||
|
private String teamBigLeaderName;
|
||||||
|
|
||||||
@TableField("assessment_teacher_name")
|
@TableField("assessment_teacher_name")
|
||||||
@Schema(description = "评估老师姓名")
|
@Schema(description = "评估老师姓名")
|
||||||
private String assessmentTeacherName;
|
private String assessmentTeacherName;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ public interface ILbAssessmentApplyService extends IService<LbAssessmentApply> {
|
|||||||
String applicantPhone,
|
String applicantPhone,
|
||||||
String colleagueName,
|
String colleagueName,
|
||||||
String teamLeaderName,
|
String teamLeaderName,
|
||||||
|
String teamBigLeaderName,
|
||||||
String assessmentTeacherName,
|
String assessmentTeacherName,
|
||||||
String moderatorName,
|
String moderatorName,
|
||||||
String meetingNumber);
|
String meetingNumber);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
colleagueName 同事姓名;
|
colleagueName 同事姓名;
|
||||||
colleaguePhone 同事电话;
|
colleaguePhone 同事电话;
|
||||||
teamLeaderName 团队长姓名;
|
teamLeaderName 团队长姓名;
|
||||||
|
teamBigLeaderName 全收益团队长姓名;
|
||||||
assessmentTeacherName 评估老师姓名;
|
assessmentTeacherName 评估老师姓名;
|
||||||
moderatorName 主持人姓名;
|
moderatorName 主持人姓名;
|
||||||
meetingNumber 会议号;
|
meetingNumber 会议号;
|
||||||
@@ -250,6 +251,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
String applicantPhone,
|
String applicantPhone,
|
||||||
String colleagueName,
|
String colleagueName,
|
||||||
String teamLeaderName,
|
String teamLeaderName,
|
||||||
|
String teamBigLeaderName,
|
||||||
String assessmentTeacherName,
|
String assessmentTeacherName,
|
||||||
String moderatorName,
|
String moderatorName,
|
||||||
String meetingNumber) {
|
String meetingNumber) {
|
||||||
@@ -264,7 +266,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
|
|
||||||
LambdaQueryWrapper<LbAssessmentApply> queryWrapper = buildQueryWrapper(
|
LambdaQueryWrapper<LbAssessmentApply> queryWrapper = buildQueryWrapper(
|
||||||
tenantId, applicantName, applicantPhone, colleagueName, teamLeaderName,
|
tenantId, applicantName, applicantPhone, colleagueName, teamLeaderName,
|
||||||
assessmentTeacherName, moderatorName, meetingNumber
|
teamBigLeaderName, assessmentTeacherName, moderatorName, meetingNumber
|
||||||
);
|
);
|
||||||
|
|
||||||
Page<LbAssessmentApply> page = this.page(new Page<>(current, size), queryWrapper);
|
Page<LbAssessmentApply> page = this.page(new Page<>(current, size), queryWrapper);
|
||||||
@@ -375,7 +377,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
createCell(row, 3, nullToEmpty(item.getColleagueName()), dataStyle);
|
createCell(row, 3, nullToEmpty(item.getColleagueName()), dataStyle);
|
||||||
createCell(row, 4, nullToEmpty(item.getColleaguePhone()), dataStyle);
|
createCell(row, 4, nullToEmpty(item.getColleaguePhone()), dataStyle);
|
||||||
createCell(row, 5, nullToEmpty(item.getTeamLeaderName()), dataStyle);
|
createCell(row, 5, nullToEmpty(item.getTeamLeaderName()), dataStyle);
|
||||||
createCell(row, 6, "", dataStyle);
|
createCell(row, 6, nullToEmpty(item.getTeamBigLeaderName()), dataStyle);
|
||||||
createCell(row, 7, formatApplicationDatetime(item.getApplicationDatetime()), dataStyle);
|
createCell(row, 7, formatApplicationDatetime(item.getApplicationDatetime()), dataStyle);
|
||||||
createCell(row, 8, nullToEmpty(item.getAssessmentTeacherName()), dataStyle);
|
createCell(row, 8, nullToEmpty(item.getAssessmentTeacherName()), dataStyle);
|
||||||
createCell(row, 9, nullToEmpty(item.getModeratorName()), dataStyle);
|
createCell(row, 9, nullToEmpty(item.getModeratorName()), dataStyle);
|
||||||
@@ -383,11 +385,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
rowIndex++;
|
rowIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < headers.length; i++) {
|
adjustColumnWidths(sheet, headers);
|
||||||
sheet.autoSizeColumn(i);
|
|
||||||
int width = sheet.getColumnWidth(i);
|
|
||||||
sheet.setColumnWidth(i, Math.min(255 * 256, (int) (width * 1.2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
String filename = "申请评估_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx";
|
String filename = "申请评估_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx";
|
||||||
String encoded = URLEncoder.encode(filename, StandardCharsets.UTF_8).replaceAll("\\+", "%20");
|
String encoded = URLEncoder.encode(filename, StandardCharsets.UTF_8).replaceAll("\\+", "%20");
|
||||||
@@ -420,6 +418,7 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
String applicantPhone,
|
String applicantPhone,
|
||||||
String colleagueName,
|
String colleagueName,
|
||||||
String teamLeaderName,
|
String teamLeaderName,
|
||||||
|
String teamBigLeaderName,
|
||||||
String assessmentTeacherName,
|
String assessmentTeacherName,
|
||||||
String moderatorName,
|
String moderatorName,
|
||||||
String meetingNumber) {
|
String meetingNumber) {
|
||||||
@@ -439,6 +438,9 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
if (teamLeaderName != null && !teamLeaderName.trim().isEmpty()) {
|
if (teamLeaderName != null && !teamLeaderName.trim().isEmpty()) {
|
||||||
queryWrapper.like(LbAssessmentApply::getTeamLeaderName, teamLeaderName.trim());
|
queryWrapper.like(LbAssessmentApply::getTeamLeaderName, teamLeaderName.trim());
|
||||||
}
|
}
|
||||||
|
if (teamBigLeaderName != null && !teamBigLeaderName.trim().isEmpty()) {
|
||||||
|
queryWrapper.like(LbAssessmentApply::getTeamBigLeaderName, teamBigLeaderName.trim());
|
||||||
|
}
|
||||||
if (assessmentTeacherName != null && !assessmentTeacherName.trim().isEmpty()) {
|
if (assessmentTeacherName != null && !assessmentTeacherName.trim().isEmpty()) {
|
||||||
queryWrapper.like(LbAssessmentApply::getAssessmentTeacherName, assessmentTeacherName.trim());
|
queryWrapper.like(LbAssessmentApply::getAssessmentTeacherName, assessmentTeacherName.trim());
|
||||||
}
|
}
|
||||||
@@ -472,4 +474,43 @@ public class LbAssessmentApplyServiceImpl
|
|||||||
cell.setCellValue(text);
|
cell.setCellValue(text);
|
||||||
cell.setCellStyle(style);
|
cell.setCellStyle(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按单元格内容计算列宽。POI 的 autoSizeColumn 对中文支持差,改为按字符宽度估算。
|
||||||
|
*/
|
||||||
|
private static void adjustColumnWidths(Sheet sheet, String[] headers) {
|
||||||
|
int columnCount = headers.length;
|
||||||
|
int[] maxWidths = new int[columnCount];
|
||||||
|
for (int i = 0; i < columnCount; i++) {
|
||||||
|
maxWidths[i] = calcDisplayWidth(headers[i]);
|
||||||
|
}
|
||||||
|
for (int r = 1; r <= sheet.getLastRowNum(); r++) {
|
||||||
|
Row row = sheet.getRow(r);
|
||||||
|
if (row == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (int c = 0; c < columnCount; c++) {
|
||||||
|
Cell cell = row.getCell(c);
|
||||||
|
if (cell != null && cell.getCellType() == CellType.STRING) {
|
||||||
|
maxWidths[c] = Math.max(maxWidths[c], calcDisplayWidth(cell.getStringCellValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < columnCount; i++) {
|
||||||
|
// 表头加粗,额外留 1 个字符边距
|
||||||
|
int width = Math.min(255 * 256, (maxWidths[i] + 3) * 256);
|
||||||
|
sheet.setColumnWidth(i, width);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int calcDisplayWidth(String text) {
|
||||||
|
if (text == null || text.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int width = 0;
|
||||||
|
for (char ch : text.toCharArray()) {
|
||||||
|
width += ch > 127 ? 2 : 1;
|
||||||
|
}
|
||||||
|
return width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user