zhuyifan

feat(settlement): 添加医生信息字段并调整Excel导出列顺序

- 在SettlementDTO中新增doctors字段用于存储医生信息- 在结算服务中安全获取并处理医生信息列表
- 调整Excel导出时的列标题顺序,增加医嘱信息列- 更新Excel数据填充逻辑以支持新的列结构
- 修改列合并范围和自动列宽调整逻辑以适应新增列
...@@ -117,6 +117,7 @@ public class SettlementDTO { ...@@ -117,6 +117,7 @@ public class SettlementDTO {
117 private String skuName; 117 private String skuName;
118 private Integer count; 118 private Integer count;
119 private String avoids; 119 private String avoids;
120 + private String doctors;
120 private String remark; 121 private String remark;
121 } 122 }
122 123
......
...@@ -1272,6 +1272,10 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -1272,6 +1272,10 @@ public class SettlementServiceImpl implements SettlementService {
1272 List<String> avoidsList = getAvoidsSafely(order); 1272 List<String> avoidsList = getAvoidsSafely(order);
1273 String avoidsStr = String.join(", ", avoidsList); 1273 String avoidsStr = String.join(", ", avoidsList);
1274 1274
1275 + // 安全获取医生信息(列表转字符串)
1276 + List<String> doctorsList = getDoctorsSafely(order);
1277 + String doctorsStr = String.join(", ", doctorsList);
1278 +
1275 String remark = order.getRemark(); 1279 String remark = order.getRemark();
1276 String avoidRemark = order.getAvoidRemark(); 1280 String avoidRemark = order.getAvoidRemark();
1277 String combinedRemark = ""; 1281 String combinedRemark = "";
...@@ -1293,6 +1297,7 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -1293,6 +1297,7 @@ public class SettlementServiceImpl implements SettlementService {
1293 .skuName(skuName) 1297 .skuName(skuName)
1294 .count(orderDetail.getCount() != 0 ? orderDetail.getCount() : 0) 1298 .count(orderDetail.getCount() != 0 ? orderDetail.getCount() : 0)
1295 .avoids(avoidsStr) 1299 .avoids(avoidsStr)
1300 + .doctors(doctorsStr)
1296 .remark(combinedRemark) 1301 .remark(combinedRemark)
1297 .build(); 1302 .build();
1298 mealDetails.add(mealDetail); 1303 mealDetails.add(mealDetail);
...@@ -1369,7 +1374,7 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -1369,7 +1374,7 @@ public class SettlementServiceImpl implements SettlementService {
1369 mainTitleCell.setCellStyle(titleStyle); 1374 mainTitleCell.setCellStyle(titleStyle);
1370 1375
1371 // 合并第一行的8列 1376 // 合并第一行的8列
1372 - CellRangeAddress titleRegion = new CellRangeAddress(0, 0, 0, 7); 1377 + CellRangeAddress titleRegion = new CellRangeAddress(0, 0, 0, 8);
1373 sheet.addMergedRegion(titleRegion); 1378 sheet.addMergedRegion(titleRegion);
1374 1379
1375 // 为合并区域设置边框 1380 // 为合并区域设置边框
...@@ -1399,25 +1404,29 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -1399,25 +1404,29 @@ public class SettlementServiceImpl implements SettlementService {
1399 cell2.setCellStyle(headerStyle); 1404 cell2.setCellStyle(headerStyle);
1400 1405
1401 Cell cell3 = titleRow.createCell(columnNum++); 1406 Cell cell3 = titleRow.createCell(columnNum++);
1402 - cell3.setCellValue("餐单名称"); 1407 + cell3.setCellValue("医嘱信息");
1403 cell3.setCellStyle(headerStyle); 1408 cell3.setCellStyle(headerStyle);
1404 1409
1405 Cell cell4 = titleRow.createCell(columnNum++); 1410 Cell cell4 = titleRow.createCell(columnNum++);
1406 - cell4.setCellValue("菜品名称"); 1411 + cell4.setCellValue("餐单名称");
1407 cell4.setCellStyle(headerStyle); 1412 cell4.setCellStyle(headerStyle);
1408 1413
1409 Cell cell5 = titleRow.createCell(columnNum++); 1414 Cell cell5 = titleRow.createCell(columnNum++);
1410 - cell5.setCellValue("菜品数量"); 1415 + cell5.setCellValue("菜品名称");
1411 cell5.setCellStyle(headerStyle); 1416 cell5.setCellStyle(headerStyle);
1412 1417
1413 Cell cell6 = titleRow.createCell(columnNum++); 1418 Cell cell6 = titleRow.createCell(columnNum++);
1414 - cell6.setCellValue("忌口信息"); 1419 + cell6.setCellValue("菜品数量");
1415 cell6.setCellStyle(headerStyle); 1420 cell6.setCellStyle(headerStyle);
1416 1421
1417 Cell cell7 = titleRow.createCell(columnNum++); 1422 Cell cell7 = titleRow.createCell(columnNum++);
1418 - cell7.setCellValue("备注"); 1423 + cell7.setCellValue("忌口信息");
1419 cell7.setCellStyle(headerStyle); 1424 cell7.setCellStyle(headerStyle);
1420 1425
1426 + Cell cell8 = titleRow.createCell(columnNum++);
1427 + cell8.setCellValue("备注");
1428 + cell8.setCellStyle(headerStyle);
1429 +
1421 // 填充数据 1430 // 填充数据
1422 final var mealDetails = separateMealDataDto.getMealDetails(); 1431 final var mealDetails = separateMealDataDto.getMealDetails();
1423 if (mealDetails != null) { 1432 if (mealDetails != null) {
...@@ -1438,29 +1447,33 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -1438,29 +1447,33 @@ public class SettlementServiceImpl implements SettlementService {
1438 dataCell2.setCellStyle(dataStyle); 1447 dataCell2.setCellStyle(dataStyle);
1439 1448
1440 Cell dataCell3 = dataRow.createCell(columnNum++); 1449 Cell dataCell3 = dataRow.createCell(columnNum++);
1441 - dataCell3.setCellValue(mealDetail.getMenuName() != null ? mealDetail.getMenuName() : ""); 1450 + dataCell3.setCellValue(mealDetail.getDoctors() != null ? mealDetail.getDoctors() : "");
1442 dataCell3.setCellStyle(dataStyle); 1451 dataCell3.setCellStyle(dataStyle);
1443 1452
1444 Cell dataCell4 = dataRow.createCell(columnNum++); 1453 Cell dataCell4 = dataRow.createCell(columnNum++);
1445 - dataCell4.setCellValue(mealDetail.getSkuName() != null ? mealDetail.getSkuName() : ""); 1454 + dataCell4.setCellValue(mealDetail.getMenuName() != null ? mealDetail.getMenuName() : "");
1446 dataCell4.setCellStyle(dataStyle); 1455 dataCell4.setCellStyle(dataStyle);
1447 1456
1448 Cell dataCell5 = dataRow.createCell(columnNum++); 1457 Cell dataCell5 = dataRow.createCell(columnNum++);
1449 - dataCell5.setCellValue(mealDetail.getCount() != null ? mealDetail.getCount() : 0); 1458 + dataCell5.setCellValue(mealDetail.getSkuName() != null ? mealDetail.getSkuName() : "");
1450 dataCell5.setCellStyle(dataStyle); 1459 dataCell5.setCellStyle(dataStyle);
1451 1460
1452 Cell dataCell6 = dataRow.createCell(columnNum++); 1461 Cell dataCell6 = dataRow.createCell(columnNum++);
1453 - dataCell6.setCellValue(mealDetail.getAvoids() != null ? mealDetail.getAvoids() : ""); 1462 + dataCell6.setCellValue(mealDetail.getCount() != null ? mealDetail.getCount() : 0);
1454 dataCell6.setCellStyle(dataStyle); 1463 dataCell6.setCellStyle(dataStyle);
1455 1464
1456 Cell dataCell7 = dataRow.createCell(columnNum++); 1465 Cell dataCell7 = dataRow.createCell(columnNum++);
1457 - dataCell7.setCellValue(mealDetail.getRemark() != null ? mealDetail.getRemark() : ""); 1466 + dataCell7.setCellValue(mealDetail.getAvoids() != null ? mealDetail.getAvoids() : "");
1458 dataCell7.setCellStyle(dataStyle); 1467 dataCell7.setCellStyle(dataStyle);
1468 +
1469 + Cell dataCell8 = dataRow.createCell(columnNum++);
1470 + dataCell8.setCellValue(mealDetail.getRemark() != null ? mealDetail.getRemark() : "");
1471 + dataCell8.setCellStyle(dataStyle);
1459 } 1472 }
1460 } 1473 }
1461 1474
1462 // 自动调整列宽 1475 // 自动调整列宽
1463 - for (int i = 0; i < 8; i++) { 1476 + for (int i = 0; i < 9; i++) {
1464 sheet.autoSizeColumn(i); 1477 sheet.autoSizeColumn(i);
1465 } 1478 }
1466 1479
......