MES添加返修空载具送回接口,AGV增加返修放行接口
parent
327840c4e1
commit
f42abaad17
|
|
@ -13,7 +13,7 @@ public class TransTask {
|
||||||
String createTime;
|
String createTime;
|
||||||
@ApiModelProperty(value ="点位",required = true,example = "点位")
|
@ApiModelProperty(value ="点位",required = true,example = "点位")
|
||||||
String pointCode;
|
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;
|
String taskType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,7 @@ public class MissionStateCallback {
|
||||||
|
|
||||||
@ApiModelProperty(value = "作业当前状态")
|
@ApiModelProperty(value = "作业当前状态")
|
||||||
String missionStatus;
|
String missionStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "容器当前位置")
|
||||||
|
String currentPosition;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -125,21 +125,6 @@ public class BydAppController {
|
||||||
return successResponse("出场成功", null);
|
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) {
|
private ResponseEntity<Object> badRequest(String message) {
|
||||||
return new ResponseEntity<>(ApiResult.fail(HttpStatus.BAD_REQUEST.value(), message, null), HttpStatus.BAD_REQUEST);
|
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" +
|
" ) result" +
|
||||||
" ORDER BY sort_order, date;", nativeQuery = true)
|
" ORDER BY sort_order, date;", nativeQuery = true)
|
||||||
List<Object[]> queryWeeklyTaskCounts();
|
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 id = missionStateCallback.getMissionCode();//作业 id
|
||||||
String containerCode = missionStateCallback.getContainerCode();//容器编号
|
String containerCode = missionStateCallback.getContainerCode();//容器编号
|
||||||
String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态
|
String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态
|
||||||
|
String currentPosition = missionStateCallback.getCurrentPosition();//容器当前位置
|
||||||
try {
|
try {
|
||||||
//货架任务
|
//货架任务
|
||||||
AgvTask agvTask = agvTaskService.findById(Long.parseLong(id));
|
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);
|
return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
|
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);
|
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);
|
void containerOut(String containerCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发容器入场或出场
|
* 下发容器入场或出场或放行
|
||||||
*
|
*
|
||||||
* @param url 接口地址
|
* @param url 接口地址
|
||||||
* @param json 接口json
|
* @param json 接口json
|
||||||
|
|
@ -74,8 +74,9 @@ public interface KMReService {
|
||||||
* @param agvTask 任务
|
* @param agvTask 任务
|
||||||
* @param status 状态
|
* @param status 状态
|
||||||
* @param containerCode 容器
|
* @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 {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务放行
|
* 任务放行Json
|
||||||
* @param code 编号
|
* @param agvTask 任务
|
||||||
*/
|
*/
|
||||||
void operationFeedback(String code);
|
String operationFeedbackJson(AgvTask agvTask);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,11 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
return agvTaskRepository.existsBySrcPoint(agvTaskId, srcPointCode);
|
return agvTaskRepository.existsBySrcPoint(agvTaskId, srcPointCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AgvTask> findByStatus(String status) {
|
||||||
|
return agvTaskRepository.findByStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryWeeklyTaskCounts() {
|
public Map<String, Object> queryWeeklyTaskCounts() {
|
||||||
List<Object[]> objectList = agvTaskRepository.queryWeeklyTaskCounts();
|
List<Object[]> objectList = agvTaskRepository.queryWeeklyTaskCounts();
|
||||||
|
|
|
||||||
|
|
@ -352,7 +352,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@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);
|
Stock stock = stockService.findByCode(containerCode);
|
||||||
//顶升的是起点;其它终点;
|
//顶升的是起点;其它终点;
|
||||||
Point point;
|
Point point;
|
||||||
|
|
@ -371,6 +371,9 @@ public class KMReServiceImpl implements KMReService {
|
||||||
case "FORK_DOWN":
|
case "FORK_DOWN":
|
||||||
handleForkDownContainer(agvTask, stock);//容器放下
|
handleForkDownContainer(agvTask, stock);//容器放下
|
||||||
break;
|
break;
|
||||||
|
case "ARRIVED":
|
||||||
|
handleARContainer(agvTask,stock, currentPosition);//容器到达
|
||||||
|
break;
|
||||||
case "COMPLETED":
|
case "COMPLETED":
|
||||||
handleComContainer(agvTask, stock, point);//搬运任务完成
|
handleComContainer(agvTask, stock, point);//搬运任务完成
|
||||||
break;
|
break;
|
||||||
|
|
@ -407,9 +410,17 @@ public class KMReServiceImpl implements KMReService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
public String operationFeedbackJson(AgvTask agvTask) {
|
||||||
public void operationFeedback(String code) {
|
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);
|
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:
|
case BizStatus.Fx_Off_Line:
|
||||||
moveFxOffLine(transTask);//返修呼叫空托盘、返修下线
|
moveFxOffLine(transTask);//返修呼叫空托盘、返修下线
|
||||||
break;
|
break;
|
||||||
|
case BizStatus.Fx_Back:
|
||||||
|
moveFxBack(transTask);//返修载具送回
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException("任务类型错误!");
|
throw new BadRequestException("任务类型错误!");
|
||||||
}
|
}
|
||||||
|
|
@ -368,4 +371,21 @@ public class MesServiceImpl implements MesService {
|
||||||
// 下发任务
|
// 下发任务
|
||||||
kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskGtJson(agvTask));
|
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_Off_Line = "Fx_Off_Line";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务类型-返修载具送回
|
||||||
|
*/
|
||||||
|
String Fx_Back = "Fx_Back";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务类型-叫料
|
* 任务类型-叫料
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,10 @@ public class UrlApi {
|
||||||
return (String) getByKey("stock_url");
|
return (String) getByKey("stock_url");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String operationFeedback() {
|
||||||
|
return (String) getByKey("operationFeedback_url");
|
||||||
|
}
|
||||||
|
|
||||||
public static String containerQuery() {
|
public static String containerQuery() {
|
||||||
return (String) getByKey("containerQuery" + "_url");
|
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