From 09e16c020a22c970dc9d91f99355d15a07ea52cc Mon Sep 17 00:00:00 2001 From: honghy <704887482@qq.com> Date: Mon, 9 Dec 2024 14:29:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A9=BA=E8=BF=90=E5=B7=B2=E8=A3=85=E5=8D=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=95=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShipmentAirLoadExcelExportListener.java | 122 +++++++++++++----- .../ShipmentLoadExcelExportListener2.java | 2 +- .../utils/CustomAirLoadMergeStrategyNew.java | 28 +++- 3 files changed, 116 insertions(+), 36 deletions(-) diff --git a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentAirLoadExcelExportListener.java b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentAirLoadExcelExportListener.java index 039ef8c33..e81372085 100644 --- a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentAirLoadExcelExportListener.java +++ b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentAirLoadExcelExportListener.java @@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.ecw.service.cabinet.CabinetService; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.infra.service.file.FileService; import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO; +import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO; import cn.iocoder.yudao.module.order.dto.OrderBackInfoDto; import cn.iocoder.yudao.module.order.service.order.*; import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService; @@ -32,6 +33,7 @@ import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxMergePkgDO; import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxPkgOrderDO; import cn.iocoder.yudao.module.shipment.dto.AirLoadDto; import cn.iocoder.yudao.module.shipment.dto.PreloadDto; +import cn.iocoder.yudao.module.shipment.enums.CustomsTypeEnum; import cn.iocoder.yudao.module.shipment.service.box.BoxService; import cn.iocoder.yudao.module.shipment.service.boxApproval.BoxApprovalService; import cn.iocoder.yudao.module.shipment.service.boxMergePkg.BoxMergePkgService; @@ -50,6 +52,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.IndexedColors; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -222,6 +225,7 @@ public class ShipmentAirLoadExcelExportListener { int totalNum = 0; BigDecimal totalVolume = new BigDecimal(0); BigDecimal totalWeight = new BigDecimal(0); + BigDecimal totalWorth = new BigDecimal(0); Map<String,Integer> numMap = new HashMap(); List<AirLoadDto> preloadDtoList = new ArrayList<>(); @@ -230,8 +234,10 @@ public class ShipmentAirLoadExcelExportListener { List<Integer> mergeCountList = new ArrayList(); List<Integer> colorRowList = new ArrayList<>(); + List<Integer> colorRowList2 = new ArrayList<>(); AtomicInteger colorRowNum = new AtomicInteger(5); Map<String,Integer> colorMap = new HashMap<>(); + Map<String,Integer> colorMap2 = new HashMap<>(); Map<String,Integer> mergePkgCountMap = new LinkedHashMap<>(); int colorIndex = 0; //以订å•ID分组 @@ -240,7 +246,11 @@ public class ShipmentAirLoadExcelExportListener { StringUtils.isNotBlank(item.getWarehouseInInfo())) .collect(Collectors.groupingBy(BoxPreloadGoodsBackVO::getOrderId, LinkedHashMap::new,Collectors.toList())); + List<ProductAttrDO> productAttrDOList = productAttrService.getProductAttrList(); + Map<String, String> idNameMap = productAttrDOList.stream() + .collect(Collectors.toMap(attr -> String.valueOf(attr.getId()), ProductAttrDO::getAttrName)); for (Map.Entry<Long, List<BoxPreloadGoodsBackVO>> entry : orderMap.entrySet()) { + boolean prodAttrTag = false; Long orderId = entry.getKey(); Long pkgId = entry.getValue().get(0).getPkgId(); OrderBackInfoDto orderInfo = orderQueryService.info(orderId); @@ -249,6 +259,59 @@ public class ShipmentAirLoadExcelExportListener { orderWarehouseInService.getOrderWarehouseInListOrderByInTime(orderId); for (OrderWarehouseInBackItemVO item : orderWarehouseInBackItemVOS) { + List<BoxPreloadGoodsBackVO> boxPreload = entry.getValue(); + List<OrderItemDO> orderItems = boxPreload.stream().map(a -> orderItemService.getOrderItem(a.getOrderItemId())).collect(Collectors.toList()); + for (OrderItemDO orderItem : orderItems) { + String attrNames = getAttrNameByIds(orderItem.getProdAttrIds(), idNameMap); + if (attrNames.contains("å±é™©å“")){ + prodAttrTag = true; + } + } + AirLoadDto preloadDto = new AirLoadDto(); + + preloadDto.setProdAttr(getAttrNameByIds(item.getProdAttrIds(),idNameMap)); + // 当订å•çš„报关方å¼=æ··åˆæŠ¥å…³ï¼Œè®¢å•çš„底色为è“色,#0000FF + // 当订å•çš„报关方å¼=自å•ä»£æŠ¥ï¼Œè®¢å•çš„底色为橙色, #FF7F00 + // 当订å•çš„商å“包å«äº†ç‰¹æ€§=å±é™©å“DG,订å•çš„底色为黄色, #FFFF00 + // 当订å•çš„商å“包å«äº†ç‰¹æ€§=å±é™©å“DG&订å•çš„报关方å¼=自å•ä»£æŠ¥/æ··åˆæŠ¥å…³ï¼Œåº•è‰²ä¸ºç»¿è‰²ï¼Œ#00FF00 + if(orderInfo.getCustomsType()!=null){ + preloadDto.setCustomsType(DictFrameworkUtils.getDictDataFromCache("customs_type",orderInfo.getCustomsType()+"").getLabel()); + if (CustomsTypeEnum.CUSTOMS_TYPE_3.getValue().equals(orderInfo.getCustomsType())){ + Integer color = Integer.valueOf(IndexedColors.ROYAL_BLUE.index); + if (prodAttrTag){ + color=Integer.valueOf(IndexedColors.ROYAL_BLUE.index); + } + int andIncrement2 = colorRowNum.get(); + colorMap2.put(String.valueOf(andIncrement2),Integer.valueOf(color)); + colorMap.put(String.valueOf(andIncrement2),Integer.valueOf(color)); + colorRowList.add(andIncrement2); + colorRowList2.add(andIncrement2); + }else if (CustomsTypeEnum.CUSTOMS_TYPE_2.getValue().equals(orderInfo.getCustomsType())){ + Integer color = Integer.valueOf(IndexedColors.ORANGE.index); + if (prodAttrTag){ + color=Integer.valueOf(IndexedColors.GREEN.index); + } + int andIncrement2 = colorRowNum.get(); + colorMap2.put(String.valueOf(andIncrement2),Integer.valueOf(color)); + colorMap.put(String.valueOf(andIncrement2),Integer.valueOf(color)); + colorRowList.add(andIncrement2); + colorRowList2.add(andIncrement2); + }else { + if (prodAttrTag){ + int andIncrement2 = colorRowNum.get(); + colorMap2.put(String.valueOf(andIncrement2),Integer.valueOf(IndexedColors.YELLOW.index)); + colorMap.put(String.valueOf(andIncrement2),Integer.valueOf(IndexedColors.YELLOW.index)); + colorRowList.add(andIncrement2); + colorRowList2.add(andIncrement2); + }else if (prodAttrTag){ + int andIncrement2 = colorRowNum.get(); + colorMap2.put(String.valueOf(andIncrement2),Integer.valueOf(IndexedColors.YELLOW.index)); + colorMap.put(String.valueOf(andIncrement2),Integer.valueOf(IndexedColors.YELLOW.index)); + colorRowList.add(andIncrement2); + colorRowList2.add(andIncrement2); + } + } + } int andIncrement = colorRowNum.getAndIncrement(); if (StringUtils.isNotBlank(item.getOrderWarehouseInDetails())) { JSONArray jsonArray = JSONArray.parseArray(item.getOrderWarehouseInDetails()); @@ -258,7 +321,6 @@ public class ShipmentAirLoadExcelExportListener { } } int mergeCount = 1; - AirLoadDto preloadDto = new AirLoadDto(); if (numMap.get(orderInfo.getOrderNo()) != null) { preloadDto.setId(String.valueOf(numMap.get(orderInfo.getOrderNo()))); } else { @@ -276,15 +338,10 @@ public class ShipmentAirLoadExcelExportListener { if(productBrank !=null && productBrank.getFiling()!=null){ preloadDto.setProductRecord(productBrank.getFiling().equals("0")? "N":"Y"); } - List<ProductAttrDO> productAttrDOList = productAttrService.getProductAttrList(); - Map<String, String> idNameMap = productAttrDOList.stream() - .collect(Collectors.toMap(attr -> String.valueOf(attr.getId()), ProductAttrDO::getAttrName)); - preloadDto.setProdAttr(getAttrNameByIds(item.getProdAttrIds(),idNameMap)); - if(orderInfo.getCustomsType()!=null){ - preloadDto.setCustomsType(DictFrameworkUtils.getDictDataFromCache("customs_type",orderInfo.getCustomsType()+"").getLabel()); - } + + preloadDto.setSumNum(item.getCartonsNum()); - preloadDto.setPackageType(DictFrameworkUtils.getDictDataFromCache("packaging_type",item.getUnit()).getLabel()); + preloadDto.setPackageType(DictFrameworkUtils.getDictDataFromCache("packaging_type",item.getUnit()).getLabel()+"/"+DictFrameworkUtils.getDictDataFromCache("packaging_type", item.getUnit()).getLabelEn()); preloadDto.setBoxGauge(item.getBoxGauge()); preloadDto.setSumVolume(item.getVolume()); preloadDto.setSumWeight(item.getWeight()); @@ -327,8 +384,9 @@ public class ShipmentAirLoadExcelExportListener { preloadDto.setMaterial(DictFrameworkUtils.getDictDataFromCache("product_material",item.getMaterial()+"").getLabel()); } preloadDto.setUsageIds(getUsageMsg(item.getUsageIds())); - BigDecimal totalWorth = orderInfo.getOrderItemVOList().stream().map(OrderItemBackVO::getWorth).reduce(BigDecimal.ZERO, BigDecimal::add); - preloadDto.setWorth(totalWorth); + BigDecimal totalWorth2 = orderInfo.getOrderItemVOList().stream().map(OrderItemBackVO::getWorth).reduce(BigDecimal.ZERO, BigDecimal::add); + totalWorth = totalWorth.add(totalWorth2); + preloadDto.setWorth(totalWorth2); preloadDto.setTotalVolume(orderDO.getSumVolumeFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumVolume():orderDO.getSumVolumeFinishedWarehouseIn()); preloadDto.setTotalWeight(orderDO.getSumWeightFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumWeight():orderDO.getSumWeightFinishedWarehouseIn()); preloadDtoList.add(preloadDto); @@ -434,7 +492,13 @@ public class ShipmentAirLoadExcelExportListener { preloadDto.setMergePkgVolume(totalMergeVolume); preloadDto.setMergePkgWeight(totalMergeWeight); preloadDto.setMergePkgQua(totalMergeQuality); + preloadDto.setWorth(totalWorth); preloadDtoList.add(preloadDto); + int andIncrement = colorRowNum.getAndIncrement(); + colorMap2.put(String.valueOf(andIncrement),Integer.valueOf(IndexedColors.YELLOW.index)); + colorMap.put(String.valueOf(andIncrement),Integer.valueOf(IndexedColors.YELLOW.index)); + colorRowList.add(andIncrement); + colorRowList2.add(andIncrement); allTotalNum = allTotalNum + totalNum; allTotalVolume = allTotalVolume.add(totalVolume); allTotalWeight = allTotalWeight.add(totalWeight); @@ -449,33 +513,33 @@ public class ShipmentAirLoadExcelExportListener { // } List<Integer> mergePkgCountList = mergePkgCountMap.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList()); WriteTable writeTable = EasyExcel.writerTable(i) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,0,1)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,1,1)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,2,1)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,0,1,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,1,1,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,2,1,colorMap2)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,3, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,4, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,5, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,6, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,7, colorMap)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,8,1)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,9,2)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,10,2)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,11,2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,8,1,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,9,2,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,10,2,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,11,2,colorMap2)) // .registerWriteHandler(new CustomCellWriteHandler(colorRowList,11, colorMap)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,12,2)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,13,2)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,14,3)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,15,3)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,16,3)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,17,3)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,18,3)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,19,3)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,12,2,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,13,2,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,14,3,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,15,3,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,16,3,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,17,3,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,18,3,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,19,3,colorMap2)) // .registerWriteHandler(new CustomMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,20,1)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,20, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,21, colorMap)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,22,1)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,23,1)) - .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,24,1)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,22,1,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,23,1,colorMap2)) + .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,24,1,colorMap2)) .automaticMergeHead(true).head(headList).needHead(true).build(); excelWriter.write(preloadDtoList,sheet,writeTable); } diff --git a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentLoadExcelExportListener2.java b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentLoadExcelExportListener2.java index 23d56a594..e720e4f93 100644 --- a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentLoadExcelExportListener2.java +++ b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/listener/ShipmentLoadExcelExportListener2.java @@ -250,7 +250,7 @@ public class ShipmentLoadExcelExportListener2 { if(orderInfo.getCustomsType()!=null){ preloadDto.setCustomsType(DictFrameworkUtils.getDictDataFromCache("customs_type",orderInfo.getCustomsType()+"").getLabel()); if (CustomsTypeEnum.CUSTOMS_TYPE_3.getValue().equals(orderInfo.getCustomsType())){ - Integer color = Integer.valueOf(IndexedColors.BLUE1.index); + Integer color = Integer.valueOf(IndexedColors.ROYAL_BLUE.index); if (prodAttrTag){ color=Integer.valueOf(IndexedColors.ROYAL_BLUE.index); } diff --git a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/utils/CustomAirLoadMergeStrategyNew.java b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/utils/CustomAirLoadMergeStrategyNew.java index 28f4c46ce..4914d7059 100644 --- a/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/utils/CustomAirLoadMergeStrategyNew.java +++ b/yudao-module-shipment/yudao-module-shipment-core/src/main/java/cn/iocoder/yudao/module/shipment/utils/CustomAirLoadMergeStrategyNew.java @@ -1,11 +1,12 @@ package cn.iocoder.yudao.module.shipment.utils; import cn.iocoder.yudao.module.shipment.dto.AirLoadDto; -import cn.iocoder.yudao.module.shipment.dto.PreloadDto; +import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.write.merge.AbstractMergeStrategy; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Sheet; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.springframework.util.CollectionUtils; @@ -34,8 +35,6 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy { private List<Integer> mergePkgCountList; - - private int mergeType; /** @@ -46,14 +45,31 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy { // 需è¦å¼€å§‹åˆå¹¶å•å…ƒæ ¼çš„首行index private Integer rowIndex; + private Map<String,Integer> colorMap; + // exportDataList为待åˆå¹¶ç›®æ ‡åˆ—的值 partMerge为å¦å¤–一ç§åˆå¹¶æ–¹å¼è®¡ç®—好的åˆå¹¶è¡Œæ•°ï¼ŒmergeType åˆå¹¶ç±»åž‹ 1为订å•ç»´åº¦åˆå¹¶ 2为入仓记录维度的åˆå¹¶ - public CustomAirLoadMergeStrategyNew(List<AirLoadDto> exportDataList, List<Integer> partMergeList, List<Integer> colorRowList,List<Integer> mergePkgCountList, Integer targetColumnIndex, int mergeType) { + public CustomAirLoadMergeStrategyNew(List<AirLoadDto> exportDataList, List<Integer> partMergeList, List<Integer> colorRowList,List<Integer> mergePkgCountList, Integer targetColumnIndex, int mergeType, Map<String,Integer> colorMap) { this.exportFieldGroupCountList = getGroupCountList(exportDataList,targetColumnIndex); this.partMergeList = partMergeList; this.mergeType = mergeType; this.targetColumnIndex = targetColumnIndex; this.colorRowList = colorRowList; this.mergePkgCountList = mergePkgCountList; + this.colorMap = colorMap; + } + + @Override + public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { + Workbook workbook = writeSheetHolder.getSheet().getWorkbook(); + if (colorRowList.contains(cell.getRowIndex()) && cell.getColumnIndex() == targetColumnIndex) { + CellStyle cellStyle = workbook.createCellStyle(); + cellStyle.setFillForegroundColor(IndexedColors.fromInt(colorMap.get(String.valueOf(cell.getRowIndex()))).index); + cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + cell.setCellStyle(cellStyle); + } + if (!isHead) { + this.merge(writeSheetHolder.getSheet(), cell, head, relativeRowIndex); + } } -- 2.22.0