feat(wms): 新增钢卷物料导出功能
- 新增导出专用VO类WmsMaterialCoilExportVo,包含完整的钢卷字段信息 - 在IWmsMaterialCoilService接口中添加queryExportList方法定义 - 在WmsMaterialCoilServiceImpl实现类中实现导出数据查询逻辑 - 扩展WmsMaterialCoilMapper接口和XML文件,新增selectExportList查询 - 优化导出查询条件构建逻辑,支持多itemId筛选 - 更新导出接口文档注释,明确标识为完整字段版本 - 在控制器中切换导出接口使用新的导出VO类进行数据封装
This commit is contained in:
@@ -1586,5 +1586,71 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
List<Map<String, Object>> mapList = baseMapper.getDistributionByActualItemType(itemType, itemId);
|
||||
return convertMapListToVoListActual(mapList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询钢卷导出数据列表
|
||||
*/
|
||||
@Override
|
||||
public List<com.klp.domain.vo.WmsMaterialCoilExportVo> queryExportList(WmsMaterialCoilBo bo) {
|
||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectExportList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件
|
||||
*/
|
||||
private QueryWrapper<WmsMaterialCoil> buildQueryWrapper(WmsMaterialCoilBo bo) {
|
||||
QueryWrapper<WmsMaterialCoil> lqw = Wrappers.query();
|
||||
|
||||
// 基础字段筛选
|
||||
lqw.eq(bo.getCoilId() != null, "mc.coil_id", bo.getCoilId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEnterCoilNo()), "mc.enter_coil_no", bo.getEnterCoilNo());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getCurrentCoilNo()), "mc.current_coil_no", bo.getCurrentCoilNo());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo());
|
||||
lqw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType());
|
||||
lqw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId());
|
||||
lqw.eq(bo.getActualWarehouseId() != null, "mc.actual_warehouse_id", bo.getActualWarehouseId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType());
|
||||
lqw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit());
|
||||
// 修改itemId筛选逻辑,支持逗号分隔的多个ID查询
|
||||
if (StringUtils.isNotBlank(bo.getItemIds())) {
|
||||
String[] itemIdArray = bo.getItemIds().split(",");
|
||||
List<Long> itemIdList = new ArrayList<>();
|
||||
for (String itemIdStr : itemIdArray) {
|
||||
if (StringUtils.isNotBlank(itemIdStr)) {
|
||||
try {
|
||||
itemIdList.add(Long.parseLong(itemIdStr.trim()));
|
||||
} catch (NumberFormatException e) {
|
||||
// 忽略无效的ID格式
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!itemIdList.isEmpty()) {
|
||||
lqw.in("mc.item_id", itemIdList);
|
||||
}
|
||||
} else if (bo.getItemId() != null) {
|
||||
// 兼容原来的itemId单值查询
|
||||
lqw.eq("mc.item_id", bo.getItemId());
|
||||
}
|
||||
|
||||
lqw.eq(bo.getStatus() != null, "mc.status", bo.getStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMaterialType()), "mc.material_type", bo.getMaterialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getQualityStatus()), "mc.quality_status", bo.getQualityStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPackingStatus()), "mc.packing_status", bo.getPackingStatus());
|
||||
|
||||
// 把team字段作为筛选条件
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTeam()), "mc.team", bo.getTeam());
|
||||
|
||||
// 根据开始时间和结束时间筛选修改时间
|
||||
lqw.ge(bo.getStartTime() != null, "mc.update_time", bo.getStartTime());
|
||||
lqw.le(bo.getEndTime() != null, "mc.update_time", bo.getEndTime());
|
||||
|
||||
// 逻辑删除
|
||||
lqw.eq("mc.del_flag", 0);
|
||||
|
||||
// 根据创建时间倒序
|
||||
lqw.orderByDesc("mc.create_time");
|
||||
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user