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)
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
**/
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);
}

View File

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

View File

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

View File

@ -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(",")) {

View File

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