物流修改

master
liweidong-hj 4 weeks ago
parent a4764504c3
commit a69cc135ed
  1. 5
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java
  3. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java
  4. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java
  5. 100
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java

@ -34,13 +34,12 @@ public interface LauncherConstant {
// String NACOS_DEV_ADDR = "192.168.249.27:8848";
String NACOS_DEV_ADDR = "127.0.0.1:8848";
/**
/**R
* nacos prod 地址
*/
String NACOS_PROD_ADDR = "172.30.0.48:8848";
/**
* nacos test 地址
/** * nacos test 地址
*/
String NACOS_TEST_ADDR = "172.30.0.48:8848";

@ -53,6 +53,16 @@ public class Task extends BaseEntity {
*/
public static final Integer STATUS_TEMPORARY_STORAGE= 6;
/**
* mes调用ctu库位
*/
public static final Integer STATUS_MES_CTU_k= 7;
/**
* mes调用ctu梳齿架
*/
public static final Integer STATUS_MES_CTU_s= 8;
/**
* ID主键
*/

@ -830,6 +830,8 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
if (agvResult) {
log.info("【AGV调度】任务{}调度成功 - 类型:{}", task.getId(), taskType);
task.setTaskStatus(Task.STATUS_CONVEYOR_END);
taskService.updateById(task);
return R.success();
} else {
// 调度失败:回滚任务

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

@ -162,10 +162,9 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
}
}
log.info("当前Task状态为{},任务TaskCode为{}", task.getTaskStatus(), agvCallBack.getTaskCode());
//状态为暂存 需要调用
if (Task.STATUS_TEMPORARY_STORAGE.equals(task.getTaskStatus())) {
if (Task.STATUS_MES_CTU_s.equals(task.getTaskStatus())) {
//判断是否需要调用agv接口
boolean conAgvReturn = containerToAgv(agvCallBack.getTaskCode());
log.info("AGV小车接口调用返回值:{}", conAgvReturn);
@ -175,13 +174,20 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
}
if (Task.STATUS_CONVEYOR_END.equals(task.getTaskStatus())) {
//判断是否需要调用ctu接口
containerToCtu(agvCallBack.getTaskCode());
boolean conCtuReturn = containerToCtu(agvCallBack.getTaskCode());
log.info("CTU小车接口调用返回值:{}", conCtuReturn);
if (!conCtuReturn) {
return R.fail("CTU小车接口调用失败");
}
}
if(Task.STATUS_MES_CTU_k.equals(task.getTaskStatus())){
//以放到库位 修改状态
boolean ctuLocation = updateMesCtuLocation(agvCallBack.getTaskCode());
log.info("MES调用CTU放倒库位:{}", ctuLocation);
if (!ctuLocation) {
return R.fail("CTU小车接口调用失败");
}
}
}
@ -193,6 +199,72 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
return r;
}
private boolean updateMesCtuLocation(String taskCode) {
log.info("开始执行updateMesCtuLocation,taskCode:{}", taskCode);
try {
// 1. 查询任务执行记录
TaskExecuteRecord taskExecuteRecord = baseMapper.selectByTaskCode(taskCode);
if (null == taskExecuteRecord) {
log.error("未根据taskCode查询到有效数据,请求参数:{}", taskCode);
return false;
}
// 2. 查询任务
Task task = taskService.getById(taskExecuteRecord.getTaskId());
if (null == task) {
log.error("查询不到Task数据,证明任务不存在,无需接续,请求参数:{}", taskExecuteRecord.getTaskId());
return true;
}
if (StringUtils.isEmpty(taskExecuteRecord.getEndPos())) {
log.error("任务执行记录的终点位置为空,taskCode:{}", taskCode);
return false;
}
// 4. 查询目标库位信息
Location location = locationService.getById(task.getLocationId());
if (null == location) {
log.error("根据locationId未查询到位置信息,locationId:{}", task.getLocationId());
return false;
}
//8. 所有操作成功后,更新任务状态
task.setTaskStatus(Task.STATUS_TEMPORARY_STORAGE);
boolean taskUpdate = taskService.updateById(task);
if (!taskUpdate) {
log.error("Task状态修改失败,但CTU调度已成功,taskCode:{}", taskCode);
}
// 9.将库位状态设置为占用
location.setLocationStatus(Location.STATUS_OCCUPIED);
boolean updateLocation = locationService.updateById(location);
if (!updateLocation) {
log.error("库位状态修改失败,但CTU调度已成功,库位:{}", location.getId());
}
// 10.将梳齿架子状态修改为空闲
log.info("将梳齿架子状态修改为空闲:{}",taskExecuteRecord.getStartPos());
Location location1 = locationService.selectByLocationCode(taskExecuteRecord.getStartPos(), 1);
location1.setLocationStatus(Location.STATUS_FREE);
boolean updateLocation1 = locationService.updateById(location1);
if (updateLocation1) {
log.info("梳齿架子状态修改成功:{}", taskExecuteRecord.getStartPos());
} else {
log.error("梳齿架子状态修改失败:{}", taskExecuteRecord.getStartPos());
}
log.info("CTU调度成功,taskCode:{},from:{},to:{}",
taskCode, taskExecuteRecord.getEndPos(), location.getLocationCode());
return true;
} catch (Exception e) {
log.error("containerToCtu执行异常,taskCode:{}", taskCode, e);
return false;
}
}
@Override
public boolean boundVirtualShelves(String virtualShelvesCode, String stationCode) {
@ -379,9 +451,10 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
return false;
}
}
// 4. 查询目标库位信息
Location location = locationService.getById(task.getLocationId());
if (null == location) {
@ -419,29 +492,12 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRec
}
// 8. 所有操作成功后,更新任务状态
task.setTaskStatus(Task.STATUS_TEMPORARY_STORAGE);
task.setTaskStatus(Task.STATUS_MES_CTU_k);
boolean taskUpdate = taskService.updateById(task);
if (!taskUpdate) {
log.error("Task状态修改失败,但CTU调度已成功,taskCode:{}", taskCode);
}
// 9.将库位状态设置为占用
location.setLocationStatus(Location.STATUS_OCCUPIED);
boolean updateLocation = locationService.updateById(location);
if (!updateLocation) {
log.error("库位状态修改失败,但CTU调度已成功,库位:{}", location.getId());
}
// 10.将梳齿架子状态修改为空闲
Location location1 = locationService.selectByLocationCode(taskExecuteRecord.getEndPos(), 1);
location1.setLocationStatus(Location.STATUS_FREE);
boolean updateLocation1 = locationService.updateById(location1);
if (updateLocation1) {
log.info("梳齿架子状态修改成功:{}", taskExecuteRecord.getEndPos());
} else {
log.error("梳齿架子状态修改失败:{}", taskExecuteRecord.getEndPos());
}
log.info("CTU调度成功,taskCode:{},from:{},to:{}",
taskCode, taskExecuteRecord.getEndPos(), location.getLocationCode());

Loading…
Cancel
Save