diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java index a71b13e9..04d71303 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java @@ -6,7 +6,6 @@ import java.util.Arrays; import com.fasterxml.jackson.annotation.JsonFormat; import com.klp.domain.vo.*; -import liquibase.pro.packaged.W; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; @@ -129,14 +128,4 @@ public class WmsDeliveryPlanController extends BaseController { } - /** - * 根据逗号分隔的coil_id字符串查询对应的钢卷信息 - * - * @return 钢卷信息列表 - */ - @PostMapping("/coils") - public R> getCoilInfoByIds(@RequestBody WmsDeliveryPlanBo bo) { - List coilInfoList = iWmsDeliveryPlanService.getCoilInfoByIds(bo.getCoilIds()); - return R.ok(coilInfoList); - } } 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 1dd9771c..201b440d 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -3,6 +3,7 @@ package com.klp.controller; import java.util.List; import java.util.Map; import java.util.Arrays; +import java.util.stream.Collectors; import com.klp.domain.vo.WmsMaterialCoilExportVo; import lombok.RequiredArgsConstructor; @@ -195,5 +196,30 @@ public class WmsMaterialCoilController extends BaseController { public TableDataInfo getAvailableCoilsForDelivery(WmsMaterialCoilBo bo, PageQuery pageQuery) { return iWmsMaterialCoilService.queryAvailableForDelivery(bo, pageQuery); } + + + /** + * 批量更新钢卷发货状态 + * + * @param coilIds 钢卷ID,多个ID用逗号分隔 + * @param status 目标状态 (0=在库, 1=在途, 2=已出库) + * @return 操作结果 + */ + @Log(title = "钢卷物料表", businessType = BusinessType.UPDATE) + @PutMapping("/batchUpdateDeliveryStatus") + public R batchUpdateDeliveryStatus( + @RequestParam String coilIds, + @RequestParam Integer status) { + + // 解析钢卷ID列表 + List coilIdList = Arrays.stream(coilIds.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .map(Long::valueOf) + .collect(Collectors.toList()); + + Boolean result = iWmsMaterialCoilService.batchUpdateDeliveryStatus(coilIdList, status); + return result ? R.ok() : R.fail("批量更新失败"); + } } diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanBo.java index 0fbb53ce..47611b11 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsDeliveryPlanBo.java @@ -46,7 +46,5 @@ public class WmsDeliveryPlanBo extends BaseEntity { // 钢卷集合 private String coil; - private String coilIds; - } 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 25488627..7ed360e4 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 @@ -160,5 +160,10 @@ public class WmsMaterialCoilBo extends BaseEntity { */ private Integer minAbnormalCount; + /** + * 钢卷ID列表(逗号分隔,用于根据ID列表查询钢卷) + */ + private String coilIds; + } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java index 14ef261a..8fe1752b 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryPlanService.java @@ -60,6 +60,4 @@ public interface IWmsDeliveryPlanService { * 获取发货报表统计信息(包含汇总和按类型统计) */ WmsDeliveryReportResultVo getDeliveryReport(Date startTime, Date endTime); - - List getCoilInfoByIds(String coilIds); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index 34a8dab0..46426266 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -101,5 +101,7 @@ public interface IWmsMaterialCoilService { int exportCoil(@NotEmpty(message = "主键不能为空") Long coilId); TableDataInfo queryAvailableForDelivery(WmsMaterialCoilBo bo, PageQuery pageQuery); + + Boolean batchUpdateDeliveryStatus(List coilIdList, Integer status); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java index 6fd66f9c..422a6372 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java @@ -168,27 +168,4 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { return result; } - - /** - * 根据逗号分隔的coil_id字符串查询对应的钢卷信息 - * - * @param coilIds 逗号分隔的coil_id字符串 - * @return 钢卷信息列表 - */ - @Override - public List getCoilInfoByIds(String coilIds) { - if (StringUtils.isBlank(coilIds)) { - return Collections.emptyList(); - } - - // 将逗号分隔的字符串转换为ID列表 - List idList = Arrays.stream(coilIds.split(",")) - .map(String::trim) - .filter(s -> !s.isEmpty()) - .map(Long::valueOf) - .collect(Collectors.toList()); - - // 查询对应的钢卷信息 - return coilMapper.selectVoBatchIds(idList); - } } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index d5d894a3..4dda2338 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -350,6 +350,23 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { // 兼容原来的itemId单值查询 qw.eq("mc.item_id", bo.getItemId()); } + // 添加coilIds查询条件,支持逗号分隔的多个coilId查询 + if (StringUtils.isNotBlank(bo.getCoilIds())) { + String[] coilIdArray = bo.getCoilIds().split(","); + List coilIdList = new ArrayList<>(); + for (String coilIdStr : coilIdArray) { + if (StringUtils.isNotBlank(coilIdStr)) { + try { + coilIdList.add(Long.parseLong(coilIdStr.trim())); + } catch (NumberFormatException e) { + // 忽略无效的ID格式 + } + } + } + if (!coilIdList.isEmpty()) { + qw.in("mc.coil_id", coilIdList); + } + } //逻辑删除 qw.eq("mc.del_flag", 0); //把team字段作为筛选条件 @@ -1834,4 +1851,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return lqw; } + + + /** + * 批量更新钢卷发货状态 + * + * @param coilIds 钢卷ID列表 + * @param status 目标状态 (0=在库, 1=在途, 2=已出库) + * @return 是否更新成功 + */ + @Override + public Boolean batchUpdateDeliveryStatus(List coilIds, Integer status) { + if (coilIds == null || coilIds.isEmpty()) { + return false; + } + + if (status == null || status < 0 || status > 2) { + throw new RuntimeException("无效的状态值,状态必须在0-2之间"); + } + + // 构造更新条件 + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); + updateWrapper.in(WmsMaterialCoil::getCoilId, coilIds); + updateWrapper.set(WmsMaterialCoil::getStatus, status); + + // 如果是设置为已出库状态,同时更新出库时间 + if (status == 1) { + updateWrapper.set(WmsMaterialCoil::getExportTime, new Date()); + } + + return baseMapper.update(null, updateWrapper) > 0; + } }