MES添加返修空载具送回接口,AGV增加返修放行接口

main
HUOJIN\92525 2024-12-19 15:40:07 +08:00
parent 327840c4e1
commit f42abaad17
12 changed files with 87 additions and 30 deletions

View File

@ -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;
}

View File

@ -17,4 +17,7 @@ public class MissionStateCallback {
@ApiModelProperty(value = "作业当前状态")
String missionStatus;
@ApiModelProperty(value = "容器当前位置")
String currentPosition;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -133,6 +133,13 @@ public interface AgvTaskService {
*/
int existsBySrcPoint(Long agvTaskId, String srcPointCode);
/**
*
* @param status
* @return List<AgvTask>
*/
List<AgvTask> findByStatus(String status);
/**
*
*/

View File

@ -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);
}

View File

@ -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();

View File

@ -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);
}
}
/**
*
*

View File

@ -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));
}
}

View File

@ -137,6 +137,11 @@ public interface BizStatus {
*/
String Fx_Off_Line = "Fx_Off_Line";
/**
* -
*/
String Fx_Back = "Fx_Back";
/**
* -
*/

View File

@ -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";
*//**
* 线