/* * Copyright (c) 2018-2025, ztt All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the pig4cloud.com developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: ztt */ package com.chinaztt.mes.warehouse.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaztt.mes.common.wrapper.QueryWrapperUtil; import com.chinaztt.mes.warehouse.dto.StockDetailDTO; import com.chinaztt.mes.warehouse.entity.StockDetail; import com.chinaztt.mes.warehouse.service.StockDetailService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; /** * 安全库存 * * @author sunxl * @date 2020-10-09 14:25:35 */ @RestController @AllArgsConstructor @RequestMapping("/stockDetail" ) @Api(value = "stockDetail", tags = "安全库存管理") public class StockDetailController { private final StockDetailService stockDetailService; /** * 分页查询 * @param page 分页对象 * @param stockDetail 安全库存 * @return */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page" ) @PreAuthorize("@pms.hasPermission('warehouse_stockdetail_view')" ) public R getStockDetailPage(Page page, StockDetailDTO stockDetail) { return R.ok(stockDetailService.getStockPart(page, QueryWrapperUtil.gen(stockDetail))); } /** * 通过id查询安全库存 * @param id id * @return R */ @ApiOperation(value = "通过id查询", notes = "通过id查询") @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('warehouse_stockdetail_view')" ) public R getById(@PathVariable("id" ) Long id) { return R.ok(stockDetailService.getStockPartById(id)); } /** * 新增安全库存 * @param stockDetail 安全库存 * @return R */ @ApiOperation(value = "新增安全库存", notes = "新增安全库存") @SysLog("新增安全库存" ) @PostMapping @PreAuthorize("@pms.hasPermission('warehouse_stockdetail_add')" ) public R save(@RequestBody StockDetail stockDetail) { StockDetail stockDetailByFind = stockDetailService.getOne(Wrappers.lambdaQuery().eq(StockDetail::getPartId, stockDetail.getPartId()).eq(StockDetail::getSafetyStockId, stockDetail.getSafetyStockId())); if (stockDetailByFind != null ) { throw new RuntimeException("安全库存重复:"); } return R.ok(stockDetailService.save(stockDetail)); } /** * 修改安全库存 * @param stockDetail 安全库存 * @return R */ @ApiOperation(value = "修改安全库存", notes = "修改安全库存") @SysLog("修改安全库存" ) @PutMapping @PreAuthorize("@pms.hasPermission('warehouse_stockdetail_edit')" ) public R updateById(@RequestBody StockDetail stockDetail) { StockDetail stockDetailByFind = stockDetailService.getOne(Wrappers.lambdaQuery().eq(StockDetail::getPartId, stockDetail.getPartId()).eq(StockDetail::getSafetyStockId, stockDetail.getSafetyStockId()).ne(StockDetail::getId, stockDetail.getId())); if (stockDetailByFind != null ) { throw new RuntimeException("安全库存重复:"); } return R.ok(stockDetailService.updateById(stockDetail)); } /** * 通过id删除安全库存 * @param id id * @return R */ @ApiOperation(value = "通过id删除安全库存", notes = "通过id删除安全库存") @SysLog("通过id删除安全库存" ) @DeleteMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('warehouse_stockdetail_del')" ) public R removeById(@PathVariable Long id) { return R.ok(stockDetailService.removeById(id)); } }