Browse Source
# Conflicts: # epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.javamaster
46 changed files with 473 additions and 64 deletions
@ -0,0 +1,96 @@ |
|||
package com.epmet.commons.tools.utils.poi.excel.handler; |
|||
|
|||
/** |
|||
* desc:设置columnWith宽度 |
|||
* |
|||
* @author: LiuJanJun |
|||
* @date: 2022/4/28 5:05 下午 |
|||
* @version: 1.0 |
|||
*/ |
|||
|
|||
import com.alibaba.excel.enums.CellDataTypeEnum; |
|||
import com.alibaba.excel.metadata.Head; |
|||
import com.alibaba.excel.metadata.data.WriteCellData; |
|||
import com.alibaba.excel.util.MapUtils; |
|||
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; |
|||
import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; |
|||
import org.apache.commons.collections4.CollectionUtils; |
|||
import org.apache.poi.ss.usermodel.Cell; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* Take the width of the longest column as the width. |
|||
* <p> |
|||
* This is not very useful at the moment, for example if you have Numbers it will cause a newline.And the length is not |
|||
* exactly the same as the actual length. |
|||
* |
|||
* @author Jiaju Zhuang |
|||
*/ |
|||
public class ColumnWidthStyleStrategy extends AbstractColumnWidthStyleStrategy { |
|||
|
|||
private static final int MAX_COLUMN_WIDTH = 255; |
|||
/** |
|||
* 是否 根据内容设置宽度 |
|||
*/ |
|||
private boolean isSetContentWidth = false; |
|||
|
|||
private final Map<Integer, Map<Integer, Integer>> cache = MapUtils.newHashMapWithExpectedSize(8); |
|||
|
|||
|
|||
|
|||
@Override |
|||
protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, |
|||
Head head, |
|||
Integer relativeRowIndex, Boolean isHead) { |
|||
boolean needSetWidth = (isHead || isSetContentWidth) && CollectionUtils.isNotEmpty(cellDataList); |
|||
if (!needSetWidth) { |
|||
return; |
|||
} |
|||
Map<Integer, Integer> maxColumnWidthMap = cache.computeIfAbsent(writeSheetHolder.getSheetNo(), k -> new HashMap<>(16)); |
|||
Integer columnWidth = dataLength(cellDataList, cell, isHead); |
|||
if (columnWidth < 0) { |
|||
return; |
|||
} |
|||
if (columnWidth > MAX_COLUMN_WIDTH) { |
|||
columnWidth = MAX_COLUMN_WIDTH; |
|||
} |
|||
Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex()); |
|||
if (maxColumnWidth == null || columnWidth > maxColumnWidth) { |
|||
maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth); |
|||
writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); |
|||
} |
|||
} |
|||
|
|||
private Integer dataLength(List<WriteCellData<?>> cellDataList, Cell cell, Boolean isHead) { |
|||
if (isHead) { |
|||
return cell.getStringCellValue().getBytes().length+3; |
|||
} |
|||
WriteCellData<?> cellData = cellDataList.get(0); |
|||
CellDataTypeEnum type = cellData.getType(); |
|||
if (type == null) { |
|||
return -1; |
|||
} |
|||
switch (type) { |
|||
case STRING: |
|||
return cellData.getStringValue().getBytes().length; |
|||
case BOOLEAN: |
|||
return cellData.getBooleanValue().toString().getBytes().length; |
|||
case NUMBER: |
|||
return cellData.getNumberValue().toString().getBytes().length; |
|||
default: |
|||
return -1; |
|||
} |
|||
} |
|||
|
|||
public ColumnWidthStyleStrategy() { |
|||
|
|||
} |
|||
|
|||
public ColumnWidthStyleStrategy(boolean isSetContentWidth) { |
|||
this.isSetContentWidth = isSetContentWidth; |
|||
} |
|||
} |
@ -0,0 +1,32 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* @Author zxc |
|||
* @DateTime 2022/5/5 17:40 |
|||
* @DESC |
|||
*/ |
|||
@Data |
|||
public class UpdateSortFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 2348273552712227952L; |
|||
public interface UpdateSortForm{} |
|||
|
|||
@NotBlank(message = "id不能为空",groups = UpdateSortForm.class) |
|||
private String id; |
|||
|
|||
@NotNull(message = "sort不能为空",groups = UpdateSortForm.class) |
|||
private BigDecimal sort; |
|||
|
|||
/** |
|||
* house:房屋,building:楼栋 |
|||
*/ |
|||
@NotBlank(message = "type不能为空",groups = UpdateSortForm.class) |
|||
private String type; |
|||
} |
@ -0,0 +1,3 @@ |
|||
ALTER TABLE ic_building DROP SORT; |
|||
alter table ic_building add COLUMN SORT DECIMAL(6,2) comment '排序' DEFAULT 0.00 AFTER BUILDING_LEADER_NAME; |
|||
alter table ic_house add COLUMN SORT DECIMAL(6,2) comment '排序' DEFAULT 0.00 AFTER OWNER_ID_CARD; |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue