Quellcode durchsuchen

feat(outdata): 优化导出任务表头样式处理逻辑

- 新增多种表头样式定义,包括金额、数字、日期等类型
- 完善必填项样式的字体颜色设置
- 重构 getFixCellStyle 方法,支持更精确的数据类型匹配
- 根据字段是否必填及数据类型动态应用对应样式
- 提升表头单元格样式处理的灵活性和准确性
Tyx vor 4 Tagen
Ursprung
Commit
e9a0738356

+ 50 - 14
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hsas/business/outdata/OutImportTaskGuideExportService.java

@@ -110,13 +110,21 @@ public class OutImportTaskGuideExportService {
         sheet.setRandomAccessWindowSize(-1);
         SXSSFDrawing drawingPatriarch = sheet.createDrawingPatriarch();
         SXSSFRow headRow = sheet.createRow(startLine - 2);
+        // 创建表头样式
         CellStyle headDateStyle = getColumnStyle(true, 0, 0, SITShowType.DATE.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
         CellStyle headTextStyle = getColumnStyle(true, 0, 0, SITShowType.TEXT.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        CellStyle headAmountStyle = getColumnStyle(true, 0, 0, SITShowType.AMOUNT.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        CellStyle headNumStyle = getColumnStyle(true, 0, 0, SITShowType.NUM.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
         CellStyle headRequriedNumStyle = getColumnStyle(true, 0, 0, SITShowType.NUM.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        CellStyle headRequiredDateStyle = getColumnStyle(true, 0, 0, SITShowType.DATE.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        CellStyle headRequiredAmountStyle = getColumnStyle(true, 0, 0, SITShowType.AMOUNT.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        CellStyle headRequrriedTextStyle = getColumnStyle(true, 0, 0, SITShowType.TEXT.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
+        // 必填项样式
         Font font = sheet.getWorkbook().createFont();
-        CellStyle requrriedStyle = getColumnStyle(true, 0, 0, SITShowType.TEXT.getCode(), HorizontalAlignment.LEFT, sheet.getWorkbook(), HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex(), true);
         font.setColor((short) 10);
-        requrriedStyle.setFont(font);
+        headRequiredDateStyle.setFont(font);
+        headRequiredAmountStyle.setFont(font);
+        headRequrriedTextStyle.setFont(font);
         headRequriedNumStyle.setFont(font);
         Map<Long, OutImpPresetItem> itemEnumMap = OutImpTemplateHelper.getPresetItemEnumMap();
         List<Map<String, String>> columnHeadList = OutImportTaskUtils.getColumnHeadList(tplId, importTaskId);
@@ -135,12 +143,15 @@ public class OutImportTaskGuideExportService {
                 if (Long.parseLong(dataTypeIdStr) == DataTypeEnum.STRING.getDbId()) {
                     textIndexList.add(columnIndex);
                 }
-                if ("0".equals(itemType) && itemEnumMap.get(Long.valueOf((String) columnHead.get("id"))) != null) {
-                    presetItemEnum = (OutImpPresetItem) itemEnumMap.get(Long.valueOf((String) columnHead.get("id")));
-                    CellStyle style = this.getFixCellStyle(presetItemEnum, requrriedStyle, headDateStyle, headTextStyle, headRequriedNumStyle);
-                    this.createCell(comment, headRow, columnIndex, presetItemEnum.getItemName(), true, style, this.getDataType(presetItemEnum), drawingPatriarch);
+
+                if ("0".equals(itemType)) {
+                    CellStyle style = this.getFixCellStyle(true, Long.valueOf(columnHead.get("datatypeid")), headDateStyle,  headTextStyle,  headAmountStyle,  headNumStyle,
+                            headRequiredDateStyle,  headRequrriedTextStyle,  headRequiredAmountStyle,  headRequriedNumStyle);
+                    this.createCell(comment, headRow, columnIndex, name, true, style, dataTypeIdStr, drawingPatriarch);
                 } else {
-                    this.createCell(comment, headRow, columnIndex, name, false, headTextStyle, dataTypeIdStr, drawingPatriarch);
+                    CellStyle style = this.getFixCellStyle(false, Long.valueOf(columnHead.get("datatypeid")), headDateStyle,  headTextStyle,  headAmountStyle,  headNumStyle,
+                            headRequiredDateStyle,  headRequrriedTextStyle,  headRequiredAmountStyle,  headRequriedNumStyle);
+                    this.createCell(comment, headRow, columnIndex, name, false, style, dataTypeIdStr, drawingPatriarch);
                 }
             }
         }
@@ -226,13 +237,38 @@ public class OutImportTaskGuideExportService {
         sheet.addValidationData(validation);
     }
 
-    private CellStyle getFixCellStyle(OutImpPresetItem presetItemEnum, CellStyle requrriedStyle, CellStyle headDateStyle, CellStyle headTextStyle, CellStyle headRequriedNumStyle) {
-//        if (presetItemEnum.isRequire()) {
-//            return presetItemEnum.getDataTypeId() == DataTypeEnum.NUMBERIC.getDbId() ? headRequriedNumStyle : requrriedStyle;
-//        } else {
-//            return presetItemEnum.getDataTypeId() == DataTypeEnum.DATE.getDbId() ? headDateStyle : headTextStyle;
-//        }
-        return presetItemEnum.getDataTypeId() == DataTypeEnum.DATE.getDbId() ? headDateStyle : headTextStyle;
+    private CellStyle getFixCellStyle(boolean isRequired, long dataTypeId, CellStyle headDateStyle, CellStyle headTextStyle, CellStyle headAmountStyle, CellStyle headNumStyle,
+                                      CellStyle headRequiredDateStyle, CellStyle headRequrriedTextStyle, CellStyle headRequiredAmountStyle, CellStyle headRequriedNumStyle) {
+        if(isRequired) {
+            if (dataTypeId == DataTypeEnum.AMOUNT.getDbId()) {
+                return headRequiredAmountStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.NUMBERIC.getDbId()) {
+                return headRequriedNumStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.STRING.getDbId()) {
+                return headRequrriedTextStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.DATE.getDbId()) {
+                return headRequiredDateStyle;
+            }
+            else return headRequrriedTextStyle;
+        }
+        else {
+            if (dataTypeId == DataTypeEnum.AMOUNT.getDbId()) {
+                return headAmountStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.NUMBERIC.getDbId()) {
+                return headNumStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.STRING.getDbId()) {
+                return headTextStyle;
+            }
+            else if(dataTypeId == DataTypeEnum.DATE.getDbId()) {
+                return headDateStyle;
+            }
+            else return headTextStyle;
+        }
     }
 
     private void createCell(String comment, SXSSFRow headRow, int cellIndex, String name, boolean isRequried, CellStyle cellStyle, String dataType, SXSSFDrawing drawingPatriarch) {