物料管理导出优化

This commit is contained in:
chuzhichao 2023-05-05 09:40:21 +08:00
parent 2ca013d71a
commit 4a646654cd
4 changed files with 58 additions and 7 deletions

View file

@ -9,6 +9,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@ -821,6 +823,9 @@ public class ExcelUtil<T>
String dictType = attr.dictType();
if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value))
{
if (value instanceof LocalDateTime){
value = Date.from(((LocalDateTime) value).atZone(ZoneId.systemDefault()).toInstant());
}
cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value));
}
else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value))

View file

@ -78,4 +78,10 @@ public class Item extends BaseAudit {
@TableField(exist = false)
private String itemTypeName;
@TableField(exist = false)
private String warehouseName;
@TableField(exist = false)
private String areaName;
}

View file

@ -25,7 +25,6 @@ public class ItemVO extends BaseAudit {
@Excel(name = "名称")
private String itemName;
/** 分类 */
@Excel(name = "分类")
private String itemType;
/**
* 所属类别
@ -36,13 +35,16 @@ public class ItemVO extends BaseAudit {
@Excel(name = "单位类别")
private String unit;
/** 所属货架 */
@Excel(name = "所属货架")
private Long rackId;
/** 所属库区 */
@Excel(name = "所属库区")
private Long areaId;
/** 所属仓库 */
/** 所属仓库名称 */
@Excel(name = "所属仓库")
private String warehouseName;
/** 所属库区名称 */
@Excel(name = "所属库区")
private String areaName;
/** 所属仓库 */
private Long warehouseId;
/** 安全库存 */
@Excel(name = "安全库存")

View file

@ -4,9 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.wms.convert.ItemConvert;
import com.cyl.wms.domain.Item;
import com.cyl.wms.domain.ItemType;
import com.cyl.wms.domain.Rack;
import com.cyl.wms.domain.*;
import com.cyl.wms.mapper.ItemMapper;
import com.cyl.wms.pojo.query.ItemQuery;
import com.cyl.wms.pojo.vo.ItemVO;
@ -37,6 +35,10 @@ public class ItemService {
@Autowired
private ItemTypeService itemTypeService;
@Autowired
private WarehouseService warehouseService;
@Autowired
private AreaService areaService;
public List<ItemVO> toVos(List<Item> items) {
List<ItemVO> list = convert.dos2vos(items);
@ -210,6 +212,8 @@ public class ItemService {
private List<Item> getItemList(QueryWrapper<Item> qw) {
List<Item> items = itemMapper.selectList(qw);
injectTypeName(items);
injectWarehouseName(items);
injectAreaName(items);
return items;
}
@ -231,6 +235,40 @@ public class ItemService {
});
}
/**
* 注入仓库名称
* @param res 物料
*/
public void injectWarehouseName(List<Item> res){
if (CollUtil.isEmpty(res)){
return;
}
Set<Long> warehouses = res.stream().map(Item::getWarehouseId).collect(Collectors.toSet());
Map<Long, Warehouse> warehouseMap = warehouseService.selectByIdIn(warehouses).stream().collect(Collectors.toMap(Warehouse::getId, it -> it));
res.forEach(it -> {
if (it.getWarehouseId() != null && warehouseMap.containsKey(it.getWarehouseId())){
it.setWarehouseName(warehouseMap.get(it.getWarehouseId()).getWarehouseName());
}
});
}
/**
* 注入库区名称
* @param res 物料
*/
public void injectAreaName(List<Item> res){
if (CollUtil.isEmpty(res)){
return;
}
Set<Long> areas = res.stream().map(Item::getAreaId).collect(Collectors.toSet());
Map<Long, Area> areaMap = areaService.selectByIdIn(areas).stream().collect(Collectors.toMap(Area::getId, it -> it));
res.forEach(it -> {
if (it.getAreaId() != null && areaMap.containsKey(it.getAreaId())){
it.setAreaName(areaMap.get(it.getAreaId()).getAreaName());
}
});
}
/**
* 查询过期物料
* @param page 分页条件