1449 MPM同步物料图片及钢构包管理的接口开发

This commit is contained in:
10001392 2026-05-19 09:42:57 +08:00
parent 41e30dbc63
commit ce973f9d6d
4 changed files with 45 additions and 8 deletions

View File

@ -86,7 +86,16 @@ public class MaterialControllerService {
VUtil.trueThrowBusinessError(Objects.nonNull(old) && !old.getComplete()) VUtil.trueThrowBusinessError(Objects.nonNull(old) && !old.getComplete())
.throwMessage("该物料存在草稿版本"); .throwMessage("该物料存在草稿版本");
WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request);
wmsMaterial.setVersion(1); // 根据fromMpm字段决定版本号设置逻辑
if (Boolean.TRUE.equals(wmsMaterial.getFromMpm())) {
// 来自MPM使用传入的版本号如果未传则默认为"1"
if (StrUtil.isBlank(wmsMaterial.getVersion())) {
wmsMaterial.setVersion("1");
}
} else {
// 非MPM来源版本号初始化为"1"
wmsMaterial.setVersion("1");
}
wmsMaterial.setCreateBy(UserUtil.getUserName()); wmsMaterial.setCreateBy(UserUtil.getUserName());
wmsMaterial.setCreateTime(LocalDateTime.now()); wmsMaterial.setCreateTime(LocalDateTime.now());
materialService.add(wmsMaterial); materialService.add(wmsMaterial);
@ -97,7 +106,16 @@ public class MaterialControllerService {
VUtil.trueThrowBusinessError(Objects.isNull(old)).throwMessage("数据不存在!"); VUtil.trueThrowBusinessError(Objects.isNull(old)).throwMessage("数据不存在!");
WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request);
if (old.getComplete()) { if (old.getComplete()) {
wmsMaterial.setVersion(old.getVersion() + 1); // 根据fromMpm字段决定版本号设置逻辑
if (Boolean.TRUE.equals(wmsMaterial.getFromMpm())) {
// 来自MPM使用传入的版本号如果未传则递增
if (StrUtil.isBlank(wmsMaterial.getVersion())) {
wmsMaterial.setVersion(incrementVersion(old.getVersion()));
}
} else {
// 非MPM来源版本号递增
wmsMaterial.setVersion(incrementVersion(old.getVersion()));
}
wmsMaterial.setCreateBy(UserUtil.getUserName()); wmsMaterial.setCreateBy(UserUtil.getUserName());
wmsMaterial.setCreateTime(LocalDateTime.now()); wmsMaterial.setCreateTime(LocalDateTime.now());
wmsMaterial.setId(null); wmsMaterial.setId(null);
@ -180,7 +198,7 @@ public class MaterialControllerService {
} else { } else {
if (Objects.isNull(old) || StrUtil.isNotBlank(old.getImage())) { if (Objects.isNull(old) || StrUtil.isNotBlank(old.getImage())) {
WmsMaterial material = new WmsMaterial() WmsMaterial material = new WmsMaterial()
.setVersion(Objects.isNull(old) ? 1 : old.getVersion() + 1) .setVersion(Objects.isNull(old) ? "1" : incrementVersion(old.getVersion()))
.setNo(bomMaterialDTO.getMaterialNo()) .setNo(bomMaterialDTO.getMaterialNo())
.setDescribe(bomMaterialDTO.getMaterialDesc()) .setDescribe(bomMaterialDTO.getMaterialDesc())
.setDrawingNo(bomMaterialDTO.getDrawingNo()) .setDrawingNo(bomMaterialDTO.getDrawingNo())
@ -300,14 +318,14 @@ public class MaterialControllerService {
material.setCreateBy(UserUtil.getUserName()); material.setCreateBy(UserUtil.getUserName());
material.setCreateTime(LocalDateTime.now()); material.setCreateTime(LocalDateTime.now());
if (Objects.isNull(currentMaterial)) { if (Objects.isNull(currentMaterial)) {
material.setVersion(1); material.setVersion("1");
forAdd.add(material); forAdd.add(material);
} else { } else {
if (Objects.equals(UserUtil.getType(), UserType.Supplier) if (Objects.equals(UserUtil.getType(), UserType.Supplier)
&& !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) { && !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) {
sb.append("无权限修改此物料;"); sb.append("无权限修改此物料;");
} else { } else {
material.setVersion(currentMaterial.getVersion() + 1); material.setVersion(incrementVersion(String.valueOf(currentMaterial.getVersion())));
forAdd.add(material); forAdd.add(material);
} }
} }
@ -425,4 +443,23 @@ public class MaterialControllerService {
log.info("批量从MPM系统同步图纸数据完成"); log.info("批量从MPM系统同步图纸数据完成");
} }
/**
* 递增版本号
* @param currentVersion 当前版本号
* @return 递增后的版本号
*/
private String incrementVersion(String currentVersion) {
if (currentVersion == null || currentVersion.isEmpty()) {
return "1";
}
try {
// 尝试将版本号解析为整数并递增
int versionNum = Integer.parseInt(currentVersion);
return String.valueOf(versionNum + 1);
} catch (NumberFormatException e) {
// 如果不是纯数字直接在末尾追加.1
return currentVersion + ".1";
}
}
} }

View File

@ -75,5 +75,5 @@ public class MaterialAddQO {
/** /**
* 版本号 * 版本号
*/ */
private Integer version; private String version;
} }

View File

@ -39,7 +39,7 @@ public class MaterialVO {
/** /**
* 当前版本号 * 当前版本号
*/ */
private Integer version; private String version;
/** /**
* 重量 * 重量
*/ */

View File

@ -56,7 +56,7 @@ public class WmsMaterial implements Serializable {
/** /**
* 当前版本号 * 当前版本号
*/ */
private Integer version; private String version;
/** /**
* 重量 * 重量