|
@@ -27,8 +27,10 @@ import com.github.zuihou.business.productionResourceCenter.dao.Productionresourc
|
|
|
import com.github.zuihou.business.productionResourceCenter.entity.ProductionresourcePosition;
|
|
|
import com.github.zuihou.business.productionResourceCenter.entity.ZZone;
|
|
|
import com.github.zuihou.business.productionResourceCenter.service.ProductionresourcePositionService;
|
|
|
+import com.github.zuihou.business.util.MsgUtil;
|
|
|
import com.github.zuihou.common.constant.BizConstant;
|
|
|
import com.github.zuihou.common.constant.DictionaryKey;
|
|
|
+import com.github.zuihou.common.constant.ParameterKey;
|
|
|
import com.github.zuihou.common.util.StringUtil;
|
|
|
import com.github.zuihou.database.mybatis.auth.DataScope;
|
|
|
import com.github.zuihou.database.mybatis.conditions.Wraps;
|
|
@@ -84,6 +86,9 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
|
|
|
@Autowired
|
|
|
private PlateService plateService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MsgUtil msgUtil;
|
|
|
+
|
|
|
@Override
|
|
|
protected String getRegion() {
|
|
|
return TENANT;
|
|
@@ -330,6 +335,20 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
|
|
|
storge = baseMapper.selectById(position.getStorgeId());
|
|
|
resourceId = position.getResourceId()==null?"":position.getResourceId().toString();
|
|
|
}
|
|
|
+ }else{
|
|
|
+ // 有托板,但是托板上有东西,所以需判断可调度的空托板
|
|
|
+ Map storgeParams = new HashMap();
|
|
|
+ storgeParams.put("codes",StringUtil.changeIdsArrToSubQueryStr(jbw));
|
|
|
+ storgeParams.put("freeFlag","1");
|
|
|
+ storgeParams.put("findAgvStation","1");
|
|
|
+ List<ProductionresourcePosition> productionresourcePositions = productionresourcePositionMapper.getPPList(storgeParams);
|
|
|
+ log.info("起点接驳位不可用,查找无托盘的起点接驳位{}",productionresourcePositions.toString());
|
|
|
+ if(productionresourcePositions.size() > 0){
|
|
|
+ ProductionresourcePosition productionresourcePosition = productionresourcePositions.get(0);
|
|
|
+ tempAgvTaskEndPoint = productionresourcePosition.getCode();
|
|
|
+ tempAgvTaskEndPointStorge = baseMapper.selectById(productionresourcePosition.getStorgeId());
|
|
|
+ }
|
|
|
+ log.info("查到起点无托板接驳位{}",tempAgvTaskEndPoint);
|
|
|
}
|
|
|
}else{
|
|
|
Map storgeParams = new HashMap();
|
|
@@ -337,12 +356,13 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
|
|
|
storgeParams.put("freeFlag","1");
|
|
|
storgeParams.put("findAgvStation","1");
|
|
|
List<ProductionresourcePosition> productionresourcePositions = productionresourcePositionMapper.getPPList(storgeParams);
|
|
|
-
|
|
|
+ log.info("起点接驳位不可用,查找无托盘的起点接驳位{}",productionresourcePositions.toString());
|
|
|
if(productionresourcePositions.size() > 0){
|
|
|
ProductionresourcePosition productionresourcePosition = productionresourcePositions.get(0);
|
|
|
tempAgvTaskEndPoint = productionresourcePosition.getCode();
|
|
|
tempAgvTaskEndPointStorge = baseMapper.selectById(productionresourcePosition.getStorgeId());
|
|
|
}
|
|
|
+ log.info("查到起点无托板接驳位{}",tempAgvTaskEndPoint);
|
|
|
}
|
|
|
|
|
|
if(storge!=null){
|
|
@@ -365,6 +385,8 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
|
|
|
usableJbwPlateMap.put("haveGoods","1");
|
|
|
usableJbwPlateMap.put("findAgvStation","1");
|
|
|
List<ProductionresourcePosition> tempAgvStartList = productionresourcePositionMapper.getPPList(usableJbwPlateMap);
|
|
|
+ log.info("起点接驳位不可用,查找线内空托盘接驳位{}",tempAgvStartList.toString());
|
|
|
+ String zoneType = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(ParameterKey.ZONE_TYPE).toString());
|
|
|
|
|
|
if(tempAgvStartList.size() > 0){
|
|
|
Map<String,List<ProductionresourcePosition>> tempAgvStartMap = tempAgvStartList.stream().collect(groupingBy(ProductionresourcePosition::getNo));
|
|
@@ -372,18 +394,31 @@ public class StorgeServiceImpl extends SuperCacheServiceImpl<StorgeMapper, Storg
|
|
|
List<ProductionresourcePosition> list = tempAgvStartMap.get(key);
|
|
|
// 无托板
|
|
|
if(list!=null && list.size()==1 && StringUtils.isBlank(tempAgvTaskStartPoint)){
|
|
|
- // 必须是存放了1个托板
|
|
|
- tempAgvTaskStartPoint = list.get(0).getCode();
|
|
|
- tempAgvTaskStartPointStorge = baseMapper.selectById(list.get(0).getStorgeId());
|
|
|
- returnMap.put("tempAgvTaskStartPoint",tempAgvTaskStartPoint);
|
|
|
- returnMap.put("tempAgvTaskEndPoint",tempAgvTaskEndPoint);
|
|
|
- returnMap.put("tempAgvTaskStartPointStorge",tempAgvTaskStartPointStorge);
|
|
|
- returnMap.put("tempAgvTaskEndPointStorge",tempAgvTaskEndPointStorge);
|
|
|
+ if(zoneType.equals(ParameterKey.ZONE_SFX)){
|
|
|
+ if(list.get(0).getCode().equals(DictionaryKey.SFX_JBW_RELATION.get(tempAgvTaskEndPoint))){
|
|
|
+ // 必须是存放了1个托板
|
|
|
+ tempAgvTaskStartPoint = list.get(0).getCode();
|
|
|
+ tempAgvTaskStartPointStorge = baseMapper.selectById(list.get(0).getStorgeId());
|
|
|
+ returnMap.put("tempAgvTaskStartPoint",tempAgvTaskStartPoint);
|
|
|
+ returnMap.put("tempAgvTaskEndPoint",tempAgvTaskEndPoint);
|
|
|
+ returnMap.put("tempAgvTaskStartPointStorge",tempAgvTaskStartPointStorge);
|
|
|
+ returnMap.put("tempAgvTaskEndPointStorge",tempAgvTaskEndPointStorge);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 必须是存放了1个托板
|
|
|
+ tempAgvTaskStartPoint = list.get(0).getCode();
|
|
|
+ tempAgvTaskStartPointStorge = baseMapper.selectById(list.get(0).getStorgeId());
|
|
|
+ returnMap.put("tempAgvTaskStartPoint",tempAgvTaskStartPoint);
|
|
|
+ returnMap.put("tempAgvTaskEndPoint",tempAgvTaskEndPoint);
|
|
|
+ returnMap.put("tempAgvTaskStartPointStorge",tempAgvTaskStartPointStorge);
|
|
|
+ returnMap.put("tempAgvTaskEndPointStorge",tempAgvTaskEndPointStorge);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ log.info("起点接驳位不可用,查找线内空托盘适配接驳位{}",tempAgvTaskStartPoint);
|
|
|
// end add by yejian on 20220802 for 判断如果接驳位起始不可用时判断是否有可用的空托盘,如果有,先让agv搬运到需放料所在位子
|
|
|
}
|
|
|
return returnMap;
|