MES添加返修空载具送回接口,AGV增加返修放行接口
							parent
							
								
									327840c4e1
								
							
						
					
					
						commit
						f42abaad17
					
				| 
						 | 
				
			
			@ -13,7 +13,7 @@ public class TransTask {
 | 
			
		|||
    String createTime;
 | 
			
		||||
    @ApiModelProperty(value ="点位",required = true,example = "点位")
 | 
			
		||||
    String pointCode;
 | 
			
		||||
    @ApiModelProperty(value ="任务类型",required = true,example = "任务类型(Cp_Off_Up成品上线、Cp_Off_Line成品下线、Fx_Off_Line返修下线)")
 | 
			
		||||
    @ApiModelProperty(value ="任务类型",required = true,example = "任务类型(Cp_Off_Up成品上线、Cp_Off_Line成品下线、Fx_Off_Line返修下线、Fx_Back返修载具送回)")
 | 
			
		||||
    String taskType;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,4 +17,7 @@ public class MissionStateCallback {
 | 
			
		|||
 | 
			
		||||
    @ApiModelProperty(value = "作业当前状态")
 | 
			
		||||
    String missionStatus;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "容器当前位置")
 | 
			
		||||
    String currentPosition;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,21 +125,6 @@ public class BydAppController {
 | 
			
		|||
        return successResponse("出场成功", null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/operationFeedback")
 | 
			
		||||
    @Log("任务放行")
 | 
			
		||||
    @ApiOperation("任务放行")
 | 
			
		||||
    @AnonymousAccess
 | 
			
		||||
    public ResponseEntity<Object> operationFeedback(@RequestBody ContainerIn containerIn) {
 | 
			
		||||
        try {
 | 
			
		||||
            String containerCode = containerIn.getContainerCode();
 | 
			
		||||
            kmReService.operationFeedback(containerCode);
 | 
			
		||||
            return successResponse("放行成功", null);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            return badRequest(e.getMessage());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private ResponseEntity<Object> badRequest(String message) {
 | 
			
		||||
        return new ResponseEntity<>(ApiResult.fail(HttpStatus.BAD_REQUEST.value(), message, null), HttpStatus.BAD_REQUEST);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,4 +109,7 @@ public interface AgvTaskRepository extends JpaRepository<AgvTask, Long>, JpaSpec
 | 
			
		|||
            " ) result" +
 | 
			
		||||
            " ORDER BY sort_order, date;", nativeQuery = true)
 | 
			
		||||
    List<Object[]> queryWeeklyTaskCounts();
 | 
			
		||||
 | 
			
		||||
    @Query(value = " from AgvTask agv where agv.status=:status ")
 | 
			
		||||
    List<AgvTask> findByStatus(String status);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,10 +42,11 @@ public class KMReSController {
 | 
			
		|||
        String id = missionStateCallback.getMissionCode();//作业 id
 | 
			
		||||
        String containerCode = missionStateCallback.getContainerCode();//容器编号
 | 
			
		||||
        String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态
 | 
			
		||||
        String currentPosition = missionStateCallback.getCurrentPosition();//容器当前位置
 | 
			
		||||
        try {
 | 
			
		||||
            //货架任务
 | 
			
		||||
            AgvTask agvTask = agvTaskService.findById(Long.parseLong(id));
 | 
			
		||||
            kmReService.missionStateCallback(agvTask, missionStatus, containerCode);
 | 
			
		||||
            kmReService.missionStateCallback(agvTask, missionStatus, containerCode,currentPosition);
 | 
			
		||||
            return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -133,6 +133,13 @@ public interface AgvTaskService {
 | 
			
		|||
     */
 | 
			
		||||
    int existsBySrcPoint(Long agvTaskId, String srcPointCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据状态查询任务
 | 
			
		||||
     * @param status 状态
 | 
			
		||||
     * @return List<AgvTask>
 | 
			
		||||
     */
 | 
			
		||||
    List<AgvTask> findByStatus(String status);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 统计本周任务数量
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ public interface KMReService {
 | 
			
		|||
    void containerOut(String containerCode);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 下发容器入场或出场
 | 
			
		||||
     * 下发容器入场或出场或放行
 | 
			
		||||
     *
 | 
			
		||||
     * @param url 接口地址
 | 
			
		||||
     * @param json 接口json
 | 
			
		||||
| 
						 | 
				
			
			@ -74,8 +74,9 @@ public interface KMReService {
 | 
			
		|||
     * @param agvTask 任务
 | 
			
		||||
     * @param status 状态
 | 
			
		||||
     * @param containerCode 容器
 | 
			
		||||
     * @param currentPosition 当前位置
 | 
			
		||||
     */
 | 
			
		||||
    void missionStateCallback(AgvTask agvTask, String status, String containerCode);
 | 
			
		||||
    void missionStateCallback(AgvTask agvTask, String status, String containerCode,String currentPosition);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 托盘回库
 | 
			
		||||
| 
						 | 
				
			
			@ -87,9 +88,9 @@ public interface KMReService {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 任务放行
 | 
			
		||||
     * @param code 编号
 | 
			
		||||
     * 任务放行Json
 | 
			
		||||
     * @param agvTask 任务
 | 
			
		||||
     */
 | 
			
		||||
    void operationFeedback(String code);
 | 
			
		||||
    String operationFeedbackJson(AgvTask agvTask);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -164,6 +164,11 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
			
		|||
        return agvTaskRepository.existsBySrcPoint(agvTaskId, srcPointCode);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<AgvTask> findByStatus(String status) {
 | 
			
		||||
        return agvTaskRepository.findByStatus(status);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Map<String, Object> queryWeeklyTaskCounts() {
 | 
			
		||||
        List<Object[]> objectList = agvTaskRepository.queryWeeklyTaskCounts();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -352,7 +352,7 @@ public class KMReServiceImpl implements KMReService {
 | 
			
		|||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void missionStateCallback(AgvTask agvTask, String status, String containerCode) {
 | 
			
		||||
    public void missionStateCallback(AgvTask agvTask, String status, String containerCode,String currentPosition) {
 | 
			
		||||
        Stock stock = stockService.findByCode(containerCode);
 | 
			
		||||
        //顶升的是起点;其它终点;
 | 
			
		||||
        Point point;
 | 
			
		||||
| 
						 | 
				
			
			@ -371,6 +371,9 @@ public class KMReServiceImpl implements KMReService {
 | 
			
		|||
            case "FORK_DOWN":
 | 
			
		||||
                handleForkDownContainer(agvTask, stock);//容器放下
 | 
			
		||||
                break;
 | 
			
		||||
            case "ARRIVED":
 | 
			
		||||
                handleARContainer(agvTask,stock, currentPosition);//容器到达
 | 
			
		||||
                break;
 | 
			
		||||
            case "COMPLETED":
 | 
			
		||||
                handleComContainer(agvTask, stock, point);//搬运任务完成
 | 
			
		||||
                break;
 | 
			
		||||
| 
						 | 
				
			
			@ -407,9 +410,17 @@ public class KMReServiceImpl implements KMReService {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public void operationFeedback(String code) {
 | 
			
		||||
 | 
			
		||||
    public String operationFeedbackJson(AgvTask agvTask) {
 | 
			
		||||
        JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
 | 
			
		||||
        //请求 id
 | 
			
		||||
        jsonObject.put("requestId", String.valueOf(System.currentTimeMillis()));
 | 
			
		||||
        //容器类型
 | 
			
		||||
        jsonObject.put("containerCode", "");
 | 
			
		||||
        //容器编号
 | 
			
		||||
        jsonObject.put("missionCode", agvTask.getId());
 | 
			
		||||
        //容器当前位置
 | 
			
		||||
        jsonObject.put("position", "");
 | 
			
		||||
        return jsonObject.toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -459,6 +470,13 @@ public class KMReServiceImpl implements KMReService {
 | 
			
		|||
        this.updateAgvTaskStatus(agvTask, stock, BizStatus.FINISH);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void handleARContainer(AgvTask agvTask,Stock stock, String currentPosition) {
 | 
			
		||||
        if("FX001".equals(currentPosition)){
 | 
			
		||||
            //更新状态
 | 
			
		||||
            this.updateAgvTaskStatus(agvTask, stock, BizStatus.ARRIVED);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 任务完成
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -176,6 +176,9 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
            case BizStatus.Fx_Off_Line:
 | 
			
		||||
                moveFxOffLine(transTask);//返修呼叫空托盘、返修下线
 | 
			
		||||
                break;
 | 
			
		||||
            case BizStatus.Fx_Back:
 | 
			
		||||
                moveFxBack(transTask);//返修载具送回
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                throw new BadRequestException("任务类型错误!");
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -368,4 +371,21 @@ public class MesServiceImpl implements MesService {
 | 
			
		|||
        // 下发任务
 | 
			
		||||
        kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskGtJson(agvTask));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void moveFxBack(TransTask transTask) {
 | 
			
		||||
        String srcPointCode = transTask.getPointCode();
 | 
			
		||||
        if(!"FX001".equals(srcPointCode)){
 | 
			
		||||
            throw new BadRequestException("返修点位不正确,请核实");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //根据状态查询任务
 | 
			
		||||
        List<AgvTask> agvTaskList = agvTaskService.findByStatus(BizStatus.ARRIVED);
 | 
			
		||||
        if(agvTaskList.isEmpty()){
 | 
			
		||||
            throw new BadRequestException("任务还未达到FX001返修点,请稍后再试!");
 | 
			
		||||
        }
 | 
			
		||||
        AgvTask agvTask = agvTaskList.get(0);
 | 
			
		||||
 | 
			
		||||
        //任务放行
 | 
			
		||||
        kmReService.sendAgvTaskToContainer(UrlApi.operationFeedback(),kmReService.operationFeedbackJson(agvTask));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,6 +137,11 @@ public interface BizStatus {
 | 
			
		|||
     */
 | 
			
		||||
    String Fx_Off_Line = "Fx_Off_Line";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 任务类型-返修载具送回
 | 
			
		||||
     */
 | 
			
		||||
    String Fx_Back = "Fx_Back";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 任务类型-叫料
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,10 @@ public class UrlApi {
 | 
			
		|||
        return (String) getByKey("stock_url");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String operationFeedback() {
 | 
			
		||||
        return (String) getByKey("operationFeedback_url");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String containerQuery() {
 | 
			
		||||
        return (String) getByKey("containerQuery" + "_url");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -49,22 +53,27 @@ public class UrlApi {
 | 
			
		|||
    /* *//**
 | 
			
		||||
     * 料箱任务下发
 | 
			
		||||
     *//*
 | 
			
		||||
    public static String submitMission = "http://10.177.202.230:10870/interfaces/api/amr/submitMission";
 | 
			
		||||
    public static String submitMission = "http://192.168.100.101:10870/interfaces/api/amr/submitMission";
 | 
			
		||||
 | 
			
		||||
    *//**
 | 
			
		||||
     * 容器入场
 | 
			
		||||
     *//*
 | 
			
		||||
    public static String containerIn = "http://10.177.202.230:10870/interfaces/api/amr/containerIn";
 | 
			
		||||
    public static String containerIn = "http://192.168.100.101:10870/interfaces/api/amr/containerIn";
 | 
			
		||||
 | 
			
		||||
    *//**
 | 
			
		||||
     * 容器相关操作,出场
 | 
			
		||||
     *//*
 | 
			
		||||
    public static String containerOut = "http://10.177.202.230:10870/interfaces/api/amr/containerOut";
 | 
			
		||||
    public static String containerOut = "http://192.168.100.101:10870/interfaces/api/amr/containerOut";
 | 
			
		||||
 | 
			
		||||
    *//**
 | 
			
		||||
     * 容器返修放行
 | 
			
		||||
     *//*
 | 
			
		||||
    public static String operationFeedback = "http://192.168.100.101:10870/interfaces/api/amr/operationFeedback;
 | 
			
		||||
 | 
			
		||||
    *//**
 | 
			
		||||
     * 容器相关操作,查询容器信息
 | 
			
		||||
     *//*
 | 
			
		||||
    public static String containerQuery = "http://10.177.202.230:10870/interfaces/api/amr/containerQuery";
 | 
			
		||||
    public static String containerQuery = "http://192.168.100.101:10870/interfaces/api/amr/containerQuery";
 | 
			
		||||
 | 
			
		||||
    *//**
 | 
			
		||||
     * 输送线点位查询
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue