feat(wms): 消耗报表拿到完成时间

- 在WmsMaterialCoilBo中新增actionIds字段用于存储操作记录ID列表
- 在WmsMaterialCoilVo中新增actionCompleteTime字段用于显示操作完成时间
- 修改listByPost接口支持通过actionIds查询钢卷数据并关联完成时间
- 添加对wms_coil_pending_action表的查询逻辑以获取钢卷ID和完成时间映射
- 实现actionIds解析、过滤和转换为Long类型的处理逻辑
- 添加coilPendingActionService和coilPendingActionMapper依赖注入
This commit is contained in:
2026-03-19 10:54:21 +08:00
parent fbe2340423
commit fe164edae1
3 changed files with 58 additions and 0 deletions

View File

@@ -5,11 +5,16 @@ import java.util.List;
import java.util.Map;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.HashMap;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.klp.domain.vo.*;
import com.klp.domain.WmsCoilPendingAction;
import com.klp.mapper.WmsCoilPendingActionMapper;
import com.klp.service.IWmsCoilPendingActionService;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
@@ -43,6 +48,8 @@ import com.klp.common.core.page.TableDataInfo;
public class WmsMaterialCoilController extends BaseController {
private final IWmsMaterialCoilService iWmsMaterialCoilService;
private final IWmsCoilPendingActionService coilPendingActionService;
private final WmsCoilPendingActionMapper coilPendingActionMapper;
/**
* 查询钢卷物料表列表
@@ -101,9 +108,49 @@ public class WmsMaterialCoilController extends BaseController {
* 查询钢卷物料表列表POST请求支持大量coilIds查询
* 功能与GET /list相同但使用POST请求体传递参数避免URL长度限制
* 特别适合需要查询大量coilIds的场景
* 如果coilIds为空且actionIds不为空则根据actionIds查询wms_coil_pending_action表获取coilIds和完成时间
*/
@PostMapping("/listByPost")
public TableDataInfo<WmsMaterialCoilVo> listByPost(@RequestBody WmsMaterialCoilBo bo, PageQuery pageQuery) {
if ((bo.getCoilIds() == null || bo.getCoilIds().isEmpty())
&& bo.getActionIds() != null && !bo.getActionIds().isEmpty()) {
String[] actionIdArr = bo.getActionIds().split(",");
java.util.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);
java.util.List<com.klp.domain.WmsCoilPendingAction> actions =
coilPendingActionMapper.selectList(queryWrapper);
if (actions != null && !actions.isEmpty()) {
Map<Long, java.util.Date> coilIdCompleteTimeMap = new HashMap<>();
List<Long> coilIdsList = actions.stream()
.map(com.klp.domain.WmsCoilPendingAction::getCoilId)
.collect(Collectors.toList());
for (com.klp.domain.WmsCoilPendingAction action : actions) {
coilIdCompleteTimeMap.put(action.getCoilId(), action.getCompleteTime());
}
bo.setCoilIds(coilIdsList.stream()
.map(String::valueOf)
.collect(Collectors.joining(",")));
TableDataInfo<WmsMaterialCoilVo> result = iWmsMaterialCoilService.queryPageList(bo, pageQuery);
for (WmsMaterialCoilVo vo : result.getRows()) {
if (coilIdCompleteTimeMap.containsKey(vo.getCoilId())) {
vo.setActionCompleteTime(coilIdCompleteTimeMap.get(vo.getCoilId()));
}
}
return result;
}
}
return iWmsMaterialCoilService.queryPageList(bo, pageQuery);
}

View File

@@ -309,5 +309,10 @@ public class WmsMaterialCoilBo extends BaseEntity {
* 预留宽度(单位:毫米)
*/
private BigDecimal reservedWidth;
/**
* 操作记录ID列表逗号分隔用于根据actionIds查询钢卷
*/
private String actionIds;
}

View File

@@ -468,5 +468,11 @@ public class WmsMaterialCoilVo extends BaseEntity {
* 预留宽度(单位:毫米)
*/
private BigDecimal reservedWidth;
/**
* 操作完成时间从wms_coil_pending_action表查询到的完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date actionCompleteTime;
}