package com.huaheng.api.wcs.controller; import java.util.Map; import javax.annotation.Resource; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.api.wcs.domain.RobotView; import com.huaheng.api.wcs.service.RequestContainerNumberService; import com.huaheng.api.wcs.service.pickUpHandle.RobotHandleService; import com.huaheng.common.constant.QuantityConstant; import com.huaheng.framework.aspectj.lang.annotation.ApiLogger; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.service.ConfigService; import com.huaheng.pc.config.container.service.ContainerBService; import com.huaheng.pc.config.location.service.LocationService; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping("/API/WMS/v2") public class ArrivedNoticeController extends BaseController { @Resource private TaskHeaderService taskHeaderService; @Resource private TaskDetailService taskDetailService; @Resource private InventoryDetailService inventoryDetailService; @Resource private LocationService locationService; @Resource private ConfigService configService; @Resource private RequestContainerNumberService requestContainerNumberService; @Resource private ContainerBService containerBService; @Resource private RobotHandleService robotHandleService; @PostMapping("/arrivedNotice") @ApiOperation("到达拣选台") @ApiLogger(apiName = "到达拣选台", from = "ROBOT") @Transactional(rollbackFor = Exception.class) @ResponseBody public AjaxResult arrivedNotice(@RequestBody Map<String, String> map) { String taskNo = map.get("taskNo"); String port = map.get("port"); String msg = map.get("msg"); String state = map.get("state"); LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); taskHeaderLambdaQueryWrapper.eq(TaskHeader::getId, taskNo); TaskHeader taskHeader = taskHeaderService.getOne(taskHeaderLambdaQueryWrapper); if (taskHeader != null) { taskHeader.setStatus(QuantityConstant.TASK_STATUS_ARRIVED_STATION); } else { return AjaxResult.error("没有找到任务taskNo:" + taskNo); } int taskType = taskHeader.getTaskType(); int status = taskHeader.getStatus(); if (status == QuantityConstant.TASK_STATUS_COMPLETED) { return AjaxResult.success("更新到达站台成功, 任务已经完成"); } boolean result = taskHeaderService.updateById(taskHeader); if (!result) { return AjaxResult.error("更新到达站台失败"); } return AjaxResult.success("更新到达站台成功"); } /** * 商片仓分拣出库或整盘出库时告诉机器人抓取哪一个位置的 * 请求出库抓取信息 * @return */ @PostMapping("/requestContainerNumberByWcs") @ApiOperation("请求出库抓取信息") @ApiLogger(apiName = "请求出库抓取信息", from = "WCS") @Transactional(rollbackFor = Exception.class) @ResponseBody public AjaxResult requestContainerNumberByWcs(@RequestBody RobotView robotView) { AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { return requestContainerNumberService.requestContainerNumberByWcs(robotView.getContainerCode()); // return robotHandleService.reqShipmentContainer(robotView); } }); return ajaxResult; } /** * 商片仓空托盘传托盘号给wcs * 有任务返回位置,任务明细没有但托盘还有不用出库的给0,wcs回库 * 任务明细没有,托盘上没有货则返回100.wcs往前走 * @return */ @PostMapping("/emptyContainerCodeToWcs") @ApiOperation("商片仓空托盘传托盘号给wcs") @ApiLogger(apiName = "商片仓空托盘传托盘号给wcs", from = "WCS") @Transactional(rollbackFor = Exception.class) @ResponseBody public AjaxResult emptyContainerCodeToWcs(@RequestBody RobotView view) { AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() { @Override public AjaxResult doProcess() { return robotHandleService.respShipmentContainer(view); } }); return ajaxResult; } }