From c62630f74bec9d00fcf1c00b0f7aa2dabb54359f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 15 May 2026 18:23:59 +0800 Subject: [PATCH] feat(wms): 拆 simple-list 列表 VO、补首页校验与业务单号搜索框 --- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/WmsItemController.java | 5 +++-- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/vo/item/WmsItemListReqVO.java | 31 +++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/WmsMerchantController.java | 5 +++-- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/vo/WmsMerchantListReqVO.java | 28 ++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/merchant/WmsMerchantDO.java | 2 -- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemBrandMapper.java | 4 ++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemMapper.java | 3 ++- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/merchant/WmsMerchantMapper.java | 3 ++- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java | 1 + yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/home/WmsHomeStatisticsServiceImpl.java | 17 +++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImpl.java | 26 ++++++++++++++++++++++---- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemService.java | 5 +++-- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java | 7 ++++--- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantService.java | 5 +++-- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java | 5 +++-- yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImplTest.java | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16 files changed, 190 insertions(+), 21 deletions(-) create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/vo/item/WmsItemListReqVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/vo/WmsMerchantListReqVO.java create mode 100644 yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImplTest.java diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/WmsItemController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/WmsItemController.java index a39c132..86a8592 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/WmsItemController.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/WmsItemController.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemRespVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemSaveReqVO; @@ -98,8 +99,8 @@ public class WmsItemController { @GetMapping("/simple-list") @Operation(summary = "获得商品精简列表") @PreAuthorize("@ss.hasPermission('wms:item:query')") - public CommonResult> getItemSimpleList(@Valid WmsItemPageReqVO pageReqVO) { - List list = itemService.getItemList(pageReqVO); + public CommonResult> getItemSimpleList(@Valid WmsItemListReqVO listReqVO) { + List list = itemService.getItemList(listReqVO); return success(buildItemRespVOList(list)); } diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/vo/item/WmsItemListReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/vo/item/WmsItemListReqVO.java new file mode 100644 index 0000000..8dde808 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/item/vo/item/WmsItemListReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - WMS 商品列表 Request VO") +@Data +public class WmsItemListReqVO { + + @Schema(description = "商品编号", example = "ITEM001") + private String code; + + @Schema(description = "商品名称", example = "华为 nova flip") + private String name; + + @Schema(description = "商品分类编号", example = "1024") + private Long categoryId; + + @Schema(description = "商品品牌编号", example = "2048") + private Long brandId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/WmsMerchantController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/WmsMerchantController.java index cd4ec37..897f635 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/WmsMerchantController.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/WmsMerchantController.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantRespVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantSaveReqVO; @@ -80,8 +81,8 @@ public class WmsMerchantController { @GetMapping("/simple-list") @Operation(summary = "获得往来企业精简列表", description = "主要用于前端下拉") @PreAuthorize("@ss.hasPermission('wms:merchant:query')") - public CommonResult> getMerchantSimpleList(@Valid WmsMerchantPageReqVO pageReqVO) { - List list = merchantService.getMerchantList(pageReqVO); + public CommonResult> getMerchantSimpleList(@Valid WmsMerchantListReqVO listReqVO) { + List list = merchantService.getMerchantList(listReqVO); return success(BeanUtils.toBean(list, WmsMerchantRespVO.class)); } diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/vo/WmsMerchantListReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/vo/WmsMerchantListReqVO.java new file mode 100644 index 0000000..287a1bc --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/merchant/vo/WmsMerchantListReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.wms.enums.md.WmsMerchantTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - WMS 往来企业列表 Request VO") +@Data +public class WmsMerchantListReqVO { + + @Schema(description = "往来企业编号", example = "MER001") + private String code; + + @Schema(description = "往来企业名称", example = "华为") + private String name; + + @Schema(description = "往来企业类型", example = "2") + @InEnum(value = WmsMerchantTypeEnum.class, message = "往来企业类型必须是 {value}") + private Integer type; + + @Schema(description = "往来企业类型数组", example = "2,3") + @InEnum(value = WmsMerchantTypeEnum.class, message = "往来企业类型必须是 {value}") + private List types; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/merchant/WmsMerchantDO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/merchant/WmsMerchantDO.java index 82a7662..60b4c4d 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/merchant/WmsMerchantDO.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/merchant/WmsMerchantDO.java @@ -38,8 +38,6 @@ public class WmsMerchantDO extends BaseDO { /** * 往来企业类型 * - * DONE @AI:枚举类 - * * 枚举 {@link WmsMerchantTypeEnum} */ private Integer type; diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemBrandMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemBrandMapper.java index 262539f..ffb9418 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemBrandMapper.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemBrandMapper.java @@ -26,4 +26,8 @@ public interface WmsItemBrandMapper extends BaseMapperX { return selectOne(WmsItemBrandDO::getCode, code); } + default WmsItemBrandDO selectByName(String name) { + return selectOne(WmsItemBrandDO::getName, name); + } + } diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemMapper.java index 15ab5d1..5a17313 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemMapper.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/item/WmsItemMapper.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.wms.dal.mysql.md.item; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemPageReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO; import org.apache.ibatis.annotations.Mapper; @@ -28,7 +29,7 @@ public interface WmsItemMapper extends BaseMapperX { .orderByDesc(WmsItemDO::getId)); } - default List selectList(WmsItemPageReqVO reqVO, Collection categoryIds) { + default List selectList(WmsItemListReqVO reqVO, Collection categoryIds) { return selectList(new LambdaQueryWrapperX() .likeIfPresent(WmsItemDO::getCode, reqVO.getCode()) .likeIfPresent(WmsItemDO::getName, reqVO.getName()) diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/merchant/WmsMerchantMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/merchant/WmsMerchantMapper.java index 47abdb8..0bca7ae 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/merchant/WmsMerchantMapper.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/merchant/WmsMerchantMapper.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.wms.dal.mysql.md.merchant; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantPageReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO; import org.apache.ibatis.annotations.Mapper; @@ -26,7 +27,7 @@ public interface WmsMerchantMapper extends BaseMapperX { .orderByDesc(WmsMerchantDO::getId)); } - default List selectList(WmsMerchantPageReqVO reqVO) { + default List selectList(WmsMerchantListReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(WmsMerchantDO::getCode, reqVO.getCode()) .likeIfPresent(WmsMerchantDO::getName, reqVO.getName()) diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java index c3ca935..6169af7 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/enums/ErrorCodeConstants.java @@ -30,6 +30,7 @@ public interface ErrorCodeConstants { ErrorCode ITEM_BRAND_NOT_EXISTS = new ErrorCode(1_060_103_000, "商品品牌不存在"); ErrorCode ITEM_BRAND_HAS_ITEM = new ErrorCode(1_060_103_001, "删除失败!品牌已被商品使用!"); ErrorCode ITEM_BRAND_CODE_DUPLICATE = new ErrorCode(1_060_103_002, "商品品牌编号重复"); + ErrorCode ITEM_BRAND_NAME_DUPLICATE = new ErrorCode(1_060_103_003, "商品品牌名称重复"); // ========== WMS 基础数据-商品 1-060-104-000 ========== ErrorCode ITEM_NOT_EXISTS = new ErrorCode(1_060_104_000, "商品不存在"); diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/home/WmsHomeStatisticsServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/home/WmsHomeStatisticsServiceImpl.java index 3557824..8aa2926 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/home/WmsHomeStatisticsServiceImpl.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/home/WmsHomeStatisticsServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.wms.controller.admin.home.vo.WmsHomeOrderTrendRes import cn.iocoder.yudao.module.wms.dal.mysql.home.WmsHomeStatisticsMapper; import cn.iocoder.yudao.module.wms.enums.order.WmsOrderStatusEnum; import cn.iocoder.yudao.module.wms.enums.order.WmsOrderTypeEnum; +import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -37,10 +38,15 @@ public class WmsHomeStatisticsServiceImpl implements WmsHomeStatisticsService { @Resource private WmsHomeStatisticsMapper homeStatisticsMapper; + @Resource + private WmsWarehouseService warehouseService; @Override public List getOrderSummary(Long warehouseId) { + validateWarehouseIfPresent(warehouseId); + // 查询单据数量 List> stats = homeStatisticsMapper.selectOrderCountGroupByTypeAndStatus(warehouseId); + // 按照单据类型 + 单据状态分组 return convertList(WmsOrderTypeEnum.values(), orderTypeEnum -> { List statuses = convertList(WmsOrderStatusEnum.values(), statusEnum -> new WmsHomeOrderStatusRespVO().setStatus(statusEnum.getStatus()) @@ -52,6 +58,7 @@ public class WmsHomeStatisticsServiceImpl implements WmsHomeStatisticsService { @Override public List getOrderTrend(Integer days, Long warehouseId) { + validateWarehouseIfPresent(warehouseId); // 统计区间为 [今天 - days + 1, 明天),保证最近 days 天包含今天。 LocalDate endDate = LocalDate.now().plusDays(1); LocalDate startDate = endDate.minusDays(days); @@ -80,6 +87,7 @@ public class WmsHomeStatisticsServiceImpl implements WmsHomeStatisticsService { @Override public WmsHomeInventorySummaryRespVO getInventorySummary(Long warehouseId, Integer goodsLimit, Integer warehouseLimit) { + validateWarehouseIfPresent(warehouseId); BigDecimal totalQuantity = ObjectUtil.defaultIfNull(homeStatisticsMapper.selectInventoryTotalQuantity(warehouseId), BigDecimal.ZERO); List> itemRows = homeStatisticsMapper.selectInventoryItemRank(warehouseId, goodsLimit); List> warehouseRows = homeStatisticsMapper.selectInventoryWarehouseRank(warehouseId, warehouseLimit); @@ -90,6 +98,15 @@ public class WmsHomeStatisticsServiceImpl implements WmsHomeStatisticsService { // ==================== 工具方法 ==================== + /** + * 仓库编号非空时,校验仓库是否存在,避免前端误传任意 id 直接落到 SQL。 + */ + private void validateWarehouseIfPresent(Long warehouseId) { + if (warehouseId != null) { + warehouseService.validateWarehouseExists(warehouseId); + } + } + private long getOrderCount(List> stats, Integer orderType, Integer status) { for (Map stat : stats) { if (ObjectUtil.equal(MapUtil.getInt(stat, "orderType"), orderType) diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImpl.java index 58d8936..051bd9c 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImpl.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImpl.java @@ -19,6 +19,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.ITEM_BRAND_CODE_DUPLICATE; import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.ITEM_BRAND_HAS_ITEM; +import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.ITEM_BRAND_NAME_DUPLICATE; import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.ITEM_BRAND_NOT_EXISTS; /** @@ -37,9 +38,9 @@ public class WmsItemBrandServiceImpl implements WmsItemBrandService { @Override public Long createItemBrand(WmsItemBrandSaveReqVO createReqVO) { - // 校验编号唯一 - validateBrandCodeUnique(null, createReqVO.getCode()); + validateBrandSaveData(null, createReqVO); + // 新增 WmsItemBrandDO brand = BeanUtils.toBean(createReqVO, WmsItemBrandDO.class); brandMapper.insert(brand); return brand.getId(); @@ -49,14 +50,18 @@ public class WmsItemBrandServiceImpl implements WmsItemBrandService { public void updateItemBrand(WmsItemBrandSaveReqVO updateReqVO) { // 校验存在 validateItemBrandExists(updateReqVO.getId()); - // 校验编号唯一 - validateBrandCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + validateBrandSaveData(updateReqVO.getId(), updateReqVO); // 更新 WmsItemBrandDO updateObj = BeanUtils.toBean(updateReqVO, WmsItemBrandDO.class); brandMapper.updateById(updateObj); } + private void validateBrandSaveData(Long id, WmsItemBrandSaveReqVO reqVO) { + validateBrandCodeUnique(id, reqVO.getCode()); + validateBrandNameUnique(id, reqVO.getName()); + } + private void validateBrandCodeUnique(Long id, String code) { WmsItemBrandDO brand = brandMapper.selectByCode(code); if (brand == null) { @@ -71,6 +76,19 @@ public class WmsItemBrandServiceImpl implements WmsItemBrandService { } } + private void validateBrandNameUnique(Long id, String name) { + WmsItemBrandDO brand = brandMapper.selectByName(name); + if (brand == null) { + return; + } + if (id == null) { + throw exception(ITEM_BRAND_NAME_DUPLICATE); + } + if (ObjectUtil.notEqual(brand.getId(), id)) { + throw exception(ITEM_BRAND_NAME_DUPLICATE); + } + } + @Override public void deleteItemBrand(Long id) { // 校验存在 diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemService.java index 48755e7..c748829 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemService.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.wms.service.md.item; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemSaveReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO; @@ -68,10 +69,10 @@ public interface WmsItemService { /** * 获得商品列表 * - * @param pageReqVO 查询条件 + * @param listReqVO 查询条件 * @return 商品列表 */ - List getItemList(WmsItemPageReqVO pageReqVO); + List getItemList(WmsItemListReqVO listReqVO); /** * 按编号集合获得商品列表 diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java index c49c8d9..05658b8 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.item.WmsItemSaveReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO; @@ -132,9 +133,9 @@ public class WmsItemServiceImpl implements WmsItemService { } @Override - public List getItemList(WmsItemPageReqVO pageReqVO) { - return itemMapper.selectList(pageReqVO, - categoryService.getSelfAndChildItemCategoryIdList(pageReqVO.getCategoryId())); + public List getItemList(WmsItemListReqVO listReqVO) { + return itemMapper.selectList(listReqVO, + categoryService.getSelfAndChildItemCategoryIdList(listReqVO.getCategoryId())); } @Override diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantService.java index 2bafaec..aa77e26 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantService.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.wms.service.md.merchant; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantSaveReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO; @@ -86,10 +87,10 @@ public interface WmsMerchantService { /** * 获得往来企业列表 * - * @param pageReqVO 查询条件 + * @param listReqVO 查询条件 * @return 往来企业列表 */ - List getMerchantList(WmsMerchantPageReqVO pageReqVO); + List getMerchantList(WmsMerchantListReqVO listReqVO); /** * 按编号集合获得往来企业列表 diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java index 58924a8..cd6eef0 100644 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/merchant/WmsMerchantServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantListReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantPageReqVO; import cn.iocoder.yudao.module.wms.controller.admin.md.merchant.vo.WmsMerchantSaveReqVO; import cn.iocoder.yudao.module.wms.dal.dataobject.md.merchant.WmsMerchantDO; @@ -119,8 +120,8 @@ public class WmsMerchantServiceImpl implements WmsMerchantService { } @Override - public List getMerchantList(WmsMerchantPageReqVO pageReqVO) { - return merchantMapper.selectList(pageReqVO); + public List getMerchantList(WmsMerchantListReqVO listReqVO) { + return merchantMapper.selectList(listReqVO); } @Override diff --git a/yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImplTest.java b/yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImplTest.java new file mode 100644 index 0000000..9571961 --- /dev/null +++ b/yudao-module-wms/src/test/java/cn/iocoder/yudao/module/wms/service/md/item/WmsItemBrandServiceImplTest.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.wms.service.md.item; + +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; +import cn.iocoder.yudao.module.wms.controller.admin.md.item.vo.brand.WmsItemBrandSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemBrandDO; +import cn.iocoder.yudao.module.wms.dal.mysql.md.item.WmsItemBrandMapper; +import jakarta.annotation.Resource; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.bean.override.mockito.MockitoBean; + +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; +import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.ITEM_BRAND_NAME_DUPLICATE; + +@Import(WmsItemBrandServiceImpl.class) +public class WmsItemBrandServiceImplTest extends BaseDbUnitTest { + + @Resource + private WmsItemBrandServiceImpl brandService; + + @Resource + private WmsItemBrandMapper brandMapper; + + @MockitoBean + private WmsItemService itemService; + + @Test + public void testCreateItemBrand_nameDuplicate() { + // mock 数据 + brandMapper.insert(createBrand("B001", "华为")); + WmsItemBrandSaveReqVO reqVO = createBrandSaveReqVO(null, "B002", "华为"); + + // 调用,并断言 + assertServiceException(() -> brandService.createItemBrand(reqVO), ITEM_BRAND_NAME_DUPLICATE); + } + + @Test + public void testUpdateItemBrand_nameDuplicate() { + // mock 数据 + brandMapper.insert(createBrand("B001", "华为")); + WmsItemBrandDO brand = createBrand("B002", "小米"); + brandMapper.insert(brand); + WmsItemBrandSaveReqVO reqVO = createBrandSaveReqVO(brand.getId(), "B002", "华为"); + + // 调用,并断言 + assertServiceException(() -> brandService.updateItemBrand(reqVO), ITEM_BRAND_NAME_DUPLICATE); + } + + private static WmsItemBrandDO createBrand(String code, String name) { + return WmsItemBrandDO.builder() + .code(code) + .name(name) + .build(); + } + + private static WmsItemBrandSaveReqVO createBrandSaveReqVO(Long id, String code, String name) { + WmsItemBrandSaveReqVO reqVO = new WmsItemBrandSaveReqVO(); + reqVO.setId(id); + reqVO.setCode(code); + reqVO.setName(name); + return reqVO; + } + +} -- libgit2 0.21.4