RemoteTaskService.java 3.17 KB
package com.huaheng.task.api;

import com.huaheng.common.core.constant.ServiceNameConstants;
import com.huaheng.common.core.web.domain.AjaxResult;
import com.huaheng.task.api.domain.TaskHeader;
import com.huaheng.task.api.factory.RemoteTaskFallFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(contextId = "remoteTaskService", value = ServiceNameConstants.TASK_SERVICE, fallbackFactory = RemoteTaskFallFactory.class)
public interface RemoteTaskService {

    @PostMapping("/task/createReceiptTask")
    AjaxResult createReceiptTask(List<Integer> ids);

    @PostMapping("/task/createShipmentTask")
    AjaxResult createShipmentTask(Integer shipmentContainerHeaderIds);

    @PostMapping("/task/createTransferTask")
    AjaxResult createTransferTask(@RequestParam(value = "sourceLocationCode")String sourceLocationCode, @RequestParam(value = "desLocationCode")String desLocationCode);

    /**
     * 创建空托入库任务
     * @param containerCode 容器编码
     * @param destinationLocation 目标库位,目标库位为空时自动分配
     * @return
     */
    @PostMapping("/task/createEmptyIn")
    AjaxResult createEmptyIn(@RequestParam(value = "containerCode") String containerCode, @RequestParam(value = "destinationLocation") String destinationLocation);

    /**
     * 创建空托出库任务
     * 容器编码与源库位只需要填一个
     * @param containerCode 容器编码
     * @param sourceLocation 源库位
     * @return
     */
    @PostMapping("/task/createEmptyOut")
    AjaxResult createEmptyOut(@RequestParam(value = "containerCode")String containerCode, @RequestParam(value = "sourceLocation")String sourceLocation);

    /**
     * 根据库存头表id生成出库查看任务
     * @param ids 库存头id
     */
    @PostMapping("/task/createCheckOutTaskByIds")
    AjaxResult createCheckOutTaskByIds(List<Integer> ids);

    /**
     * 创建出库查看任务
     * @param locationCodeList 库位编码列表
     * @return
     */
    @PostMapping("/task/createCheckOutTask")
    AjaxResult createCheckOutTask(List<String> locationCodeList);

    /**
     * 创建空托出库查看任务
     * @param containerCode 容器
     * @param sourceLocation 库位
     * @return
     */
    @PostMapping("/task/createEmptyCheckOut")
    AjaxResult createEmptyCheckOut(@RequestParam(value = "containerCode")String containerCode, @RequestParam(value = "sourceLocation")String sourceLocation);

    /**
     * 获取容器是否存在未完成任务
     * @param containerCode 容器编码
     * @return
     */
    @GetMapping("/task/nnCompleteTaskCount")
    boolean unCompleteTaskCount(String containerCode);

    @GetMapping("/task/cycleCountCancelTask")
    AjaxResult cycleCountCancelTask(Integer[] taskIds);


    @GetMapping("/task/taskHeader/getByWaveId")
    List<TaskHeader> getByWaveId(Integer waveId);

    @PutMapping("/task/taskHeader/save")
    Boolean save(TaskHeader taskHeader);

}