diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 61d80e01..e0301956 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -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 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 actionIdList = Arrays.stream(actionIdArr) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .map(Long::parseLong) + .collect(Collectors.toList()); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(WmsCoilPendingAction::getActionId, actionIdList); + + java.util.List actions = + coilPendingActionMapper.selectList(queryWrapper); + + if (actions != null && !actions.isEmpty()) { + Map coilIdCompleteTimeMap = new HashMap<>(); + List 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 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); } diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java index 367ccbf6..0861ca46 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java @@ -309,5 +309,10 @@ public class WmsMaterialCoilBo extends BaseEntity { * 预留宽度(单位:毫米) */ private BigDecimal reservedWidth; + + /** + * 操作记录ID列表(逗号分隔,用于根据actionIds查询钢卷) + */ + private String actionIds; } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java index 86d37510..f497e292 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java @@ -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; }