Merge branch '0.8.X' of https://gitee.com/hdka/klp-oa into 0.8.X

This commit is contained in:
砂糖
2025-12-08 14:02:23 +08:00
8 changed files with 81 additions and 38 deletions

View File

@@ -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<List<WmsMaterialCoilVo>> getCoilInfoByIds(@RequestBody WmsDeliveryPlanBo bo) {
List<WmsMaterialCoilVo> coilInfoList = iWmsDeliveryPlanService.getCoilInfoByIds(bo.getCoilIds());
return R.ok(coilInfoList);
}
}

View File

@@ -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("批量更新失败");
}
}

View File

@@ -46,7 +46,5 @@ public class WmsDeliveryPlanBo extends BaseEntity {
// 钢卷集合
private String coil;
private String coilIds;
}

View File

@@ -160,5 +160,10 @@ public class WmsMaterialCoilBo extends BaseEntity {
*/
private Integer minAbnormalCount;
/**
* 钢卷ID列表逗号分隔用于根据ID列表查询钢卷
*/
private String coilIds;
}

View File

@@ -60,6 +60,4 @@ public interface IWmsDeliveryPlanService {
* 获取发货报表统计信息(包含汇总和按类型统计)
*/
WmsDeliveryReportResultVo getDeliveryReport(Date startTime, Date endTime);
List<WmsMaterialCoilVo> getCoilInfoByIds(String coilIds);
}

View File

@@ -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);
}

View File

@@ -168,27 +168,4 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService {
return result;
}
/**
* 根据逗号分隔的coil_id字符串查询对应的钢卷信息
*
* @param coilIds 逗号分隔的coil_id字符串
* @return 钢卷信息列表
*/
@Override
public List<WmsMaterialCoilVo> getCoilInfoByIds(String coilIds) {
if (StringUtils.isBlank(coilIds)) {
return Collections.emptyList();
}
// 将逗号分隔的字符串转换为ID列表
List<Long> idList = Arrays.stream(coilIds.split(","))
.map(String::trim)
.filter(s -> !s.isEmpty())
.map(Long::valueOf)
.collect(Collectors.toList());
// 查询对应的钢卷信息
return coilMapper.selectVoBatchIds(idList);
}
}

View File

@@ -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<Long> 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<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;
}
}