diff --git a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateALPHA.java b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateALPHA.java index 13d36c59..23d860eb 100644 --- a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateALPHA.java +++ b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateALPHA.java @@ -620,6 +620,9 @@ public class ExcelTemplateALPHA { } } if (delRight) { + int declarationCenterStartCol = declarationUnitPriceCols.isEmpty() + ? 11 + : Collections.max(declarationUnitPriceCols) + 1; for (Integer dtlRow : dtlRows) { for (int i = 0; i < 17; i++) { XSSFRow row = sheet.getRow(dtlRow); @@ -642,8 +645,9 @@ public class ExcelTemplateALPHA { style.setFont(font); boolean declarationHsCodeDescColumn = declarationHsCodeDescCols.contains(i); boolean keepWrapText = c7.getCellStyle() != null && c7.getCellStyle().getWrapText(); + boolean declarationAfterPriceColumn = i >= declarationCenterStartCol; style.setVerticalAlignment(VerticalAlignment.CENTER); - style.setAlignment(HorizontalAlignment.LEFT); + style.setAlignment(declarationAfterPriceColumn ? HorizontalAlignment.CENTER : HorizontalAlignment.LEFT); style.setWrapText(keepWrapText || declarationHsCodeDescColumn); c7.setCellStyle(style); boolean declarationFixedTwoScaleColumn = fixedDeclarationPriceScale && declarationFixedPriceCols.contains(i); @@ -678,7 +682,7 @@ public class ExcelTemplateALPHA { font7.setFontHeightInPoints((short) 10); style7.setFont(font7); style7.setVerticalAlignment(VerticalAlignment.CENTER); - style7.setAlignment(HorizontalAlignment.RIGHT); + style7.setAlignment(HorizontalAlignment.CENTER); // 设置千分位格式(根据单元格实际小数位动态决定格式) DataFormat dataFormat = workbook.createDataFormat(); String numFmt3; diff --git a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateTX.java b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateTX.java index 72c4617c..2681349b 100644 --- a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateTX.java +++ b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateTX.java @@ -307,6 +307,7 @@ public class ExcelTemplateTX { Set invoiceUnitPriceCols = new HashSet<>(); Set invoiceTotalPriceCols = new HashSet<>(); Set declarationFixedPriceCols = new HashSet<>(); + Set declarationUnitPriceCols = new HashSet<>(); Set declarationQtyCols = new HashSet<>(); Set declarationHsCodeDescCols = new HashSet<>(); Set packingVolumeCols = new HashSet<>(); @@ -343,6 +344,9 @@ public class ExcelTemplateTX { if (isDeclarationFixedPriceField(dtlField)) { declarationFixedPriceCols.add(j); } + if (isDeclarationUnitPriceField(dtlField)) { + declarationUnitPriceCols.add(j); + } if (isDeclarationQtyField(dtlField)) { declarationQtyCols.add(j); } @@ -636,6 +640,9 @@ public class ExcelTemplateTX { } } if (delRight) { + int declarationCenterStartCol = declarationUnitPriceCols.isEmpty() + ? 11 + : Collections.max(declarationUnitPriceCols) + 1; for (Integer dtlRow : dtlRows) { for (int i = 0; i < 17; i++) { XSSFRow row = sheet.getRow(dtlRow); @@ -658,8 +665,9 @@ public class ExcelTemplateTX { style.setFont(font); boolean declarationHsCodeDescColumn = declarationHsCodeDescCols.contains(i); boolean keepWrapText = c7.getCellStyle() != null && c7.getCellStyle().getWrapText(); - style.setVerticalAlignment(declarationHsCodeDescColumn ? VerticalAlignment.TOP : VerticalAlignment.CENTER); - style.setAlignment(HorizontalAlignment.LEFT); + boolean declarationAfterPriceColumn = i >= declarationCenterStartCol; + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setAlignment(declarationAfterPriceColumn ? HorizontalAlignment.CENTER : HorizontalAlignment.LEFT); style.setWrapText(keepWrapText || declarationHsCodeDescColumn); c7.setCellStyle(style); boolean declarationFixedTwoScaleColumn = fixedDeclarationPriceScale && declarationFixedPriceCols.contains(i); @@ -691,7 +699,7 @@ public class ExcelTemplateTX { font7.setFontHeightInPoints((short) 10); style7.setFont(font7); style7.setVerticalAlignment(VerticalAlignment.CENTER); - style7.setAlignment(HorizontalAlignment.RIGHT); + style7.setAlignment(HorizontalAlignment.CENTER); // 设置千分位格式(根据单元格实际小数位动态决定格式) DataFormat dataFormat = workbook.createDataFormat(); String numFmt3; @@ -948,6 +956,10 @@ public class ExcelTemplateTX { || "total_price".equalsIgnoreCase(field); } + private boolean isDeclarationUnitPriceField(String field) { + return "unit_price".equalsIgnoreCase(field); + } + private boolean isDeclarationQtyField(String field) { return "qty".equalsIgnoreCase(field); } 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 ac4d9a41..823ae817 100644 --- a/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java +++ b/src/main/java/com/xujie/sys/common/utils/ExcelTemplateYB.java @@ -623,6 +623,9 @@ public class ExcelTemplateYB { } } if (delRight) { + int declarationCenterStartCol = declarationUnitPriceCols.isEmpty() + ? 11 + : Collections.max(declarationUnitPriceCols) + 1; for (Integer dtlRow : dtlRows) { for (int i = 0; i < 17; i++) { XSSFRow row = sheet.getRow(dtlRow); @@ -645,8 +648,11 @@ public class ExcelTemplateYB { style.setFont(font); boolean declarationHsCodeDescColumn = declarationHsCodeDescCols.contains(i); boolean keepWrapText = c7.getCellStyle() != null && c7.getCellStyle().getWrapText(); - style.setVerticalAlignment(declarationHsCodeDescColumn ? VerticalAlignment.TOP : VerticalAlignment.CENTER); - style.setAlignment(HorizontalAlignment.LEFT); + boolean declarationAfterPriceColumn = i >= declarationCenterStartCol; + style.setVerticalAlignment(declarationAfterPriceColumn + ? VerticalAlignment.CENTER + : (declarationHsCodeDescColumn ? VerticalAlignment.TOP : VerticalAlignment.CENTER)); + style.setAlignment(declarationAfterPriceColumn ? HorizontalAlignment.CENTER : HorizontalAlignment.LEFT); style.setWrapText(keepWrapText || declarationHsCodeDescColumn); c7.setCellStyle(style); boolean declarationFixedTwoScaleColumn = fixedDeclarationPriceScale && declarationFixedPriceCols.contains(i); @@ -681,7 +687,7 @@ public class ExcelTemplateYB { font7.setFontHeightInPoints((short) 10); style7.setFont(font7); style7.setVerticalAlignment(VerticalAlignment.CENTER); - style7.setAlignment(HorizontalAlignment.RIGHT); + style7.setAlignment(HorizontalAlignment.CENTER); // 设置千分位格式(根据单元格实际小数位动态决定格式) DataFormat dataFormat = workbook.createDataFormat(); String numFmt3; 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 bfe796be..e2ae283f 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 @@ -2908,6 +2908,11 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { // Alpha箱单:无托盘时隐藏Pallet列(第9列,索引8) template.hideColumn(8); } + boolean isSpain = containsSpainKeyword(notifyHeader.getDestination(), data.getDestination()); + if (isSpain){ + // Alpha箱单:西班牙时隐藏Pallet列(第5列,索引4) + template.hideColumn(4); + } // 发货通知单明细 List detailList = coDelMapper.exportEcssCoDelNotifyDetail(data); Set poNoSet = detailList.stream() @@ -3074,9 +3079,9 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { totalPlt = totalCartons.setScale(0, RoundingMode.HALF_UP).intValue(); } if (hasPalletData) { - template.addVar("total_plt", totalPlt+"PLT"); - template.addVar("plt(", "(="); - template.addVar("plt)", ")"); + template.addVar("total_plt", isSpain?"(="+totalPlt+"PLT)":totalPlt+"PLT)"); + template.addVar("plt(", isSpain?"":"(="); + //template.addVar("plt)", isSpain?"":")"); template.addVar("PLT", "PLT"); template.addVar("InclPalletWeight", "(Incl.Pallet Weight)"); } else { diff --git a/src/main/resources/templates/ALPHA/declaration-all-template-pdf.xlsx b/src/main/resources/templates/ALPHA/declaration-all-template-pdf.xlsx index 0c882126..988cfd72 100644 Binary files a/src/main/resources/templates/ALPHA/declaration-all-template-pdf.xlsx and b/src/main/resources/templates/ALPHA/declaration-all-template-pdf.xlsx differ diff --git a/src/main/resources/templates/ALPHA/declaration-all-template.xlsx b/src/main/resources/templates/ALPHA/declaration-all-template.xlsx index f3bf97af..19e73b38 100644 Binary files a/src/main/resources/templates/ALPHA/declaration-all-template.xlsx and b/src/main/resources/templates/ALPHA/declaration-all-template.xlsx differ diff --git a/src/main/resources/templates/TX/declaration-all-template.xlsx b/src/main/resources/templates/TX/declaration-all-template.xlsx index d10d0fec..b87fc548 100644 Binary files a/src/main/resources/templates/TX/declaration-all-template.xlsx and b/src/main/resources/templates/TX/declaration-all-template.xlsx differ