feat(wms): 添加父钢卷ID字段和发货报表导出功能

- 在WmsMaterialCoil实体类中添加parentCoilId字段
- 在WmsMaterialCoilBo业务对象中添加parentCoilId字段
- 在WmsMaterialCoilVo视图对象中添加parentCoilId字段
- 在MyBatis映射文件中添加parent_coil_id字段映射
- 实现分卷、切边、合卷操作中设置父钢卷ID的逻辑
- 新增发货报表导出查询方法和对应的SQL映射
- 添加按coilIds联查钢卷发货相关数据的功能
- 实现CSV格式长整型解析工具方法
This commit is contained in:
2026-01-29 16:04:01 +08:00
parent b4d961f2d8
commit c8f32f8736
5 changed files with 175 additions and 0 deletions

View File

@@ -149,5 +149,9 @@ public class WmsMaterialCoil extends BaseEntity {
* 独占状态0=未独占1=特殊分卷中)
*/
private Integer exclusiveStatus;
// 父钢卷id
private String parentCoilId;
}

View File

@@ -241,5 +241,8 @@ public class WmsMaterialCoilBo extends BaseEntity {
// 接收前端传来是否排序的字段 OrderBy
@TableField(exist = false)
private Boolean orderBy;
// 父钢卷id
private String parentCoilId;
}

View File

@@ -352,5 +352,9 @@ public class WmsMaterialCoilVo extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date bindPlanDate;
// 父钢卷id
private String parentCoilId;
}

View File

@@ -1138,6 +1138,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
validEntityBeforeSave(newCoil);
// 把老记录的coilId赋值给新纪录的parentCoilId
newCoil.setParentCoilId(String.valueOf(oldCoil.getCoilId()));
// 插入新记录
boolean flag = baseMapper.insert(newCoil) > 0;
@@ -1419,6 +1421,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
newCoil.setQrcodeRecordId(newQrcodeId);
validEntityBeforeSave(newCoil);
// 把老记录的coilId赋值给新纪录的parentCoilId
newCoil.setParentCoilId(String.valueOf(oldCoil.getCoilId()));
baseMapper.insert(newCoil);
newCoils.add(newCoil);
@@ -1517,6 +1521,18 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
newCoil.setQrcodeRecordId(mergedQrcodeId);
validEntityBeforeSave(newCoil);
// 收集所有参与合卷的原始钢卷ID并用逗号分隔
List<Long> parentCoilIds = new ArrayList<>();
for (WmsMaterialCoilBo originalCoilBo : bo.getNewCoils()) {
if (originalCoilBo.getCoilId() != null) {
parentCoilIds.add(originalCoilBo.getCoilId());
}
}
String parentCoilIdsStr = parentCoilIds.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
newCoil.setParentCoilId(parentCoilIdsStr);
baseMapper.insert(newCoil);
newCoils.add(newCoil);
@@ -2350,6 +2366,36 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
return wmsMaterialCoilExportVos;
}
/**
* 发货报表导出:按 coilIds 查询钢卷 + 发货单明细/主表/计划联查数据
*/
@Override
public List<WmsMaterialCoilDeliveryExportVo> queryDeliveryExportList(WmsMaterialCoilBo bo) {
List<Long> coilIds = parseCsvLongs(bo == null ? null : bo.getCoilIds());
if (coilIds.isEmpty()) {
return Collections.emptyList();
}
return baseMapper.selectDeliveryExportListByCoilIds(coilIds);
}
private List<Long> parseCsvLongs(String csv) {
if (StringUtils.isBlank(csv)) {
return Collections.emptyList();
}
String[] arr = csv.split(",");
List<Long> list = new ArrayList<>();
for (String s : arr) {
if (StringUtils.isBlank(s)) {
continue;
}
try {
list.add(Long.parseLong(s.trim()));
} catch (NumberFormatException ignore) {
}
}
return list.stream().distinct().collect(Collectors.toList());
}
/**
* 钢卷发货
* @param coilId