feat(material): 优化钢卷物料导出功能
- 添加Excel字典格式注解支持数据类型转换 - 新增钢卷ID字段用于数据关联 - 增加操作完成时间字段显示 - 实现根据操作ID查询钢卷待办动作完成时间 - 添加钢卷ID到数据库查询映射 - 重构导出查询逻辑支持操作完成时间获取
This commit is contained in:
@@ -2421,10 +2421,42 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
public List<WmsMaterialCoilExportVo> queryExportList(WmsMaterialCoilBo bo) {
|
||||
Map<Long, Date> coilIdCompleteTimeMap = new HashMap<>();
|
||||
|
||||
if ((bo.getCoilIds() == null || bo.getCoilIds().isEmpty())
|
||||
&& bo.getActionIds() != null && !bo.getActionIds().isEmpty()) {
|
||||
String[] actionIdArr = bo.getActionIds().split(",");
|
||||
List<Long> actionIdList = Arrays.stream(actionIdArr)
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isEmpty())
|
||||
.map(Long::parseLong)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<WmsCoilPendingAction> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(WmsCoilPendingAction::getActionId, actionIdList);
|
||||
|
||||
List<WmsCoilPendingAction> actions = coilPendingActionMapper.selectList(queryWrapper);
|
||||
|
||||
if (actions != null && !actions.isEmpty()) {
|
||||
for (WmsCoilPendingAction action : actions) {
|
||||
coilIdCompleteTimeMap.put(action.getCoilId(), action.getCompleteTime());
|
||||
}
|
||||
|
||||
bo.setCoilIds(actions.stream()
|
||||
.map(a -> String.valueOf(a.getCoilId()))
|
||||
.collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
|
||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
|
||||
List<WmsMaterialCoilExportVo> wmsMaterialCoilExportVos = baseMapper.selectExportList(lqw);
|
||||
// 遍历数据,根据状态替换日期字段,并处理空值兜底
|
||||
wmsMaterialCoilExportVos.stream().forEach(vo -> {
|
||||
// 设置action完成时间
|
||||
if (coilIdCompleteTimeMap.containsKey(vo.getCoilId())) {
|
||||
vo.setActionCompleteTime(coilIdCompleteTimeMap.get(vo.getCoilId()));
|
||||
}
|
||||
|
||||
// 判断查询条件中的status是否为1(已发货)
|
||||
if (bo.getStatus() != null && bo.getStatus() == 1) {
|
||||
Date finalDate = null;
|
||||
|
||||
Reference in New Issue
Block a user