From 669fe984048785873c20fbd0ce8abb3cd52c1fce Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 29 四月 2025 15:22:24 +0800 Subject: [PATCH] 新增出库单优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java | 75 +++++++++++++++++++++++++++++++++++-- 1 files changed, 71 insertions(+), 4 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java index c4a638a..86ee120 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java @@ -4,14 +4,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.Warehouse; +import com.vincent.rsf.server.manager.entity.WarehouseAreas; +import com.vincent.rsf.server.manager.service.WarehouseAreasItemService; +import com.vincent.rsf.server.manager.service.WarehouseAreasService; import com.vincent.rsf.server.manager.service.WarehouseService; import com.vincent.rsf.server.system.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -19,11 +25,18 @@ import javax.servlet.http.HttpServletResponse; import java.util.*; +@Api(tags = "浠撳簱") @RestController public class WarehouseController extends BaseController { @Autowired private WarehouseService warehouseService; + + @Autowired + private WarehouseAreasService warehouseAreasService; + + @Autowired + private WarehouseAreasItemService warehouseAreasItemService; @PreAuthorize("hasAuthority('manager:warehouse:list')") @PostMapping("/warehouse/page") @@ -55,10 +68,22 @@ @OperationLog("Create 浠撳簱淇℃伅琛�") @PostMapping("/warehouse/save") public R save(@RequestBody Warehouse warehouse) { + if (Objects.isNull(warehouse)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(warehouse.getName())) { + throw new CoolException("浠撳簱鍚嶇О涓嶈兘涓虹┖锛侊紒"); + } + List<Warehouse> warehouses = warehouseService.list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getName, warehouse.getName())); + if (!warehouses.isEmpty()) { + throw new CoolException("浠撳簱鍚嶇О宸插瓨鍦紒锛�"); + } + if (!warehouseService.list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getCode, warehouse.getCode())).isEmpty()) { + throw new CoolException("浠撳簱缂栫爜宸插瓨鍦紒锛�"); + } + warehouse.setCreateBy(getLoginUserId()); - warehouse.setCreateTime(new Date()); warehouse.setUpdateBy(getLoginUserId()); - warehouse.setUpdateTime(new Date()); if (!warehouseService.save(warehouse)) { return R.error("Save Fail"); } @@ -69,8 +94,29 @@ @OperationLog("Update 浠撳簱淇℃伅琛�") @PostMapping("/warehouse/update") public R update(@RequestBody Warehouse warehouse) { + if (Objects.isNull(warehouse)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(warehouse.getName())) { + throw new CoolException("浠撳簱鍚嶇О涓嶈兘涓虹┖锛侊紒"); + } warehouse.setUpdateBy(getLoginUserId()); - warehouse.setUpdateTime(new Date()); + + Warehouse warehouse1 = warehouseService.getById(warehouse.getId()); + if (!warehouse.getName().equals(warehouse1.getName())) { + List<Warehouse> areasList = warehouseService.list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getName, warehouse1.getName())); + if (!areasList.isEmpty()) { + throw new CoolException("浠撳簱鍚嶅凡瀛樺湪锛侊紒"); + } + } + if (!warehouse.getCode().equals(warehouse1.getCode())) { + List<Warehouse> areasList = warehouseService.list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getCode, warehouse1.getCode())); + if (!areasList.isEmpty()) { + throw new CoolException("浠撳簱缂栫爜宸插瓨鍦紒锛�"); + } + } + + if (!warehouseService.updateById(warehouse)) { return R.error("Update Fail"); } @@ -81,6 +127,14 @@ @OperationLog("Delete 浠撳簱淇℃伅琛�") @PostMapping("/warehouse/remove/{ids}") public R remove(@PathVariable Long[] ids) { + if (ids.length < 1) { + throw new CoolException("鏌ヨid涓嶈兘涓虹┖锛侊紒"); + } + List<WarehouseAreas> warehouseAreas = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>() + .in(WarehouseAreas::getWarehouseId, ids)); + if (!warehouseAreas.isEmpty()) { + throw new CoolException("褰撳墠浠撳簱涓嬫湁鏈垹闄ゅ簱鍖猴紝 涓嶅彲鎿嶄綔鍒犻櫎锛侊紒"); + } if (!warehouseService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); } @@ -104,7 +158,20 @@ @PreAuthorize("hasAuthority('manager:warehouse:list')") @PostMapping("/warehouse/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - ExcelUtil.build(ExcelUtil.create(warehouseService.list(), Warehouse.class), response); + List<Warehouse> list = new ArrayList<>(); + if (!Objects.isNull(map.get("ids"))) { + list = warehouseService.list(new LambdaQueryWrapper<Warehouse>().in(Warehouse::getId, map.get("ids"))); + } else { + list = warehouseService.list(); + } + ExcelUtil.build(ExcelUtil.create(list, Warehouse.class), response); + } + + @ApiOperation("鑾峰彇浠撳簱鏍戠姸鍥�") + @PreAuthorize("hasAuthority('manager:warehouse:list')") + @PostMapping("/warehouse/areas") + public R getAreasForWarehouse(@RequestBody Map<String, Object> param) { + return R.ok(warehouseService.getAllWarehouseAreas(param)); } } -- Gitblit v1.9.1