feat(wms): 添加钢卷发货状态批量更新功能
- 在 IWmsMaterialCoilService 接口中新增 batchUpdateDeliveryStatus 方法 - 在 WmsMaterialCoilController 中添加批量更新接口 /batchUpdateDeliveryStatus - 实现 WmsMaterialCoilServiceImpl 中的批量更新逻辑 - 支持将钢卷状态更新为在库、在途或已出库 - 更新在途状态时自动设置出库时间 - 添加参数校验和异常处理机制
This commit is contained in:
@@ -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<WmsMaterialCoilVo> 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<Void> batchUpdateDeliveryStatus(
|
||||
@RequestParam String coilIds,
|
||||
@RequestParam Integer status) {
|
||||
|
||||
// 解析钢卷ID列表
|
||||
List<Long> 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("批量更新失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -101,5 +101,7 @@ public interface IWmsMaterialCoilService {
|
||||
int exportCoil(@NotEmpty(message = "主键不能为空") Long coilId);
|
||||
|
||||
TableDataInfo<WmsMaterialCoilVo> queryAvailableForDelivery(WmsMaterialCoilBo bo, PageQuery pageQuery);
|
||||
|
||||
Boolean batchUpdateDeliveryStatus(List<Long> coilIdList, Integer status);
|
||||
}
|
||||
|
||||
|
||||
@@ -1834,4 +1834,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量更新钢卷发货状态
|
||||
*
|
||||
* @param coilIds 钢卷ID列表
|
||||
* @param status 目标状态 (0=在库, 1=在途, 2=已出库)
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean batchUpdateDeliveryStatus(List<Long> coilIds, Integer status) {
|
||||
if (coilIds == null || coilIds.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (status == null || status < 0 || status > 2) {
|
||||
throw new RuntimeException("无效的状态值,状态必须在0-2之间");
|
||||
}
|
||||
|
||||
// 构造更新条件
|
||||
LambdaUpdateWrapper<WmsMaterialCoil> 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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user