forked from rongchao/epmet-cloud-rizhao
Browse Source
# Conflicts: # epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.javadev
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