package com.huaheng.api.erp.controller; import com.huaheng.api.erp.domain.BoxInfo; import com.huaheng.api.erp.domain.ERPReceipt; import com.huaheng.api.erp.domain.EmptyZu; import com.huaheng.api.erp.domain.ShipmentRecord; import com.huaheng.api.erp.service.CodingService; import com.huaheng.framework.aspectj.lang.annotation.ApiLogger; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import io.swagger.annotations.ApiOperation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** WMS和赋码系统交互 * @author 游杰 */ @RestController @RequestMapping("/API/WMS/v2") public class CodingController extends BaseController { @Resource private CodingService codingService; @PostMapping("/receipt") @ApiOperation("入库组盘信息") @ResponseBody @ApiLogger(apiName = "入库组盘信息", from="码垛系统") public AjaxResult receipt(@RequestBody ERPReceipt erpReceipt) { if(erpReceipt == null) { return AjaxResult.error("入库组盘信息为空"); } String containerCode = erpReceipt.getContainerCode(); String receiptCode = erpReceipt.getReceiptCode(); String position = erpReceipt.getRequestInCode(); String orderCode = erpReceipt.getOrderCode(); String orderName = erpReceipt.getOrderName(); List<BoxInfo> boxInfoList = erpReceipt.getListBoxInfo(); int stack = erpReceipt.getStack(); int qc = erpReceipt.getQc(); int orderFinish = erpReceipt.getOrderFinish(); if(receiptCode == null) { return AjaxResult.error("入库组盘信息,排产订单编码为空"); } if(containerCode == null) { return AjaxResult.error("入库组盘信息,托盘号为空"); } if(position == null) { return AjaxResult.error("入库组盘信息,码垛站台位置为空"); } if(orderCode == null) { return AjaxResult.error("入库组盘信息,订单信息为空"); } if(orderName == null) { return AjaxResult.error("入库组盘信息,订单名称为空"); } if(boxInfoList == null) { return AjaxResult.error("入库组盘信息,箱信息为空"); } AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { AjaxResult ajaxResult = codingService.innerReceipt(containerCode, position, receiptCode, orderCode, orderName, boxInfoList, stack, qc, orderFinish); return ajaxResult; } }); return ajaxResult; } @PostMapping("/searchFleeingGoodsInfo") @ApiOperation("防串信息查询") @ResponseBody @ApiLogger(apiName = "防串信息查询", from="查询历史库存记录") @Transactional(rollbackFor = Exception.class) public AjaxResult searchFleeingGoodsInfo(@RequestBody ShipmentRecord shipmentRecord) { String boxCode = shipmentRecord.getBoxCode(); if(boxCode == null) { return AjaxResult.error("历史库存信息,箱为空"); } AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { AjaxResult ajaxResult = codingService.findShipmentRecord(boxCode); return ajaxResult; } }); return ajaxResult; } @PostMapping("/requestEmptyContainer") @ApiOperation("申请空托盘组") @ResponseBody @ApiLogger(apiName = "申请空托盘组", from="申请空托盘组") @Transactional(rollbackFor = Exception.class) public AjaxResult requestEmptyContainer(@RequestBody EmptyZu emptyZu) { String requestInCode = emptyZu.getRequestInCode(); if (requestInCode == null) { return AjaxResult.error("空托盘组信息,申请位置为空"); } AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { AjaxResult ajaxResult = codingService.requestEmptyContainer(requestInCode); return ajaxResult; } }); return ajaxResult; } }