Commit a5510bb3edcd197306c55f52b9abb71767f11d2d

Authored by YunaiV
1 parent 6d90b833

review(mes):wm-warehouse 的初步实现

Showing 26 changed files with 2011 additions and 0 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseAreaController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  6 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  7 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  10 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  11 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  12 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO;
  13 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaRespVO;
  14 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO;
  15 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
  16 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
  17 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  18 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
  19 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
  20 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
  21 +import io.swagger.v3.oas.annotations.Operation;
  22 +import io.swagger.v3.oas.annotations.Parameter;
  23 +import io.swagger.v3.oas.annotations.tags.Tag;
  24 +import jakarta.annotation.Resource;
  25 +import jakarta.servlet.http.HttpServletResponse;
  26 +import jakarta.validation.Valid;
  27 +import org.springframework.security.access.prepost.PreAuthorize;
  28 +import org.springframework.validation.annotation.Validated;
  29 +import org.springframework.web.bind.annotation.*;
  30 +
  31 +import java.io.IOException;
  32 +import java.util.Collections;
  33 +import java.util.List;
  34 +import java.util.Map;
  35 +import java.util.Set;
  36 +
  37 +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
  38 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  39 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  40 +
  41 +@Tag(name = "管理后台 - MES 库位")
  42 +@RestController
  43 +@RequestMapping("/mes/wm/warehouse-area")
  44 +@Validated
  45 +public class MesWmWarehouseAreaController {
  46 +
  47 + @Resource
  48 + private MesWmWarehouseAreaService areaService;
  49 +
  50 + @Resource
  51 + private MesWmWarehouseLocationService locationService;
  52 +
  53 + @Resource
  54 + private MesWmWarehouseService warehouseService;
  55 +
  56 + @PostMapping("/create")
  57 + @Operation(summary = "创建库位")
  58 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:create')")
  59 + public CommonResult<Long> createWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO createReqVO) {
  60 + return success(areaService.createWarehouseArea(createReqVO));
  61 + }
  62 +
  63 + @PutMapping("/update")
  64 + @Operation(summary = "更新库位")
  65 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:update')")
  66 + public CommonResult<Boolean> updateWarehouseArea(@Valid @RequestBody MesWmWarehouseAreaSaveReqVO updateReqVO) {
  67 + areaService.updateWarehouseArea(updateReqVO);
  68 + return success(true);
  69 + }
  70 +
  71 + @DeleteMapping("/delete")
  72 + @Operation(summary = "删除库位")
  73 + @Parameter(name = "id", description = "编号", required = true)
  74 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:delete')")
  75 + public CommonResult<Boolean> deleteWarehouseArea(@RequestParam("id") Long id) {
  76 + areaService.deleteWarehouseArea(id);
  77 + return success(true);
  78 + }
  79 +
  80 + @GetMapping("/get")
  81 + @Operation(summary = "获得库位")
  82 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  83 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:query')")
  84 + public CommonResult<MesWmWarehouseAreaRespVO> getWarehouseArea(@RequestParam("id") Long id) {
  85 + MesWmWarehouseAreaDO area = areaService.getWarehouseArea(id);
  86 + return success(buildWarehouseAreaRespVO(area));
  87 + }
  88 +
  89 + @GetMapping("/page")
  90 + @Operation(summary = "获得库位分页")
  91 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:query')")
  92 + public CommonResult<PageResult<MesWmWarehouseAreaRespVO>> getWarehouseAreaPage(@Valid MesWmWarehouseAreaPageReqVO pageReqVO) {
  93 + PageResult<MesWmWarehouseAreaDO> pageResult = areaService.getWarehouseAreaPage(pageReqVO);
  94 + return success(new PageResult<>(buildWarehouseAreaRespVOList(pageResult.getList()), pageResult.getTotal()));
  95 + }
  96 +
  97 + @GetMapping("/simple-list")
  98 + @Operation(summary = "获得库位精简列表", description = "只包含启用状态,可按库区过滤")
  99 + public CommonResult<List<MesWmWarehouseAreaRespVO>> getWarehouseAreaSimpleList(
  100 + @Parameter(name = "locationId", description = "库区编号") @RequestParam(value = "locationId", required = false) Long locationId) {
  101 + List<MesWmWarehouseAreaDO> list = areaService.getWarehouseAreaList(locationId, CommonStatusEnum.ENABLE.getStatus());
  102 + return success(buildWarehouseAreaRespVOList(list));
  103 + }
  104 +
  105 + @GetMapping("/export-excel")
  106 + @Operation(summary = "导出库位 Excel")
  107 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-area:export')")
  108 + @ApiAccessLog(operateType = EXPORT)
  109 + public void exportWarehouseAreaExcel(@Valid MesWmWarehouseAreaPageReqVO pageReqVO,
  110 + HttpServletResponse response) throws IOException {
  111 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  112 + List<MesWmWarehouseAreaDO> list = areaService.getWarehouseAreaPage(pageReqVO).getList();
  113 + ExcelUtils.write(response, "库位.xls", "数据", MesWmWarehouseAreaRespVO.class,
  114 + buildWarehouseAreaRespVOList(list));
  115 + }
  116 +
  117 + // TODO @AI:这里有个注释块,参考别的方法;
  118 +
  119 + // TODO @AI:下面这个,就不用愁方法了;直接 get 那处理下 get 0;
  120 +
  121 + private MesWmWarehouseAreaRespVO buildWarehouseAreaRespVO(MesWmWarehouseAreaDO area) {
  122 + if (area == null) {
  123 + return null;
  124 + }
  125 + List<MesWmWarehouseAreaRespVO> list = buildWarehouseAreaRespVOList(Collections.singletonList(area));
  126 + return CollUtil.isEmpty(list) ? null : CollUtil.getFirst(list);
  127 + }
  128 +
  129 + private List<MesWmWarehouseAreaRespVO> buildWarehouseAreaRespVOList(List<MesWmWarehouseAreaDO> list) {
  130 + if (CollUtil.isEmpty(list)) {
  131 + return Collections.emptyList();
  132 + }
  133 + Set<Long> locationIds = convertSet(list, MesWmWarehouseAreaDO::getLocationId);
  134 + Map<Long, MesWmWarehouseLocationDO> locationMap = locationService.getWarehouseLocationMap(locationIds);
  135 + Set<Long> warehouseIds = convertSet(locationMap.values(), MesWmWarehouseLocationDO::getWarehouseId);
  136 + Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(warehouseIds);
  137 +
  138 + return BeanUtils.toBean(list, MesWmWarehouseAreaRespVO.class, vo -> {
  139 + MapUtils.findAndThen(locationMap, vo.getLocationId(), location -> {
  140 + vo.setLocationName(location.getName());
  141 + vo.setWarehouseId(location.getWarehouseId());
  142 + MapUtils.findAndThen(warehouseMap, location.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName()));
  143 + });
  144 + });
  145 + }
  146 +
  147 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  5 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  7 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  8 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  9 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  10 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO;
  11 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseRespVO;
  12 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO;
  13 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  14 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
  15 +import io.swagger.v3.oas.annotations.Operation;
  16 +import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.tags.Tag;
  18 +import jakarta.annotation.Resource;
  19 +import jakarta.servlet.http.HttpServletResponse;
  20 +import jakarta.validation.Valid;
  21 +import org.springframework.security.access.prepost.PreAuthorize;
  22 +import org.springframework.validation.annotation.Validated;
  23 +import org.springframework.web.bind.annotation.*;
  24 +
  25 +import java.io.IOException;
  26 +import java.util.List;
  27 +
  28 +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
  29 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  30 +
  31 +@Tag(name = "管理后台 - MES 仓库")
  32 +@RestController
  33 +@RequestMapping("/mes/wm/warehouse")
  34 +@Validated
  35 +public class MesWmWarehouseController {
  36 +
  37 + @Resource
  38 + private MesWmWarehouseService warehouseService;
  39 +
  40 + @PostMapping("/create")
  41 + @Operation(summary = "创建仓库")
  42 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:create')")
  43 + public CommonResult<Long> createWarehouse(@Valid @RequestBody MesWmWarehouseSaveReqVO createReqVO) {
  44 + return success(warehouseService.createWarehouse(createReqVO));
  45 + }
  46 +
  47 + @PutMapping("/update")
  48 + @Operation(summary = "更新仓库")
  49 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:update')")
  50 + public CommonResult<Boolean> updateWarehouse(@Valid @RequestBody MesWmWarehouseSaveReqVO updateReqVO) {
  51 + warehouseService.updateWarehouse(updateReqVO);
  52 + return success(true);
  53 + }
  54 +
  55 + @DeleteMapping("/delete")
  56 + @Operation(summary = "删除仓库")
  57 + @Parameter(name = "id", description = "编号", required = true)
  58 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:delete')")
  59 + public CommonResult<Boolean> deleteWarehouse(@RequestParam("id") Long id) {
  60 + warehouseService.deleteWarehouse(id);
  61 + return success(true);
  62 + }
  63 +
  64 + @GetMapping("/get")
  65 + @Operation(summary = "获得仓库")
  66 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  67 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')")
  68 + public CommonResult<MesWmWarehouseRespVO> getWarehouse(@RequestParam("id") Long id) {
  69 + MesWmWarehouseDO warehouse = warehouseService.getWarehouse(id);
  70 + return success(BeanUtils.toBean(warehouse, MesWmWarehouseRespVO.class));
  71 + }
  72 +
  73 + @GetMapping("/page")
  74 + @Operation(summary = "获得仓库分页")
  75 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:query')")
  76 + public CommonResult<PageResult<MesWmWarehouseRespVO>> getWarehousePage(@Valid MesWmWarehousePageReqVO pageReqVO) {
  77 + PageResult<MesWmWarehouseDO> pageResult = warehouseService.getWarehousePage(pageReqVO);
  78 + return success(BeanUtils.toBean(pageResult, MesWmWarehouseRespVO.class));
  79 + }
  80 +
  81 + @GetMapping("/simple-list")
  82 + @Operation(summary = "获得仓库精简列表", description = "只包含启用状态,主要用于前端下拉")
  83 + public CommonResult<List<MesWmWarehouseRespVO>> getWarehouseSimpleList() {
  84 + List<MesWmWarehouseDO> list = warehouseService.getWarehouseListByStatus(CommonStatusEnum.ENABLE.getStatus());
  85 + return success(BeanUtils.toBean(list, MesWmWarehouseRespVO.class));
  86 + }
  87 +
  88 + @GetMapping("/export-excel")
  89 + @Operation(summary = "导出仓库 Excel")
  90 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse:export')")
  91 + @ApiAccessLog(operateType = EXPORT)
  92 + public void exportWarehouseExcel(@Valid MesWmWarehousePageReqVO pageReqVO,
  93 + HttpServletResponse response) throws IOException {
  94 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  95 + List<MesWmWarehouseDO> list = warehouseService.getWarehousePage(pageReqVO).getList();
  96 + ExcelUtils.write(response, "仓库.xls", "数据", MesWmWarehouseRespVO.class,
  97 + BeanUtils.toBean(list, MesWmWarehouseRespVO.class));
  98 + }
  99 +
  100 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/MesWmWarehouseLocationController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  6 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  7 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  10 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  11 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  12 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO;
  13 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationRespVO;
  14 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO;
  15 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
  16 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  17 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
  18 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
  19 +import io.swagger.v3.oas.annotations.Operation;
  20 +import io.swagger.v3.oas.annotations.Parameter;
  21 +import io.swagger.v3.oas.annotations.tags.Tag;
  22 +import jakarta.annotation.Resource;
  23 +import jakarta.servlet.http.HttpServletResponse;
  24 +import jakarta.validation.Valid;
  25 +import org.springframework.security.access.prepost.PreAuthorize;
  26 +import org.springframework.validation.annotation.Validated;
  27 +import org.springframework.web.bind.annotation.*;
  28 +
  29 +import java.io.IOException;
  30 +import java.util.Collections;
  31 +import java.util.List;
  32 +import java.util.Map;
  33 +
  34 +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
  35 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  36 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  37 +
  38 +@Tag(name = "管理后台 - MES 库区")
  39 +@RestController
  40 +@RequestMapping("/mes/wm/warehouse-location")
  41 +@Validated
  42 +public class MesWmWarehouseLocationController {
  43 +
  44 + @Resource
  45 + private MesWmWarehouseLocationService locationService;
  46 +
  47 + @Resource
  48 + private MesWmWarehouseService warehouseService;
  49 +
  50 + @PostMapping("/create")
  51 + @Operation(summary = "创建库区")
  52 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:create')")
  53 + public CommonResult<Long> createWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO createReqVO) {
  54 + return success(locationService.createWarehouseLocation(createReqVO));
  55 + }
  56 +
  57 + @PutMapping("/update")
  58 + @Operation(summary = "更新库区")
  59 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:update')")
  60 + public CommonResult<Boolean> updateWarehouseLocation(@Valid @RequestBody MesWmWarehouseLocationSaveReqVO updateReqVO) {
  61 + locationService.updateWarehouseLocation(updateReqVO);
  62 + return success(true);
  63 + }
  64 +
  65 + @DeleteMapping("/delete")
  66 + @Operation(summary = "删除库区")
  67 + @Parameter(name = "id", description = "编号", required = true)
  68 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:delete')")
  69 + public CommonResult<Boolean> deleteWarehouseLocation(@RequestParam("id") Long id) {
  70 + locationService.deleteWarehouseLocation(id);
  71 + return success(true);
  72 + }
  73 +
  74 + @GetMapping("/get")
  75 + @Operation(summary = "获得库区")
  76 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  77 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:query')")
  78 + public CommonResult<MesWmWarehouseLocationRespVO> getWarehouseLocation(@RequestParam("id") Long id) {
  79 + MesWmWarehouseLocationDO location = locationService.getWarehouseLocation(id);
  80 + return success(buildWarehouseLocationRespVO(location));
  81 + }
  82 +
  83 + @GetMapping("/page")
  84 + @Operation(summary = "获得库区分页")
  85 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:query')")
  86 + public CommonResult<PageResult<MesWmWarehouseLocationRespVO>> getWarehouseLocationPage(@Valid MesWmWarehouseLocationPageReqVO pageReqVO) {
  87 + PageResult<MesWmWarehouseLocationDO> pageResult = locationService.getWarehouseLocationPage(pageReqVO);
  88 + return success(new PageResult<>(buildWarehouseLocationRespVOList(pageResult.getList()), pageResult.getTotal()));
  89 + }
  90 +
  91 + @GetMapping("/simple-list")
  92 + @Operation(summary = "获得库区精简列表", description = "只包含启用状态,可按仓库过滤")
  93 + public CommonResult<List<MesWmWarehouseLocationRespVO>> getWarehouseLocationSimpleList(
  94 + @Parameter(name = "warehouseId", description = "仓库编号") @RequestParam(value = "warehouseId", required = false) Long warehouseId) {
  95 + List<MesWmWarehouseLocationDO> list = locationService.getWarehouseLocationList(warehouseId, CommonStatusEnum.ENABLE.getStatus());
  96 + return success(buildWarehouseLocationRespVOList(list));
  97 + }
  98 +
  99 + @GetMapping("/export-excel")
  100 + @Operation(summary = "导出库区 Excel")
  101 + @PreAuthorize("@ss.hasPermission('mes:wm-warehouse-location:export')")
  102 + @ApiAccessLog(operateType = EXPORT)
  103 + public void exportWarehouseLocationExcel(@Valid MesWmWarehouseLocationPageReqVO pageReqVO,
  104 + HttpServletResponse response) throws IOException {
  105 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  106 + List<MesWmWarehouseLocationDO> list = locationService.getWarehouseLocationPage(pageReqVO).getList();
  107 + ExcelUtils.write(response, "库区.xls", "数据", MesWmWarehouseLocationRespVO.class,
  108 + buildWarehouseLocationRespVOList(list));
  109 + }
  110 +
  111 + // TODO @AI:这里有个注释块,参考别的方法;
  112 +
  113 + // TODO @AI:下面这个,就不用愁方法了;直接 get 那处理下 get 0;
  114 + private MesWmWarehouseLocationRespVO buildWarehouseLocationRespVO(MesWmWarehouseLocationDO location) {
  115 + if (location == null) {
  116 + return null;
  117 + }
  118 + List<MesWmWarehouseLocationRespVO> list = buildWarehouseLocationRespVOList(Collections.singletonList(location));
  119 + return CollUtil.isEmpty(list) ? null : CollUtil.getFirst(list);
  120 + }
  121 +
  122 + private List<MesWmWarehouseLocationRespVO> buildWarehouseLocationRespVOList(List<MesWmWarehouseLocationDO> list) {
  123 + if (CollUtil.isEmpty(list)) {
  124 + return Collections.emptyList();
  125 + }
  126 + Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(convertSet(list, MesWmWarehouseLocationDO::getWarehouseId));
  127 + return BeanUtils.toBean(list, MesWmWarehouseLocationRespVO.class, vo ->
  128 + MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), warehouse -> vo.setWarehouseName(warehouse.getName())));
  129 + }
  130 +
  131 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/MesWmWarehousePageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +@Schema(description = "管理后台 - MES 仓库分页 Request VO")
  10 +@Data
  11 +@EqualsAndHashCode(callSuper = true)
  12 +@ToString(callSuper = true)
  13 +public class MesWmWarehousePageReqVO extends PageParam {
  14 +
  15 + @Schema(description = "仓库编码", example = "WH001")
  16 + private String code;
  17 +
  18 + @Schema(description = "仓库名称", example = "原料仓")
  19 + private String name;
  20 +
  21 + @Schema(description = "状态", example = "0")
  22 + private Integer status;
  23 +
  24 + @Schema(description = "是否冻结", example = "false")
  25 + private Boolean frozen;
  26 +
  27 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/MesWmWarehouseRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo;
  2 +
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import cn.idev.excel.annotation.ExcelProperty;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +import java.time.LocalDateTime;
  10 +
  11 +@Schema(description = "管理后台 - MES 仓库 Response VO")
  12 +@Data
  13 +@ExcelIgnoreUnannotated
  14 +public class MesWmWarehouseRespVO {
  15 +
  16 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  17 + @ExcelProperty("编号")
  18 + private Long id;
  19 +
  20 + @Schema(description = "仓库编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WH001")
  21 + @ExcelProperty("仓库编码")
  22 + private String code;
  23 +
  24 + @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓")
  25 + @ExcelProperty("仓库名称")
  26 + private String name;
  27 +
  28 + @Schema(description = "仓库地址", example = "A 区一号楼")
  29 + @ExcelProperty("仓库地址")
  30 + private String address;
  31 +
  32 + @Schema(description = "面积", example = "1200.50")
  33 + @ExcelProperty("面积")
  34 + private BigDecimal area;
  35 +
  36 + @Schema(description = "负责人用户编号", example = "1")
  37 + private Long chargeUserId;
  38 +
  39 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  40 + @ExcelProperty("状态")
  41 + private Integer status;
  42 +
  43 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  44 + @ExcelProperty("是否冻结")
  45 + private Boolean frozen;
  46 +
  47 + @Schema(description = "备注", example = "备注")
  48 + @ExcelProperty("备注")
  49 + private String remark;
  50 +
  51 + @Schema(description = "预留字段1")
  52 + private String attribute1;
  53 +
  54 + @Schema(description = "预留字段2")
  55 + private String attribute2;
  56 +
  57 + @Schema(description = "预留字段3")
  58 + private Integer attribute3;
  59 +
  60 + @Schema(description = "预留字段4")
  61 + private Integer attribute4;
  62 +
  63 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  64 + @ExcelProperty("创建时间")
  65 + private LocalDateTime createTime;
  66 +
  67 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/MesWmWarehouseSaveReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotEmpty;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +
  10 +@Schema(description = "管理后台 - MES 仓库新增/修改 Request VO")
  11 +@Data
  12 +public class MesWmWarehouseSaveReqVO {
  13 +
  14 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  15 + private Long id;
  16 +
  17 + @Schema(description = "仓库编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WH001")
  18 + @NotEmpty(message = "仓库编码不能为空")
  19 + private String code;
  20 +
  21 + @Schema(description = "仓库名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料仓")
  22 + @NotEmpty(message = "仓库名称不能为空")
  23 + private String name;
  24 +
  25 + @Schema(description = "仓库地址", example = "A 区一号楼")
  26 + private String address;
  27 +
  28 + @Schema(description = "面积", example = "1200.50")
  29 + private BigDecimal area;
  30 +
  31 + @Schema(description = "负责人用户编号", example = "1")
  32 + private Long chargeUserId;
  33 +
  34 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  35 + @NotNull(message = "状态不能为空")
  36 + private Integer status;
  37 +
  38 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  39 + @NotNull(message = "是否冻结不能为空")
  40 + private Boolean frozen;
  41 +
  42 + @Schema(description = "备注", example = "备注")
  43 + private String remark;
  44 +
  45 + @Schema(description = "预留字段1")
  46 + private String attribute1;
  47 +
  48 + @Schema(description = "预留字段2")
  49 + private String attribute2;
  50 +
  51 + @Schema(description = "预留字段3")
  52 + private Integer attribute3;
  53 +
  54 + @Schema(description = "预留字段4")
  55 + private Integer attribute4;
  56 +
  57 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/area/MesWmWarehouseAreaPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +@Schema(description = "管理后台 - MES 库位分页 Request VO")
  10 +@Data
  11 +@EqualsAndHashCode(callSuper = true)
  12 +@ToString(callSuper = true)
  13 +public class MesWmWarehouseAreaPageReqVO extends PageParam {
  14 +
  15 + @Schema(description = "库位编码", example = "A001")
  16 + private String code;
  17 +
  18 + @Schema(description = "库位名称", example = "默认库位")
  19 + private String name;
  20 +
  21 + @Schema(description = "库区编号", example = "1")
  22 + private Long locationId;
  23 +
  24 + @Schema(description = "是否启用", example = "true")
  25 + private Boolean enabled;
  26 +
  27 + @Schema(description = "状态", example = "0")
  28 + private Integer status;
  29 +
  30 + @Schema(description = "是否冻结", example = "false")
  31 + private Boolean frozen;
  32 +
  33 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/area/MesWmWarehouseAreaRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area;
  2 +
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import cn.idev.excel.annotation.ExcelProperty;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +import java.time.LocalDateTime;
  10 +
  11 +@Schema(description = "管理后台 - MES 库位 Response VO")
  12 +@Data
  13 +@ExcelIgnoreUnannotated
  14 +public class MesWmWarehouseAreaRespVO {
  15 +
  16 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  17 + @ExcelProperty("编号")
  18 + private Long id;
  19 +
  20 + @Schema(description = "库位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "A001")
  21 + @ExcelProperty("库位编码")
  22 + private String code;
  23 +
  24 + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "默认库位")
  25 + @ExcelProperty("库位名称")
  26 + private String name;
  27 +
  28 + @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  29 + private Long locationId;
  30 +
  31 + @Schema(description = "库区名称", example = "原料区")
  32 + @ExcelProperty("库区名称")
  33 + private String locationName;
  34 +
  35 + @Schema(description = "仓库编号", example = "1")
  36 + private Long warehouseId;
  37 +
  38 + @Schema(description = "仓库名称", example = "原料仓")
  39 + @ExcelProperty("仓库名称")
  40 + private String warehouseName;
  41 +
  42 + @Schema(description = "面积", example = "20.00")
  43 + @ExcelProperty("面积")
  44 + private BigDecimal area;
  45 +
  46 + @Schema(description = "最大载重", example = "1000.00")
  47 + @ExcelProperty("最大载重")
  48 + private BigDecimal maxLoad;
  49 +
  50 + @Schema(description = "坐标 X", example = "1")
  51 + @ExcelProperty("坐标 X")
  52 + private Integer positionX;
  53 +
  54 + @Schema(description = "坐标 Y", example = "1")
  55 + @ExcelProperty("坐标 Y")
  56 + private Integer positionY;
  57 +
  58 + @Schema(description = "坐标 Z", example = "1")
  59 + @ExcelProperty("坐标 Z")
  60 + private Integer positionZ;
  61 +
  62 + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  63 + @ExcelProperty("是否启用")
  64 + private Boolean enabled;
  65 +
  66 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  67 + @ExcelProperty("状态")
  68 + private Integer status;
  69 +
  70 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  71 + @ExcelProperty("是否冻结")
  72 + private Boolean frozen;
  73 +
  74 + @Schema(description = "是否允许物料混放", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  75 + @ExcelProperty("允许物料混放")
  76 + private Boolean allowItemMixing;
  77 +
  78 + @Schema(description = "是否允许批次混放", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  79 + @ExcelProperty("允许批次混放")
  80 + private Boolean allowBatchMixing;
  81 +
  82 + @Schema(description = "备注", example = "备注")
  83 + @ExcelProperty("备注")
  84 + private String remark;
  85 +
  86 + @Schema(description = "预留字段1")
  87 + private String attribute1;
  88 +
  89 + @Schema(description = "预留字段2")
  90 + private String attribute2;
  91 +
  92 + @Schema(description = "预留字段3")
  93 + private Integer attribute3;
  94 +
  95 + @Schema(description = "预留字段4")
  96 + private Integer attribute4;
  97 +
  98 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  99 + @ExcelProperty("创建时间")
  100 + private LocalDateTime createTime;
  101 +
  102 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/area/MesWmWarehouseAreaSaveReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotEmpty;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +
  10 +@Schema(description = "管理后台 - MES 库位新增/修改 Request VO")
  11 +@Data
  12 +public class MesWmWarehouseAreaSaveReqVO {
  13 +
  14 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  15 + private Long id;
  16 +
  17 + @Schema(description = "库位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "A001")
  18 + @NotEmpty(message = "库位编码不能为空")
  19 + private String code;
  20 +
  21 + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "默认库位")
  22 + @NotEmpty(message = "库位名称不能为空")
  23 + private String name;
  24 +
  25 + @Schema(description = "库区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  26 + @NotNull(message = "库区不能为空")
  27 + private Long locationId;
  28 +
  29 + @Schema(description = "面积", example = "20.00")
  30 + private BigDecimal area;
  31 +
  32 + @Schema(description = "最大载重", example = "1000.00")
  33 + private BigDecimal maxLoad;
  34 +
  35 + @Schema(description = "坐标 X", example = "1")
  36 + private Integer positionX;
  37 +
  38 + @Schema(description = "坐标 Y", example = "1")
  39 + private Integer positionY;
  40 +
  41 + @Schema(description = "坐标 Z", example = "1")
  42 + private Integer positionZ;
  43 +
  44 + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  45 + @NotNull(message = "是否启用不能为空")
  46 + private Boolean enabled;
  47 +
  48 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  49 + @NotNull(message = "状态不能为空")
  50 + private Integer status;
  51 +
  52 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  53 + @NotNull(message = "是否冻结不能为空")
  54 + private Boolean frozen;
  55 +
  56 + @Schema(description = "是否允许物料混放", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  57 + @NotNull(message = "是否允许物料混放不能为空")
  58 + private Boolean allowItemMixing;
  59 +
  60 + @Schema(description = "是否允许批次混放", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  61 + @NotNull(message = "是否允许批次混放不能为空")
  62 + private Boolean allowBatchMixing;
  63 +
  64 + @Schema(description = "备注", example = "备注")
  65 + private String remark;
  66 +
  67 + @Schema(description = "预留字段1")
  68 + private String attribute1;
  69 +
  70 + @Schema(description = "预留字段2")
  71 + private String attribute2;
  72 +
  73 + @Schema(description = "预留字段3")
  74 + private Integer attribute3;
  75 +
  76 + @Schema(description = "预留字段4")
  77 + private Integer attribute4;
  78 +
  79 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/location/MesWmWarehouseLocationPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +@Schema(description = "管理后台 - MES 库区分页 Request VO")
  10 +@Data
  11 +@EqualsAndHashCode(callSuper = true)
  12 +@ToString(callSuper = true)
  13 +public class MesWmWarehouseLocationPageReqVO extends PageParam {
  14 +
  15 + @Schema(description = "库区编码", example = "L001")
  16 + private String code;
  17 +
  18 + @Schema(description = "库区名称", example = "原料区")
  19 + private String name;
  20 +
  21 + @Schema(description = "仓库编号", example = "1")
  22 + private Long warehouseId;
  23 +
  24 + @Schema(description = "是否启用库位管理", example = "true")
  25 + private Boolean areaEnabled;
  26 +
  27 + @Schema(description = "状态", example = "0")
  28 + private Integer status;
  29 +
  30 + @Schema(description = "是否冻结", example = "false")
  31 + private Boolean frozen;
  32 +
  33 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/location/MesWmWarehouseLocationRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location;
  2 +
  3 +import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
  4 +import cn.idev.excel.annotation.ExcelProperty;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +import java.time.LocalDateTime;
  10 +
  11 +@Schema(description = "管理后台 - MES 库区 Response VO")
  12 +@Data
  13 +@ExcelIgnoreUnannotated
  14 +public class MesWmWarehouseLocationRespVO {
  15 +
  16 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  17 + @ExcelProperty("编号")
  18 + private Long id;
  19 +
  20 + @Schema(description = "库区编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "L001")
  21 + @ExcelProperty("库区编码")
  22 + private String code;
  23 +
  24 + @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料区")
  25 + @ExcelProperty("库区名称")
  26 + private String name;
  27 +
  28 + @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  29 + private Long warehouseId;
  30 +
  31 + @Schema(description = "仓库名称", example = "原料仓")
  32 + @ExcelProperty("仓库名称")
  33 + private String warehouseName;
  34 +
  35 + @Schema(description = "面积", example = "500.00")
  36 + @ExcelProperty("面积")
  37 + private BigDecimal area;
  38 +
  39 + @Schema(description = "是否启用库位管理", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  40 + @ExcelProperty("启用库位管理")
  41 + private Boolean areaEnabled;
  42 +
  43 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  44 + @ExcelProperty("状态")
  45 + private Integer status;
  46 +
  47 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  48 + @ExcelProperty("是否冻结")
  49 + private Boolean frozen;
  50 +
  51 + @Schema(description = "备注", example = "备注")
  52 + @ExcelProperty("备注")
  53 + private String remark;
  54 +
  55 + @Schema(description = "预留字段1")
  56 + private String attribute1;
  57 +
  58 + @Schema(description = "预留字段2")
  59 + private String attribute2;
  60 +
  61 + @Schema(description = "预留字段3")
  62 + private Integer attribute3;
  63 +
  64 + @Schema(description = "预留字段4")
  65 + private Integer attribute4;
  66 +
  67 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  68 + @ExcelProperty("创建时间")
  69 + private LocalDateTime createTime;
  70 +
  71 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/warehouse/vo/location/MesWmWarehouseLocationSaveReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotEmpty;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +
  8 +import java.math.BigDecimal;
  9 +
  10 +@Schema(description = "管理后台 - MES 库区新增/修改 Request VO")
  11 +@Data
  12 +public class MesWmWarehouseLocationSaveReqVO {
  13 +
  14 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  15 + private Long id;
  16 +
  17 + @Schema(description = "库区编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "L001")
  18 + @NotEmpty(message = "库区编码不能为空")
  19 + private String code;
  20 +
  21 + @Schema(description = "库区名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "原料区")
  22 + @NotEmpty(message = "库区名称不能为空")
  23 + private String name;
  24 +
  25 + @Schema(description = "仓库编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  26 + @NotNull(message = "仓库不能为空")
  27 + private Long warehouseId;
  28 +
  29 + @Schema(description = "面积", example = "500.00")
  30 + private BigDecimal area;
  31 +
  32 + @Schema(description = "是否启用库位管理", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  33 + @NotNull(message = "是否启用库位管理不能为空")
  34 + private Boolean areaEnabled;
  35 +
  36 + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
  37 + @NotNull(message = "状态不能为空")
  38 + private Integer status;
  39 +
  40 + @Schema(description = "是否冻结", requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
  41 + @NotNull(message = "是否冻结不能为空")
  42 + private Boolean frozen;
  43 +
  44 + @Schema(description = "备注", example = "备注")
  45 + private String remark;
  46 +
  47 + @Schema(description = "预留字段1")
  48 + private String attribute1;
  49 +
  50 + @Schema(description = "预留字段2")
  51 + private String attribute2;
  52 +
  53 + @Schema(description = "预留字段3")
  54 + private Integer attribute3;
  55 +
  56 + @Schema(description = "预留字段4")
  57 + private Integer attribute4;
  58 +
  59 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/MesProProcessContentDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.dataobject.pro;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.*;
  8 +
  9 +/**
  10 + * MES 生产工序内容 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@TableName("mes_pro_process_content")
  15 +@KeySequence("mes_pro_process_content_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
  19 +@Builder
  20 +@NoArgsConstructor
  21 +@AllArgsConstructor
  22 +public class MesProProcessContentDO extends BaseDO {
  23 +
  24 + /**
  25 + * 编号
  26 + */
  27 + @TableId
  28 + private Long id;
  29 + /**
  30 + * 工序编号
  31 + *
  32 + * 关联 {@link MesProProcessDO#getId()}
  33 + */
  34 + private Long processId;
  35 + /**
  36 + * 顺序编号
  37 + */
  38 + private Integer sort;
  39 + /**
  40 + * 步骤说明
  41 + */
  42 + private String content;
  43 + /**
  44 + * 辅助设备
  45 + */
  46 + private String device;
  47 + /**
  48 + * 辅助材料
  49 + */
  50 + private String material;
  51 + /**
  52 + * 材料文档 URL
  53 + */
  54 + private String docUrl;
  55 + /**
  56 + * 备注
  57 + */
  58 + private String remark;
  59 + /**
  60 + * 预留字段1
  61 + */
  62 + private String attribute1;
  63 + /**
  64 + * 预留字段2
  65 + */
  66 + private String attribute2;
  67 + /**
  68 + * 预留字段3
  69 + */
  70 + private Integer attribute3;
  71 + /**
  72 + * 预留字段4
  73 + */
  74 + private Integer attribute4;
  75 +
  76 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/MesProProcessDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.dataobject.pro;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.*;
  8 +
  9 +/**
  10 + * MES 生产工序 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@TableName("mes_pro_process")
  15 +@KeySequence("mes_pro_process_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
  19 +@Builder
  20 +@NoArgsConstructor
  21 +@AllArgsConstructor
  22 +public class MesProProcessDO extends BaseDO {
  23 +
  24 + /**
  25 + * 编号
  26 + */
  27 + @TableId
  28 + private Long id;
  29 + /**
  30 + * 工序编码
  31 + */
  32 + private String code;
  33 + /**
  34 + * 工序名称
  35 + */
  36 + private String name;
  37 + /**
  38 + * 工艺要求
  39 + */
  40 + private String attention;
  41 + /**
  42 + * 状态
  43 + *
  44 + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum}
  45 + */
  46 + private Integer status;
  47 + /**
  48 + * 备注
  49 + */
  50 + private String remark;
  51 + /**
  52 + * 预留字段1
  53 + */
  54 + private String attribute1;
  55 + /**
  56 + * 预留字段2
  57 + */
  58 + private String attribute2;
  59 + /**
  60 + * 预留字段3
  61 + */
  62 + private Integer attribute3;
  63 + /**
  64 + * 预留字段4
  65 + */
  66 + private Integer attribute4;
  67 +
  68 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/warehouse/MesWmWarehouseAreaDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.*;
  8 +
  9 +import java.math.BigDecimal;
  10 +
  11 +/**
  12 + * MES 库位 DO
  13 + */
  14 +@TableName("mes_wm_warehouse_area")
  15 +@KeySequence("mes_wm_warehouse_area_seq")
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
  19 +@Builder
  20 +@NoArgsConstructor
  21 +@AllArgsConstructor
  22 +public class MesWmWarehouseAreaDO extends BaseDO {
  23 +
  24 + /**
  25 + * 编号
  26 + */
  27 + @TableId
  28 + private Long id;
  29 + /**
  30 + * 库位编码
  31 + */
  32 + private String code;
  33 + /**
  34 + * 库位名称
  35 + */
  36 + private String name;
  37 + // TODO @AI:需要关联下 mes_wm_warehouse_location 表;
  38 + /**
  39 + * 库区编号
  40 + */
  41 + private Long locationId;
  42 + /**
  43 + * 面积
  44 + */
  45 + private BigDecimal area;
  46 + /**
  47 + * 最大载重
  48 + */
  49 + private BigDecimal maxLoad;
  50 + /**
  51 + * 坐标 X
  52 + */
  53 + private Integer positionX;
  54 + /**
  55 + * 坐标 Y
  56 + */
  57 + private Integer positionY;
  58 + /**
  59 + * 坐标 Z
  60 + */
  61 + private Integer positionZ;
  62 + /**
  63 + * 是否启用
  64 + */
  65 + private Boolean enabled;
  66 + /**
  67 + * 状态
  68 + *
  69 + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum}
  70 + */
  71 + private Integer status;
  72 + /**
  73 + * 是否冻结
  74 + */
  75 + private Boolean frozen;
  76 + /**
  77 + * 是否允许物料混放
  78 + */
  79 + private Boolean allowItemMixing;
  80 + /**
  81 + * 是否允许批次混放
  82 + */
  83 + private Boolean allowBatchMixing;
  84 + /**
  85 + * 备注
  86 + */
  87 + private String remark;
  88 + /**
  89 + * 预留字段1
  90 + */
  91 + private String attribute1;
  92 + /**
  93 + * 预留字段2
  94 + */
  95 + private String attribute2;
  96 + /**
  97 + * 预留字段3
  98 + */
  99 + private Integer attribute3;
  100 + /**
  101 + * 预留字段4
  102 + */
  103 + private Integer attribute4;
  104 +
  105 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/warehouse/MesWmWarehouseDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.*;
  8 +
  9 +import java.math.BigDecimal;
  10 +
  11 +/**
  12 + * MES 仓库 DO
  13 + */
  14 +@TableName("mes_wm_warehouse")
  15 +@KeySequence("mes_wm_warehouse_seq")
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
  19 +@Builder
  20 +@NoArgsConstructor
  21 +@AllArgsConstructor
  22 +public class MesWmWarehouseDO extends BaseDO {
  23 +
  24 + /**
  25 + * 编号
  26 + */
  27 + @TableId
  28 + private Long id;
  29 + /**
  30 + * 仓库编码
  31 + */
  32 + private String code;
  33 + /**
  34 + * 仓库名称
  35 + */
  36 + private String name;
  37 + /**
  38 + * 仓库地址
  39 + */
  40 + private String address;
  41 + /**
  42 + * 面积
  43 + */
  44 + private BigDecimal area;
  45 + // TODO @AI:需要关联下 system_users 表;
  46 + /**
  47 + * 负责人用户编号
  48 + */
  49 + private Long chargeUserId;
  50 + /**
  51 + * 状态
  52 + *
  53 + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum}
  54 + */
  55 + private Integer status;
  56 + /**
  57 + * 是否冻结
  58 + */
  59 + private Boolean frozen;
  60 + /**
  61 + * 备注
  62 + */
  63 + private String remark;
  64 + /**
  65 + * 预留字段1
  66 + */
  67 + private String attribute1;
  68 + /**
  69 + * 预留字段2
  70 + */
  71 + private String attribute2;
  72 + /**
  73 + * 预留字段3
  74 + */
  75 + private Integer attribute3;
  76 + /**
  77 + * 预留字段4
  78 + */
  79 + private Integer attribute4;
  80 +
  81 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/warehouse/MesWmWarehouseLocationDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import com.baomidou.mybatisplus.annotation.KeySequence;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.*;
  8 +
  9 +import java.math.BigDecimal;
  10 +
  11 +/**
  12 + * MES 库区 DO
  13 + */
  14 +@TableName("mes_wm_warehouse_location")
  15 +@KeySequence("mes_wm_warehouse_location_seq")
  16 +@Data
  17 +@EqualsAndHashCode(callSuper = true)
  18 +@ToString(callSuper = true)
  19 +@Builder
  20 +@NoArgsConstructor
  21 +@AllArgsConstructor
  22 +public class MesWmWarehouseLocationDO extends BaseDO {
  23 +
  24 + /**
  25 + * 编号
  26 + */
  27 + @TableId
  28 + private Long id;
  29 + /**
  30 + * 库区编码
  31 + */
  32 + private String code;
  33 + /**
  34 + * 库区名称
  35 + */
  36 + private String name;
  37 + // TODO @AI:需要关联下 mes_wm_warehouse 表;
  38 + /**
  39 + * 仓库编号
  40 + */
  41 + private Long warehouseId;
  42 + /**
  43 + * 面积
  44 + */
  45 + private BigDecimal area;
  46 + /**
  47 + * 是否启用库位管理
  48 + */
  49 + private Boolean areaEnabled;
  50 + /**
  51 + * 状态
  52 + *
  53 + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum}
  54 + */
  55 + private Integer status;
  56 + /**
  57 + * 是否冻结
  58 + */
  59 + private Boolean frozen;
  60 + /**
  61 + * 备注
  62 + */
  63 + private String remark;
  64 + /**
  65 + * 预留字段1
  66 + */
  67 + private String attribute1;
  68 + /**
  69 + * 预留字段2
  70 + */
  71 + private String attribute2;
  72 + /**
  73 + * 预留字段3
  74 + */
  75 + private Integer attribute3;
  76 + /**
  77 + * 预留字段4
  78 + */
  79 + private Integer attribute4;
  80 +
  81 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/warehouse/MesWmWarehouseAreaMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO;
  7 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * MES 库位 Mapper
  15 + */
  16 +@Mapper
  17 +public interface MesWmWarehouseAreaMapper extends BaseMapperX<MesWmWarehouseAreaDO> {
  18 +
  19 + default PageResult<MesWmWarehouseAreaDO> selectPage(MesWmWarehouseAreaPageReqVO reqVO) {
  20 + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
  21 + .likeIfPresent(MesWmWarehouseAreaDO::getCode, reqVO.getCode())
  22 + .likeIfPresent(MesWmWarehouseAreaDO::getName, reqVO.getName())
  23 + .eqIfPresent(MesWmWarehouseAreaDO::getLocationId, reqVO.getLocationId())
  24 + .eqIfPresent(MesWmWarehouseAreaDO::getEnabled, reqVO.getEnabled())
  25 + .eqIfPresent(MesWmWarehouseAreaDO::getStatus, reqVO.getStatus())
  26 + .eqIfPresent(MesWmWarehouseAreaDO::getFrozen, reqVO.getFrozen())
  27 + .orderByDesc(MesWmWarehouseAreaDO::getId));
  28 + }
  29 +
  30 + default MesWmWarehouseAreaDO selectByCode(Long locationId, String code) {
  31 + return selectOne(new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
  32 + .eq(MesWmWarehouseAreaDO::getLocationId, locationId)
  33 + .eq(MesWmWarehouseAreaDO::getCode, code));
  34 + }
  35 +
  36 + default MesWmWarehouseAreaDO selectByName(Long locationId, String name) {
  37 + return selectOne(new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
  38 + .eq(MesWmWarehouseAreaDO::getLocationId, locationId)
  39 + .eq(MesWmWarehouseAreaDO::getName, name));
  40 + }
  41 +
  42 + default List<MesWmWarehouseAreaDO> selectListByLocationIdAndStatus(Long locationId, Integer status) {
  43 + return selectList(new LambdaQueryWrapperX<MesWmWarehouseAreaDO>()
  44 + .eqIfPresent(MesWmWarehouseAreaDO::getLocationId, locationId)
  45 + .eqIfPresent(MesWmWarehouseAreaDO::getStatus, status)
  46 + .orderByDesc(MesWmWarehouseAreaDO::getId));
  47 + }
  48 +
  49 + default List<MesWmWarehouseAreaDO> selectListByIds(Collection<Long> ids) {
  50 + return selectByIds(ids);
  51 + }
  52 +
  53 + default Long selectCountByLocationId(Long locationId) {
  54 + return selectCount(MesWmWarehouseAreaDO::getLocationId, locationId);
  55 + }
  56 +
  57 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/warehouse/MesWmWarehouseLocationMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO;
  7 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * MES 库区 Mapper
  15 + */
  16 +@Mapper
  17 +public interface MesWmWarehouseLocationMapper extends BaseMapperX<MesWmWarehouseLocationDO> {
  18 +
  19 + default PageResult<MesWmWarehouseLocationDO> selectPage(MesWmWarehouseLocationPageReqVO reqVO) {
  20 + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmWarehouseLocationDO>()
  21 + .likeIfPresent(MesWmWarehouseLocationDO::getCode, reqVO.getCode())
  22 + .likeIfPresent(MesWmWarehouseLocationDO::getName, reqVO.getName())
  23 + .eqIfPresent(MesWmWarehouseLocationDO::getWarehouseId, reqVO.getWarehouseId())
  24 + .eqIfPresent(MesWmWarehouseLocationDO::getAreaEnabled, reqVO.getAreaEnabled())
  25 + .eqIfPresent(MesWmWarehouseLocationDO::getStatus, reqVO.getStatus())
  26 + .eqIfPresent(MesWmWarehouseLocationDO::getFrozen, reqVO.getFrozen())
  27 + .orderByDesc(MesWmWarehouseLocationDO::getId));
  28 + }
  29 +
  30 + default MesWmWarehouseLocationDO selectByCode(Long warehouseId, String code) {
  31 + return selectOne(new LambdaQueryWrapperX<MesWmWarehouseLocationDO>()
  32 + .eq(MesWmWarehouseLocationDO::getWarehouseId, warehouseId)
  33 + .eq(MesWmWarehouseLocationDO::getCode, code));
  34 + }
  35 +
  36 + default MesWmWarehouseLocationDO selectByName(Long warehouseId, String name) {
  37 + return selectOne(new LambdaQueryWrapperX<MesWmWarehouseLocationDO>()
  38 + .eq(MesWmWarehouseLocationDO::getWarehouseId, warehouseId)
  39 + .eq(MesWmWarehouseLocationDO::getName, name));
  40 + }
  41 +
  42 + default List<MesWmWarehouseLocationDO> selectListByWarehouseIdAndStatus(Long warehouseId, Integer status) {
  43 + return selectList(new LambdaQueryWrapperX<MesWmWarehouseLocationDO>()
  44 + .eqIfPresent(MesWmWarehouseLocationDO::getWarehouseId, warehouseId)
  45 + .eqIfPresent(MesWmWarehouseLocationDO::getStatus, status)
  46 + .orderByDesc(MesWmWarehouseLocationDO::getId));
  47 + }
  48 +
  49 + default List<MesWmWarehouseLocationDO> selectListByIds(Collection<Long> ids) {
  50 + return selectByIds(ids);
  51 + }
  52 +
  53 + default Long selectCountByWarehouseId(Long warehouseId) {
  54 + return selectCount(MesWmWarehouseLocationDO::getWarehouseId, warehouseId);
  55 + }
  56 +
  57 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/warehouse/MesWmWarehouseMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO;
  7 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * MES 仓库 Mapper
  15 + */
  16 +@Mapper
  17 +public interface MesWmWarehouseMapper extends BaseMapperX<MesWmWarehouseDO> {
  18 +
  19 + default PageResult<MesWmWarehouseDO> selectPage(MesWmWarehousePageReqVO reqVO) {
  20 + return selectPage(reqVO, new LambdaQueryWrapperX<MesWmWarehouseDO>()
  21 + .likeIfPresent(MesWmWarehouseDO::getCode, reqVO.getCode())
  22 + .likeIfPresent(MesWmWarehouseDO::getName, reqVO.getName())
  23 + .eqIfPresent(MesWmWarehouseDO::getStatus, reqVO.getStatus())
  24 + .eqIfPresent(MesWmWarehouseDO::getFrozen, reqVO.getFrozen())
  25 + .orderByDesc(MesWmWarehouseDO::getId));
  26 + }
  27 +
  28 + default MesWmWarehouseDO selectByCode(String code) {
  29 + return selectOne(MesWmWarehouseDO::getCode, code);
  30 + }
  31 +
  32 + default MesWmWarehouseDO selectByName(String name) {
  33 + return selectOne(MesWmWarehouseDO::getName, name);
  34 + }
  35 +
  36 + default List<MesWmWarehouseDO> selectListByStatus(Integer status) {
  37 + return selectList(new LambdaQueryWrapperX<MesWmWarehouseDO>()
  38 + .eqIfPresent(MesWmWarehouseDO::getStatus, status)
  39 + .orderByDesc(MesWmWarehouseDO::getId));
  40 + }
  41 +
  42 + default List<MesWmWarehouseDO> selectListByIds(Collection<Long> ids) {
  43 + return selectByIds(ids);
  44 + }
  45 +
  46 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO;
  5 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO;
  6 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
  7 +import jakarta.validation.Valid;
  8 +
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  14 +
  15 +// TODO @AI:方法注释;
  16 +/**
  17 + * MES 库位 Service 接口
  18 + */
  19 +public interface MesWmWarehouseAreaService {
  20 +
  21 + Long createWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO createReqVO);
  22 +
  23 + void updateWarehouseArea(@Valid MesWmWarehouseAreaSaveReqVO updateReqVO);
  24 +
  25 + void deleteWarehouseArea(Long id);
  26 +
  27 + MesWmWarehouseAreaDO getWarehouseArea(Long id);
  28 +
  29 + PageResult<MesWmWarehouseAreaDO> getWarehouseAreaPage(MesWmWarehouseAreaPageReqVO pageReqVO);
  30 +
  31 + List<MesWmWarehouseAreaDO> getWarehouseAreaList(Long locationId, Integer status);
  32 +
  33 + List<MesWmWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids);
  34 +
  35 + default Map<Long, MesWmWarehouseAreaDO> getWarehouseAreaMap(Collection<Long> ids) {
  36 + return convertMap(getWarehouseAreaList(ids), MesWmWarehouseAreaDO::getId);
  37 + }
  38 +
  39 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
  10 +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;
  11 +import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper;
  12 +import jakarta.annotation.Resource;
  13 +import org.springframework.stereotype.Service;
  14 +import org.springframework.validation.annotation.Validated;
  15 +
  16 +import java.util.Collection;
  17 +import java.util.Collections;
  18 +import java.util.List;
  19 +
  20 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  21 +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
  22 +
  23 +/**
  24 + * MES 库位 Service 实现类
  25 + */
  26 +@Service
  27 +@Validated
  28 +public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService {
  29 +
  30 + @Resource
  31 + private MesWmWarehouseAreaMapper areaMapper;
  32 +
  33 + @Resource
  34 + private MesMdWorkstationMapper workstationMapper;
  35 +
  36 + @Resource
  37 + private MesWmWarehouseLocationService locationService;
  38 +
  39 + @Override
  40 + public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) {
  41 + // 校验库区存在
  42 + validateWarehouseLocationExists(createReqVO.getLocationId());
  43 + // 校验编码唯一
  44 + validateWarehouseAreaCodeUnique(null, createReqVO.getLocationId(), createReqVO.getCode());
  45 + // 校验名称唯一
  46 + validateWarehouseAreaNameUnique(null, createReqVO.getLocationId(), createReqVO.getName());
  47 +
  48 + MesWmWarehouseAreaDO area = BeanUtils.toBean(createReqVO, MesWmWarehouseAreaDO.class);
  49 + areaMapper.insert(area);
  50 + return area.getId();
  51 + }
  52 +
  53 + @Override
  54 + public void updateWarehouseArea(MesWmWarehouseAreaSaveReqVO updateReqVO) {
  55 + // 校验存在
  56 + validateWarehouseAreaExists(updateReqVO.getId());
  57 + // 校验库区存在
  58 + validateWarehouseLocationExists(updateReqVO.getLocationId());
  59 + // 校验编码唯一
  60 + validateWarehouseAreaCodeUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getCode());
  61 + // 校验名称唯一
  62 + validateWarehouseAreaNameUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getName());
  63 +
  64 + MesWmWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseAreaDO.class);
  65 + areaMapper.updateById(updateObj);
  66 + }
  67 +
  68 + @Override
  69 + public void deleteWarehouseArea(Long id) {
  70 + // 校验存在
  71 + validateWarehouseAreaExists(id);
  72 + // 校验是否被工作站引用
  73 + if (ObjUtil.defaultIfNull(workstationMapper.selectCountByAreaId(id), 0L) > 0) {
  74 + throw exception(WM_WAREHOUSE_AREA_HAS_WORKSTATION);
  75 + }
  76 + // TODO @芋艿:库存表(mes_wm_material_stock)迁移后,补充库位库存占用校验
  77 +
  78 + areaMapper.deleteById(id);
  79 + }
  80 +
  81 + // TODO @AI: locationService 抽个类似的方法被调用;
  82 + private void validateWarehouseLocationExists(Long locationId) {
  83 + if (locationService.getWarehouseLocation(locationId) == null) {
  84 + throw exception(WM_WAREHOUSE_LOCATION_NOT_EXISTS);
  85 + }
  86 + }
  87 +
  88 + private void validateWarehouseAreaExists(Long id) {
  89 + if (areaMapper.selectById(id) == null) {
  90 + throw exception(WM_WAREHOUSE_AREA_NOT_EXISTS);
  91 + }
  92 + }
  93 +
  94 + private void validateWarehouseAreaCodeUnique(Long id, Long locationId, String code) {
  95 + MesWmWarehouseAreaDO area = areaMapper.selectByCode(locationId, code);
  96 + if (area == null) {
  97 + return;
  98 + }
  99 + if (ObjUtil.notEqual(area.getId(), id)) {
  100 + throw exception(WM_WAREHOUSE_AREA_CODE_DUPLICATE);
  101 + }
  102 + }
  103 +
  104 + private void validateWarehouseAreaNameUnique(Long id, Long locationId, String name) {
  105 + MesWmWarehouseAreaDO area = areaMapper.selectByName(locationId, name);
  106 + if (area == null) {
  107 + return;
  108 + }
  109 + if (ObjUtil.notEqual(area.getId(), id)) {
  110 + throw exception(WM_WAREHOUSE_AREA_NAME_DUPLICATE);
  111 + }
  112 + }
  113 +
  114 + @Override
  115 + public MesWmWarehouseAreaDO getWarehouseArea(Long id) {
  116 + return areaMapper.selectById(id);
  117 + }
  118 +
  119 + @Override
  120 + public PageResult<MesWmWarehouseAreaDO> getWarehouseAreaPage(MesWmWarehouseAreaPageReqVO pageReqVO) {
  121 + return areaMapper.selectPage(pageReqVO);
  122 + }
  123 +
  124 + @Override
  125 + public List<MesWmWarehouseAreaDO> getWarehouseAreaList(Long locationId, Integer status) {
  126 + return areaMapper.selectListByLocationIdAndStatus(locationId, status);
  127 + }
  128 +
  129 + @Override
  130 + public List<MesWmWarehouseAreaDO> getWarehouseAreaList(Collection<Long> ids) {
  131 + if (CollUtil.isEmpty(ids)) {
  132 + return Collections.emptyList();
  133 + }
  134 + return areaMapper.selectListByIds(ids);
  135 + }
  136 +
  137 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO;
  5 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO;
  6 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
  7 +import jakarta.validation.Valid;
  8 +
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  14 +
  15 +// TODO @AI:方法注释;
  16 +/**
  17 + * MES 库区 Service 接口
  18 + */
  19 +public interface MesWmWarehouseLocationService {
  20 +
  21 + Long createWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO createReqVO);
  22 +
  23 + void updateWarehouseLocation(@Valid MesWmWarehouseLocationSaveReqVO updateReqVO);
  24 +
  25 + void deleteWarehouseLocation(Long id);
  26 +
  27 + MesWmWarehouseLocationDO getWarehouseLocation(Long id);
  28 +
  29 + PageResult<MesWmWarehouseLocationDO> getWarehouseLocationPage(MesWmWarehouseLocationPageReqVO pageReqVO);
  30 +
  31 + List<MesWmWarehouseLocationDO> getWarehouseLocationList(Long warehouseId, Integer status);
  32 +
  33 + List<MesWmWarehouseLocationDO> getWarehouseLocationList(Collection<Long> ids);
  34 +
  35 + default Map<Long, MesWmWarehouseLocationDO> getWarehouseLocationMap(Collection<Long> ids) {
  36 + return convertMap(getWarehouseLocationList(ids), MesWmWarehouseLocationDO::getId);
  37 + }
  38 +
  39 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
  10 +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;
  11 +import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper;
  12 +import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper;
  13 +import jakarta.annotation.Resource;
  14 +import org.springframework.stereotype.Service;
  15 +import org.springframework.validation.annotation.Validated;
  16 +
  17 +import java.util.Collection;
  18 +import java.util.Collections;
  19 +import java.util.List;
  20 +
  21 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  22 +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
  23 +
  24 +/**
  25 + * MES 库区 Service 实现类
  26 + */
  27 +@Service
  28 +@Validated
  29 +public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocationService {
  30 +
  31 + @Resource
  32 + private MesWmWarehouseLocationMapper locationMapper;
  33 +
  34 + @Resource
  35 + private MesWmWarehouseAreaMapper areaMapper;
  36 +
  37 + @Resource
  38 + private MesMdWorkstationMapper workstationMapper;
  39 +
  40 + @Resource
  41 + private MesWmWarehouseService warehouseService;
  42 +
  43 + @Override
  44 + public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) {
  45 + // 校验仓库存在
  46 + validateWarehouseExists(createReqVO.getWarehouseId());
  47 + // 校验编码唯一
  48 + validateWarehouseLocationCodeUnique(null, createReqVO.getWarehouseId(), createReqVO.getCode());
  49 + // 校验名称唯一
  50 + validateWarehouseLocationNameUnique(null, createReqVO.getWarehouseId(), createReqVO.getName());
  51 +
  52 + MesWmWarehouseLocationDO location = BeanUtils.toBean(createReqVO, MesWmWarehouseLocationDO.class);
  53 + locationMapper.insert(location);
  54 + return location.getId();
  55 + }
  56 +
  57 + @Override
  58 + public void updateWarehouseLocation(MesWmWarehouseLocationSaveReqVO updateReqVO) {
  59 + // 校验存在
  60 + validateWarehouseLocationExists(updateReqVO.getId());
  61 + // 校验仓库存在
  62 + validateWarehouseExists(updateReqVO.getWarehouseId());
  63 + // 校验编码唯一
  64 + validateWarehouseLocationCodeUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getCode());
  65 + // 校验名称唯一
  66 + validateWarehouseLocationNameUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getName());
  67 +
  68 + MesWmWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseLocationDO.class);
  69 + locationMapper.updateById(updateObj);
  70 + }
  71 +
  72 + @Override
  73 + public void deleteWarehouseLocation(Long id) {
  74 + // 校验存在
  75 + validateWarehouseLocationExists(id);
  76 + // 校验是否有库位
  77 + if (ObjUtil.defaultIfNull(areaMapper.selectCountByLocationId(id), 0L) > 0) {
  78 + throw exception(WM_WAREHOUSE_LOCATION_HAS_AREA);
  79 + }
  80 + // 校验是否被工作站引用
  81 + if (ObjUtil.defaultIfNull(workstationMapper.selectCountByLocationId(id), 0L) > 0) {
  82 + throw exception(WM_WAREHOUSE_LOCATION_HAS_WORKSTATION);
  83 + }
  84 + // TODO @芋艿:库存表(mes_wm_material_stock)迁移后,补充库区库存占用校验
  85 +
  86 + locationMapper.deleteById(id);
  87 + }
  88 +
  89 + // TODO @AI:使用 warehouseService 里的;抽过去;
  90 + private void validateWarehouseExists(Long warehouseId) {
  91 + if (warehouseService.getWarehouse(warehouseId) == null) {
  92 + throw exception(WM_WAREHOUSE_NOT_EXISTS);
  93 + }
  94 + }
  95 +
  96 + // TODO @AI:使用 warehouseLocationService 里的;抽过去;
  97 + private void validateWarehouseLocationExists(Long id) {
  98 + if (locationMapper.selectById(id) == null) {
  99 + throw exception(WM_WAREHOUSE_LOCATION_NOT_EXISTS);
  100 + }
  101 + }
  102 +
  103 + private void validateWarehouseLocationCodeUnique(Long id, Long warehouseId, String code) {
  104 + MesWmWarehouseLocationDO location = locationMapper.selectByCode(warehouseId, code);
  105 + if (location == null) {
  106 + return;
  107 + }
  108 + if (ObjUtil.notEqual(location.getId(), id)) {
  109 + throw exception(WM_WAREHOUSE_LOCATION_CODE_DUPLICATE);
  110 + }
  111 + }
  112 +
  113 + private void validateWarehouseLocationNameUnique(Long id, Long warehouseId, String name) {
  114 + MesWmWarehouseLocationDO location = locationMapper.selectByName(warehouseId, name);
  115 + if (location == null) {
  116 + return;
  117 + }
  118 + if (ObjUtil.notEqual(location.getId(), id)) {
  119 + throw exception(WM_WAREHOUSE_LOCATION_NAME_DUPLICATE);
  120 + }
  121 + }
  122 +
  123 + @Override
  124 + public MesWmWarehouseLocationDO getWarehouseLocation(Long id) {
  125 + return locationMapper.selectById(id);
  126 + }
  127 +
  128 + @Override
  129 + public PageResult<MesWmWarehouseLocationDO> getWarehouseLocationPage(MesWmWarehouseLocationPageReqVO pageReqVO) {
  130 + return locationMapper.selectPage(pageReqVO);
  131 + }
  132 +
  133 + @Override
  134 + public List<MesWmWarehouseLocationDO> getWarehouseLocationList(Long warehouseId, Integer status) {
  135 + return locationMapper.selectListByWarehouseIdAndStatus(warehouseId, status);
  136 + }
  137 +
  138 + @Override
  139 + public List<MesWmWarehouseLocationDO> getWarehouseLocationList(Collection<Long> ids) {
  140 + if (CollUtil.isEmpty(ids)) {
  141 + return Collections.emptyList();
  142 + }
  143 + return locationMapper.selectListByIds(ids);
  144 + }
  145 +
  146 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO;
  5 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO;
  6 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  7 +import jakarta.validation.Valid;
  8 +
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  14 +
  15 +// TODO @AI:方法注释;
  16 +/**
  17 + * MES 仓库 Service 接口
  18 + */
  19 +public interface MesWmWarehouseService {
  20 +
  21 + Long createWarehouse(@Valid MesWmWarehouseSaveReqVO createReqVO);
  22 +
  23 + void updateWarehouse(@Valid MesWmWarehouseSaveReqVO updateReqVO);
  24 +
  25 + void deleteWarehouse(Long id);
  26 +
  27 + MesWmWarehouseDO getWarehouse(Long id);
  28 +
  29 + PageResult<MesWmWarehouseDO> getWarehousePage(MesWmWarehousePageReqVO pageReqVO);
  30 +
  31 + List<MesWmWarehouseDO> getWarehouseListByStatus(Integer status);
  32 +
  33 + List<MesWmWarehouseDO> getWarehouseList(Collection<Long> ids);
  34 +
  35 + default Map<Long, MesWmWarehouseDO> getWarehouseMap(Collection<Long> ids) {
  36 + return convertMap(getWarehouseList(ids), MesWmWarehouseDO::getId);
  37 + }
  38 +
  39 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.wm.warehouse;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
  10 +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;
  11 +import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper;
  12 +import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper;
  13 +import jakarta.annotation.Resource;
  14 +import org.springframework.stereotype.Service;
  15 +import org.springframework.validation.annotation.Validated;
  16 +
  17 +import java.util.Collection;
  18 +import java.util.Collections;
  19 +import java.util.List;
  20 +
  21 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  22 +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
  23 +
  24 +/**
  25 + * MES 仓库 Service 实现类
  26 + */
  27 +@Service
  28 +@Validated
  29 +public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
  30 +
  31 + @Resource
  32 + private MesWmWarehouseMapper warehouseMapper;
  33 +
  34 + @Resource
  35 + private MesWmWarehouseLocationMapper locationMapper;
  36 +
  37 + @Resource
  38 + private MesMdWorkstationMapper workstationMapper;
  39 +
  40 + @Override
  41 + public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) {
  42 + // 校验编码唯一
  43 + validateWarehouseCodeUnique(null, createReqVO.getCode());
  44 + // 校验名称唯一
  45 + validateWarehouseNameUnique(null, createReqVO.getName());
  46 +
  47 + // 插入
  48 + MesWmWarehouseDO warehouse = BeanUtils.toBean(createReqVO, MesWmWarehouseDO.class);
  49 + warehouseMapper.insert(warehouse);
  50 + return warehouse.getId();
  51 + }
  52 +
  53 + @Override
  54 + public void updateWarehouse(MesWmWarehouseSaveReqVO updateReqVO) {
  55 + // 校验存在
  56 + validateWarehouseExists(updateReqVO.getId());
  57 + // 校验编码唯一
  58 + validateWarehouseCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
  59 + // 校验名称唯一
  60 + validateWarehouseNameUnique(updateReqVO.getId(), updateReqVO.getName());
  61 +
  62 + // 更新
  63 + MesWmWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseDO.class);
  64 + warehouseMapper.updateById(updateObj);
  65 + }
  66 +
  67 + @Override
  68 + public void deleteWarehouse(Long id) {
  69 + // 校验存在
  70 + validateWarehouseExists(id);
  71 + // 校验是否有库区
  72 + if (locationMapper.selectCountByWarehouseId(id) > 0) {
  73 + throw exception(WM_WAREHOUSE_HAS_LOCATION);
  74 + }
  75 + // 校验是否被工作站引用
  76 + if (workstationMapper.selectCountByWarehouseId(id) > 0) {
  77 + throw exception(WM_WAREHOUSE_HAS_WORKSTATION);
  78 + }
  79 + // TODO @芋艿:库存表(mes_wm_material_stock)迁移后,补充仓库库存占用校验
  80 +
  81 + // 删除
  82 + warehouseMapper.deleteById(id);
  83 + }
  84 +
  85 + private void validateWarehouseExists(Long id) {
  86 + if (warehouseMapper.selectById(id) == null) {
  87 + throw exception(WM_WAREHOUSE_NOT_EXISTS);
  88 + }
  89 + }
  90 +
  91 + private void validateWarehouseCodeUnique(Long id, String code) {
  92 + MesWmWarehouseDO warehouse = warehouseMapper.selectByCode(code);
  93 + if (warehouse == null) {
  94 + return;
  95 + }
  96 + if (ObjUtil.notEqual(warehouse.getId(), id)) {
  97 + throw exception(WM_WAREHOUSE_CODE_DUPLICATE);
  98 + }
  99 + }
  100 +
  101 + private void validateWarehouseNameUnique(Long id, String name) {
  102 + MesWmWarehouseDO warehouse = warehouseMapper.selectByName(name);
  103 + if (warehouse == null) {
  104 + return;
  105 + }
  106 + if (ObjUtil.notEqual(warehouse.getId(), id)) {
  107 + throw exception(WM_WAREHOUSE_NAME_DUPLICATE);
  108 + }
  109 + }
  110 +
  111 + @Override
  112 + public MesWmWarehouseDO getWarehouse(Long id) {
  113 + return warehouseMapper.selectById(id);
  114 + }
  115 +
  116 + @Override
  117 + public PageResult<MesWmWarehouseDO> getWarehousePage(MesWmWarehousePageReqVO pageReqVO) {
  118 + return warehouseMapper.selectPage(pageReqVO);
  119 + }
  120 +
  121 + @Override
  122 + public List<MesWmWarehouseDO> getWarehouseListByStatus(Integer status) {
  123 + return warehouseMapper.selectListByStatus(status);
  124 + }
  125 +
  126 + @Override
  127 + public List<MesWmWarehouseDO> getWarehouseList(Collection<Long> ids) {
  128 + if (CollUtil.isEmpty(ids)) {
  129 + return Collections.emptyList();
  130 + }
  131 + return warehouseMapper.selectListByIds(ids);
  132 + }
  133 +
  134 +}
... ...