增加虚拟货架绑定失败状态

liweidong
liweidong-hj 1 month ago
parent cde530beb1
commit 022ddbe53f
  1. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java
  2. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/ITaskExecuteRecordService.java
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java
  4. 45
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java

@ -54,14 +54,19 @@ public class Task extends BaseEntity {
public static final Integer STATUS_TEMPORARY_STORAGE= 6; public static final Integer STATUS_TEMPORARY_STORAGE= 6;
/** /**
* mes调用ctu库位 * mes调用ctu库位()
*/ */
public static final Integer STATUS_MES_CTU_k= 7; public static final Integer STATUS_MES_CTU_UP= 7;
/** /**
* mes调用ctu梳齿架 * mes调用ctu梳齿架
*/ */
public static final Integer STATUS_MES_CTU_s= 8; public static final Integer STATUS_MES_CTU_BELOW= 8;
/**
* 虚拟货架绑定失败
*/
public static final Integer BOUND_VIRTUAL_SHELVES= 9;
/** /**
* ID主键 * ID主键

@ -25,6 +25,7 @@
*/ */
package org.springblade.desk.logistics.service; package org.springblade.desk.logistics.service;
import com.alibaba.fastjson2.JSONObject;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.logistics.pojo.dto.AGVCallBackDto; import org.springblade.desk.logistics.pojo.dto.AGVCallBackDto;
@ -49,7 +50,7 @@ public interface ITaskExecuteRecordService extends BaseService<TaskExecuteRecord
* @param stationCode 站点编码 * @param stationCode 站点编码
* @return * @return
*/ */
boolean boundVirtualShelves(String virtualShelvesCode,String stationCode); JSONObject boundVirtualShelves(String virtualShelvesCode, String stationCode);
/** /**
* 调用AGV小车 * 调用AGV小车

@ -201,7 +201,7 @@ public class StorageMonitoringServiceImpl implements IStorageMonitoringService {
//调用成功 添加任务 //调用成功 添加任务
if(null != ctuSchedulingTask && ctuSchedulingTask.getCode().equals("0")){ if(null != ctuSchedulingTask && ctuSchedulingTask.getCode().equals("0")){
firstTask.setTaskStatus(Task.STATUS_MES_CTU_s); firstTask.setTaskStatus(Task.STATUS_MES_CTU_BELOW);
boolean taskUpdate = taskService.updateById(firstTask); boolean taskUpdate = taskService.updateById(firstTask);
if (!taskUpdate) { if (!taskUpdate) {
log.error("定时Task状态修改失败,但CTU调度已成功,taskCode:{}", firstTask); log.error("定时Task状态修改失败,但CTU调度已成功,taskCode:{}", firstTask);

@ -164,7 +164,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
log.info("当前Task状态为{},任务TaskCode为{}", task.getTaskStatus(), agvCallBack.getTaskCode()); log.info("当前Task状态为{},任务TaskCode为{}", task.getTaskStatus(), agvCallBack.getTaskCode());
//状态为暂存 需要调用 //状态为暂存 需要调用
if (Task.STATUS_MES_CTU_s.equals(task.getTaskStatus())) { if (Task.STATUS_MES_CTU_BELOW.equals(task.getTaskStatus())) {
//判断是否需要调用agv接口 //判断是否需要调用agv接口
boolean conAgvReturn = containerToAgv(agvCallBack.getTaskCode()); boolean conAgvReturn = containerToAgv(agvCallBack.getTaskCode());
log.info("AGV小车接口调用返回值:{}", conAgvReturn); log.info("AGV小车接口调用返回值:{}", conAgvReturn);
@ -180,7 +180,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
return R.fail("CTU小车接口调用失败"); return R.fail("CTU小车接口调用失败");
} }
} }
if(Task.STATUS_MES_CTU_k.equals(task.getTaskStatus())){ if(Task.STATUS_MES_CTU_UP.equals(task.getTaskStatus())){
//以放到库位 修改状态 //以放到库位 修改状态
boolean ctuLocation = updateMesCtuLocation(agvCallBack.getTaskCode()); boolean ctuLocation = updateMesCtuLocation(agvCallBack.getTaskCode());
log.info("MES调用CTU放倒库位:{}", ctuLocation); log.info("MES调用CTU放倒库位:{}", ctuLocation);
@ -267,7 +267,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
@Override @Override
public boolean boundVirtualShelves(String virtualShelvesCode, String stationCode) { public JSONObject boundVirtualShelves(String virtualShelvesCode, String stationCode) {
String url = "http://172.22.252.10:8181/rcms/services/rest/hikRpcService/bindPodAndBerth"; String url = "http://172.22.252.10:8181/rcms/services/rest/hikRpcService/bindPodAndBerth";
Map<String, Object> requestBody = new HashMap<>(); Map<String, Object> requestBody = new HashMap<>();
@ -284,19 +284,12 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
log.info("绑定虚拟货架响应:{}", responseStr); log.info("绑定虚拟货架响应:{}", responseStr);
JSONObject response = JSON.parseObject(responseStr); JSONObject response = JSON.parseObject(responseStr);
String code = response.getString("code");
if ("0".equals(code)) { return response;
log.info("绑定虚拟货架成功,虚拟货架:{},站点:{}", virtualShelvesCode, stationCode);
return true;
} else {
log.error("绑定虚拟货架失败,虚拟货架:{},站点:{},响应:{}",
virtualShelvesCode, stationCode, responseStr);
return false;
}
} catch (Exception e) { } catch (Exception e) {
log.error("绑定虚拟货架异常,虚拟货架:{},站点:{}", virtualShelvesCode, stationCode, e); log.error("绑定虚拟货架异常,虚拟货架:{},站点:{}", virtualShelvesCode, stationCode, e);
return false; return null;
} }
} }
@ -492,7 +485,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
} }
// 8. 所有操作成功后,更新任务状态 // 8. 所有操作成功后,更新任务状态
task.setTaskStatus(Task.STATUS_MES_CTU_k); task.setTaskStatus(Task.STATUS_MES_CTU_UP);
boolean taskUpdate = taskService.updateById(task); boolean taskUpdate = taskService.updateById(task);
if (!taskUpdate) { if (!taskUpdate) {
log.error("Task状态修改失败,但CTU调度已成功,taskCode:{}", taskCode); log.error("Task状态修改失败,但CTU调度已成功,taskCode:{}", taskCode);
@ -713,17 +706,33 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
} }
// 站点绑定虚拟货架 // 站点绑定虚拟货架
boolean shelves = boundVirtualShelves( JSONObject response = boundVirtualShelves(
virtualShelves.getVirtualShelvesCode(), virtualShelves.getVirtualShelvesCode(),
startPos startPos
); );
if (!shelves) { String code = response.getString("code");
throw new ServiceException("站点绑定虚拟货架失败"); String message = response.getString("message");
} else {
if ("0".equals(code)) {
log.info("绑定虚拟货架成功,虚拟货架:{},站点:{}", virtualShelves.getVirtualShelvesCode(), startPos);
virtualShelves.setIsBound(VirtualShelves.BOUND_YES); virtualShelves.setIsBound(VirtualShelves.BOUND_YES);
virtualShelvesService.updateById(virtualShelves); virtualShelvesService.updateById(virtualShelves);
} else {
log.error("绑定虚拟货架失败,虚拟货架:{},站点:{},响应:{}",
virtualShelves.getVirtualShelvesCode(), startPos, response);
//修改Task状态
task.setTaskStatus(Task.BOUND_VIRTUAL_SHELVES);
task.setRemark(message);
taskService.updateById(task);
return false;
} }
// 调用AGV // 调用AGV
AgvSchedulingTaskVO agvSchedulingTaskVO = genAgvSchedulingTask( AgvSchedulingTaskVO agvSchedulingTaskVO = genAgvSchedulingTask(
taskType, taskType,

Loading…
Cancel
Save