no message

main
暴炳林 2024-06-17 11:35:10 +08:00
parent acc0887fcf
commit e1b28ec441
6 changed files with 37 additions and 7 deletions

View File

@ -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) @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); 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);
} }

View File

@ -30,6 +30,6 @@ import java.util.Map;
* @date 2023-08-16 * @date 2023-08-16
**/ **/
public interface TaskRepository extends JpaRepository<Task, Long>, JpaSpecificationExecutor<Task> { 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); List<Task> findByPick(Long pickId);
} }

View File

@ -132,4 +132,6 @@ public interface AgvTaskService {
boolean findByendSlotCode(String endSlotCode,String type,String jobType); boolean findByendSlotCode(String endSlotCode,String type,String jobType);
List<AgvTask> findById(List<Integer> ids); List<AgvTask> findById(List<Integer> ids);
AgvTask addAgvTask(String pick, String srcStockCode, String srcPointCode, String dstPointCode, String open, String s);
} }

View File

@ -24,6 +24,7 @@ import com.youchain.basicdata.repository.StockRepository;
import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.PointService;
import com.youchain.basicdata.service.StockService; import com.youchain.basicdata.service.StockService;
import com.youchain.businessdata.domain.*; import com.youchain.businessdata.domain.*;
import com.youchain.businessdata.repository.TaskRepository;
import com.youchain.businessdata.service.*; import com.youchain.businessdata.service.*;
import com.youchain.modules.quartz.utils.TimeNumberUtils; import com.youchain.modules.quartz.utils.TimeNumberUtils;
import com.youchain.utils.*; import com.youchain.utils.*;
@ -60,6 +61,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
private final AgvTaskRepository agvTaskRepository; private final AgvTaskRepository agvTaskRepository;
private final AgvTaskMapper agvTaskMapper; private final AgvTaskMapper agvTaskMapper;
private final TaskService taskService; private final TaskService taskService;
private final TaskRepository taskRepository;
private final InventoryService inventoryService; private final InventoryService inventoryService;
private final InventoryLogService inventoryLogService; private final InventoryLogService inventoryLogService;
private final PointService pointService; private final PointService pointService;
@ -417,7 +419,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
handleUpContainer(agvTask, containerCode);//容器顶升 handleUpContainer(agvTask, containerCode);//容器顶升
break; break;
case "COMPLETED": case "COMPLETED":
handleComContainer(agvTask, containerCode);//容器完成 handleComContainer(agvTask, containerCode);//搬运任务完成
break; break;
case "CANCELED": case "CANCELED":
handleCanceledTask(agvTask, containerCode);//容器取消 handleCanceledTask(agvTask, containerCode);//容器取消
@ -438,6 +440,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
this.update(agvTask); this.update(agvTask);
} }
/** 搬运任务完成*/
private void handleComContainer(AgvTask agvTask, String containerCode) { private void handleComContainer(AgvTask agvTask, String containerCode) {
//任务完成根据AGV任务的目标点位走对应流程 //任务完成根据AGV任务的目标点位走对应流程
Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null,null); 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()); List<Task> taskList = taskService.getAgvTaskList(agvTask.getId());
switch (endAreaName) { switch (endAreaName) {
case AreaNameDic.JLQ: case AreaNameDic.JLQ:
handleJL(taskList, endPoint, stock);//满车出库 // handleJL(taskList, endPoint, stock);//满车出库
break; break;
case AreaNameDic.XJQ: case AreaNameDic.XJQ:
case AreaNameDic.DJQ: case AreaNameDic.DJQ:
handleFBFC(taskList, stock);//满车入库 handleFBFC(taskList, stock);//满车入库
break; break;
} }
/* 备料任务完成*/
if (agvTask.getType().equals(BizStatus.PICK)){
/* 更新Task任务状态*/
for(Task task:taskList){
task.setTaskStatus(BizStatus.PICKUP);
taskRepository.save(task);
}
}
agvTask.setStatus(BizStatus.FINISH); agvTask.setStatus(BizStatus.FINISH);
agvTask.setStockCode(containerCode); agvTask.setStockCode(containerCode);
agvTask.setEndTime(new Timestamp(new Date().getTime())); agvTask.setEndTime(new Timestamp(new Date().getTime()));
@ -816,4 +827,18 @@ public class AgvTaskServiceImpl implements AgvTaskService {
return agvTaskList; 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;
}
} }

View File

@ -138,7 +138,7 @@ public class InventoryServiceImpl implements InventoryService {
@Override @Override
public List<Inventory> queryInventory(long itemId, String areaName) { 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<>(); Map<String, Object> params = new HashMap<>();
params.put("itemId", itemId); params.put("itemId", itemId);
if (areaName.contains(",")) { if (areaName.contains(",")) {

View File

@ -84,9 +84,8 @@ public class pickTask {
for (Pick pick:pickList){ for (Pick pick:pickList){
List<Task> taskList=taskRepository.findByPick(pick.getId()); List<Task> taskList=taskRepository.findByPick(pick.getId());
for (Task task:taskList){ for (Task task:taskList){
/*申城搬运任务*/ /*生成搬运任务*/
AgvTask agvTask = new AgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01"); AgvTask agvTask = agvTaskService.addAgvTask(BizStatus.PICK, task.getSrcStockCode(), task.getSrcPointCode(), task.getDstPointCode(), BizStatus.OPEN, "01");
agvTaskRepository.save(agvTask);
/*更新Task任务*/ /*更新Task任务*/
task.setTaskStatus(BizStatus.ATWORK); task.setTaskStatus(BizStatus.ATWORK);
task.setAgvTask(agvTask); task.setAgvTask(agvTask);