diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductCategoryController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductCategoryController.java index b82eb46ac..90f3f2e4c 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductCategoryController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductCategoryController.java @@ -80,9 +80,9 @@ public class ErpProductCategoryController { @GetMapping("/simple-list") @Operation(summary = "获得产品分类精简列表", description = "只包含被开启的分类,主要用于前端的下拉选项") - public CommonResult> getProductCategorySimpleList() { + public CommonResult> getProductCategorySimpleList(@RequestParam("type") Integer type) { List list = productCategoryService.getProductCategoryList( - new ErpProductCategoryListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus())); + new ErpProductCategoryListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()).setType(type)); return success(convertList(list, category -> new ErpProductCategoryRespVO() .setId(category.getId()).setName(category.getName()).setParentId(category.getParentId()).setSort(category.getSort()))); } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java index 397e17f05..b8c174956 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/ErpProductController.java @@ -128,8 +128,11 @@ public class ErpProductController { } @GetMapping("/simple-list-product") @Operation(summary = "获得产品精简列表", description = "只包含被开启的产品,主要用于前端的下拉选项") - public CommonResult> getProductSimpleList() { - List list = productService.getProductVOListByCategory(ProductTypeEnum.PRODUCT.getTypeId()); + public CommonResult> getProductSimpleList( + @Parameter(name = "categoryType", description = "产品分类类型", example = "1") + @RequestParam(name = "categoryType", required = false) Integer categoryType) { +// List list = productService.getProductVOListByCategory(ProductTypeEnum.PRODUCT.getTypeId(), categoryType); + List list = productService.getProductVOListByCategory(null, categoryType); return success(convertList(list, product -> new ErpProductRespVO().setId(product.getId()) .setName(product.getName()).setBarCode(product.getBarCode()) .setCategoryId(product.getCategoryId()).setCategoryName(product.getCategoryName()) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/category/ErpProductCategorySaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/category/ErpProductCategorySaveReqVO.java index 201805c43..6ecbe2e6f 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/category/ErpProductCategorySaveReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/category/ErpProductCategorySaveReqVO.java @@ -30,7 +30,7 @@ public class ErpProductCategorySaveReqVO { private Integer sort; @Schema(description = "分类类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "分类类型不能为空") +// @NotNull(message = "分类类型不能为空") private Integer type; @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductListReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductListReqVO.java index 8110383b5..a3349e81e 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductListReqVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductListReqVO.java @@ -15,6 +15,9 @@ public class ErpProductListReqVO { @Schema(description = "产品分类编号", example = "11161") private Long categoryId; + @Schema(description = "产品分类类型", example = "1") + private Integer categoryType; + @Schema(description = "产品编号", example = "11161") private String code; diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductRespVO.java index 8cef3a6bf..db1bbeeb7 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/product/vo/product/ErpProductRespVO.java @@ -33,6 +33,9 @@ public class ErpProductRespVO extends ErpProductDO { @Schema(description = "产品分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11161") private Long categoryId; + + @Schema(description = "产品分类类型") + private Integer categoryType; @Schema(description = "产品分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "水果") @ExcelProperty("产品分类") private String categoryName; diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/product/ErpProductMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/product/ErpProductMapper.java index 74b41801c..461432eb1 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/product/ErpProductMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/product/ErpProductMapper.java @@ -15,6 +15,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -34,6 +35,9 @@ public interface ErpProductMapper extends BaseMapperX { default PageResult selectPage(ErpProductPageReqVO reqVO) { List categoryIds = selectCategoryIdsByType(reqVO.getCategoryType()); + if (reqVO.getCategoryType() != null && CollUtil.isEmpty(categoryIds)) { + return PageResult.empty(); + } return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(ErpProductDO::getName, reqVO.getName()) @@ -55,11 +59,16 @@ public interface ErpProductMapper extends BaseMapperX { List selectCategoryIdListByType(@Param("categoryType") Integer categoryType); default List selectList(ErpProductListReqVO reqVO) { + List categoryIds = selectCategoryIdsByType(reqVO.getCategoryType()); + if (reqVO.getCategoryType() != null && CollUtil.isEmpty(categoryIds)) { + return new ArrayList<>(); + } return selectList(new LambdaQueryWrapperX() .inIfPresent(ErpProductDO::getId, reqVO.getIds()) .likeIfPresent(ErpProductDO::getName, reqVO.getName()) .likeIfPresent(ErpProductDO::getBarCode, reqVO.getCode()) .eqIfPresent(ErpProductDO::getCategoryId, reqVO.getCategoryId()) + .inIfPresent(ErpProductDO::getCategoryId, categoryIds) .likeIfPresent(ErpProductDO::getStandard, reqVO.getStandard()) .orderByDesc(ErpProductDO::getId)); } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java index b1c4e10b9..4c7f2a239 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductService.java @@ -74,6 +74,7 @@ public interface ErpProductService { */ List getProductVOListByStatus(Integer status,Integer categoryId); List getProductVOListByCategory(Integer categoryId); + List getProductVOListByCategory(Integer categoryId, Integer categoryType); List buildProductVOList(List list); /** * 获得产品 VO 列表 diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java index 27badb503..e9980571a 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java @@ -125,14 +125,16 @@ public class ErpProductServiceImpl implements ErpProductService { throw exception(PRODUCT_CATEGORY_NOT_EXISTS); } - Long id = productCategory.getParentId(); +// Long id = productCategory.getParentId(); product.setSubCategoryName(productCategory.getName()); product.setSubCategoryId(product.getCategoryId()); - while(id != 0) { - productCategory = productCategoryMapper.selectById(id); - product.setCategoryId(id); - id = productCategory.getParentId(); - } + product.setCategoryId(product.getCategoryId()); + +// while(id != 0) { +// productCategory = productCategoryMapper.selectById(id); +// product.setCategoryId(id); +// id = productCategory.getParentId(); +// } // 自动生成才拼接 分类编码-流水号;手工输入则原样保存 if (autoGeneratedCode) { @@ -311,6 +313,8 @@ public class ErpProductServiceImpl implements ErpProductService { if (product == null) { return null; } + ErpProductCategoryDO erpProductCategoryDO = productCategoryMapper.selectOne(Wrappers.lambdaQuery().eq(ErpProductCategoryDO::getId, product.getSubCategoryId())); + String qrcodeUrl = qrcodeService.selectQrcodeUrlByIdAndCode( QrcodeBizTypeEnum.PRODUCT.getCode(), id, product.getBarCode()); @@ -319,6 +323,9 @@ public class ErpProductServiceImpl implements ErpProductService { ErpProductRespVO respVO = BeanUtils.toBean(product, ErpProductRespVO.class); respVO.setDevices(productMapper.selectDevicesByProductId(id)); respVO.setMolds(productMapper.selectMoldsByProductId(id)); + if (erpProductCategoryDO !=null ){ + respVO.setCategoryType(erpProductCategoryDO.getType()); + } // // respVO.setDeviceIds(respVO.getDevices().stream() // .map(ProductRelationRespVO::getId) @@ -377,6 +384,15 @@ public class ErpProductServiceImpl implements ErpProductService { return buildProductVOList(list); } + @Override + public List getProductVOListByCategory(Integer categoryId, Integer categoryType) { + ErpProductListReqVO reqVO = new ErpProductListReqVO(); + reqVO.setCategoryId(categoryId == null ? null : categoryId.longValue()); + reqVO.setCategoryType(categoryType); + List list = productMapper.selectList(reqVO); + return buildProductVOList(list); + } + @Override public List getProductVOList(Collection ids) { if (CollUtil.isEmpty(ids)) {