From e8c8c59e3561f862f115687428c33727003c6116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=A5=E5=BE=B7=E5=BD=AA=E6=9C=AC=E5=BD=AA=5C92525?= Date: Sat, 23 Nov 2024 22:36:31 +0800 Subject: [PATCH] no message --- .../basicdata/repository/StockRepository.java | 5 +- .../basicdata/service/StockService.java | 3 +- .../service/impl/StockServiceImpl.java | 4 +- .../service/impl/MesServiceImpl.java | 64 ++++++++++++++----- .../service/impl/TaskServiceImpl.java | 2 +- .../java/com/youchain/utils/AreaNameDic.java | 5 ++ .../java/com/youchain/utils/BaseStatus.java | 15 +---- 7 files changed, 61 insertions(+), 37 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/basicdata/repository/StockRepository.java b/youchain-system/src/main/java/com/youchain/basicdata/repository/StockRepository.java index 1dc4848..56bf5b7 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/repository/StockRepository.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/repository/StockRepository.java @@ -20,6 +20,7 @@ import com.youchain.businessdata.domain.Inventory; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; + import java.util.List; import java.util.Set; @@ -45,7 +46,7 @@ public interface StockRepository extends JpaRepository, JpaSpecific @Query(" from Stock s where s.point.area.name = :areaName " + "and s.point.id > 0 " + "and s.point.status = 'USED'" + - "and s.status = 'FREE' " + + "and s.status = :status " + "and s.enabled = true") - List findByKongStock(String areaName); + List findByFreeOrUsedStock(String areaName, String status); } diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/StockService.java b/youchain-system/src/main/java/com/youchain/basicdata/service/StockService.java index 52ee790..de182e1 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/StockService.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/StockService.java @@ -137,8 +137,9 @@ public interface StockService { * 查询指定库区可用的空车 * * @param areaName 库区 + * @param status 状态 */ - List findByKongStock(String areaName); + List findByFreeOrUsedStock(String areaName,String status); /** * 根据点位编号查询容器 diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java index a243f54..b0f9fda 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/StockServiceImpl.java @@ -279,8 +279,8 @@ public class StockServiceImpl implements StockService { } @Override - public List findByKongStock(String areaName) { - return stockRepository.findByKongStock(areaName); + public List findByFreeOrUsedStock(String areaName,String status) { + return stockRepository.findByFreeOrUsedStock(areaName,status); } @Override diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java index 0a5b32d..3923e14 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java @@ -254,52 +254,82 @@ public class MesServiceImpl implements MesService { } private synchronized void moveCpOffUp(String pointCode) { - - // 从成品入库区查询空车 - List emptyStockList = stockService.findByKongStock(AreaNameDic.CPRKQ); + // 从成品入库缓存区查询空车;没有在从成品入库区查询空车; + List emptyStockList = stockService.findByFreeOrUsedStock(AreaNameDic.CPRKHCQ, BaseStatus.FREE); if (emptyStockList.isEmpty()) { - throw new BadRequestException("成品入库区没有空车,请稍后再试!"); + emptyStockList = stockService.findByFreeOrUsedStock(AreaNameDic.CPRKQ, BaseStatus.FREE); + if (emptyStockList.isEmpty()) { + throw new BadRequestException("成品入库区、成品入库缓存区都没有空车,请稍后再试!"); + } } - + //容器 Stock emptyStock = emptyStockList.get(0); + //起点 Point srcPoint = emptyStock.getPoint(); - - Point endPoint = pointService.validatePoint(pointCode);//终点 - + //终点 + Point endPoint = pointService.validatePoint(pointCode); + //验证终点是否有任务 if (!agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Up, "RACK_MOVE")) { // 直接在条件判断为false时抛出异常,表示该点位有任务 throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!"); } - - //生成任务 + //创建Agv任务 AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE"); - // 更新点位状态 pointService.usedPoint(endPoint); - //下发任务 kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); - } private synchronized void moveCpOffLine(TransTask transTask) { - Point srcPoint = pointService.validatePoint(transTask.getPointCode());//起点 + //判断下线缓存区是否有满货架; + List fullStockList = stockService.findByFreeOrUsedStock(AreaNameDic.CPXXHC, BaseStatus.USED); + if (!fullStockList.isEmpty()) { + List endPointList = pointService.queryPoints(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.CPRKQ); + if (!endPointList.isEmpty()) { + //容器 + Stock fullStock = fullStockList.get(0); + //起点 + Point srcPoint = fullStock.getPoint(); + //终点 + Point endPoint = endPointList.get(0); + //验证终点是否有任务 + if (agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Line, "RACK_MOVE")) { + //创建Agv任务 + AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, fullStock, srcPoint, endPoint, "RACK_MOVE"); + // 更新点位状态 + pointService.usedPoint(endPoint); + //占用容器 + stockService.usedStock(fullStock, srcPoint, BaseStatus.USED); + //下发任务 + kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); + } + } + } + + //下线缓存区没有满货架,直接下发当前任务 + Point srcPoint = pointService.validatePoint(transTask.getPointCode()); + //容器 Stock stock = stockService.findByPointCode(srcPoint.getCode()); if (stock == null) { throw new BadRequestException(srcPoint.getCode() + "点位没有货架!"); } List endPointList = pointService.queryPoints(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.CPRKQ); if (endPointList.isEmpty()) { - throw new BadRequestException("成品入库区没有空闲点位!"); + endPointList = pointService.queryPoints(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.CPXXHC); + if (endPointList.isEmpty()) { + throw new BadRequestException("成品入库区和成品下线缓存区都没有空闲点位!"); + } } + //终点 Point endPoint = endPointList.get(0); - + //验证终点是否有任务 if (!agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Line, "RACK_MOVE")) { // 直接在条件判断为false时抛出异常,表示该点位有任务 throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!"); } - //创建并下发任务 + //创建Agv任务 AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE"); // 更新点位状态 pointService.usedPoint(endPoint); 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 41f49ae..4920f05 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 @@ -241,7 +241,7 @@ public class TaskServiceImpl implements TaskService { String dstAreaCode = "小件".equals(goodType) ? AreaNameDic.XJFBCQ : AreaNameDic.DJFBCQ; - List emptyStock = stockService.findByKongStock(srcAreaCode); + List emptyStock = stockService.findByFreeOrUsedStock(srcAreaCode, BaseStatus.FREE); if (emptyStock.isEmpty()) { return; } diff --git a/youchain-system/src/main/java/com/youchain/utils/AreaNameDic.java b/youchain-system/src/main/java/com/youchain/utils/AreaNameDic.java index 9a0b57a..c960ecd 100644 --- a/youchain-system/src/main/java/com/youchain/utils/AreaNameDic.java +++ b/youchain-system/src/main/java/com/youchain/utils/AreaNameDic.java @@ -57,6 +57,11 @@ public interface AreaNameDic { */ String CPXXQ = "成品下线区"; + /** + * 成品下线缓存区 + */ + String CPXXHC = "成品下线缓存"; + /** * 返修上线区 */ diff --git a/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java b/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java index 0155395..f283624 100644 --- a/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java +++ b/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java @@ -18,15 +18,6 @@ public class BaseStatus { * 占用 */ public static String USED = "USED"; - /** - * 可用 - */ - public static Boolean T =true; - /** - * 不可用 - */ - public static Boolean F =false; - /** * 点位类型-线边点位 */ @@ -37,13 +28,9 @@ public class BaseStatus { */ public static String STORAGE = "STORAGE"; - /** - * 输送线 - */ - public static String EMPTY = "EMPTY"; - /** 工单类型 成品*/ public static String GD_TYPE_CT = "成品"; + /** 工单类型 单品*/ public static String GD_TYPE_DP = "单品"; }