Commit 09e16c02 authored by honghy's avatar honghy

空运已装单添加底色

parent c0e65d3b
...@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.ecw.service.cabinet.CabinetService; ...@@ -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.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.infra.service.file.FileService; 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.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.dto.OrderBackInfoDto;
import cn.iocoder.yudao.module.order.service.order.*; import cn.iocoder.yudao.module.order.service.order.*;
import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService; import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService;
...@@ -32,6 +33,7 @@ import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxMergePkgDO; ...@@ -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.dal.dataobject.BoxPkgOrderDO;
import cn.iocoder.yudao.module.shipment.dto.AirLoadDto; import cn.iocoder.yudao.module.shipment.dto.AirLoadDto;
import cn.iocoder.yudao.module.shipment.dto.PreloadDto; 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.box.BoxService;
import cn.iocoder.yudao.module.shipment.service.boxApproval.BoxApprovalService; import cn.iocoder.yudao.module.shipment.service.boxApproval.BoxApprovalService;
import cn.iocoder.yudao.module.shipment.service.boxMergePkg.BoxMergePkgService; import cn.iocoder.yudao.module.shipment.service.boxMergePkg.BoxMergePkgService;
...@@ -50,6 +52,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -50,6 +52,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -222,6 +225,7 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -222,6 +225,7 @@ public class ShipmentAirLoadExcelExportListener {
int totalNum = 0; int totalNum = 0;
BigDecimal totalVolume = new BigDecimal(0); BigDecimal totalVolume = new BigDecimal(0);
BigDecimal totalWeight = new BigDecimal(0); BigDecimal totalWeight = new BigDecimal(0);
BigDecimal totalWorth = new BigDecimal(0);
Map<String,Integer> numMap = new HashMap(); Map<String,Integer> numMap = new HashMap();
List<AirLoadDto> preloadDtoList = new ArrayList<>(); List<AirLoadDto> preloadDtoList = new ArrayList<>();
...@@ -230,8 +234,10 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -230,8 +234,10 @@ public class ShipmentAirLoadExcelExportListener {
List<Integer> mergeCountList = new ArrayList(); List<Integer> mergeCountList = new ArrayList();
List<Integer> colorRowList = new ArrayList<>(); List<Integer> colorRowList = new ArrayList<>();
List<Integer> colorRowList2 = new ArrayList<>();
AtomicInteger colorRowNum = new AtomicInteger(5); AtomicInteger colorRowNum = new AtomicInteger(5);
Map<String,Integer> colorMap = new HashMap<>(); Map<String,Integer> colorMap = new HashMap<>();
Map<String,Integer> colorMap2 = new HashMap<>();
Map<String,Integer> mergePkgCountMap = new LinkedHashMap<>(); Map<String,Integer> mergePkgCountMap = new LinkedHashMap<>();
int colorIndex = 0; int colorIndex = 0;
//以订单ID分组 //以订单ID分组
...@@ -240,7 +246,11 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -240,7 +246,11 @@ public class ShipmentAirLoadExcelExportListener {
StringUtils.isNotBlank(item.getWarehouseInInfo())) StringUtils.isNotBlank(item.getWarehouseInInfo()))
.collect(Collectors.groupingBy(BoxPreloadGoodsBackVO::getOrderId, .collect(Collectors.groupingBy(BoxPreloadGoodsBackVO::getOrderId,
LinkedHashMap::new,Collectors.toList())); 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()) { for (Map.Entry<Long, List<BoxPreloadGoodsBackVO>> entry : orderMap.entrySet()) {
boolean prodAttrTag = false;
Long orderId = entry.getKey(); Long orderId = entry.getKey();
Long pkgId = entry.getValue().get(0).getPkgId(); Long pkgId = entry.getValue().get(0).getPkgId();
OrderBackInfoDto orderInfo = orderQueryService.info(orderId); OrderBackInfoDto orderInfo = orderQueryService.info(orderId);
...@@ -249,6 +259,59 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -249,6 +259,59 @@ public class ShipmentAirLoadExcelExportListener {
orderWarehouseInService.getOrderWarehouseInListOrderByInTime(orderId); orderWarehouseInService.getOrderWarehouseInListOrderByInTime(orderId);
for (OrderWarehouseInBackItemVO item : orderWarehouseInBackItemVOS) { 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(); int andIncrement = colorRowNum.getAndIncrement();
if (StringUtils.isNotBlank(item.getOrderWarehouseInDetails())) { if (StringUtils.isNotBlank(item.getOrderWarehouseInDetails())) {
JSONArray jsonArray = JSONArray.parseArray(item.getOrderWarehouseInDetails()); JSONArray jsonArray = JSONArray.parseArray(item.getOrderWarehouseInDetails());
...@@ -258,7 +321,6 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -258,7 +321,6 @@ public class ShipmentAirLoadExcelExportListener {
} }
} }
int mergeCount = 1; int mergeCount = 1;
AirLoadDto preloadDto = new AirLoadDto();
if (numMap.get(orderInfo.getOrderNo()) != null) { if (numMap.get(orderInfo.getOrderNo()) != null) {
preloadDto.setId(String.valueOf(numMap.get(orderInfo.getOrderNo()))); preloadDto.setId(String.valueOf(numMap.get(orderInfo.getOrderNo())));
} else { } else {
...@@ -276,15 +338,10 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -276,15 +338,10 @@ public class ShipmentAirLoadExcelExportListener {
if(productBrank !=null && productBrank.getFiling()!=null){ if(productBrank !=null && productBrank.getFiling()!=null){
preloadDto.setProductRecord(productBrank.getFiling().equals("0")? "N":"Y"); 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.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.setBoxGauge(item.getBoxGauge());
preloadDto.setSumVolume(item.getVolume()); preloadDto.setSumVolume(item.getVolume());
preloadDto.setSumWeight(item.getWeight()); preloadDto.setSumWeight(item.getWeight());
...@@ -327,8 +384,9 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -327,8 +384,9 @@ public class ShipmentAirLoadExcelExportListener {
preloadDto.setMaterial(DictFrameworkUtils.getDictDataFromCache("product_material",item.getMaterial()+"").getLabel()); preloadDto.setMaterial(DictFrameworkUtils.getDictDataFromCache("product_material",item.getMaterial()+"").getLabel());
} }
preloadDto.setUsageIds(getUsageMsg(item.getUsageIds())); preloadDto.setUsageIds(getUsageMsg(item.getUsageIds()));
BigDecimal totalWorth = orderInfo.getOrderItemVOList().stream().map(OrderItemBackVO::getWorth).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalWorth2 = orderInfo.getOrderItemVOList().stream().map(OrderItemBackVO::getWorth).reduce(BigDecimal.ZERO, BigDecimal::add);
preloadDto.setWorth(totalWorth); totalWorth = totalWorth.add(totalWorth2);
preloadDto.setWorth(totalWorth2);
preloadDto.setTotalVolume(orderDO.getSumVolumeFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumVolume():orderDO.getSumVolumeFinishedWarehouseIn()); preloadDto.setTotalVolume(orderDO.getSumVolumeFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumVolume():orderDO.getSumVolumeFinishedWarehouseIn());
preloadDto.setTotalWeight(orderDO.getSumWeightFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumWeight():orderDO.getSumWeightFinishedWarehouseIn()); preloadDto.setTotalWeight(orderDO.getSumWeightFinishedWarehouseIn().compareTo(BigDecimal.ZERO) == 0 ? orderInfo.getSumWeight():orderDO.getSumWeightFinishedWarehouseIn());
preloadDtoList.add(preloadDto); preloadDtoList.add(preloadDto);
...@@ -434,7 +492,13 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -434,7 +492,13 @@ public class ShipmentAirLoadExcelExportListener {
preloadDto.setMergePkgVolume(totalMergeVolume); preloadDto.setMergePkgVolume(totalMergeVolume);
preloadDto.setMergePkgWeight(totalMergeWeight); preloadDto.setMergePkgWeight(totalMergeWeight);
preloadDto.setMergePkgQua(totalMergeQuality); preloadDto.setMergePkgQua(totalMergeQuality);
preloadDto.setWorth(totalWorth);
preloadDtoList.add(preloadDto); 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; allTotalNum = allTotalNum + totalNum;
allTotalVolume = allTotalVolume.add(totalVolume); allTotalVolume = allTotalVolume.add(totalVolume);
allTotalWeight = allTotalWeight.add(totalWeight); allTotalWeight = allTotalWeight.add(totalWeight);
...@@ -449,33 +513,33 @@ public class ShipmentAirLoadExcelExportListener { ...@@ -449,33 +513,33 @@ public class ShipmentAirLoadExcelExportListener {
// } // }
List<Integer> mergePkgCountList = mergePkgCountMap.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList()); List<Integer> mergePkgCountList = mergePkgCountMap.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList());
WriteTable writeTable = EasyExcel.writerTable(i) WriteTable writeTable = EasyExcel.writerTable(i)
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,0,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,0,1,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,1,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,1,1,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,2,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,2,1,colorMap2))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,3, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,3, colorMap))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,4, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,4, colorMap))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,5, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,5, colorMap))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,6, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,6, colorMap))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,7, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,7, colorMap))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,8,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,8,1,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,9,2)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,9,2,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,10,2)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,10,2,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,11,2)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,11,2,colorMap2))
// .registerWriteHandler(new CustomCellWriteHandler(colorRowList,11, colorMap)) // .registerWriteHandler(new CustomCellWriteHandler(colorRowList,11, colorMap))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,12,2)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,12,2,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,13,2)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,13,2,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,14,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,14,3,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,15,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,15,3,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,16,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,16,3,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,17,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,17,3,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,18,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,18,3,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,mergePkgCountList,19,3)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,mergePkgCountList,19,3,colorMap2))
// .registerWriteHandler(new CustomMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,20,1)) // .registerWriteHandler(new CustomMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,20,1))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,20, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,20, colorMap))
.registerWriteHandler(new CustomCellWriteHandler(colorRowList,21, colorMap)) .registerWriteHandler(new CustomCellWriteHandler(colorRowList,21, colorMap))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,22,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,22,1,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,23,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,23,1,colorMap2))
.registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList,null,24,1)) .registerWriteHandler(new CustomAirLoadMergeStrategyNew(preloadDtoList,mergeCountList,colorRowList2,null,24,1,colorMap2))
.automaticMergeHead(true).head(headList).needHead(true).build(); .automaticMergeHead(true).head(headList).needHead(true).build();
excelWriter.write(preloadDtoList,sheet,writeTable); excelWriter.write(preloadDtoList,sheet,writeTable);
} }
......
...@@ -250,7 +250,7 @@ public class ShipmentLoadExcelExportListener2 { ...@@ -250,7 +250,7 @@ public class ShipmentLoadExcelExportListener2 {
if(orderInfo.getCustomsType()!=null){ if(orderInfo.getCustomsType()!=null){
preloadDto.setCustomsType(DictFrameworkUtils.getDictDataFromCache("customs_type",orderInfo.getCustomsType()+"").getLabel()); preloadDto.setCustomsType(DictFrameworkUtils.getDictDataFromCache("customs_type",orderInfo.getCustomsType()+"").getLabel());
if (CustomsTypeEnum.CUSTOMS_TYPE_3.getValue().equals(orderInfo.getCustomsType())){ 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){ if (prodAttrTag){
color=Integer.valueOf(IndexedColors.ROYAL_BLUE.index); color=Integer.valueOf(IndexedColors.ROYAL_BLUE.index);
} }
......
package cn.iocoder.yudao.module.shipment.utils; package cn.iocoder.yudao.module.shipment.utils;
import cn.iocoder.yudao.module.shipment.dto.AirLoadDto; 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.metadata.Head;
import com.alibaba.excel.write.merge.AbstractMergeStrategy; import com.alibaba.excel.write.merge.AbstractMergeStrategy;
import org.apache.poi.ss.usermodel.Cell; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import org.apache.poi.ss.usermodel.Sheet; import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -34,8 +35,6 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy { ...@@ -34,8 +35,6 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy {
private List<Integer> mergePkgCountList; private List<Integer> mergePkgCountList;
private int mergeType; private int mergeType;
/** /**
...@@ -46,14 +45,31 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy { ...@@ -46,14 +45,31 @@ public class CustomAirLoadMergeStrategyNew extends AbstractMergeStrategy {
// 需要开始合并单元格的首行index // 需要开始合并单元格的首行index
private Integer rowIndex; private Integer rowIndex;
private Map<String,Integer> colorMap;
// exportDataList为待合并目标列的值 partMerge为另外一种合并方式计算好的合并行数,mergeType 合并类型 1为订单维度合并 2为入仓记录维度的合并 // 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.exportFieldGroupCountList = getGroupCountList(exportDataList,targetColumnIndex);
this.partMergeList = partMergeList; this.partMergeList = partMergeList;
this.mergeType = mergeType; this.mergeType = mergeType;
this.targetColumnIndex = targetColumnIndex; this.targetColumnIndex = targetColumnIndex;
this.colorRowList = colorRowList; this.colorRowList = colorRowList;
this.mergePkgCountList = mergePkgCountList; 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);
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment