no message
parent
acc0887fcf
commit
e1b28ec441
|
|
@ -62,4 +62,8 @@ public interface AgvTaskRepository extends JpaRepository<AgvTask, Integer>, JpaS
|
|||
*/
|
||||
@Query(value = "select * from data_agv_task where line_slot_code=?1 and type='PICK' and `status`='OPEN' and line_slot_code is not null ORDER BY create_time ", nativeQuery = true)
|
||||
List<AgvTask> queryLineAgvTask(String line_slot_code);
|
||||
|
||||
/** 去重*/
|
||||
@Query(value = "SELECT agv FROM AgvTask agv where agv.startSlotCode=?1 and agv.endSlotCode=?2 and agv.status in ('OPEN','ATCALL','ATWORK')", nativeQuery = false)
|
||||
List<AgvTask> findRepeat(String startSlotCode, String endSlotCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,6 @@ import java.util.Map;
|
|||
* @date 2023-08-16
|
||||
**/
|
||||
public interface TaskRepository extends JpaRepository<Task, Long>, JpaSpecificationExecutor<Task> {
|
||||
@Query(value = "SELECT t FROM Task t WHERE t.pickDetail.pick.id=?1 and t.taskStatus='PICK'", nativeQuery = false)
|
||||
@Query(value = "SELECT t FROM Task t WHERE t.pickDetail.pick.id=?1 and t.taskType='PICK'", nativeQuery = false)
|
||||
List<Task> findByPick(Long pickId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,4 +132,6 @@ public interface AgvTaskService {
|
|||
boolean findByendSlotCode(String endSlotCode,String type,String jobType);
|
||||
|
||||
List<AgvTask> findById(List<Integer> ids);
|
||||
|
||||
AgvTask addAgvTask(String pick, String srcStockCode, String srcPointCode, String dstPointCode, String open, String s);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import com.youchain.basicdata.repository.StockRepository;
|
|||
import com.youchain.basicdata.service.PointService;
|
||||
import com.youchain.basicdata.service.StockService;
|
||||
import com.youchain.businessdata.domain.*;
|
||||
import com.youchain.businessdata.repository.TaskRepository;
|
||||
import com.youchain.businessdata.service.*;
|
||||
import com.youchain.modules.quartz.utils.TimeNumberUtils;
|
||||
import com.youchain.utils.*;
|
||||
|
|
@ -60,6 +61,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
|||
private final AgvTaskRepository agvTaskRepository;
|
||||
private final AgvTaskMapper agvTaskMapper;
|
||||
private final TaskService taskService;
|
||||
private final TaskRepository taskRepository;
|
||||
private final InventoryService inventoryService;
|
||||
private final InventoryLogService inventoryLogService;
|
||||
private final PointService pointService;
|
||||
|
|
@ -417,7 +419,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
|||
handleUpContainer(agvTask, containerCode);//容器顶升
|
||||
break;
|
||||
case "COMPLETED":
|
||||
handleComContainer(agvTask, containerCode);//容器完成
|
||||
handleComContainer(agvTask, containerCode);//搬运任务完成
|
||||
break;
|
||||
case "CANCELED":
|
||||
handleCanceledTask(agvTask, containerCode);//容器取消
|
||||
|
|
@ -438,6 +440,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
|||
this.update(agvTask);
|
||||
}
|
||||
|
||||
/** 搬运任务完成*/
|
||||
private void handleComContainer(AgvTask agvTask, String containerCode) {
|
||||
//任务完成;根据AGV任务的目标点位走对应流程
|
||||
Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null,null);
|
||||
|
|
@ -449,13 +452,21 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
|||
List<Task> taskList = taskService.getAgvTaskList(agvTask.getId());
|
||||
switch (endAreaName) {
|
||||
case AreaNameDic.JLQ:
|
||||
handleJL(taskList, endPoint, stock);//满车出库
|
||||
// handleJL(taskList, endPoint, stock);//满车出库
|
||||
break;
|
||||
case AreaNameDic.XJQ:
|
||||
case AreaNameDic.DJQ:
|
||||
handleFBFC(taskList, stock);//满车入库
|
||||
break;
|
||||
}
|
||||
/* 备料任务完成*/
|
||||
if (agvTask.getType().equals(BizStatus.PICK)){
|
||||
/* 更新Task任务状态*/
|
||||
for(Task task:taskList){
|
||||
task.setTaskStatus(BizStatus.PICKUP);
|
||||
taskRepository.save(task);
|
||||
}
|
||||
}
|
||||
agvTask.setStatus(BizStatus.FINISH);
|
||||
agvTask.setStockCode(containerCode);
|
||||
agvTask.setEndTime(new Timestamp(new Date().getTime()));
|
||||
|
|
@ -816,4 +827,18 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
|||
return agvTaskList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgvTask addAgvTask(String pick, String srcStockCode, String srcPointCode, String dstPointCode, String open, String s) {
|
||||
AgvTask agvTask=new AgvTask();
|
||||
List<AgvTask> agvTaskList=agvTaskRepository.findRepeat(srcPointCode,dstPointCode);
|
||||
if (agvTaskList.size()>0){
|
||||
agvTask=agvTaskList.get(0);
|
||||
}else {
|
||||
agvTask =agvTaskRepository.save(
|
||||
new AgvTask(BizStatus.PICK, srcStockCode, srcPointCode, dstPointCode, BizStatus.OPEN, s)
|
||||
);
|
||||
}
|
||||
return agvTask;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public class InventoryServiceImpl implements InventoryService {
|
|||
|
||||
@Override
|
||||
public List<Inventory> queryInventory(long itemId, String areaName) {
|
||||
StringBuilder hql = new StringBuilder("FROM Inventory inv WHERE inv.itemKey.item.id = :itemId AND inv.quantity > 0 AND inv.queuedQty = 0");
|
||||
StringBuilder hql = new StringBuilder("FROM Inventory inv WHERE inv.itemKey.item.id = :itemId AND inv.quantity > inv.queuedQty ");
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("itemId", itemId);
|
||||
if (areaName.contains(",")) {
|
||||
|
|
|
|||
|
|
@ -84,9 +84,8 @@ public class pickTask {
|
|||
for (Pick pick:pickList){
|
||||
List<Task> taskList=taskRepository.findByPick(pick.getId());
|
||||
for (Task task:taskList){
|
||||
/*申城搬运任务*/
|
||||
AgvTask agvTask = new AgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01");
|
||||
agvTaskRepository.save(agvTask);
|
||||
/*生成搬运任务*/
|
||||
AgvTask agvTask = agvTaskService.addAgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01");
|
||||
/*更新Task任务*/
|
||||
task.setTaskStatus(BizStatus.ATWORK);
|
||||
task.setAgvTask(agvTask);
|
||||
|
|
|
|||
Loading…
Reference in New Issue