Commit a5510bb3edcd197306c55f52b9abb71767f11d2d
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 | +} |