diff --git a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java index f8bec482..a9848768 100644 --- a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java +++ b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java @@ -26,6 +26,8 @@ public class ExcelTemplateYB { private List mergeRegions = new ArrayList<>(); // 存储需要设置行高的行信息:[起始行索引, 结束行索引, 行高] private List rowHeights = new ArrayList<>(); + // 需要隐藏的列(0-based) + private Set hiddenColumns = new LinkedHashSet<>(); // 是否下移形状格式 @Setter private boolean moveShape = false; @@ -138,11 +140,21 @@ public class ExcelTemplateYB { } } + /** + * 隐藏指定列(0-based) + */ + public void hideColumn(int colIndex) { + if (colIndex >= 0) { + hiddenColumns.add(colIndex); + } + } + public void clearAll(){ variables.clear(); listVariables.clear(); mergeRegions.clear(); rowHeights.clear(); + hiddenColumns.clear(); moveShape = false; moveSeal = false; cellStyle = false; @@ -797,6 +809,15 @@ public class ExcelTemplateYB { } } + // 处理列隐藏 + if (!hiddenColumns.isEmpty()) { + for (Integer colIndex : hiddenColumns) { + if (colIndex != null && colIndex >= 0) { + sheet.setColumnHidden(colIndex, true); + } + } + } + return workbook; } diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java index c4d4b3f9..5a579576 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java @@ -3048,6 +3048,11 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { .map(EcssCoDelPalletHeaderData::getPalletQty) .filter(Objects::nonNull) // 防止空指针 .reduce(0, Integer::sum); + boolean hasPalletData = !palletHeaderDataList.isEmpty() && totalPlt != null && totalPlt > 0; + if (!hasPalletData) { + // 仅硬标(YB)箱单:无托盘时隐藏Pallet列(第9列,索引8) + template.hideColumn(8); + } // 发货通知单明细 List detailList = coDelMapper.exportEcssCoDelNotifyDetail(data); Set poNoSet = detailList.stream()