diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java index 71b65c8c..648c5749 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java @@ -86,7 +86,16 @@ public class MaterialControllerService { VUtil.trueThrowBusinessError(Objects.nonNull(old) && !old.getComplete()) .throwMessage("该物料存在草稿版本"); 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.setCreateTime(LocalDateTime.now()); materialService.add(wmsMaterial); @@ -97,7 +106,16 @@ public class MaterialControllerService { VUtil.trueThrowBusinessError(Objects.isNull(old)).throwMessage("数据不存在!"); WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); 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.setCreateTime(LocalDateTime.now()); wmsMaterial.setId(null); @@ -180,7 +198,7 @@ public class MaterialControllerService { } else { if (Objects.isNull(old) || StrUtil.isNotBlank(old.getImage())) { WmsMaterial material = new WmsMaterial() - .setVersion(Objects.isNull(old) ? 1 : old.getVersion() + 1) + .setVersion(Objects.isNull(old) ? "1" : incrementVersion(old.getVersion())) .setNo(bomMaterialDTO.getMaterialNo()) .setDescribe(bomMaterialDTO.getMaterialDesc()) .setDrawingNo(bomMaterialDTO.getDrawingNo()) @@ -300,14 +318,14 @@ public class MaterialControllerService { material.setCreateBy(UserUtil.getUserName()); material.setCreateTime(LocalDateTime.now()); if (Objects.isNull(currentMaterial)) { - material.setVersion(1); + material.setVersion("1"); forAdd.add(material); } else { if (Objects.equals(UserUtil.getType(), UserType.Supplier) && !Objects.equals(currentMaterial.getSupplierId(), UserUtil.getUserId())) { sb.append("无权限修改此物料;"); } else { - material.setVersion(currentMaterial.getVersion() + 1); + material.setVersion(incrementVersion(String.valueOf(currentMaterial.getVersion()))); forAdd.add(material); } } @@ -425,4 +443,23 @@ public class MaterialControllerService { 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"; + } + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java index f4a5564c..6114ff31 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java @@ -75,5 +75,5 @@ public class MaterialAddQO { /** * 版本号 */ - private Integer version; + private String version; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialVO.java index 7bb99efe..30215c77 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/MaterialVO.java @@ -39,7 +39,7 @@ public class MaterialVO { /** * 当前版本号 */ - private Integer version; + private String version; /** * 重量 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java index 5377793e..f4195206 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java @@ -56,7 +56,7 @@ public class WmsMaterial implements Serializable { /** * 当前版本号 */ - private Integer version; + private String version; /** * 重量