From 00dce6435cca858a7dbb995c9ece7635172bb4eb Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 10 May 2026 09:02:52 +0800 Subject: [PATCH] feat(wms):迁移到 md 更整体 --- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseController.java | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehousePageReqVO.java | 21 +++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseRespVO.java | 39 +++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseSaveReqVO.java | 32 ++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java | 24 ++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java | 43 +++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java | 32 ++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseAreaController.java | 111 --------------------------------------------------------------------------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseController.java | 82 ---------------------------------------------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehousePageReqVO.java | 21 --------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseRespVO.java | 39 --------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseSaveReqVO.java | 32 -------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java | 24 ------------------------ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaRespVO.java | 43 ------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java | 32 -------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseDO.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseAreaDO.java | 48 ------------------------------------------------ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseDO.java | 46 ---------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseAreaMapper.java | 48 ------------------------------------------------ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseMapper.java | 42 ------------------------------------------ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseService.java | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaService.java | 72 ------------------------------------------------------------------------ yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaServiceImpl.java | 136 ---------------------------------------------------------------------------------------------------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseService.java | 87 --------------------------------------------------------------------------------------- yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseServiceImpl.java | 137 ----------------------------------------------------------------------------------------------------------------------------------------- 32 files changed, 1000 insertions(+), 1000 deletions(-) create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseController.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehousePageReqVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseRespVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseSaveReqVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseAreaController.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseController.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehousePageReqVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseRespVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseSaveReqVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaRespVO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseDO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseAreaDO.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseDO.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseMapper.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseAreaMapper.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseMapper.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseService.java create mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaService.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaServiceImpl.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseService.java delete mode 100644 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseServiceImpl.java diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java new file mode 100644 index 0000000..809814d --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseAreaController.java @@ -0,0 +1,111 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +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.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaRespVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; +import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseAreaService; +import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getFirst; + +@Tag(name = "管理后台 - WMS 库区") +@RestController +@RequestMapping("/wms/warehouse-area") +@Validated +public class WmsWarehouseAreaController { + + @Resource + private WmsWarehouseAreaService warehouseAreaService; + @Resource + private WmsWarehouseService warehouseService; + + @PostMapping("/create") + @Operation(summary = "创建库区") + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:create')") + public CommonResult createWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO createReqVO) { + return success(warehouseAreaService.createWarehouseArea(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新库区") + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:update')") + public CommonResult updateWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO updateReqVO) { + warehouseAreaService.updateWarehouseArea(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除库区") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:delete')") + public CommonResult deleteWarehouseArea(@RequestParam("id") Long id) { + warehouseAreaService.deleteWarehouseArea(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得库区") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") + public CommonResult getWarehouseArea(@RequestParam("id") Long id) { + WmsWarehouseAreaDO area = warehouseAreaService.getWarehouseArea(id); + return success(buildWarehouseAreaRespVO(area)); + } + + @GetMapping("/page") + @Operation(summary = "获得库区分页") + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") + public CommonResult> getWarehouseAreaPage(@Valid WmsWarehouseAreaPageReqVO pageReqVO) { + PageResult pageResult = warehouseAreaService.getWarehouseAreaPage(pageReqVO); + return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal())); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得库区精简列表", description = "可按仓库过滤") + @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") + public CommonResult> getWarehouseAreaSimpleList( + @Parameter(name = "warehouseId", description = "仓库编号") @RequestParam(value = "warehouseId", required = false) Long warehouseId) { + List list = warehouseAreaService.getWarehouseAreaList(warehouseId); + return success(buildWarehouseAreaRespVOList(list)); + } + + // ==================== 拼接 VO ==================== + + private WmsWarehouseAreaRespVO buildWarehouseAreaRespVO(WmsWarehouseAreaDO area) { + if (area == null) { + return null; + } + return getFirst(buildWarehouseAreaRespVOList(Collections.singletonList(area))); + } + + private List buildWarehouseAreaRespVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsWarehouseAreaDO::getWarehouseId)); + return BeanUtils.toBean(list, WmsWarehouseAreaRespVO.class, vo -> + MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()))); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseController.java new file mode 100644 index 0000000..b473137 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/WmsWarehouseController.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +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.warehouse.vo.WmsWarehousePageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseRespVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; +import cn.iocoder.yudao.module.wms.service.md.warehouse.WmsWarehouseService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - WMS 仓库") +@RestController +@RequestMapping("/wms/warehouse") +@Validated +public class WmsWarehouseController { + + @Resource + private WmsWarehouseService warehouseService; + + @PostMapping("/create") + @Operation(summary = "创建仓库") + @PreAuthorize("@ss.hasPermission('wms:warehouse:create')") + public CommonResult createWarehouse(@Valid @RequestBody WmsWarehouseSaveReqVO createReqVO) { + return success(warehouseService.createWarehouse(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新仓库") + @PreAuthorize("@ss.hasPermission('wms:warehouse:update')") + public CommonResult updateWarehouse(@Valid @RequestBody WmsWarehouseSaveReqVO updateReqVO) { + warehouseService.updateWarehouse(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除仓库") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:warehouse:delete')") + public CommonResult deleteWarehouse(@RequestParam("id") Long id) { + warehouseService.deleteWarehouse(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得仓库") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") + public CommonResult getWarehouse(@RequestParam("id") Long id) { + WmsWarehouseDO warehouse = warehouseService.getWarehouse(id); + return success(BeanUtils.toBean(warehouse, WmsWarehouseRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得仓库分页") + @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") + public CommonResult> getWarehousePage(@Valid WmsWarehousePageReqVO pageReqVO) { + PageResult pageResult = warehouseService.getWarehousePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, WmsWarehouseRespVO.class)); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得仓库精简列表", description = "主要用于前端下拉") + @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") + public CommonResult> getWarehouseSimpleList() { + List list = warehouseService.getWarehouseList(); + return success(BeanUtils.toBean(list, WmsWarehouseRespVO.class)); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehousePageReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehousePageReqVO.java new file mode 100644 index 0000000..43fcf5c --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehousePageReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - WMS 仓库分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class WmsWarehousePageReqVO extends PageParam { + + @Schema(description = "仓库编号", example = "WH001") + private String code; + + @Schema(description = "仓库名称", example = "原料仓") + private String name; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseRespVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseRespVO.java new file mode 100644 index 0000000..67c16bf --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - WMS 仓库 Response VO") +@Data +@ExcelIgnoreUnannotated +public class WmsWarehouseRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "仓库编号", example = "WH001") + @ExcelProperty("仓库编号") + private String code; + + @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓") + @ExcelProperty("仓库名称") + private String name; + + @Schema(description = "备注", example = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("排序") + private Integer sort; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseSaveReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseSaveReqVO.java new file mode 100644 index 0000000..cb2da87 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/WmsWarehouseSaveReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +@Schema(description = "管理后台 - WMS 仓库新增/修改 Request VO") +@Data +public class WmsWarehouseSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "WH001") + @NotEmpty(message = "仓库编号不能为空") + @Size(max = 20, message = "仓库编号长度不能超过 20 个字符") + private String code; + + @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓") + @NotEmpty(message = "仓库名称不能为空") + private String name; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "排序不能为空") + private Integer sort; + + @Schema(description = "备注", example = "备注") + private String remark; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java new file mode 100644 index 0000000..393e2f1 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - WMS 库区分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class WmsWarehouseAreaPageReqVO extends PageParam { + + @Schema(description = "库区编号", example = "A001") + private String code; + + @Schema(description = "库区名称", example = "A 区") + private String name; + + @Schema(description = "所属仓库编号", example = "1024") + private Long warehouseId; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java new file mode 100644 index 0000000..a53559b --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - WMS 库区 Response VO") +@Data +@ExcelIgnoreUnannotated +public class WmsWarehouseAreaRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "库区编号", example = "A001") + @ExcelProperty("库区编号") + private String code; + + @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区") + @ExcelProperty("库区名称") + private String name; + + @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("所属仓库编号") + private Long warehouseId; + + @Schema(description = "所属仓库名称", example = "原料仓") + @ExcelProperty("所属仓库名称") + private String warehouseName; + + @Schema(description = "备注", example = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java new file mode 100644 index 0000000..40830a2 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/md/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +@Schema(description = "管理后台 - WMS 库区新增/修改 Request VO") +@Data +public class WmsWarehouseAreaSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "A001") + @NotEmpty(message = "库区编号不能为空") + @Size(max = 20, message = "库区编号长度不能超过 20 个字符") + private String code; + + @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区") + @NotEmpty(message = "库区名称不能为空") + private String name; + + @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "所属仓库不能为空") + private Long warehouseId; + + @Schema(description = "备注", example = "备注") + private String remark; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseAreaController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseAreaController.java deleted file mode 100644 index 537c92c..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseAreaController.java +++ /dev/null @@ -1,111 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse; - -import cn.hutool.core.collection.CollUtil; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -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.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaPageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaRespVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseAreaDO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseDO; -import cn.iocoder.yudao.module.wms.service.warehouse.WmsWarehouseAreaService; -import cn.iocoder.yudao.module.wms.service.warehouse.WmsWarehouseService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getFirst; - -@Tag(name = "管理后台 - WMS 库区") -@RestController -@RequestMapping("/wms/warehouse-area") -@Validated -public class WmsWarehouseAreaController { - - @Resource - private WmsWarehouseAreaService warehouseAreaService; - @Resource - private WmsWarehouseService warehouseService; - - @PostMapping("/create") - @Operation(summary = "创建库区") - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:create')") - public CommonResult createWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO createReqVO) { - return success(warehouseAreaService.createWarehouseArea(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新库区") - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:update')") - public CommonResult updateWarehouseArea(@Valid @RequestBody WmsWarehouseAreaSaveReqVO updateReqVO) { - warehouseAreaService.updateWarehouseArea(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除库区") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:delete')") - public CommonResult deleteWarehouseArea(@RequestParam("id") Long id) { - warehouseAreaService.deleteWarehouseArea(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得库区") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") - public CommonResult getWarehouseArea(@RequestParam("id") Long id) { - WmsWarehouseAreaDO area = warehouseAreaService.getWarehouseArea(id); - return success(buildWarehouseAreaRespVO(area)); - } - - @GetMapping("/page") - @Operation(summary = "获得库区分页") - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") - public CommonResult> getWarehouseAreaPage(@Valid WmsWarehouseAreaPageReqVO pageReqVO) { - PageResult pageResult = warehouseAreaService.getWarehouseAreaPage(pageReqVO); - return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal())); - } - - @GetMapping("/simple-list") - @Operation(summary = "获得库区精简列表", description = "可按仓库过滤") - @PreAuthorize("@ss.hasPermission('wms:warehouse-area:query')") - public CommonResult> getWarehouseAreaSimpleList( - @Parameter(name = "warehouseId", description = "仓库编号") @RequestParam(value = "warehouseId", required = false) Long warehouseId) { - List list = warehouseAreaService.getWarehouseAreaList(warehouseId); - return success(buildWarehouseAreaRespVOList(list)); - } - - // ==================== 拼接 VO ==================== - - private WmsWarehouseAreaRespVO buildWarehouseAreaRespVO(WmsWarehouseAreaDO area) { - if (area == null) { - return null; - } - return getFirst(buildWarehouseAreaRespVOList(Collections.singletonList(area))); - } - - private List buildWarehouseAreaRespVOList(List list) { - if (CollUtil.isEmpty(list)) { - return Collections.emptyList(); - } - Map warehouseMap = warehouseService.getWarehouseMap(convertSet(list, WmsWarehouseAreaDO::getWarehouseId)); - return BeanUtils.toBean(list, WmsWarehouseAreaRespVO.class, vo -> - MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()))); - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseController.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseController.java deleted file mode 100644 index 6a12c96..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/WmsWarehouseController.java +++ /dev/null @@ -1,82 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -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.warehouse.vo.WmsWarehousePageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.WmsWarehouseRespVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.WmsWarehouseSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseDO; -import cn.iocoder.yudao.module.wms.service.warehouse.WmsWarehouseService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - WMS 仓库") -@RestController -@RequestMapping("/wms/warehouse") -@Validated -public class WmsWarehouseController { - - @Resource - private WmsWarehouseService warehouseService; - - @PostMapping("/create") - @Operation(summary = "创建仓库") - @PreAuthorize("@ss.hasPermission('wms:warehouse:create')") - public CommonResult createWarehouse(@Valid @RequestBody WmsWarehouseSaveReqVO createReqVO) { - return success(warehouseService.createWarehouse(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新仓库") - @PreAuthorize("@ss.hasPermission('wms:warehouse:update')") - public CommonResult updateWarehouse(@Valid @RequestBody WmsWarehouseSaveReqVO updateReqVO) { - warehouseService.updateWarehouse(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除仓库") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:warehouse:delete')") - public CommonResult deleteWarehouse(@RequestParam("id") Long id) { - warehouseService.deleteWarehouse(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得仓库") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") - public CommonResult getWarehouse(@RequestParam("id") Long id) { - WmsWarehouseDO warehouse = warehouseService.getWarehouse(id); - return success(BeanUtils.toBean(warehouse, WmsWarehouseRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得仓库分页") - @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") - public CommonResult> getWarehousePage(@Valid WmsWarehousePageReqVO pageReqVO) { - PageResult pageResult = warehouseService.getWarehousePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, WmsWarehouseRespVO.class)); - } - - @GetMapping("/simple-list") - @Operation(summary = "获得仓库精简列表", description = "主要用于前端下拉") - @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") - public CommonResult> getWarehouseSimpleList() { - List list = warehouseService.getWarehouseList(); - return success(BeanUtils.toBean(list, WmsWarehouseRespVO.class)); - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehousePageReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehousePageReqVO.java deleted file mode 100644 index 7ec1686..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehousePageReqVO.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Schema(description = "管理后台 - WMS 仓库分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class WmsWarehousePageReqVO extends PageParam { - - @Schema(description = "仓库编号", example = "WH001") - private String code; - - @Schema(description = "仓库名称", example = "原料仓") - private String name; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseRespVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseRespVO.java deleted file mode 100644 index d17def8..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseRespVO.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo; - -import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - WMS 仓库 Response VO") -@Data -@ExcelIgnoreUnannotated -public class WmsWarehouseRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("编号") - private Long id; - - @Schema(description = "仓库编号", example = "WH001") - @ExcelProperty("仓库编号") - private String code; - - @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓") - @ExcelProperty("仓库名称") - private String name; - - @Schema(description = "备注", example = "备注") - @ExcelProperty("备注") - private String remark; - - @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @ExcelProperty("排序") - private Integer sort; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseSaveReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseSaveReqVO.java deleted file mode 100644 index 816e1a4..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/WmsWarehouseSaveReqVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Data; - -@Schema(description = "管理后台 - WMS 仓库新增/修改 Request VO") -@Data -public class WmsWarehouseSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "WH001") - @NotEmpty(message = "仓库编号不能为空") - @Size(max = 20, message = "仓库编号长度不能超过 20 个字符") - private String code; - - @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓") - @NotEmpty(message = "仓库名称不能为空") - private String name; - - @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "排序不能为空") - private Integer sort; - - @Schema(description = "备注", example = "备注") - private String remark; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java deleted file mode 100644 index f257a66..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaPageReqVO.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Schema(description = "管理后台 - WMS 库区分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class WmsWarehouseAreaPageReqVO extends PageParam { - - @Schema(description = "库区编号", example = "A001") - private String code; - - @Schema(description = "库区名称", example = "A 区") - private String name; - - @Schema(description = "所属仓库编号", example = "1024") - private Long warehouseId; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaRespVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaRespVO.java deleted file mode 100644 index 3a976b3..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaRespVO.java +++ /dev/null @@ -1,43 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area; - -import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - WMS 库区 Response VO") -@Data -@ExcelIgnoreUnannotated -public class WmsWarehouseAreaRespVO { - - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("编号") - private Long id; - - @Schema(description = "库区编号", example = "A001") - @ExcelProperty("库区编号") - private String code; - - @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区") - @ExcelProperty("库区名称") - private String name; - - @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("所属仓库编号") - private Long warehouseId; - - @Schema(description = "所属仓库名称", example = "原料仓") - @ExcelProperty("所属仓库名称") - private String warehouseName; - - @Schema(description = "备注", example = "备注") - @ExcelProperty("备注") - private String remark; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java deleted file mode 100644 index 6ac93cc..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/controller/admin/warehouse/vo/area/WmsWarehouseAreaSaveReqVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Data; - -@Schema(description = "管理后台 - WMS 库区新增/修改 Request VO") -@Data -public class WmsWarehouseAreaSaveReqVO { - - @Schema(description = "编号", example = "1024") - private Long id; - - @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "A001") - @NotEmpty(message = "库区编号不能为空") - @Size(max = 20, message = "库区编号长度不能超过 20 个字符") - private String code; - - @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "A 区") - @NotEmpty(message = "库区名称不能为空") - private String name; - - @Schema(description = "所属仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @NotNull(message = "所属仓库不能为空") - private Long warehouseId; - - @Schema(description = "备注", example = "备注") - private String remark; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java new file mode 100644 index 0000000..0312a4a --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseAreaDO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse; + +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.*; + +/** + * WMS 库区 DO + * + * @author 芋道源码 + */ +@TableName("wms_warehouse_area") +@KeySequence("wms_warehouse_area_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WmsWarehouseAreaDO extends BaseDO { + + /** + * 主键编号 + */ + @TableId + private Long id; + /** + * 库区编号 + */ + private String code; + /** + * 名称 + */ + private String name; + /** + * 所属仓库编号 + * + * 关联 {@link WmsWarehouseDO#getId()} + */ + private Long warehouseId; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseDO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseDO.java new file mode 100644 index 0000000..e73c112 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/md/warehouse/WmsWarehouseDO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse; + +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.*; + +/** + * WMS 仓库 DO + * + * @author 芋道源码 + */ +@TableName("wms_warehouse") +@KeySequence("wms_warehouse_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WmsWarehouseDO extends BaseDO { + + /** + * 主键编号 + */ + @TableId + private Long id; + /** + * 仓库编号 + */ + private String code; + /** + * 名称 + */ + private String name; + /** + * 备注 + */ + private String remark; + /** + * 排序 + */ + private Integer sort; + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseAreaDO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseAreaDO.java deleted file mode 100644 index ab54d1e..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseAreaDO.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.iocoder.yudao.module.wms.dal.dataobject.warehouse; - -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.*; - -/** - * WMS 库区 DO - * - * @author 芋道源码 - */ -@TableName("wms_warehouse_area") -@KeySequence("wms_warehouse_area_seq") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class WmsWarehouseAreaDO extends BaseDO { - - /** - * 主键编号 - */ - @TableId - private Long id; - /** - * 库区编号 - */ - private String code; - /** - * 名称 - */ - private String name; - /** - * 所属仓库编号 - * - * 关联 {@link WmsWarehouseDO#getId()} - */ - private Long warehouseId; - /** - * 备注 - */ - private String remark; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseDO.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseDO.java deleted file mode 100644 index 3693887..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/dataobject/warehouse/WmsWarehouseDO.java +++ /dev/null @@ -1,46 +0,0 @@ -package cn.iocoder.yudao.module.wms.dal.dataobject.warehouse; - -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.*; - -/** - * WMS 仓库 DO - * - * @author 芋道源码 - */ -@TableName("wms_warehouse") -@KeySequence("wms_warehouse_seq") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class WmsWarehouseDO extends BaseDO { - - /** - * 主键编号 - */ - @TableId - private Long id; - /** - * 仓库编号 - */ - private String code; - /** - * 名称 - */ - private String name; - /** - * 备注 - */ - private String remark; - /** - * 排序 - */ - private Integer sort; - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java new file mode 100644 index 0000000..40289ab --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseAreaMapper.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse; + +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.warehouse.vo.area.WmsWarehouseAreaPageReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * WMS 库区 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface WmsWarehouseAreaMapper extends BaseMapperX { + + default PageResult selectPage(WmsWarehouseAreaPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(WmsWarehouseAreaDO::getCode, reqVO.getCode()) + .likeIfPresent(WmsWarehouseAreaDO::getName, reqVO.getName()) + .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, reqVO.getWarehouseId()) + .orderByDesc(WmsWarehouseAreaDO::getId)); + } + + default WmsWarehouseAreaDO selectByCode(String code) { + return selectOne(WmsWarehouseAreaDO::getCode, code); + } + + default WmsWarehouseAreaDO selectByName(Long warehouseId, String name) { + return selectOne(new LambdaQueryWrapperX() + .eq(WmsWarehouseAreaDO::getWarehouseId, warehouseId) + .eq(WmsWarehouseAreaDO::getName, name)); + } + + default List selectListByWarehouseId(Long warehouseId) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, warehouseId) + .orderByDesc(WmsWarehouseAreaDO::getId)); + } + + default Long selectCountByWarehouseId(Long warehouseId) { + return selectCount(WmsWarehouseAreaDO::getWarehouseId, warehouseId); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseMapper.java new file mode 100644 index 0000000..ff4fe46 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/md/warehouse/WmsWarehouseMapper.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse; + +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.warehouse.vo.WmsWarehousePageReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * WMS 仓库 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface WmsWarehouseMapper extends BaseMapperX { + + default PageResult selectPage(WmsWarehousePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(WmsWarehouseDO::getCode, reqVO.getCode()) + .likeIfPresent(WmsWarehouseDO::getName, reqVO.getName()) + .orderByAsc(WmsWarehouseDO::getSort) + .orderByDesc(WmsWarehouseDO::getId)); + } + + default WmsWarehouseDO selectByCode(String code) { + return selectOne(WmsWarehouseDO::getCode, code); + } + + default WmsWarehouseDO selectByName(String name) { + return selectOne(WmsWarehouseDO::getName, name); + } + + default List selectSimpleList() { + return selectList(new LambdaQueryWrapperX() + .orderByAsc(WmsWarehouseDO::getSort) + .orderByDesc(WmsWarehouseDO::getId)); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseAreaMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseAreaMapper.java deleted file mode 100644 index 593b435..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseAreaMapper.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.iocoder.yudao.module.wms.dal.mysql.warehouse; - -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.warehouse.vo.area.WmsWarehouseAreaPageReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseAreaDO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * WMS 库区 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface WmsWarehouseAreaMapper extends BaseMapperX { - - default PageResult selectPage(WmsWarehouseAreaPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(WmsWarehouseAreaDO::getCode, reqVO.getCode()) - .likeIfPresent(WmsWarehouseAreaDO::getName, reqVO.getName()) - .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, reqVO.getWarehouseId()) - .orderByDesc(WmsWarehouseAreaDO::getId)); - } - - default WmsWarehouseAreaDO selectByCode(String code) { - return selectOne(WmsWarehouseAreaDO::getCode, code); - } - - default WmsWarehouseAreaDO selectByName(Long warehouseId, String name) { - return selectOne(new LambdaQueryWrapperX() - .eq(WmsWarehouseAreaDO::getWarehouseId, warehouseId) - .eq(WmsWarehouseAreaDO::getName, name)); - } - - default List selectListByWarehouseId(Long warehouseId) { - return selectList(new LambdaQueryWrapperX() - .eqIfPresent(WmsWarehouseAreaDO::getWarehouseId, warehouseId) - .orderByDesc(WmsWarehouseAreaDO::getId)); - } - - default Long selectCountByWarehouseId(Long warehouseId) { - return selectCount(WmsWarehouseAreaDO::getWarehouseId, warehouseId); - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseMapper.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseMapper.java deleted file mode 100644 index 6849270..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/dal/mysql/warehouse/WmsWarehouseMapper.java +++ /dev/null @@ -1,42 +0,0 @@ -package cn.iocoder.yudao.module.wms.dal.mysql.warehouse; - -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.warehouse.vo.WmsWarehousePageReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseDO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * WMS 仓库 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface WmsWarehouseMapper extends BaseMapperX { - - default PageResult selectPage(WmsWarehousePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(WmsWarehouseDO::getCode, reqVO.getCode()) - .likeIfPresent(WmsWarehouseDO::getName, reqVO.getName()) - .orderByAsc(WmsWarehouseDO::getSort) - .orderByDesc(WmsWarehouseDO::getId)); - } - - default WmsWarehouseDO selectByCode(String code) { - return selectOne(WmsWarehouseDO::getCode, code); - } - - default WmsWarehouseDO selectByName(String name) { - return selectOne(WmsWarehouseDO::getName, name); - } - - default List selectSimpleList() { - return selectList(new LambdaQueryWrapperX() - .orderByAsc(WmsWarehouseDO::getSort) - .orderByDesc(WmsWarehouseDO::getId)); - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java new file mode 100644 index 0000000..9900f57 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaService.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.wms.service.md.warehouse; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaPageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * WMS 库区 Service 接口 + * + * @author 芋道源码 + */ +public interface WmsWarehouseAreaService { + + /** + * 创建库区 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO createReqVO); + + /** + * 更新库区 + * + * @param updateReqVO 更新信息 + */ + void updateWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO updateReqVO); + + /** + * 删除库区 + * + * @param id 编号 + */ + void deleteWarehouseArea(Long id); + + /** + * 校验库区存在 + * + * @param id 编号 + * @return 库区 + */ + WmsWarehouseAreaDO validateWarehouseAreaExists(Long id); + + /** + * 获得库区 + * + * @param id 编号 + * @return 库区 + */ + WmsWarehouseAreaDO getWarehouseArea(Long id); + + /** + * 获得库区分页 + * + * @param pageReqVO 分页查询 + * @return 库区分页 + */ + PageResult getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO); + + /** + * 获得库区列表 + * + * @param warehouseId 仓库编号 + * @return 库区列表 + */ + List getWarehouseAreaList(Long warehouseId); + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java new file mode 100644 index 0000000..8964199 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseAreaServiceImpl.java @@ -0,0 +1,136 @@ +package cn.iocoder.yudao.module.wms.service.md.warehouse; + +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +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.warehouse.vo.area.WmsWarehouseAreaPageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseAreaDO; +import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseAreaMapper; +import cn.iocoder.yudao.module.wms.framework.config.WmsProperties; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; + +/** + * WMS 库区 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class WmsWarehouseAreaServiceImpl implements WmsWarehouseAreaService { + + @Resource + private WmsWarehouseAreaMapper warehouseAreaMapper; + @Resource + private WmsWarehouseService warehouseService; + @Resource + private WmsProperties wmsProperties; + + @Override + public Long createWarehouseArea(WmsWarehouseAreaSaveReqVO createReqVO) { + validateAreaEnabled(); + // 校验数据 + validateWarehouseAreaSaveData(createReqVO); + + // 插入 + WmsWarehouseAreaDO area = BeanUtils.toBean(createReqVO, WmsWarehouseAreaDO.class); + warehouseAreaMapper.insert(area); + // 返回 + return area.getId(); + } + + @Override + public void updateWarehouseArea(WmsWarehouseAreaSaveReqVO updateReqVO) { + validateAreaEnabled(); + // 校验存在 + validateWarehouseAreaExists(updateReqVO.getId()); + // 校验数据 + validateWarehouseAreaSaveData(updateReqVO); + + // 更新 + WmsWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, WmsWarehouseAreaDO.class); + warehouseAreaMapper.updateById(updateObj); + } + + private void validateWarehouseAreaSaveData(WmsWarehouseAreaSaveReqVO reqVO) { + warehouseService.validateWarehouseExists(reqVO.getWarehouseId()); + validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName()); + validateWarehouseAreaCodeUnique(reqVO.getId(), reqVO.getCode()); + } + + private void validateWarehouseAreaNameUnique(Long id, Long warehouseId, String name) { + WmsWarehouseAreaDO area = warehouseAreaMapper.selectByName(warehouseId, name); + if (area == null) { + return; + } + if (ObjUtil.notEqual(area.getId(), id)) { + throw exception(WAREHOUSE_AREA_NAME_DUPLICATE); + } + } + + private void validateWarehouseAreaCodeUnique(Long id, String code) { + if (StrUtil.isBlank(code)) { + return; + } + WmsWarehouseAreaDO area = warehouseAreaMapper.selectByCode(code); + if (area == null) { + return; + } + if (ObjUtil.notEqual(area.getId(), id)) { + throw exception(WAREHOUSE_AREA_CODE_DUPLICATE); + } + } + + @Override + public void deleteWarehouseArea(Long id) { + validateAreaEnabled(); + // 校验存在 + validateWarehouseAreaExists(id); + + // 删除 + warehouseAreaMapper.deleteById(id); + } + + @Override + public WmsWarehouseAreaDO validateWarehouseAreaExists(Long id) { + validateAreaEnabled(); + WmsWarehouseAreaDO area = warehouseAreaMapper.selectById(id); + if (area == null) { + throw exception(WAREHOUSE_AREA_NOT_EXISTS); + } + return area; + } + + @Override + public WmsWarehouseAreaDO getWarehouseArea(Long id) { + validateAreaEnabled(); + return warehouseAreaMapper.selectById(id); + } + + @Override + public PageResult getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO) { + validateAreaEnabled(); + return warehouseAreaMapper.selectPage(pageReqVO); + } + + @Override + public List getWarehouseAreaList(Long warehouseId) { + validateAreaEnabled(); + return warehouseAreaMapper.selectListByWarehouseId(warehouseId); + } + + private void validateAreaEnabled() { + if (!wmsProperties.isAreaEnabled()) { + throw exception(WMS_AREA_DISABLED); + } + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseService.java new file mode 100644 index 0000000..dd73e75 --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseService.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.wms.service.md.warehouse; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehousePageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; +import jakarta.validation.Valid; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; + +/** + * WMS 仓库 Service 接口 + * + * @author 芋道源码 + */ +public interface WmsWarehouseService { + + /** + * 创建仓库 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createWarehouse(@Valid WmsWarehouseSaveReqVO createReqVO); + + /** + * 更新仓库 + * + * @param updateReqVO 更新信息 + */ + void updateWarehouse(@Valid WmsWarehouseSaveReqVO updateReqVO); + + /** + * 删除仓库 + * + * @param id 编号 + */ + void deleteWarehouse(Long id); + + /** + * 校验仓库存在 + * + * @param id 编号 + * @return 仓库 + */ + WmsWarehouseDO validateWarehouseExists(Long id); + + /** + * 获得仓库 + * + * @param id 编号 + * @return 仓库 + */ + WmsWarehouseDO getWarehouse(Long id); + + /** + * 获得仓库分页 + * + * @param pageReqVO 分页查询 + * @return 仓库分页 + */ + PageResult getWarehousePage(WmsWarehousePageReqVO pageReqVO); + + /** + * 获得仓库列表 + * + * @return 仓库列表 + */ + List getWarehouseList(); + + /** + * 按编号集合获得仓库列表 + * + * @param ids 编号集合 + * @return 仓库列表 + */ + List getWarehouseList(Collection ids); + + default Map getWarehouseMap(Collection ids) { + return convertMap(getWarehouseList(ids), WmsWarehouseDO::getId); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java new file mode 100644 index 0000000..33d1b9d --- /dev/null +++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/md/warehouse/WmsWarehouseServiceImpl.java @@ -0,0 +1,137 @@ +package cn.iocoder.yudao.module.wms.service.md.warehouse; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +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.warehouse.vo.WmsWarehousePageReqVO; +import cn.iocoder.yudao.module.wms.controller.admin.md.warehouse.vo.WmsWarehouseSaveReqVO; +import cn.iocoder.yudao.module.wms.dal.dataobject.md.warehouse.WmsWarehouseDO; +import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseAreaMapper; +import cn.iocoder.yudao.module.wms.dal.mysql.md.warehouse.WmsWarehouseMapper; +import cn.iocoder.yudao.module.wms.framework.config.WmsProperties; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; + +/** + * WMS 仓库 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class WmsWarehouseServiceImpl implements WmsWarehouseService { + + @Resource + private WmsWarehouseMapper warehouseMapper; + @Resource + private WmsWarehouseAreaMapper warehouseAreaMapper; + @Resource + private WmsProperties wmsProperties; + + @Override + public Long createWarehouse(WmsWarehouseSaveReqVO createReqVO) { + // 校验数据 + validateWarehouseSaveData(createReqVO); + + // 插入 + WmsWarehouseDO warehouse = BeanUtils.toBean(createReqVO, WmsWarehouseDO.class); + warehouseMapper.insert(warehouse); + return warehouse.getId(); + } + + @Override + public void updateWarehouse(WmsWarehouseSaveReqVO updateReqVO) { + // 校验存在 + validateWarehouseExists(updateReqVO.getId()); + // 校验数据 + validateWarehouseSaveData(updateReqVO); + + // 更新 + WmsWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, WmsWarehouseDO.class); + warehouseMapper.updateById(updateObj); + } + + private void validateWarehouseSaveData(WmsWarehouseSaveReqVO reqVO) { + validateWarehouseNameUnique(reqVO.getId(), reqVO.getName()); + validateWarehouseCodeUnique(reqVO.getId(), reqVO.getCode()); + } + + private void validateWarehouseNameUnique(Long id, String name) { + WmsWarehouseDO warehouse = warehouseMapper.selectByName(name); + if (warehouse == null) { + return; + } + if (ObjUtil.notEqual(warehouse.getId(), id)) { + throw exception(WAREHOUSE_NAME_DUPLICATE); + } + } + + private void validateWarehouseCodeUnique(Long id, String code) { + if (StrUtil.isBlank(code)) { + return; + } + WmsWarehouseDO warehouse = warehouseMapper.selectByCode(code); + if (warehouse == null) { + return; + } + if (ObjUtil.notEqual(warehouse.getId(), id)) { + throw exception(WAREHOUSE_CODE_DUPLICATE); + } + } + + @Override + public void deleteWarehouse(Long id) { + // 校验存在 + validateWarehouseExists(id); + // 库区模式下,存在库区时不允许删除仓库 + if (wmsProperties.isAreaEnabled() && warehouseAreaMapper.selectCountByWarehouseId(id) > 0) { + throw exception(WAREHOUSE_HAS_AREA); + } + + // 删除 + warehouseMapper.deleteById(id); + } + + @Override + public WmsWarehouseDO validateWarehouseExists(Long id) { + WmsWarehouseDO warehouse = warehouseMapper.selectById(id); + if (warehouse == null) { + throw exception(WAREHOUSE_NOT_EXISTS); + } + return warehouse; + } + + @Override + public WmsWarehouseDO getWarehouse(Long id) { + return warehouseMapper.selectById(id); + } + + @Override + public PageResult getWarehousePage(WmsWarehousePageReqVO pageReqVO) { + return warehouseMapper.selectPage(pageReqVO); + } + + @Override + public List getWarehouseList() { + return warehouseMapper.selectSimpleList(); + } + + @Override + public List getWarehouseList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return warehouseMapper.selectByIds(ids); + } + +} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaService.java deleted file mode 100644 index fef28e8..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaService.java +++ /dev/null @@ -1,72 +0,0 @@ -package cn.iocoder.yudao.module.wms.service.warehouse; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaPageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseAreaDO; -import jakarta.validation.Valid; - -import java.util.List; - -/** - * WMS 库区 Service 接口 - * - * @author 芋道源码 - */ -public interface WmsWarehouseAreaService { - - /** - * 创建库区 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO createReqVO); - - /** - * 更新库区 - * - * @param updateReqVO 更新信息 - */ - void updateWarehouseArea(@Valid WmsWarehouseAreaSaveReqVO updateReqVO); - - /** - * 删除库区 - * - * @param id 编号 - */ - void deleteWarehouseArea(Long id); - - /** - * 校验库区存在 - * - * @param id 编号 - * @return 库区 - */ - WmsWarehouseAreaDO validateWarehouseAreaExists(Long id); - - /** - * 获得库区 - * - * @param id 编号 - * @return 库区 - */ - WmsWarehouseAreaDO getWarehouseArea(Long id); - - /** - * 获得库区分页 - * - * @param pageReqVO 分页查询 - * @return 库区分页 - */ - PageResult getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO); - - /** - * 获得库区列表 - * - * @param warehouseId 仓库编号 - * @return 库区列表 - */ - List getWarehouseAreaList(Long warehouseId); - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaServiceImpl.java deleted file mode 100644 index 7d3e400..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseAreaServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package cn.iocoder.yudao.module.wms.service.warehouse; - -import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.util.StrUtil; -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.warehouse.vo.area.WmsWarehouseAreaPageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.area.WmsWarehouseAreaSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseAreaDO; -import cn.iocoder.yudao.module.wms.dal.mysql.warehouse.WmsWarehouseAreaMapper; -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; - -/** - * WMS 库区 Service 实现类 - * - * @author 芋道源码 - */ -@Service -@Validated -public class WmsWarehouseAreaServiceImpl implements WmsWarehouseAreaService { - - @Resource - private WmsWarehouseAreaMapper warehouseAreaMapper; - @Resource - private WmsWarehouseService warehouseService; - @Resource - private WmsProperties wmsProperties; - - @Override - public Long createWarehouseArea(WmsWarehouseAreaSaveReqVO createReqVO) { - validateAreaEnabled(); - // 校验数据 - validateWarehouseAreaSaveData(createReqVO); - - // 插入 - WmsWarehouseAreaDO area = BeanUtils.toBean(createReqVO, WmsWarehouseAreaDO.class); - warehouseAreaMapper.insert(area); - // 返回 - return area.getId(); - } - - @Override - public void updateWarehouseArea(WmsWarehouseAreaSaveReqVO updateReqVO) { - validateAreaEnabled(); - // 校验存在 - validateWarehouseAreaExists(updateReqVO.getId()); - // 校验数据 - validateWarehouseAreaSaveData(updateReqVO); - - // 更新 - WmsWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, WmsWarehouseAreaDO.class); - warehouseAreaMapper.updateById(updateObj); - } - - private void validateWarehouseAreaSaveData(WmsWarehouseAreaSaveReqVO reqVO) { - warehouseService.validateWarehouseExists(reqVO.getWarehouseId()); - validateWarehouseAreaNameUnique(reqVO.getId(), reqVO.getWarehouseId(), reqVO.getName()); - validateWarehouseAreaCodeUnique(reqVO.getId(), reqVO.getCode()); - } - - private void validateWarehouseAreaNameUnique(Long id, Long warehouseId, String name) { - WmsWarehouseAreaDO area = warehouseAreaMapper.selectByName(warehouseId, name); - if (area == null) { - return; - } - if (ObjUtil.notEqual(area.getId(), id)) { - throw exception(WAREHOUSE_AREA_NAME_DUPLICATE); - } - } - - private void validateWarehouseAreaCodeUnique(Long id, String code) { - if (StrUtil.isBlank(code)) { - return; - } - WmsWarehouseAreaDO area = warehouseAreaMapper.selectByCode(code); - if (area == null) { - return; - } - if (ObjUtil.notEqual(area.getId(), id)) { - throw exception(WAREHOUSE_AREA_CODE_DUPLICATE); - } - } - - @Override - public void deleteWarehouseArea(Long id) { - validateAreaEnabled(); - // 校验存在 - validateWarehouseAreaExists(id); - - // 删除 - warehouseAreaMapper.deleteById(id); - } - - @Override - public WmsWarehouseAreaDO validateWarehouseAreaExists(Long id) { - validateAreaEnabled(); - WmsWarehouseAreaDO area = warehouseAreaMapper.selectById(id); - if (area == null) { - throw exception(WAREHOUSE_AREA_NOT_EXISTS); - } - return area; - } - - @Override - public WmsWarehouseAreaDO getWarehouseArea(Long id) { - validateAreaEnabled(); - return warehouseAreaMapper.selectById(id); - } - - @Override - public PageResult getWarehouseAreaPage(WmsWarehouseAreaPageReqVO pageReqVO) { - validateAreaEnabled(); - return warehouseAreaMapper.selectPage(pageReqVO); - } - - @Override - public List getWarehouseAreaList(Long warehouseId) { - validateAreaEnabled(); - return warehouseAreaMapper.selectListByWarehouseId(warehouseId); - } - - private void validateAreaEnabled() { - if (!wmsProperties.isAreaEnabled()) { - throw exception(WMS_AREA_DISABLED); - } - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseService.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseService.java deleted file mode 100644 index 9e2c5da..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseService.java +++ /dev/null @@ -1,87 +0,0 @@ -package cn.iocoder.yudao.module.wms.service.warehouse; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.WmsWarehousePageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.WmsWarehouseSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseDO; -import jakarta.validation.Valid; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; - -/** - * WMS 仓库 Service 接口 - * - * @author 芋道源码 - */ -public interface WmsWarehouseService { - - /** - * 创建仓库 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createWarehouse(@Valid WmsWarehouseSaveReqVO createReqVO); - - /** - * 更新仓库 - * - * @param updateReqVO 更新信息 - */ - void updateWarehouse(@Valid WmsWarehouseSaveReqVO updateReqVO); - - /** - * 删除仓库 - * - * @param id 编号 - */ - void deleteWarehouse(Long id); - - /** - * 校验仓库存在 - * - * @param id 编号 - * @return 仓库 - */ - WmsWarehouseDO validateWarehouseExists(Long id); - - /** - * 获得仓库 - * - * @param id 编号 - * @return 仓库 - */ - WmsWarehouseDO getWarehouse(Long id); - - /** - * 获得仓库分页 - * - * @param pageReqVO 分页查询 - * @return 仓库分页 - */ - PageResult getWarehousePage(WmsWarehousePageReqVO pageReqVO); - - /** - * 获得仓库列表 - * - * @return 仓库列表 - */ - List getWarehouseList(); - - /** - * 按编号集合获得仓库列表 - * - * @param ids 编号集合 - * @return 仓库列表 - */ - List getWarehouseList(Collection ids); - - default Map getWarehouseMap(Collection ids) { - return convertMap(getWarehouseList(ids), WmsWarehouseDO::getId); - } - -} diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseServiceImpl.java deleted file mode 100644 index eaa2d2d..0000000 --- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/warehouse/WmsWarehouseServiceImpl.java +++ /dev/null @@ -1,137 +0,0 @@ -package cn.iocoder.yudao.module.wms.service.warehouse; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.util.StrUtil; -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.warehouse.vo.WmsWarehousePageReqVO; -import cn.iocoder.yudao.module.wms.controller.admin.warehouse.vo.WmsWarehouseSaveReqVO; -import cn.iocoder.yudao.module.wms.dal.dataobject.warehouse.WmsWarehouseDO; -import cn.iocoder.yudao.module.wms.dal.mysql.warehouse.WmsWarehouseAreaMapper; -import cn.iocoder.yudao.module.wms.dal.mysql.warehouse.WmsWarehouseMapper; -import cn.iocoder.yudao.module.wms.framework.config.WmsProperties; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.wms.enums.ErrorCodeConstants.*; - -/** - * WMS 仓库 Service 实现类 - * - * @author 芋道源码 - */ -@Service -@Validated -public class WmsWarehouseServiceImpl implements WmsWarehouseService { - - @Resource - private WmsWarehouseMapper warehouseMapper; - @Resource - private WmsWarehouseAreaMapper warehouseAreaMapper; - @Resource - private WmsProperties wmsProperties; - - @Override - public Long createWarehouse(WmsWarehouseSaveReqVO createReqVO) { - // 校验数据 - validateWarehouseSaveData(createReqVO); - - // 插入 - WmsWarehouseDO warehouse = BeanUtils.toBean(createReqVO, WmsWarehouseDO.class); - warehouseMapper.insert(warehouse); - return warehouse.getId(); - } - - @Override - public void updateWarehouse(WmsWarehouseSaveReqVO updateReqVO) { - // 校验存在 - validateWarehouseExists(updateReqVO.getId()); - // 校验数据 - validateWarehouseSaveData(updateReqVO); - - // 更新 - WmsWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, WmsWarehouseDO.class); - warehouseMapper.updateById(updateObj); - } - - private void validateWarehouseSaveData(WmsWarehouseSaveReqVO reqVO) { - validateWarehouseNameUnique(reqVO.getId(), reqVO.getName()); - validateWarehouseCodeUnique(reqVO.getId(), reqVO.getCode()); - } - - private void validateWarehouseNameUnique(Long id, String name) { - WmsWarehouseDO warehouse = warehouseMapper.selectByName(name); - if (warehouse == null) { - return; - } - if (ObjUtil.notEqual(warehouse.getId(), id)) { - throw exception(WAREHOUSE_NAME_DUPLICATE); - } - } - - private void validateWarehouseCodeUnique(Long id, String code) { - if (StrUtil.isBlank(code)) { - return; - } - WmsWarehouseDO warehouse = warehouseMapper.selectByCode(code); - if (warehouse == null) { - return; - } - if (ObjUtil.notEqual(warehouse.getId(), id)) { - throw exception(WAREHOUSE_CODE_DUPLICATE); - } - } - - @Override - public void deleteWarehouse(Long id) { - // 校验存在 - validateWarehouseExists(id); - // 库区模式下,存在库区时不允许删除仓库 - if (wmsProperties.isAreaEnabled() && warehouseAreaMapper.selectCountByWarehouseId(id) > 0) { - throw exception(WAREHOUSE_HAS_AREA); - } - - // 删除 - warehouseMapper.deleteById(id); - } - - @Override - public WmsWarehouseDO validateWarehouseExists(Long id) { - WmsWarehouseDO warehouse = warehouseMapper.selectById(id); - if (warehouse == null) { - throw exception(WAREHOUSE_NOT_EXISTS); - } - return warehouse; - } - - @Override - public WmsWarehouseDO getWarehouse(Long id) { - return warehouseMapper.selectById(id); - } - - @Override - public PageResult getWarehousePage(WmsWarehousePageReqVO pageReqVO) { - return warehouseMapper.selectPage(pageReqVO); - } - - @Override - public List getWarehouseList() { - return warehouseMapper.selectSimpleList(); - } - - @Override - public List getWarehouseList(Collection ids) { - if (CollUtil.isEmpty(ids)) { - return Collections.emptyList(); - } - return warehouseMapper.selectByIds(ids); - } - -} -- libgit2 0.21.4