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.Map;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.EasyExcel;
|
||||||
import com.alibaba.excel.ExcelWriter;
|
import com.alibaba.excel.ExcelWriter;
|
||||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.klp.domain.vo.*;
|
import com.klp.domain.vo.*;
|
||||||
|
import com.klp.domain.WmsCoilPendingAction;
|
||||||
|
import com.klp.mapper.WmsCoilPendingActionMapper;
|
||||||
|
import com.klp.service.IWmsCoilPendingActionService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
@@ -43,6 +48,8 @@ import com.klp.common.core.page.TableDataInfo;
|
|||||||
public class WmsMaterialCoilController extends BaseController {
|
public class WmsMaterialCoilController extends BaseController {
|
||||||
|
|
||||||
private final IWmsMaterialCoilService iWmsMaterialCoilService;
|
private final IWmsMaterialCoilService iWmsMaterialCoilService;
|
||||||
|
private final IWmsCoilPendingActionService coilPendingActionService;
|
||||||
|
private final WmsCoilPendingActionMapper coilPendingActionMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询钢卷物料表列表
|
* 查询钢卷物料表列表
|
||||||
@@ -101,9 +108,49 @@ public class WmsMaterialCoilController extends BaseController {
|
|||||||
* 查询钢卷物料表列表(POST请求,支持大量coilIds查询)
|
* 查询钢卷物料表列表(POST请求,支持大量coilIds查询)
|
||||||
* 功能与GET /list相同,但使用POST请求体传递参数,避免URL长度限制
|
* 功能与GET /list相同,但使用POST请求体传递参数,避免URL长度限制
|
||||||
* 特别适合需要查询大量coilIds的场景
|
* 特别适合需要查询大量coilIds的场景
|
||||||
|
* 如果coilIds为空且actionIds不为空,则根据actionIds查询wms_coil_pending_action表获取coilIds和完成时间
|
||||||
*/
|
*/
|
||||||
@PostMapping("/listByPost")
|
@PostMapping("/listByPost")
|
||||||
public TableDataInfo<WmsMaterialCoilVo> listByPost(@RequestBody WmsMaterialCoilBo bo, PageQuery pageQuery) {
|
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);
|
return iWmsMaterialCoilService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -309,5 +309,10 @@ public class WmsMaterialCoilBo extends BaseEntity {
|
|||||||
* 预留宽度(单位:毫米)
|
* 预留宽度(单位:毫米)
|
||||||
*/
|
*/
|
||||||
private BigDecimal reservedWidth;
|
private BigDecimal reservedWidth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作记录ID列表(逗号分隔,用于根据actionIds查询钢卷)
|
||||||
|
*/
|
||||||
|
private String actionIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -468,5 +468,11 @@ public class WmsMaterialCoilVo extends BaseEntity {
|
|||||||
* 预留宽度(单位:毫米)
|
* 预留宽度(单位:毫米)
|
||||||
*/
|
*/
|
||||||
private BigDecimal reservedWidth;
|
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