parent
3654b7034f
commit
6313107275
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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<Long> 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<Boolean> 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<Boolean> deleteMaterialCategory(@RequestParam("id") Long id) {
|
||||
materialCategoryService.deleteMaterialCategory(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获取物料分类列表")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:query')")
|
||||
public CommonResult<List<MaterialCategoryRespVO>> getMaterialCategoryList(MaterialCategoryListReqVO reqVO) {
|
||||
List<MaterialCategoryDO> 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<List<MaterialCategorySimpleRespVO>> getSimpleMaterialCategoryList() {
|
||||
// 获得物料分类列表,只要开启状态的
|
||||
MaterialCategoryListReqVO reqVO = new MaterialCategoryListReqVO();
|
||||
List<MaterialCategoryDO> 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<MaterialCategoryRespVO> getMaterialCategory(@RequestParam("id") Long id) {
|
||||
return success(MaterialCategoryConvert.INSTANCE.convert(materialCategoryService.getMaterialCategory(id)));
|
||||
}
|
||||
|
||||
}
|
@ -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 {
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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<MaterialCategoryRespVO> convertList(List<MaterialCategoryDO> list);
|
||||
|
||||
List<MaterialCategorySimpleRespVO> convertList02(List<MaterialCategoryDO> list);
|
||||
|
||||
MaterialCategoryRespVO convert(MaterialCategoryDO bean);
|
||||
|
||||
MaterialCategoryDO convert(MaterialCategoryCreateReqVO bean);
|
||||
|
||||
MaterialCategoryDO convert(MaterialCategoryUpdateReqVO bean);
|
||||
|
||||
List<MaterialCategoryRespDTO> convertList03(List<MaterialCategoryDO> list);
|
||||
|
||||
MaterialCategoryRespDTO convert03(MaterialCategoryDO bean);
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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<MaterialCategoryDO> {
|
||||
|
||||
default List<MaterialCategoryDO> selectList(MaterialCategoryListReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialCategoryDO>()
|
||||
.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);
|
||||
}
|
||||
|
||||
}
|
@ -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'
|
||||
})
|
||||
}
|
@ -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'
|
||||
})
|
||||
}
|
Loading…
Reference in new issue