package com.chinaztt.mes.warehouse.controller;
|
|
import com.alibaba.excel.EasyExcel;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
|
import com.chinaztt.mes.warehouse.dto.FeedingStockDTO;
|
import com.chinaztt.mes.warehouse.dto.MoveLibraryBoxDTO;
|
import com.chinaztt.mes.warehouse.dto.StockDTO;
|
import com.chinaztt.mes.warehouse.entity.JoinStockOrder;
|
import com.chinaztt.mes.warehouse.excel.StockData;
|
import com.chinaztt.mes.warehouse.excel.StockUploadListener;
|
import com.chinaztt.mes.warehouse.service.StockService;
|
import com.chinaztt.ztt.common.core.util.R;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
/**
|
* 库存表
|
*
|
* @author cxf
|
* @date 2020-10-22 16:37:46
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/stock")
|
@Api(value = "stock", tags = "库存表管理")
|
public class StockController {
|
|
private final StockService warehouseStockService;
|
|
/**
|
* 分页查询
|
*
|
* @param page 分页对象
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/page")
|
public R getStockPage(Page page, StockDTO stockDTO) {
|
return R.ok(warehouseStockService.getStockPage(page, QueryWrapperUtil.gen(stockDTO)));
|
}
|
|
|
/**
|
* 实时库存分页查询
|
*
|
* @param page 分页对象
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "实时库存分页查询", notes = "实时库存分页查询")
|
@GetMapping("/realTimeStockPage")
|
public R getRealTimeStockPage(Page page, StockDTO stockDTO) {
|
return R.ok(warehouseStockService.getRealTimeStockPage(page, QueryWrapperUtil.gen(stockDTO),stockDTO));
|
}
|
|
/**
|
* 根据sn号获取库存明细
|
*
|
* @param
|
* @return
|
*/
|
@ApiOperation(value = "根据sn号获取库存明细", notes = "根据sn号获取库存明细")
|
@GetMapping("/getStockBySn")
|
public R getStockBySn(@RequestParam("partBatchNo") String partBatchNo) {
|
return R.ok(warehouseStockService.getStockBySn(partBatchNo));
|
}
|
|
/**
|
* 分页查询
|
*
|
* @param feedingStockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
@GetMapping("/getFeedingStock/{workstationId}")
|
public R getFeedingStock(FeedingStockDTO feedingStockDTO, @PathVariable("workstationId") Long workstationId) {
|
return R.ok(warehouseStockService.getFeedingStock(workstationId, QueryWrapperUtil.gen(feedingStockDTO)));
|
}
|
|
/**
|
* 根据工单所需物料获取实时库存
|
*
|
* @param page 分页对象
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据工单所需物料获取实时库存", notes = "根据工单所需物料获取实时库存")
|
@GetMapping(value = {"/getStockPageByOperation/{operationTaskId}", "getStockPageByOperation"})
|
public R getStockPageByOperation(Page page, StockDTO stockDTO, @PathVariable(value = "operationTaskId", required = false) Long operationTaskId) {
|
return R.ok(warehouseStockService.getStockPageByOperation(page, QueryWrapperUtil.gen(stockDTO), operationTaskId));
|
}
|
|
// /**
|
// * 根据工单所需物料获取实时库存
|
// *
|
// * @param page 分页对象
|
// * @param stockDTO 库存表
|
// * @return
|
// */
|
// @ApiOperation(value = "根据工单所需物料获取实时库存", notes = "根据工单所需物料获取实时库存")
|
// @GetMapping(value = {"/getStockPageByOperation/{operationTaskId}", "getStockPageByOperation"})
|
// public R getStockPageByOperation(Page page, StockDTO stockDTO, @PathVariable(value = "operationTaskId", required = false) Long operationTaskId) {
|
// return R.ok(warehouseStockService.getStockPageByOperation(page, QueryWrapperUtil.gen(stockDTO),stockDTO, operationTaskId));
|
// }
|
|
// /**
|
// * 根据工单所需物料获取实时库存(不分页)
|
// *
|
// * @param stockDTO 库存表
|
// * @return
|
// */
|
// @ApiOperation(value = "根据工单所需物料获取实时库存", notes = "根据工单所需物料获取实时库存")
|
// @GetMapping(value = {"/getStockListByOperation/{operationTaskId}", "getStockListByOperation"})
|
// public R getStockListByOperation(StockDTO stockDTO, @PathVariable(value = "operationTaskId", required = false) Long operationTaskId) {
|
// return R.ok(warehouseStockService.getStockListByOperation(QueryWrapperUtil.gen(stockDTO), operationTaskId));
|
// }
|
|
/**
|
* 根据工单所需物料获取实时库存(不分页)
|
*
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据工单所需物料获取实时库存", notes = "根据工单所需物料获取实时库存")
|
@GetMapping(value = {"/getStockListByOperation/{operationTaskId}", "getStockListByOperation"})
|
public R getStockListByOperation(StockDTO stockDTO, @PathVariable(value = "operationTaskId", required = false) Long operationTaskId) {
|
return R.ok(warehouseStockService.getStockListByOperation(QueryWrapperUtil.gen(stockDTO),stockDTO, operationTaskId));
|
}
|
|
@ApiOperation(value = "查询ERP库存", notes = "查询ERP库存")
|
@GetMapping(value = "/getERPStockListByOperation")
|
public R getERPStockListByOperation(StockDTO stockDTO) {
|
return R.ok();
|
// List<StockDTO> erpStockListByOperation = warehouseStockService.getERPStockListByOperation(stockDTO.getPartNo(), stockDTO.getPartBatchNo());
|
// return R.ok(erpStockListByOperation);
|
}
|
|
@ApiOperation(value = "查询ERP库存", notes = "查询ERP库存")
|
@GetMapping(value = "/getERPStockListPageByOperation")
|
public R getERPStockListPageByOperation(Page page, StockDTO stockDTO) {
|
R erpStockListByOperation = warehouseStockService.getERPStockListPageByOperation(page,stockDTO.getPartNo(),(int)page.getCurrent(),(int)page.getSize());
|
|
return erpStockListByOperation;
|
}
|
@ApiOperation(value = "锁定ERP库存", notes = "锁定ERP库存")
|
@GetMapping(value = "/lockStore")
|
public R lockStore(StockDTO stockDTO) {
|
return warehouseStockService.lockStore(stockDTO);
|
}
|
|
/**
|
* 根据零件、库位和批次号筛选实时库存
|
*
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据零件、库位和批次号筛选实时库存", notes = "根据零件、库位和批次号筛选实时库存")
|
@GetMapping("/stock/page")
|
public R getStockPage(StockDTO stockDTO,String condition) {
|
return R.ok(warehouseStockService.getStock(stockDTO,condition));
|
}
|
|
/**
|
* 根据零件、库位和批次号筛选实时库存数量
|
*
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据零件、库位和批次号筛选实时库存数量", notes = "根据零件、库位和批次号筛选实时库存数量")
|
@GetMapping("/stock/countStock")
|
public R countStock(StockDTO stockDTO,String condition) {
|
return R.ok(warehouseStockService.countStock(stockDTO,condition));
|
}
|
|
/**
|
* 移库
|
*
|
* @param stockDTOList 库存表
|
* @return
|
*/
|
@ApiOperation(value = "移库", notes = "移库")
|
@PostMapping("/move")
|
public R moveStock(@RequestBody List<StockDTO> stockDTOList) {
|
return R.ok(warehouseStockService.moveStock(stockDTOList));
|
}
|
|
/**
|
* 删除实时库存的数量
|
*
|
* @param stockDTOList 库存表
|
* @return
|
*/
|
@ApiOperation(value = "移库", notes = "移库")
|
@PostMapping("/delete")
|
public R deleteStock(@RequestBody List<StockDTO> stockDTOList) {
|
return R.ok(warehouseStockService.deleteStock(stockDTOList));
|
}
|
|
/**
|
* 增加实时库存的数量
|
*
|
* @param stockDTOList 库存表
|
* @return
|
*/
|
@ApiOperation(value = "移库", notes = "移库")
|
@PostMapping("/addStock")
|
public R addStock(@RequestBody List<StockDTO> stockDTOList) {
|
return R.ok(warehouseStockService.addStock(stockDTOList));
|
}
|
|
/**
|
* 新增实时库存
|
*
|
* @param stockDTO 实时库存
|
* @return R
|
*/
|
@ApiOperation(value = "新增实时库存", notes = "新增实时库存")
|
@PostMapping
|
public R save(@RequestBody StockDTO stockDTO) {
|
return R.ok(warehouseStockService.fullSave(stockDTO));
|
}
|
|
/**
|
* 分页查询
|
*
|
* @param page 材料申请备料过滤的库存
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "材料申请备料过滤的库存", notes = "材料申请备料过滤的库存")
|
@GetMapping("/page/{partId}")
|
public R getStockByPartIdPage(Page page, StockDTO stockDTO, @PathVariable("partId") Long partId) {
|
return R.ok(warehouseStockService.getStockByPartIdPage(page, QueryWrapperUtil.gen(stockDTO), partId));
|
}
|
|
/**
|
* excel上传
|
*
|
* @return
|
*/
|
@PostMapping("/upload")
|
public R upload(@RequestParam("file") MultipartFile file) {
|
try {
|
EasyExcel.read(file.getInputStream(), StockData.class, new StockUploadListener(warehouseStockService)).sheet().doRead();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return R.ok();
|
}
|
|
/**
|
* 通过id查询库存表
|
*
|
* @param id id
|
* @return R
|
*/
|
@ApiOperation(value = "通过id查询", notes = "通过id查询")
|
@GetMapping("/{id}")
|
public R getById(@PathVariable("id") Long id) {
|
return R.ok(warehouseStockService.getById(id));
|
}
|
|
/**
|
* 根据工作站id查询线边仓
|
*
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据工作站id查询线边仓", notes = "根据工作站id查询线边仓")
|
@GetMapping("/getStockByWorkstationId")
|
public R getStockByWorkstationId(Page page, StockDTO stockDTO) {
|
return R.ok(warehouseStockService.getStockByWorkstationId(page, QueryWrapperUtil.gen(stockDTO)));
|
}
|
|
|
/**
|
* 根据工作站id查询线边仓待处理物料
|
*
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "根据工作站id查询线边仓待处理物料", notes = "根据工作站id查询线边仓待处理物料")
|
@GetMapping("/getToDealStockByWorkstationId")
|
public R getToDealStockByWorkstationId(Page page, StockDTO stockDTO) {
|
return R.ok(warehouseStockService.getToDealStockByWorkstationId(page, QueryWrapperUtil.gen(stockDTO)));
|
}
|
|
/**
|
* 根据ids 查询库存信息
|
*
|
* @param ids
|
* @return
|
*/
|
@PostMapping("/stock")
|
public R loadLocation(@RequestBody List<Long> ids) {
|
return R.ok(warehouseStockService.getStockByLocation(ids));
|
}
|
|
/**
|
* 新增预留记录
|
* 增加预留库存 减少可用户库存
|
*
|
* @param joinStockOrderList 客户订单库存预留表
|
* @return
|
*/
|
@ApiOperation(value = "预留", notes = "预留")
|
@PostMapping("/reserve")
|
public R reserve(@RequestBody List<JoinStockOrder> joinStockOrderList) {
|
return R.ok(warehouseStockService.reserve(joinStockOrderList));
|
}
|
|
/**
|
* 删除预留记录
|
* 减少预留库存 增加可用户库存
|
*
|
* @param joinStockOrderList 客户订单库存预留表
|
* @return
|
*/
|
@ApiOperation(value = "取消预留", notes = "取消预留")
|
@PostMapping("/cancelReserve")
|
public R cancelReserve(@RequestBody List<JoinStockOrder> joinStockOrderList) {
|
return warehouseStockService.cancelReserve(joinStockOrderList);
|
}
|
|
/**
|
* 查询ifs库存数量
|
*
|
* @param partNo
|
* @return
|
*/
|
@ApiOperation(value = "查询ifs库存数量", notes = "查询ifs库存数量")
|
@GetMapping("/getIfsStock")
|
public R getIfsStock(String partNo) {
|
return warehouseStockService.getIfsStock(partNo, null);
|
}
|
|
/**
|
* 根据SN号获取可用实时库存对象list
|
*
|
* @param sn
|
* @return
|
*/
|
@ApiOperation(value = "【PDA移库】获取可用实时库存对象list", notes = "根据SN号获取")
|
@GetMapping("/getEnableStockObjList/{sn}")
|
public R getEnableStockObjList(@PathVariable String sn) {
|
return warehouseStockService.getEnableStockObjList(sn);
|
}
|
|
@ApiOperation(value = "【PDA移库】获取可用库位对象list", notes = "无需传参")
|
@GetMapping("/getEnableLocationObjList")
|
public R getEnableLocationObjList() {
|
return warehouseStockService.getEnableLocationObjList();
|
}
|
|
@ApiOperation(value = "【PDA移库】提交移库请求", notes = "传五个参数:stockId,arriveLocationNo,moveQty,materialCode,snNo")
|
@PostMapping("/pdaMoveStockSubmit")
|
public R pdaMoveStockSubmit(@RequestBody List<MoveLibraryBoxDTO> moveLibraryBoxDTOList) {
|
return warehouseStockService.pdaMoveStockSubmit(moveLibraryBoxDTOList);
|
}
|
|
@ApiOperation(value = "PDA成品入库获取可用成品库位", notes = "PDA成品入库获取可用成品库位")
|
@GetMapping("/getFinishProductLocation")
|
public R getFinishProductLocation() {
|
return R.ok(warehouseStockService.getFinishProductLocation());
|
}
|
@ApiOperation(value = "PDA获取实时库存数据")
|
@GetMapping("/getFinishProductStock")
|
public R getFinishProductStock(@RequestParam("sn") String sn, @RequestParam("partNo") String partNo) {
|
return R.ok(warehouseStockService.getFinishProductStock(sn, partNo));
|
}
|
|
@ApiOperation(value = "根据库存id和SN号获取库存", notes = "根据库存id和SN号获取库存")
|
@GetMapping("/getStockByLocNoAndSn")
|
public R getStockByLocNoAndSn(@RequestParam("locationNo")String locationNo,@RequestParam("sn")String sn) {
|
return R.ok(warehouseStockService.getStockByLocNoAndSn(locationNo,sn));
|
}
|
|
|
/**
|
* 分页查询出库位尾号为001的
|
*
|
* @param page 分页对象
|
* @param stockDTO 库存表
|
* @return
|
*/
|
@ApiOperation(value = "分页查询出库位尾号为001的", notes = "分页查询出库位尾号为001的")
|
@GetMapping("/getStockPageByLocNo")
|
public R getStockPageByLocNo(Page page, StockDTO stockDTO) {
|
return R.ok(warehouseStockService.getStockPageByLocNo(page, QueryWrapperUtil.gen(stockDTO)));
|
}
|
|
|
|
/**
|
* 库存件接收校验
|
*
|
* @param stockDTOList 库存表
|
* @return
|
*/
|
@ApiOperation(value = "库存件接收校验", notes = "库存件接收校验")
|
@PostMapping("/checkWdr")
|
public R checkWdr(@RequestBody List<StockDTO> stockDTOList) {
|
return warehouseStockService.checkWdr(stockDTOList);
|
}
|
|
/**
|
* 通过SN号查到其入库前的库位
|
*
|
* @param sn
|
* @return
|
*/
|
@ApiOperation(value = "通过SN号查到其入库前的库位", notes = "通过SN号查到其入库前的库位")
|
@GetMapping("/getTransactionBySn")
|
public R getTransactionBySn(@RequestParam("sn")String sn) {
|
return R.ok(warehouseStockService.getTransactionBySn(sn));
|
}
|
|
|
/**
|
* pda退库
|
*
|
* @param sn
|
* @param quantity
|
* @return
|
*/
|
@ApiOperation(value = "pda退库", notes = "pda退库")
|
@GetMapping("/returnStockBySn")
|
public R returnStockBySn(@RequestParam("sn")String sn,@RequestParam("quantity")BigDecimal quantity) {
|
return warehouseStockService.returnStockBySn(sn,quantity);
|
}
|
|
|
|
|
|
|
}
|