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

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 = "备注") @Schema(description = "备注")
private String remark; private String remark;
/**
* 虚拟货架号
*/
@Schema(description = "虚拟货架号")
private String virtualShelvesCode;
} }

@ -1,6 +1,7 @@
package org.springblade.desk.logistics.mapper; package org.springblade.desk.logistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.logistics.pojo.entity.VirtualShelves; import org.springblade.desk.logistics.pojo.entity.VirtualShelves;
import java.util.List; import java.util.List;
@ -8,4 +9,6 @@ import java.util.List;
public interface VirtualShelvesMapper extends BaseMapper<VirtualShelves> { public interface VirtualShelvesMapper extends BaseMapper<VirtualShelves> {
List<VirtualShelves> getVirtualShelvesCode(); 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 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 where IS_DELETED = 0 and IS_BOUND = 0
</select> </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> </mapper>

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

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

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

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

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

Loading…
Cancel
Save