feat(wms): 消耗报表拿到完成时间
- 在WmsMaterialCoilBo中新增actionIds字段用于存储操作记录ID列表 - 在WmsMaterialCoilVo中新增actionCompleteTime字段用于显示操作完成时间 - 修改listByPost接口支持通过actionIds查询钢卷数据并关联完成时间 - 添加对wms_coil_pending_action表的查询逻辑以获取钢卷ID和完成时间映射 - 实现actionIds解析、过滤和转换为Long类型的处理逻辑 - 添加coilPendingActionService和coilPendingActionMapper依赖注入
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -309,5 +309,10 @@ public class WmsMaterialCoilBo extends BaseEntity {
|
||||
* 预留宽度(单位:毫米)
|
||||
*/
|
||||
private BigDecimal reservedWidth;
|
||||
|
||||
/**
|
||||
* 操作记录ID列表(逗号分隔,用于根据actionIds查询钢卷)
|
||||
*/
|
||||
private String actionIds;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user