diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java index cc93b945..cd9b6d50 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java @@ -2375,11 +2375,16 @@ public class CoDelServiceImpl implements CoDelService { // 根据partNo获取hsCode List hsCodes = coDelMapper.getHsCodeByPartNo(data.getSite(), partNoList); Map hsCodeMap = new HashMap<>(); + // 用于收集每个hsCode对应的SKU列表 + Map> hsCodeSkuListMap = new HashMap<>(); for (int i = 0; i < hsCodes.size(); i++) { Map eorder = hsCodes.get(i); String key = eorder.get("hsCode")+"&"+eorder.get("hsCodeDesc"); + String sku = eorder.get("sku") != null ? eorder.get("sku").toString() : ""; + if (hsCodeMap.containsKey(key)) { - hsCodeMap.get(key).put("sku", hsCodeMap.get(key).get("sku")+"\n "+eorder.get("sku")); + // 将SKU添加到列表中 + hsCodeSkuListMap.get(key).add(sku); } else { // hscode所有属性 PartSubPropertiesValueData inData = new PartSubPropertiesValueData(); @@ -2403,19 +2408,58 @@ public class CoDelServiceImpl implements CoDelService { } eorder.put("properties",properties); hsCodeMap.put(key, eorder); + // 初始化SKU列表 + List skuList = new ArrayList<>(); + skuList.add(sku); + hsCodeSkuListMap.put(key, skuList); } } + + // 格式化SKU列表:每3个一行 List list = new ArrayList<>(hsCodeMap.values()); for (int i = 0; i < list.size(); i++) { Map fMap = list.get(i); + String key = fMap.get("hsCode")+"&"+fMap.get("hsCodeDesc"); + List skuList = hsCodeSkuListMap.get(key); + String formattedSku = formatSkuList(skuList); + fMap.put("sku", formattedSku); fMap.put("content", "HS Code: "+fMap.get("hsCode")+ "\n品名: "+(data.getHsCodeDescType()!=null&& data.getHsCodeDescType().equals("N")?fMap.get("hsCodeDescEn"):fMap.get("hsCodeDesc"))+ "\n"+fMap.get("properties")+ - "\n型号: "+fMap.get("sku")); + "\n型号: "+formattedSku); } template.addListVarAll(list); } + /** + * 格式化SKU列表,每3个一行,从第2行开始前面加17个空格 + * + * @param skuList SKU列表 + * @return 格式化后的SKU字符串,格式如: "10001,10002,10003\n 10004,10005,10006" + */ + private String formatSkuList(List skuList) { + if (skuList == null || skuList.isEmpty()) { + return ""; + } + + StringBuilder result = new StringBuilder(); + for (int i = 0; i < skuList.size(); i++) { + if (i > 0) { + // 每3个换行 + if (i % 3 == 0) { + // 换行后添加17个空格 + result.append("\n "); + } else { + // 否则用逗号分隔 + result.append(","); + } + } + result.append(skuList.get(i)); + } + + return result.toString(); + } + private void extractedInvoice(EcssDeclarationHeaderData data, ExcelTemplate template, EcssCoDelNotifyHeaderData notifyHeader) { List notifyDetailList = data.getNotifyPartDetailList(); diff --git a/src/main/resources/templates/declaration-all-showWeight-template-pdf.xlsx b/src/main/resources/templates/declaration-all-showWeight-template-pdf.xlsx index 95878735..38ab32f5 100644 Binary files a/src/main/resources/templates/declaration-all-showWeight-template-pdf.xlsx and b/src/main/resources/templates/declaration-all-showWeight-template-pdf.xlsx differ diff --git a/src/main/resources/templates/declaration-all-showWeight-template.xlsx b/src/main/resources/templates/declaration-all-showWeight-template.xlsx index 68b72be5..1fcebb33 100644 Binary files a/src/main/resources/templates/declaration-all-showWeight-template.xlsx and b/src/main/resources/templates/declaration-all-showWeight-template.xlsx differ diff --git a/src/main/resources/templates/declaration-all-template-pdf.xlsx b/src/main/resources/templates/declaration-all-template-pdf.xlsx index 2dbe2959..6e150e24 100644 Binary files a/src/main/resources/templates/declaration-all-template-pdf.xlsx and b/src/main/resources/templates/declaration-all-template-pdf.xlsx differ diff --git a/src/main/resources/templates/declaration-all-template.xlsx b/src/main/resources/templates/declaration-all-template.xlsx index a4bb4827..f3c01e0d 100644 Binary files a/src/main/resources/templates/declaration-all-template.xlsx and b/src/main/resources/templates/declaration-all-template.xlsx differ diff --git a/src/main/resources/templates/declaration-packingList-template.xlsx b/src/main/resources/templates/declaration-packingList-template.xlsx index d66a89b0..cbfd0a4c 100644 Binary files a/src/main/resources/templates/declaration-packingList-template.xlsx and b/src/main/resources/templates/declaration-packingList-template.xlsx differ diff --git a/src/main/resources/templates/declaration-packingList2-template.xlsx b/src/main/resources/templates/declaration-packingList2-template.xlsx index ce9031f0..e12b6934 100644 Binary files a/src/main/resources/templates/declaration-packingList2-template.xlsx and b/src/main/resources/templates/declaration-packingList2-template.xlsx differ