| | |
| | | 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.*; |
| | |
| | | |
| | | @Autowired |
| | | private WarehouseService warehouseService; |
| | | |
| | | @Autowired |
| | | private WarehouseAreasService warehouseAreasService; |
| | | |
| | | @Autowired |
| | | private WarehouseAreasItemService warehouseAreasItemService; |
| | | |
| | | @PreAuthorize("hasAuthority('manager:warehouse:list')") |
| | | @PostMapping("/warehouse/page") |
| | |
| | | @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"); |
| | | } |
| | |
| | | @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"); |
| | | } |
| | |
| | | @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"); |
| | | } |
| | |
| | | @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)); |
| | | } |
| | | |
| | | } |