绑定虚拟货架,释放虚拟货架

liweidong
liweidong-hj 1 month ago
parent 8422f6ca0d
commit 173dbc6c68
  1. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/TaskExecuteRecord.java
  2. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/VirtualShelvesMapper.java
  3. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/VirtualShelvesMapper.xml
  4. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/ITaskExecuteRecordService.java
  5. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IVirtualShelvesService.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java
  7. 28
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskExecuteRecordServiceImpl.java
  8. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/VirtualShelvesServiceImpl.java

@ -112,4 +112,10 @@ public class TaskExecuteRecord extends BaseEntity {
@Schema(description = "备注")
private String remark;
/**
* 虚拟货架号
*/
@Schema(description = "虚拟货架号")
private String virtualShelvesCode;
}

@ -1,6 +1,7 @@
package org.springblade.desk.logistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.logistics.pojo.entity.VirtualShelves;
import java.util.List;
@ -8,4 +9,6 @@ import java.util.List;
public interface VirtualShelvesMapper extends BaseMapper<VirtualShelves> {
List<VirtualShelves> getVirtualShelvesCode();
VirtualShelves selectByVirtualShelvesCode(@Param("virtualShelvesCode") String virtualShelvesCode);
}

@ -9,4 +9,9 @@
select id, virtual_shelves_code, is_bound, status, create_user, create_time, create_dept, update_user, update_time, is_deleted, remark from LM_VIRTUAL_SHELVES
where IS_DELETED = 0 and IS_BOUND = 0
</select>
<select id="selectByVirtualShelvesCode"
resultType="org.springblade.desk.logistics.pojo.entity.VirtualShelves">
select id, virtual_shelves_code, is_bound, status, create_user, create_time, create_dept, update_user, update_time, is_deleted, remark from LM_VIRTUAL_SHELVES
where IS_DELETED = 0 and virtual_shelves_code = #{virtualShelvesCode}
</select>
</mapper>

@ -68,7 +68,7 @@ public interface ITaskExecuteRecordService extends BaseService<TaskExecuteRecord
* @param task 任务对象
* @return
*/
boolean inboundRecord(AgvSchedulingTaskVO agvSchedulingTaskVO, Task task);
boolean inboundRecord(AgvSchedulingTaskVO agvSchedulingTaskVO, Task task,String virtualShelvesCode);
/**
* ctu调用前置接口

@ -41,4 +41,11 @@ public interface IVirtualShelvesService extends BaseService<VirtualShelves> {
* @return
*/
VirtualShelves getVirtualShelvesCode();
/**
* 根据虚拟侯家号查询
* @param virtualShelvesCode
* @return
*/
VirtualShelves selectByVirtualShelvesCode(String virtualShelvesCode);
}

@ -190,7 +190,7 @@ public class StorageMonitoringServiceImpl implements IStorageMonitoringService {
//调用成功 添加任务
if(null != ctuSchedulingTask){
// 添加任务
boolean record = taskExecuteRecordService.inboundRecord(ctuSchedulingTask, firstTask);
boolean record = taskExecuteRecordService.inboundRecord(ctuSchedulingTask, firstTask,null);
}
processedCount++; // 成功处理计数+1

@ -108,13 +108,11 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
// 任务启动/出仓状态:更新起始位置
case TaskExecuteRecord.STATUS_START:
case TaskExecuteRecord.STATUS_OUTBIN:
// taskExecuteRecord.setStartPos(agvCallBack.getCurrentPositionCode());
log.info("任务单号{}:更新起始位置为{},状态为{}",
agvCallBack.getTaskCode(), agvCallBack.getCurrentPositionCode(), method);
break;
// 任务结束状态:更新结束位置
case TaskExecuteRecord.STATUS_END:
// taskExecuteRecord.setEndPos(agvCallBack.getCurrentPositionCode());
log.info("任务单号{}:更新结束位置为{},状态为{}",
agvCallBack.getTaskCode(), agvCallBack.getCurrentPositionCode(), method);
break;
@ -146,6 +144,20 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
return R.fail("任务Task不存在");
}
//释放虚拟货架
if(null != taskExecuteRecord.getVirtualShelvesCode()){
VirtualShelves virtualShelves = virtualShelvesService.selectByVirtualShelvesCode(taskExecuteRecord.getVirtualShelvesCode());
if(null == virtualShelves){
log.info("虚拟货架号不存在,无需释放:{}", taskExecuteRecord.getVirtualShelvesCode());
}else {
virtualShelves.setIsBound(VirtualShelves.BOUND_NO);
boolean update = virtualShelvesService.updateById(virtualShelves);
if(update){
log.info("虚拟货架号释放成功:{}", taskExecuteRecord.getVirtualShelvesCode());
}
}
}
log.info("当前Task状态为{},任务TaskCode为{}", task.getTaskStatus(),agvCallBack.getTaskCode());
//状态为暂存 需要调用
@ -276,7 +288,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
}
@Override
public boolean inboundRecord(AgvSchedulingTaskVO agvSchedulingTaskVO, Task task) {
public boolean inboundRecord(AgvSchedulingTaskVO agvSchedulingTaskVO, Task task,String virtualShelvesCode) {
if(null == agvSchedulingTaskVO ){
return false;
}
@ -290,6 +302,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
taskExecuteRecord.setTaskCode(agvSchedulingTaskVO.getTaskCode());
taskExecuteRecord.setStartPos(agvSchedulingTaskVO.getStartPos());
taskExecuteRecord.setEndPos(agvSchedulingTaskVO.getEndPos());
taskExecuteRecord.setVirtualShelvesCode(virtualShelvesCode);
int insert = baseMapper.insert(taskExecuteRecord);
return insert > 0;
}
@ -370,7 +383,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
}
// 7. 添加入库记录
boolean record = inboundRecord(ctuSchedulingTask, task);
boolean record = inboundRecord(ctuSchedulingTask, task,null);
if(!record){
log.error("添加入库记录失败,taskCode:{}", taskCode);
return false;
@ -563,7 +576,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
log.info("AGV调度成功,taskCode:{},from:{},to:{}",
taskCode, location.getLocationCode(), station.getStationCode());
// todo 更新任务状态
// 更新任务状态
task.setTaskStatus(Task.STATUS_CONVEYOR_END);
boolean taskUpdate = taskService.updateById(task);
if (!taskUpdate) {
@ -615,6 +628,9 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
);
if (!shelves) {
throw new ServiceException("站点绑定虚拟货架失败");
}else {
virtualShelves.setIsBound(VirtualShelves.BOUND_YES);
virtualShelvesService.updateById(virtualShelves);
}
// 调用AGV
@ -634,7 +650,7 @@ public class TaskExecuteRecordServiceImpl extends BaseServiceImpl<TaskExecuteRe
return false;
}
boolean record = inboundRecord(agvSchedulingTaskVO, task);
boolean record = inboundRecord(agvSchedulingTaskVO, task,virtualShelves.getVirtualShelvesCode());
if (!record) {
throw new ServiceException("入库记录保存失败");
}

@ -59,4 +59,9 @@ public class VirtualShelvesServiceImpl extends BaseServiceImpl<VirtualShelvesMap
log.info("虚拟货架号:{}", virtualShelves.getVirtualShelvesCode());
return virtualShelves;
}
@Override
public VirtualShelves selectByVirtualShelvesCode(String virtualShelvesCode) {
return baseMapper.selectByVirtualShelvesCode(virtualShelvesCode);
}
}

Loading…
Cancel
Save