package doumeemes.api.ext;
|
|
import doumeemes.api.BaseController;
|
import doumeemes.core.annotation.excel.ExcelExporter;
|
import doumeemes.core.annotation.pr.PreventRepeat;
|
import doumeemes.core.annotation.trace.Trace;
|
import doumeemes.core.model.ApiResponse;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.utils.DateUtil;
|
import doumeemes.dao.business.model.WOutbound;
|
import doumeemes.dao.business.model.WTransfer;
|
import doumeemes.dao.ext.bean.*;
|
import doumeemes.dao.ext.beanDto.QueryWOutBoundDto;
|
import doumeemes.dao.ext.beanDto.QueryWSOutBoundDto;
|
import doumeemes.dao.ext.dto.QueryWOutboundExtDTO;
|
import doumeemes.dao.ext.vo.WOutboundExtListVO;
|
import doumeemes.dao.ext.vo.WOutboundListCountVO;
|
import doumeemes.dao.ext.vo.WorkOrderOutboundExtListVO;
|
import doumeemes.service.business.WOutboundService;
|
import doumeemes.service.ext.WOutboundExtService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.models.auth.In;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 出入库单信息接口
|
* @author 江蹄蹄
|
* @date 2022/04/20 10:57
|
*/
|
@RestController
|
@RequestMapping("/ext/wOutboundExt")
|
@Api(tags = "出入库单信息接口")
|
@Trace(withRequestResult = false,withRequestParameters = false)
|
public class WOutboundExtController extends BaseController {
|
|
@Autowired
|
private WOutboundExtService wOutboundExtService;
|
|
@Autowired
|
private WOutboundService wOutboundService;
|
|
// @PreventRepeat
|
// @ApiOperation("新建")
|
// @PostMapping("/create")
|
// @RequiresPermissions("ext:woutboundext:create")
|
// public ApiResponse create(@RequestBody WOutbound wOutbound) {
|
// return ApiResponse.success(wOutboundService.create(wOutbound));
|
// }
|
//
|
// @ApiOperation("根据ID删除")
|
// @GetMapping("/delete/{id}")
|
// @RequiresPermissions("ext:woutboundext:delete")
|
// public ApiResponse deleteById(@PathVariable Integer id) {
|
// wOutboundService.deleteById(id);
|
// return ApiResponse.success(null);
|
// }
|
//
|
// @ApiOperation("批量删除")
|
// @GetMapping("/delete/batch")
|
// @RequiresPermissions("ext:woutboundext:delete")
|
// public ApiResponse deleteByIds(@RequestParam String ids) {
|
// String [] idArray = ids.split(",");
|
// List<Integer> idList = new ArrayList<>();
|
// for (String id : idArray) {
|
// idList.add(Integer.valueOf(id));
|
// }
|
// wOutboundService.deleteByIdInBatch(idList);
|
// return ApiResponse.success(null);
|
// }
|
//
|
// @ApiOperation("根据ID修改")
|
// @PostMapping("/updateById")
|
// @RequiresPermissions("ext:woutboundext:update")
|
// public ApiResponse updateById(@RequestBody WOutbound wOutbound) {
|
// wOutboundService.updateById(wOutbound);
|
// return ApiResponse.success(null);
|
// }
|
//
|
// @ApiOperation("分页查询")
|
// @PostMapping("/page")
|
// @RequiresPermissions("ext:woutboundext:query")
|
// public ApiResponse<PageData<WOutboundExtListVO>> findPage (@RequestBody PageWrap<QueryWOutboundExtDTO> pageWrap) {
|
// return ApiResponse.success(wOutboundExtService.findPage(pageWrap));
|
// }
|
//
|
// @ApiOperation("导出Excel")
|
// @PostMapping("/exportExcel")
|
// @RequiresPermissions("ext:woutboundext:exportExcel")
|
// public void exportExcel (@RequestBody PageWrap<QueryWOutboundExtDTO> pageWrap, HttpServletResponse response) {
|
// ExcelExporter.build(WOutboundExtListVO.class).export(wOutboundExtService.findPage(pageWrap).getRecords(), "出入库单信息", response);
|
// }
|
//
|
// @ApiOperation("根据ID查询")
|
// @GetMapping("/{id}")
|
// @RequiresPermissions("ext:woutboundext:query")
|
// public ApiResponse findById(@PathVariable Integer id) {
|
// return ApiResponse.success(wOutboundService.findById(id));
|
// }
|
|
|
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@RequiresPermissions("ext:woutboundext:create")
|
public ApiResponse create(@Validated @RequestBody WOutBoundBean wOutBoundBean) {
|
return wOutboundService.saveBean(wOutBoundBean,getLoginUser()) ;
|
}
|
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/createForStandard")
|
@RequiresPermissions("ext:woutboundext:create")
|
public ApiResponse createForStandard(@Validated @RequestBody WOutBoundBean wOutBoundBean) {
|
return wOutboundService.saveBeanForStandard(wOutBoundBean,getLoginUser()) ;
|
}
|
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@RequiresPermissions("ext:woutboundext:query")
|
public ApiResponse<PageData<WOutboundExtListVO>> findPage (@RequestBody PageWrap<QueryWOutBoundDto> pageWrap) {
|
return ApiResponse.success(wOutboundExtService.findListPage(pageWrap));
|
}
|
|
@ApiOperation("根据ID查询")
|
@GetMapping("/{id}")
|
public ApiResponse<WOutbound> findById(@PathVariable Integer id) {
|
return ApiResponse.success(wOutboundService.getBeanById(id));
|
}
|
|
@ApiOperation("导出Excel")
|
@PostMapping("/exportExcel")
|
@RequiresPermissions("ext:woutboundext:exportExcel")
|
public void exportExcel (@RequestBody QueryWOutBoundDto queryWOutBoundDto, HttpServletResponse response) throws Exception{
|
ExcelExporter.build(WOutboundExtListVO.class).export(wOutboundExtService.listForExcel(queryWOutBoundDto), queryWOutBoundDto.getType()==0?"出":"入"+"库单信息"+DateUtil.getNowLongTime(), response);
|
}
|
|
@ApiOperation("单据取消")
|
@GetMapping("/cancel")
|
@RequiresPermissions("ext:woutboundext:cancel")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "主键" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "detail", value = "取消描述" , required = true),
|
})
|
public ApiResponse cancel(@RequestParam Integer id,@RequestParam String detail) {
|
return wOutboundService.cancel(id,detail,getLoginUser());
|
}
|
|
@ApiOperation("出入库分页查询 - H5")
|
@PostMapping("/listPage")
|
@RequiresPermissions("ext:woutboundext:query")
|
public ApiResponse<PageData<WOutboundExtListVO>> listPage (@RequestBody PageWrap<QueryWOutBoundDto> pageWrap) {
|
return ApiResponse.success(wOutboundExtService.findListPage(pageWrap));
|
}
|
|
@ApiOperation("出入库列表统计 - H5")
|
@PostMapping("/pageCount")
|
@RequiresPermissions("ext:woutboundext:query")
|
public ApiResponse<WOutboundListCountVO> pageCount (@RequestBody QueryWOutBoundDto queryWOutBoundDto) {
|
return ApiResponse.success(wOutboundExtService.pageCount(queryWOutBoundDto));
|
}
|
|
@ApiOperation("根据转库单获取出库信息 - H5")
|
@GetMapping("/getOutByWTransferId")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "转库单主键" , required = true)
|
})
|
public ApiResponse<WTransfer> getOutByWTransferIdForH5(@RequestParam Integer id) {
|
return wOutboundService.getOutByWTransferId(id);
|
}
|
|
@ApiOperation("根据转库单获取入库信息 - H5")
|
@GetMapping("/getInByWTransferId")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "转库单主键" , required = true)
|
})
|
public ApiResponse<WTransfer> getInByWTransferId(@RequestParam Integer id) {
|
return wOutboundService.getInByWTransferId(id);
|
}
|
|
|
@ApiOperation("获出入库单详情 - H5")
|
@GetMapping("/findById")
|
public ApiResponse<WOutbound> findByIdForH5(@RequestParam Integer id) {
|
return ApiResponse.success(wOutboundService.getBeanById(id));
|
}
|
|
@ApiOperation("出库扫描篮筐码 - H5")
|
@GetMapping("/outScanAppliances")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "pId", value = "转库单主键/出库单主键" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "barCode", value = "条码" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "单据类别 :1=转库单;2=出库单;3:入库单" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "locationId", value = "货位主键" , required = false),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "warehouseId", value = "仓库主键" , required = false)
|
})
|
public ApiResponse<OutScanBean> outScanAppliances(@RequestParam String barCode, @RequestParam Integer type, Integer locationId, @RequestParam Integer pId , Integer warehouseId) {
|
return wOutboundService.outScanAppliances(barCode,type,pId,warehouseId,locationId,getLoginUser());
|
}
|
|
@PreventRepeat
|
@ApiOperation("出库单保存 - H5")
|
@PostMapping("/saveOut")
|
@RequiresPermissions("ext:woutboundext:upload")
|
public ApiResponse saveOut(@Validated @RequestBody WOutBoundOutBean wOutBoundOutBean) {
|
return wOutboundService.saveOut(wOutBoundOutBean,getLoginUser()) ;
|
}
|
|
@PreventRepeat
|
@ApiOperation("入库单保存 - H5")
|
@PostMapping("/saveIn")
|
@RequiresPermissions("ext:woutboundext:upload")
|
public ApiResponse saveIn(@Validated @RequestBody WOutBoundOutBean wOutBoundOutBean) {
|
return wOutboundService.saveIn(wOutBoundOutBean,getLoginUser()) ;
|
}
|
|
|
@ApiOperation("据入库货位筛选入库单 - H5")
|
@GetMapping("/finishedInBill")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "inLocationIds", value = "入库仓位主键" , required = true)
|
})
|
public ApiResponse<List<FinishedInBillBean>> finishedInBill(@RequestParam String inLocationIds) {
|
return ApiResponse.success(wOutboundExtService.finishedInBill(inLocationIds,null));
|
}
|
|
|
@ApiOperation(value = "出入库单详情与出入库业务处理", notes = "出入库单详情与出入库业务处理 - H5")
|
@GetMapping("/wOutBoundForInOut")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "转库单主键" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "wOutboundType", value = "出入库单类别 0:转出;1转入" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "optType", value = "操作类别:1 添加 2 移除" , required = false),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "jsonBean", value = "添加条码类" , required = false)
|
})
|
@RequiresPermissions("ext:woutboundext:deal")
|
public ApiResponse<WOutboundRedisBean> wOutBoundForInOut(@RequestParam Integer id, @RequestParam Integer wOutboundType, Integer optType
|
, String jsonBean) {
|
return ApiResponse.success(wOutboundService.wOutBoundForInOut(id,wOutboundType,optType,jsonBean));
|
}
|
|
@ApiOperation(value = "出入库业务处理提交", notes = "出入库业务处理提交 - H5")
|
@GetMapping("/wOutBoundForUpload")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "出入库单主键" , required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "wOutboundType", value = "出入库单类别 0:转出;1转入" , required = true)
|
})
|
@RequiresPermissions("ext:woutboundext:upload")
|
public ApiResponse wOutBoundForUpload(@RequestParam Integer id, @RequestParam Integer wOutboundType) {
|
wOutboundService.wOutBoundForUpload(id,wOutboundType,getLoginUser());
|
return ApiResponse.success("操作成功");
|
}
|
|
@ApiOperation(value = "库存调整、采购入库入库单创建", notes = "库存调整、采购入库入库单创建")
|
@PostMapping("/wOutBoundForStockUp")
|
@RequiresPermissions("ext:woutboundext:adjustment")
|
public ApiResponse wOutBoundForStockUp(@Validated @RequestBody WOutboundInHeadBean wOutboundInHeadBean ) {
|
wOutboundService.wOutBoundForStockUp(wOutboundInHeadBean,getLoginUser());
|
return ApiResponse.success("操作成功");
|
}
|
|
@ApiOperation("出入库明细 - H5")
|
@PostMapping("/workOrderOutListPage")
|
@RequiresPermissions("ext:woutboundext:query")
|
public ApiResponse<PageData<WorkOrderOutboundExtListVO>> workOrderOutListPage (@RequestBody PageWrap<QueryWSOutBoundDto> pageWrap) {
|
return ApiResponse.success(wOutboundExtService.workOrderOutList(pageWrap));
|
}
|
|
|
@ApiOperation("出入库明细 - 导出Excel")
|
@PostMapping("/workOrderOutListExcel")
|
public void exportExcel (@RequestBody PageWrap<QueryWSOutBoundDto> pageWrap, HttpServletResponse response) throws Exception{
|
ExcelExporter.build(WorkOrderOutboundExtListVO.class).export(wOutboundExtService.workOrderOutList(pageWrap).getRecords(), "出入库明细"+DateUtil.getNowLongTime(), response);
|
}
|
|
|
}
|