From 2e849fc3d2ebfbedc43321cbf1f8262d75c6ed0b Mon Sep 17 00:00:00 2001 From: 王彪总 Date: Sat, 10 Jan 2026 13:03:28 +0800 Subject: [PATCH] feat(garden): 新增物料管理功能模块 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java | 5 ++--- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java | 3 +-- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java | 4 +--- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java | 26 ++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java | 33 +++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java | 26 ++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 8 deletions(-) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java index 19d9d59..d2b4be4 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java @@ -13,17 +13,16 @@ public class MaterialNameSaveReqVO { private Long id; @Schema(description = "物料名称ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14631") - @NotNull(message = "物料名称ID不能为空") private Long materialId; + @NotEmpty(message = "物料名称不能为空") @Schema(description = "物料名称", example = "张三") private String materialName; @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") - @NotEmpty(message = "备注不能为空") private String remark; @Schema(description = "部门ID", example = "23084") private Long deptId; -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java index a6771fe..61820f6 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java @@ -20,10 +20,9 @@ public class MaterialSpecificationSaveReqVO { private String specifications; @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") - @NotEmpty(message = "备注不能为空") private String remark; @Schema(description = "部门ID", example = "18158") private Long deptId; -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java index 7f3120a..ad0dd12 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java @@ -13,7 +13,6 @@ public class MaterialUnitSaveReqVO { private Long id; @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22342") - @NotNull(message = "单位ID不能为空") private Long unitId; @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") @@ -21,10 +20,9 @@ public class MaterialUnitSaveReqVO { private String unitName; @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") - @NotEmpty(message = "备注不能为空") private String remark; @Schema(description = "部门ID", example = "8809") private Long deptId; -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java index cc56f82..3723159 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java @@ -34,14 +34,40 @@ public class MaterialNameServiceImpl implements MaterialNameService { @Override public Long createMaterialName(MaterialNameSaveReqVO createReqVO) { + // 生成物料名称ID:获取数据库中最大的值然后+1 + Long materialId = generateMaterialId(); + // 插入 MaterialNameDO materialName = BeanUtils.toBean(createReqVO, MaterialNameDO.class); + materialName.setMaterialId(materialId); materialNameMapper.insert(materialName); // 返回 return materialName.getId(); } + /** + * 生成物料名称ID + * 规则:获取数据库中最大的值然后+1 + */ + private Long generateMaterialId() { + // 获取所有物料名称 + List allMaterials = materialNameMapper.selectList(); + + long maxId = 0; + if (CollUtil.isNotEmpty(allMaterials)) { + // 遍历找到最大的ID值 + for (MaterialNameDO material : allMaterials) { + if (material.getMaterialId() != null && material.getMaterialId() > maxId) { + maxId = material.getMaterialId(); + } + } + } + + // 生成新ID:最大ID+1 + return maxId + 1; + } + @Override public void updateMaterialName(MaterialNameSaveReqVO updateReqVO) { // 校验存在 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java index d04dd6d..4cd17b4 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java @@ -34,14 +34,47 @@ public class MaterialSpecificationServiceImpl implements MaterialSpecificationSe @Override public Long createMaterialSpecification(MaterialSpecificationSaveReqVO createReqVO) { + // 生成规格编码:获取数据库中最大的值然后+1 + String specCode = generateSpecCode(); + // 插入 MaterialSpecificationDO materialSpecification = BeanUtils.toBean(createReqVO, MaterialSpecificationDO.class); + materialSpecification.setSpecCode(specCode); materialSpecificationMapper.insert(materialSpecification); // 返回 return materialSpecification.getId(); } + /** + * 生成规格编码 + * 规则:获取数据库中最大的值然后+1 + */ + private String generateSpecCode() { + // 获取所有物料规格 + List allSpecifications = materialSpecificationMapper.selectList(); + + int maxCode = 0; + if (CollUtil.isNotEmpty(allSpecifications)) { + // 遍历找到最大的编码 + for (MaterialSpecificationDO spec : allSpecifications) { + if (spec.getSpecCode() != null) { + try { + int code = Integer.parseInt(spec.getSpecCode()); + if (code > maxCode) { + maxCode = code; + } + } catch (NumberFormatException e) { + // 忽略非数字编码 + } + } + } + } + + // 生成新编码:最大编码+1 + return String.valueOf(maxCode + 1); + } + @Override public void updateMaterialSpecification(MaterialSpecificationSaveReqVO updateReqVO) { // 校验存在 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java index a86ae66..78538a5 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java @@ -34,14 +34,40 @@ public class MaterialUnitServiceImpl implements MaterialUnitService { @Override public Long createMaterialUnit(MaterialUnitSaveReqVO createReqVO) { + // 生成单位ID:获取数据库中最大的值然后+1 + Long unitId = generateUnitId(); + // 插入 MaterialUnitDO materialUnit = BeanUtils.toBean(createReqVO, MaterialUnitDO.class); + materialUnit.setUnitId(unitId); materialUnitMapper.insert(materialUnit); // 返回 return materialUnit.getId(); } + /** + * 生成单位ID + * 规则:获取数据库中最大的值然后+1 + */ + private Long generateUnitId() { + // 获取所有物料单位 + List allUnits = materialUnitMapper.selectList(); + + long maxId = 0; + if (CollUtil.isNotEmpty(allUnits)) { + // 遍历找到最大的ID值 + for (MaterialUnitDO unit : allUnits) { + if (unit.getUnitId() != null && unit.getUnitId() > maxId) { + maxId = unit.getUnitId(); + } + } + } + + // 生成新ID:最大ID+1 + return maxId + 1; + } + @Override public void updateMaterialUnit(MaterialUnitSaveReqVO updateReqVO) { // 校验存在 -- libgit2 0.21.4