diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java index a5d93b3..24a47b3 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java @@ -46,7 +46,7 @@ public interface InventoryRepository extends JpaRepository, Jpa "and (:pointId is null or inv.point.id=:pointId)" + "and (:areaName is null or inv.point.area.name=:areaName)" + "and (:deptId is null or inv.dept.id=:deptId)" + - "order by inv.itemKey.propC1 ") + "order by inv.createTime ") List queryInventory(Long stockId, Long itemId, Long pointId, String areaName, Long deptId); /** diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java index 40d62e6..c903474 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/TaskRepository.java @@ -59,7 +59,7 @@ public interface TaskRepository extends JpaRepository, JpaSpecificat * * @param pickId 出库单ID */ - @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty - t.moveQty>0 ") + @Query("from Task t where t.pickDetail.pick.id =:pickId and t.planQty - t.moveQty>=0 and t.moveQty!=0 ") List findByPickAllTask(Long pickId); /** diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java index 8d1c809..e8566cf 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/AgvTaskService.java @@ -119,6 +119,14 @@ public interface AgvTaskService { */ Boolean findByEndSlotCode(String endSlotCode, String type, String jobType); + /** + * 叉车任务一个一个下发 + * @param endSlotCode 终点 + * @param type 任务类型 + * @param jobType 作业类型 + * @return + */ + Boolean findByCcEndSlotCode(String endSlotCode, String type, String jobType); /** * 查询打开的任务并轮询下发 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java index 52b65b2..e147d74 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AgvTaskServiceImpl.java @@ -154,6 +154,18 @@ public class AgvTaskServiceImpl implements AgvTaskService { return agvTaskList.isEmpty(); } + @Override + public Boolean findByCcEndSlotCode(String endSlotCode, String type, String jobType) { + String hql = " from AgvTask agv " + + " where agv.endSlotCode='" + endSlotCode + "' " + + " and agv.type='" + type + "' " + + " and agv.jobType='" + jobType + "' " + + " and agv.status in ('ATCALL','UP_CONTAINER') "; + Query query = entityMapper.createQuery(hql); + List agvTaskList = query.getResultList(); + return agvTaskList.isEmpty(); + } + @Override public List findOpenByAgvTask() { return agvTaskRepository.findOpenByAgvTask(); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java index 95cc250..78865f7 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/KMReServiceImpl.java @@ -353,7 +353,7 @@ public class KMReServiceImpl implements KMReService { @Override @Transactional(rollbackFor = Exception.class) - public void missionStateCallback(AgvTask agvTask, String status, String containerCode,String currentPosition) { + public void missionStateCallback(AgvTask agvTask, String status, String containerCode, String currentPosition) { Stock stock = stockService.findByCode(containerCode); //顶升的是起点;其它终点; Point point; @@ -373,7 +373,7 @@ public class KMReServiceImpl implements KMReService { handleForkDownContainer(agvTask, stock);//容器放下 break; case "ARRIVED": - handleARContainer(agvTask,stock, currentPosition);//容器到达 + handleARContainer(agvTask, stock, currentPosition);//容器到达 break; case "COMPLETED": handleComContainer(agvTask, stock, point);//搬运任务完成 @@ -471,8 +471,8 @@ public class KMReServiceImpl implements KMReService { this.updateAgvTaskStatus(agvTask, stock, BizStatus.FINISH); } - private void handleARContainer(AgvTask agvTask,Stock stock, String currentPosition) { - if("FX001".equals(currentPosition)){ + private void handleARContainer(AgvTask agvTask, Stock stock, String currentPosition) { + if ("FX001".equals(currentPosition)) { //更新状态 this.updateAgvTaskStatus(agvTask, stock, BizStatus.ARRIVED); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index 115ce49..3ce21f9 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -576,11 +576,6 @@ public class TaskServiceImpl implements TaskService { inventory.setQueuedQty(inventory.getQueuedQty() - moveQty); inventory.setQuantity(inventory.getQuantity() - moveQty); inventoryService.update(inventory); - - //删除库存 - if (inventory.getQuantity() <= 0) { - inventoryService.deleteAll(new Long[]{inventory.getId()}); - } } //生成新库存 diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java index 47ea704..4c6f439 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java @@ -79,7 +79,7 @@ public class pickTask { */ public void callJlTask() { /*查询拣货完成完成的出库单*/ - List statuses = Arrays.asList(BizStatus.PICKUP,BizStatus.PICK_ALL); + List statuses = Arrays.asList(BizStatus.PICKUP, BizStatus.PICK_ALL); List pickList = pickService.findByPickStatus(statuses, true); if (pickList.isEmpty()) { throw new BadRequestException("无拣货完成的出库单或出库单未叫料!"); @@ -100,9 +100,13 @@ public class pickTask { for (AgvTask agvTask : agvTaskList) { if (BizStatus.PICK.equals(agvTask.getType())) { //目标点没有托盘继续下发下一个任务 - Stock stock= stockService.findByPointCode(agvTask.getEndSlotCode()); - if(stock==null){ - kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + String endSlotCode = agvTask.getEndSlotCode(); + Stock stock = stockService.findByPointCode(endSlotCode); + if (stock == null) { + boolean isTaskFound = agvTaskService.findByCcEndSlotCode(endSlotCode, BizStatus.PICK, "FORKLIFT_MOVE"); + if (isTaskFound) { + kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + } } } else { kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); diff --git a/youchain-system/src/test/java/com/youchain/EladminSystemApplicationTests.java b/youchain-system/src/test/java/com/youchain/EladminSystemApplicationTests.java index 6ab679f..0df8d45 100644 --- a/youchain-system/src/test/java/com/youchain/EladminSystemApplicationTests.java +++ b/youchain-system/src/test/java/com/youchain/EladminSystemApplicationTests.java @@ -22,7 +22,9 @@ public class EladminSystemApplicationTests { } public static void main(String[] args) { - + String str = "17213913-0002"; + String aa=str.substring(0,11); + System.out.println(aa); } static Set bb(Set set1, Set set2) {