diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/MaterialCategoryApi.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/MaterialCategoryApi.java new file mode 100644 index 0000000..d113255 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/MaterialCategoryApi.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.xxjj.api.materialcategory; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.xxjj.api.materialcategory.dto.MaterialCategoryRespDTO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 物料分类 API 接口 + * + * @author 芋道源码 + */ +public interface MaterialCategoryApi { + + /** + * 获得物料分类信息 + * + * @param id 物料分类编号 + * @return 物料分类信息 + */ + MaterialCategoryRespDTO getMaterialCategory(Long id); + + /** + * 获得物料分类信息数组 + * + * @param ids 物料分类编号数组 + * @return 物料分类信息数组 + */ + List getMaterialCategoryList(Collection ids); + + /** + * 校验物料分类们是否有效。如下情况,视为无效: + * 1. 物料分类编号不存在 + * 2. 物料分类被禁用 + * + * @param ids 角色编号数组 + */ + void validateMaterialCategoryList(Collection ids); + + /** + * 获得指定编号的物料分类 Map + * + * @param ids 物料分类编号数组 + * @return 物料分类 Map + */ + default Map getMaterialCategoryMap(Set ids) { + List list = getMaterialCategoryList(ids); + return CollectionUtils.convertMap(list, MaterialCategoryRespDTO::getId); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/dto/MaterialCategoryRespDTO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/dto/MaterialCategoryRespDTO.java new file mode 100644 index 0000000..8b4ae74 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/api/materialcategory/dto/MaterialCategoryRespDTO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.xxjj.api.materialcategory.dto; + +import lombok.Data; + +/** + * 物料分类 Response DTO + * + * @author 芋道源码 + */ +@Data +public class MaterialCategoryRespDTO { + + /** + * 物料分类编号 + */ + private Long id; + /** + * 物料分类名称 + */ + private String code; + /** + * 物料分类名称 + */ + private String name; + /** + * 父物料分类编号 + */ + private Long parentId; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/enums/materialcategory/MaterialCategoryIdEnum.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/enums/materialcategory/MaterialCategoryIdEnum.java new file mode 100644 index 0000000..c1a753b --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-api/src/main/java/cn/iocoder/yudao/module/xxjj/enums/materialcategory/MaterialCategoryIdEnum.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.xxjj.enums.materialcategory; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 物料分类编号枚举 + */ +@Getter +@AllArgsConstructor +public enum MaterialCategoryIdEnum { + + /** + * 根节点 + */ + ROOT(0L); + + private final Long id; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/MaterialCategoryController.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/MaterialCategoryController.java new file mode 100644 index 0000000..b78112c --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/MaterialCategoryController.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.*; +import cn.iocoder.yudao.module.xxjj.convert.materialcategory.MaterialCategoryConvert; +import cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO; +import cn.iocoder.yudao.module.xxjj.service.materialcategory.MaterialCategoryService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 物料分类") +@RestController +@RequestMapping("/xxjj/materialCategory") +@Validated +public class MaterialCategoryController { + + @Resource + private MaterialCategoryService materialCategoryService; + + @PostMapping("create") + @Operation(summary = "创建物料分类") + @PreAuthorize("@ss.hasPermission('xxjj:materialCategory:create')") + public CommonResult createMaterialCategory(@Valid @RequestBody MaterialCategoryCreateReqVO reqVO) { + Long MaterialCategoryId = materialCategoryService.createMaterialCategory(reqVO); + return success(MaterialCategoryId); + } + + @PutMapping("update") + @Operation(summary = "更新物料分类") + @PreAuthorize("@ss.hasPermission('xxjj:materialCategory:update')") + public CommonResult updateMaterialCategory(@Valid @RequestBody MaterialCategoryUpdateReqVO reqVO) { + materialCategoryService.updateMaterialCategory(reqVO); + return success(true); + } + + @DeleteMapping("delete") + @Operation(summary = "删除物料分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:materialCategory:delete')") + public CommonResult deleteMaterialCategory(@RequestParam("id") Long id) { + materialCategoryService.deleteMaterialCategory(id); + return success(true); + } + + @GetMapping("/list") + @Operation(summary = "获取物料分类列表") + @PreAuthorize("@ss.hasPermission('xxjj:materialCategory:query')") + public CommonResult> getMaterialCategoryList(MaterialCategoryListReqVO reqVO) { + List list = materialCategoryService.getMaterialCategoryList(reqVO); + list.sort(Comparator.comparing(MaterialCategoryDO::getSort)); + return success(MaterialCategoryConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/list-all-simple") + @Operation(summary = "获取物料分类精简信息列表", description = "只包含被开启的物料分类,主要用于前端的下拉选项") + public CommonResult> getSimpleMaterialCategoryList() { + // 获得物料分类列表,只要开启状态的 + MaterialCategoryListReqVO reqVO = new MaterialCategoryListReqVO(); + List list = materialCategoryService.getMaterialCategoryList(reqVO); + // 排序后,返回给前端 + list.sort(Comparator.comparing(MaterialCategoryDO::getSort)); + return success(MaterialCategoryConvert.INSTANCE.convertList02(list)); + } + + @GetMapping("/get") + @Operation(summary = "获得物料分类信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:materialCategory:query')") + public CommonResult getMaterialCategory(@RequestParam("id") Long id) { + return success(MaterialCategoryConvert.INSTANCE.convert(materialCategoryService.getMaterialCategory(id))); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryBaseVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryBaseVO.java new file mode 100644 index 0000000..0880718 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryBaseVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +/** + * 物料分类 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class MaterialCategoryBaseVO { + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "20230802AAA1") + @Size(max = 30, message = "物料分类名称长度不能超过30个字符") + private String code; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotBlank(message = "物料分类名称不能为空") + @Size(max = 30, message = "物料分类名称长度不能超过30个字符") + private String name; + + @Schema(description = "父菜单 ID", example = "1024") + private Long parentId; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryCreateReqVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryCreateReqVO.java new file mode 100644 index 0000000..dbc70bf --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryCreateReqVO.java @@ -0,0 +1,12 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 物料分类创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MaterialCategoryCreateReqVO extends MaterialCategoryBaseVO { +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryListReqVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryListReqVO.java new file mode 100644 index 0000000..a58a1e0 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryListReqVO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 物料分类列表 Request VO") +@Data +public class MaterialCategoryListReqVO { + + @Schema(description = "物料分类名称,模糊匹配", example = "芋道") + private String name; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryRespVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryRespVO.java new file mode 100644 index 0000000..6642438 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 物料分类信息 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialCategoryRespVO extends MaterialCategoryBaseVO { + + @Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategorySimpleRespVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategorySimpleRespVO.java new file mode 100644 index 0000000..a255fc4 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategorySimpleRespVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 物料分类精简信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MaterialCategorySimpleRespVO { + + @Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "物料分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String code; + + @Schema(description = "物料分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "父物料分类 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryUpdateReqVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryUpdateReqVO.java new file mode 100644 index 0000000..3a0f2dd --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryUpdateReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 物料分类更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialCategoryUpdateReqVO extends MaterialCategoryBaseVO { + + @Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "物料分类编号不能为空") + private Long id; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryBaseVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryBaseVO.java index 1a52f18..4bf9305 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryBaseVO.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryBaseVO.java @@ -22,8 +22,4 @@ public class MaterialIndustryBaseVO { @NotNull(message = "行业名称不能为空") private String industryName; - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "状态不能为空") - private Byte status; - } diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExcelVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExcelVO.java index c1a1b10..f525e73 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExcelVO.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExcelVO.java @@ -28,10 +28,6 @@ public class MaterialIndustryExcelVO { @ExcelProperty("行业名称") private String industryName; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private Byte status; - @ExcelProperty("创建时间") private LocalDateTime createTime; diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExportReqVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExportReqVO.java index 8d07ce3..cd4fe98 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExportReqVO.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExportReqVO.java @@ -19,9 +19,6 @@ public class MaterialIndustryExportReqVO { @Schema(description = "行业名称", example = "李四") private String industryName; - @Schema(description = "状态", example = "1") - private Byte status; - @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryPageReqVO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryPageReqVO.java index 0f5cf7b..39f8e34 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryPageReqVO.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryPageReqVO.java @@ -21,9 +21,6 @@ public class MaterialIndustryPageReqVO extends PageParam { @Schema(description = "行业名称", example = "李四") private String industryName; - @Schema(description = "状态", example = "1") - private Byte status; - @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/convert/materialcategory/MaterialCategoryConvert.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/convert/materialcategory/MaterialCategoryConvert.java new file mode 100644 index 0000000..95700e8 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/convert/materialcategory/MaterialCategoryConvert.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.xxjj.convert.materialcategory; + +import cn.iocoder.yudao.module.xxjj.api.materialcategory.dto.MaterialCategoryRespDTO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryCreateReqVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryRespVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategorySimpleRespVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryUpdateReqVO; +import cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface MaterialCategoryConvert { + + MaterialCategoryConvert INSTANCE = Mappers.getMapper(MaterialCategoryConvert.class); + + List convertList(List list); + + List convertList02(List list); + + MaterialCategoryRespVO convert(MaterialCategoryDO bean); + + MaterialCategoryDO convert(MaterialCategoryCreateReqVO bean); + + MaterialCategoryDO convert(MaterialCategoryUpdateReqVO bean); + + List convertList03(List list); + + MaterialCategoryRespDTO convert03(MaterialCategoryDO bean); + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialcategory/MaterialCategoryDO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialcategory/MaterialCategoryDO.java new file mode 100644 index 0000000..730fbfc --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialcategory/MaterialCategoryDO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 物料分类表 + * + * @author ruoyi + * @author 芋道源码 + */ +@TableName("xxjj_material_category") +@KeySequence("xxjj_material_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialCategoryDO extends BaseDO { + + /** + * 物料分类ID + */ + @TableId + private Long id; + /** + * 编码 + */ + private String code; + /** + * 名称 + */ + private String name; + /** + * 父物料分类ID + * + * 关联 {@link #id} + */ + private Long parentId; + /** + * 显示顺序 + */ + private Integer sort; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialindustry/MaterialIndustryDO.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialindustry/MaterialIndustryDO.java index d6874ba..0224cf9 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialindustry/MaterialIndustryDO.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/dataobject/materialindustry/MaterialIndustryDO.java @@ -35,11 +35,5 @@ public class MaterialIndustryDO extends BaseDO { * 行业名称 */ private String industryName; - /** - * 状态 - * - * 枚举 {@link TODO common_status 对应的类} - */ - private Byte status; } diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialcategory/MaterialCategoryMapper.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialcategory/MaterialCategoryMapper.java new file mode 100644 index 0000000..ef1491d --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialcategory/MaterialCategoryMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.xxjj.dal.mysql.materialcategory; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryListReqVO; +import cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MaterialCategoryMapper extends BaseMapperX { + + default List selectList(MaterialCategoryListReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(MaterialCategoryDO::getName, reqVO.getName())); + } + + default MaterialCategoryDO selectByParentIdAndName(Long parentId, String name) { + return selectOne(MaterialCategoryDO::getParentId, parentId, MaterialCategoryDO::getName, name); + } + + default Long selectCountByParentId(Long parentId) { + return selectCount(MaterialCategoryDO::getParentId, parentId); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialindustry/MaterialIndustryMapper.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialindustry/MaterialIndustryMapper.java index f70e9b6..3322144 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialindustry/MaterialIndustryMapper.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/dal/mysql/materialindustry/MaterialIndustryMapper.java @@ -21,7 +21,6 @@ public interface MaterialIndustryMapper extends BaseMapperX return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MaterialIndustryDO::getIndustryCode, reqVO.getIndustryCode()) .likeIfPresent(MaterialIndustryDO::getIndustryName, reqVO.getIndustryName()) - .eqIfPresent(MaterialIndustryDO::getStatus, reqVO.getStatus()) .betweenIfPresent(MaterialIndustryDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(MaterialIndustryDO::getId)); } @@ -30,7 +29,6 @@ public interface MaterialIndustryMapper extends BaseMapperX return selectList(new LambdaQueryWrapperX() .eqIfPresent(MaterialIndustryDO::getIndustryCode, reqVO.getIndustryCode()) .likeIfPresent(MaterialIndustryDO::getIndustryName, reqVO.getIndustryName()) - .eqIfPresent(MaterialIndustryDO::getStatus, reqVO.getStatus()) .betweenIfPresent(MaterialIndustryDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(MaterialIndustryDO::getId)); } diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/enums/ErrorCodeConstants.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/enums/ErrorCodeConstants.java index 3624f07..17963a4 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/enums/ErrorCodeConstants.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/enums/ErrorCodeConstants.java @@ -9,4 +9,14 @@ public interface ErrorCodeConstants { ErrorCode MATERIAL_TYPE_NOT_EXISTS = new ErrorCode(1002025003, "物料类型不存在"); // ========== 物料 TODO 补充编号 ========== ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1002025004, "物料不存在"); + + // ========== 部门模块 1002004000 ========== + ErrorCode MaterialCategory_NAME_DUPLICATE = new ErrorCode(1002004000, "已经存在该名字的部门"); + ErrorCode MaterialCategory_PARENT_NOT_EXITS = new ErrorCode(1002004001,"父级部门不存在"); + ErrorCode MaterialCategory_NOT_FOUND = new ErrorCode(1002004002, "当前部门不存在"); + ErrorCode MaterialCategory_EXITS_CHILDREN = new ErrorCode(1002004003, "存在子部门,无法删除"); + ErrorCode MaterialCategory_PARENT_ERROR = new ErrorCode(1002004004, "不能设置自己为父部门"); + ErrorCode MaterialCategory_EXISTS_USER = new ErrorCode(1002004005, "部门中存在员工,无法删除"); + ErrorCode MaterialCategory_NOT_ENABLE = new ErrorCode(1002004006, "部门({})不处于开启状态,不允许选择"); + ErrorCode MaterialCategory_PARENT_IS_CHILD = new ErrorCode(1002004007, "不能设置自己的子部门为父部门"); } diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryService.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryService.java new file mode 100644 index 0000000..ffa7fc2 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryService.java @@ -0,0 +1,105 @@ +package cn.iocoder.yudao.module.xxjj.service.materialcategory; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryCreateReqVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryListReqVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryUpdateReqVO; +import cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 物料分类 Service 接口 + * + * @author 芋道源码 + */ +public interface MaterialCategoryService { + + /** + * 初始化物料分类的本地缓存 + */ + //void initLocalCache(); + + /** + * 创建物料分类 + * + * @param reqVO 物料分类信息 + * @return 物料分类编号 + */ + Long createMaterialCategory(MaterialCategoryCreateReqVO reqVO); + + /** + * 更新物料分类 + * + * @param reqVO 物料分类信息 + */ + void updateMaterialCategory(MaterialCategoryUpdateReqVO reqVO); + + /** + * 删除物料分类 + * + * @param id 物料分类编号 + */ + void deleteMaterialCategory(Long id); + + /** + * 筛选物料分类列表 + * + * @param reqVO 筛选条件请求 VO + * @return 物料分类列表 + */ + List getMaterialCategoryList(MaterialCategoryListReqVO reqVO); + + /** + * 获得所有子物料分类,从缓存中 + * + * @param parentId 物料分类编号 + * @param recursive 是否递归获取所有 + * @return 子物料分类列表 + */ + //List getMaterialCategoryListByParentIdFromCache(Long parentId, boolean recursive); + + /** + * 获得物料分类信息数组 + * + * @param ids 物料分类编号数组 + * @return 物料分类信息数组 + */ + List getMaterialCategoryList(Collection ids); + + /** + * 获得指定编号的物料分类 Map + * + * @param ids 物料分类编号数组 + * @return 物料分类 Map + */ + default Map getMaterialCategoryMap(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyMap(); + } + List list = getMaterialCategoryList(ids); + return CollectionUtils.convertMap(list, MaterialCategoryDO::getId); + } + + /** + * 获得物料分类信息 + * + * @param id 物料分类编号 + * @return 物料分类信息 + */ + MaterialCategoryDO getMaterialCategory(Long id); + + /** + * 校验物料分类们是否有效。如下情况,视为无效: + * 1. 物料分类编号不存在 + * 2. 物料分类被禁用 + * + * @param ids 角色编号数组 + */ + //void validateMaterialCategoryList(Collection ids); + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java new file mode 100644 index 0000000..1c2a680 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/main/java/cn/iocoder/yudao/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java @@ -0,0 +1,179 @@ +package cn.iocoder.yudao.module.xxjj.service.materialcategory; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryCreateReqVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryListReqVO; +import cn.iocoder.yudao.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryUpdateReqVO; +import cn.iocoder.yudao.module.xxjj.convert.materialcategory.MaterialCategoryConvert; +import cn.iocoder.yudao.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO; +import cn.iocoder.yudao.module.xxjj.dal.mysql.materialcategory.MaterialCategoryMapper; +import cn.iocoder.yudao.module.xxjj.enums.materialcategory.MaterialCategoryIdEnum; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.xxjj.enums.ErrorCodeConstants.*; + +/** + * 部门 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class MaterialCategoryServiceImpl implements MaterialCategoryService { + + /** + * 部门缓存 + * key:部门编号 {@link MaterialCategoryDO#getId()} + * + * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 + */ + @Getter + private volatile Map materialCategoryCache; + /** + * 父部门缓存 + * key:部门编号 {@link MaterialCategoryDO#getParentId()} + * value: 直接子部门列表 + * + * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 + */ + @Getter + private volatile Multimap parentMaterialCategoryCache; + + @Resource + private MaterialCategoryMapper materialCategoryMapper; + + @Override + public Long createMaterialCategory(MaterialCategoryCreateReqVO reqVO) { + // 校验正确性 + if (reqVO.getParentId() == null) { + reqVO.setParentId(MaterialCategoryIdEnum.ROOT.getId()); + } + //validateForCreateOrUpdate(null, reqVO.getParentId(), reqVO.getName()); + // 插入部门 + MaterialCategoryDO materialCategory = MaterialCategoryConvert.INSTANCE.convert(reqVO); + materialCategoryMapper.insert(materialCategory); + return materialCategory.getId(); + } + + @Override + public void updateMaterialCategory(MaterialCategoryUpdateReqVO reqVO) { + // 校验正确性 + if (reqVO.getParentId() == null) { + reqVO.setParentId(MaterialCategoryIdEnum.ROOT.getId()); + } + //validateForCreateOrUpdate(reqVO.getId(), reqVO.getParentId(), reqVO.getName()); + // 更新部门 + MaterialCategoryDO updateObj = MaterialCategoryConvert.INSTANCE.convert(reqVO); + materialCategoryMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialCategory(Long id) { + // 校验是否存在 + validateMaterialCategoryExists(id); + // 校验是否有子部门 + if (materialCategoryMapper.selectCountByParentId(id) > 0) { + throw exception(MaterialCategory_EXITS_CHILDREN); + } + // 删除部门 + materialCategoryMapper.deleteById(id); + } + + @Override + public List getMaterialCategoryList(MaterialCategoryListReqVO reqVO) { + return materialCategoryMapper.selectList(reqVO); + } + + /*private void validateForCreateOrUpdate(Long id, Long parentId, String name) { + // 校验自己存在 + validateMaterialCategoryExists(id); + // 校验父部门的有效性 + validateParentMaterialCategoryEnable(id, parentId); + // 校验部门名的唯一性 + validateMaterialCategoryNameUnique(id, parentId, name); + }*/ + + /*private void validateParentMaterialCategoryEnable(Long id, Long parentId) { + if (parentId == null || MaterialCategoryIdEnum.ROOT.getId().equals(parentId)) { + return; + } + // 不能设置自己为父部门 + if (parentId.equals(id)) { + throw exception(MaterialCategory_PARENT_ERROR); + } + // 父岗位不存在 + MaterialCategoryDO materialCategory = materialCategoryMapper.selectById(parentId); + if (materialCategory == null) { + throw exception(MaterialCategory_PARENT_NOT_EXITS); + } + // 父部门不能是原来的子部门 + List children = getMaterialCategoryListByParentIdFromCache(id, true); + if (children.stream().anyMatch(materialCategory1 -> materialCategory1.getId().equals(parentId))) { + throw exception(MaterialCategory_PARENT_IS_CHILD); + } + }*/ + + private void validateMaterialCategoryExists(Long id) { + if (id == null) { + return; + } + MaterialCategoryDO materialCategory = materialCategoryMapper.selectById(id); + if (materialCategory == null) { + throw exception(MaterialCategory_NOT_FOUND); + } + } + + private void validateMaterialCategoryNameUnique(Long id, Long parentId, String name) { + MaterialCategoryDO menu = materialCategoryMapper.selectByParentIdAndName(parentId, name); + if (menu == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 + if (id == null) { + throw exception(MaterialCategory_NAME_DUPLICATE); + } + if (!menu.getId().equals(id)) { + throw exception(MaterialCategory_NAME_DUPLICATE); + } + } + + @Override + public List getMaterialCategoryList(Collection ids) { + return materialCategoryMapper.selectBatchIds(ids); + } + + @Override + public MaterialCategoryDO getMaterialCategory(Long id) { + return materialCategoryMapper.selectById(id); + } + + /*@Override + public void validateMaterialCategoryList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得科室信息 + Map materialCategoryMap = getMaterialCategoryMap(ids); + // 校验 + ids.forEach(id -> { + MaterialCategoryDO materialCategory = materialCategoryMap.get(id); + if (materialCategory == null) { + throw exception(MaterialCategory_NOT_FOUND); + } + }); + }*/ + +} diff --git a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/test/java/cn/iocoder/yudao/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/test/java/cn/iocoder/yudao/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java index e5270ea..3afa420 100644 --- a/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/test/java/cn/iocoder/yudao/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java +++ b/ruoyi-vue-pro-master/yudao-module-xxjj/yudao-module-xxjj-biz/src/test/java/cn/iocoder/yudao/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java @@ -112,7 +112,6 @@ public class MaterialIndustryServiceImplTest extends BaseDbUnitTest { MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class, o -> { // 等会查询到 o.setIndustryCode(null); o.setIndustryName(null); - o.setStatus(null); o.setCreateTime(null); }); materialIndustryMapper.insert(dbMaterialIndustry); @@ -120,15 +119,12 @@ public class MaterialIndustryServiceImplTest extends BaseDbUnitTest { materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryCode(null))); // 测试 industryName 不匹配 materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryName(null))); - // 测试 status 不匹配 - materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setStatus(null))); // 测试 createTime 不匹配 materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setCreateTime(null))); // 准备参数 MaterialIndustryPageReqVO reqVO = new MaterialIndustryPageReqVO(); reqVO.setIndustryCode(null); reqVO.setIndustryName(null); - reqVO.setStatus(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 @@ -146,7 +142,6 @@ public class MaterialIndustryServiceImplTest extends BaseDbUnitTest { MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class, o -> { // 等会查询到 o.setIndustryCode(null); o.setIndustryName(null); - o.setStatus(null); o.setCreateTime(null); }); materialIndustryMapper.insert(dbMaterialIndustry); @@ -154,15 +149,12 @@ public class MaterialIndustryServiceImplTest extends BaseDbUnitTest { materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryCode(null))); // 测试 industryName 不匹配 materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryName(null))); - // 测试 status 不匹配 - materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setStatus(null))); // 测试 createTime 不匹配 materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setCreateTime(null))); // 准备参数 MaterialIndustryExportReqVO reqVO = new MaterialIndustryExportReqVO(); reqVO.setIndustryCode(null); reqVO.setIndustryName(null); - reqVO.setStatus(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/api/api/demo/materialIndustry.js b/ruoyi-vue-pro-master/yudao-ui-admin/src/api/api/demo/materialIndustry.js deleted file mode 100644 index 08da0b2..0000000 --- a/ruoyi-vue-pro-master/yudao-ui-admin/src/api/api/demo/materialIndustry.js +++ /dev/null @@ -1,54 +0,0 @@ -import request from '@/utils/request' - -// 创建物料行业 -export function createMaterialIndustry(data) { - return request({ - url: '/demo/material-industry/create', - method: 'post', - data: data - }) -} - -// 更新物料行业 -export function updateMaterialIndustry(data) { - return request({ - url: '/demo/material-industry/update', - method: 'put', - data: data - }) -} - -// 删除物料行业 -export function deleteMaterialIndustry(id) { - return request({ - url: '/demo/material-industry/delete?id=' + id, - method: 'delete' - }) -} - -// 获得物料行业 -export function getMaterialIndustry(id) { - return request({ - url: '/demo/material-industry/get?id=' + id, - method: 'get' - }) -} - -// 获得物料行业分页 -export function getMaterialIndustryPage(query) { - return request({ - url: '/demo/material-industry/page', - method: 'get', - params: query - }) -} - -// 导出物料行业 Excel -export function exportMaterialIndustryExcel(query) { - return request({ - url: '/demo/material-industry/export-excel', - method: 'get', - params: query, - responseType: 'blob' - }) -} diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/api/xxjj/materialCategory.js b/ruoyi-vue-pro-master/yudao-ui-admin/src/api/xxjj/materialCategory.js new file mode 100644 index 0000000..dfd3129 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-ui-admin/src/api/xxjj/materialCategory.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询物料分类列表 +export function listMaterialCategory(query) { + return request({ + url: '/xxjj/materialCategory/list', + method: 'get', + params: query + }) +} + +// 查询物料分类列表(排除节点) +export function listMaterialCategoryExcludeChild(materialCategoryId) { + return request({ + url: '/xxjj/materialCategory/list/exclude/' + materialCategoryId, + method: 'get' + }) +} + +// 查询物料分类详细 +export function getMaterialCategory(materialCategoryId) { + return request({ + url: '/xxjj/materialCategory/get?id=' + materialCategoryId, + method: 'get' + }) +} + +// 获取物料分类精简信息列表 +export function listSimpleMaterialCategorys() { + return request({ + url: '/xxjj/materialCategory/list-all-simple', + method: 'get' + }) +} + +// 新增物料分类 +export function addMaterialCategory(data) { + return request({ + url: '/xxjj/materialCategory/create', + method: 'post', + data: data + }) +} + +// 修改物料分类 +export function updateMaterialCategory(data) { + return request({ + url: '/xxjj/materialCategory/update', + method: 'put', + data: data + }) +} + +// 删除物料分类 +export function delMaterialCategory(id) { + return request({ + url: '/xxjj/materialCategory/delete?id=' + id, + method: 'delete' + }) +} diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialCategory/index.vue b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialCategory/index.vue new file mode 100644 index 0000000..c674196 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialCategory/index.vue @@ -0,0 +1,265 @@ + + + diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialIndustry/index.vue b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialIndustry/index.vue index 79cbc73..25f12e6 100644 --- a/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialIndustry/index.vue +++ b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/xxjj/materialIndustry/index.vue @@ -9,12 +9,6 @@ - - - - - @@ -43,11 +37,6 @@ - - -